Tự xây dựng mô hình ra quyết định cho AI: từ ý tưởng đến hiệu chỉnh độ tin cậy
Bài viết hướng dẫn cách tạo một mô hình ra quyết định (decision model) đơn giản bằng LLM, chỉ cho phép mô hình chọn từ một tập đáp án cố định thay vì sinh từng token. Qua thử nghiệm với Qwen3-1.7B và bộ dữ liệu CommonsenseQA, tác giả chỉ ra vấn đề mô hình quá tự tin và cách khắc phục bằng temperature scaling.
Các mô hình ngôn ngữ lớn (LLM) ngày nay thường được dùng để sinh văn bản hoặc trả về JSON có cấu trúc. Nhưng nếu bạn chỉ cần mô hình chọn một đáp án trong số vài lựa chọn cố định, việc sinh từng token là cách làm cực kỳ lãng phí. Một hướng tiếp cận khác — gọi là mô hình ra quyết định — có thể cho kết quả nhanh hơn nhiều và mở ra những ứng dụng thú vị.
Mô hình ra quyết định là gì?
Khi bạn yêu cầu một LLM trả về JSON, bạn có thể dùng Structured Output để ràng buộc đầu ra thành JSON hợp lệ. Tuy nhiên, mô hình vẫn phải thực hiện một lượt suy luận cho mỗi token được sinh ra. Ví dụ, để tạo ra một chuỗi 11 token, mô hình cần tới 11 lượt tính toán.
Mô hình ra quyết định (như Jev) đưa ra giả định rằng tập đáp án là cố định và có thể chọn chỉ trong một lượt duy nhất. Bằng cách giới hạn tập đầu ra chỉ còn các phương án A, B, C, D, E — tức là che (mask) toàn bộ các token khác trong từ vựng — mô hình chỉ có thể phát ra những token nằm trong danh sách cho phép. Sau đó, ta chọn đáp án có xác suất cao nhất.
Cách này có một hạn chế quan trọng: mô hình không thể chọn đáp án nằm ngoài tập đã định, nhưng điều đó không đảm bảo đáp án đúng. Ngoài ra, xác suất của token đầu ra thường bị nhầm lẫn với "điểm tin cậy" (confidence score) — nhưng nếu chưa qua huấn luyện thêm, con số đó phản ánh niềm tin của mô hình vào token tiếp theo, chứ không phải xác suất đáp án đó là đúng.
Tự tay xây dựng mô hình
Tác giả đã minh họa bằng mô hình Qwen/Qwen3-1.7B, giới hạn đầu ra chỉ còn 5 token tương ứng với các phương án A đến E. Đoạn mã Python cốt lõi như sau:
- Nạp tokenizer và model với
transformerscủa Hugging Face. - Xác định
option_token_ids— token mà mô hình sẽ phát ra cho mỗi phương án ở vị trí đầu tiên. - Xây dựng prompt bằng
apply_chat_template, tắt chế độ suy luận (enable_thinking=False). - Chạy mô hình, lấy logits ở vị trí cuối, áp dụng
softmaxchỉ trên các token phương án để có xác suất. - In ra đáp án có xác suất cao nhất kèm phân bố xác suất của từng lựa chọn.
Với câu hỏi đơn giản "Bầu trời màu gì?" (A. Đỏ, B. Xanh, C. Xanh lá, D. Tím, E. Không biết), mô hình trả về B với xác suất 0.9988 — hoàn toàn hợp lý.
Kiểm tra độ chính xác trên CommonsenseQA
Tác giả chạy thử mô hình trên một mẫu ngẫu nhiên của bộ dữ liệu CommonsenseQA. Kết quả ban đầu:
- Độ chính xác: 725/1221 = 0.5938
- Macro F1: 0.5844
Khá ấn tượng với một mô hình chỉ 1.7 tỷ tham số. Sau khi tinh chỉnh (finetune) nhanh trên chính bộ dữ liệu này, độ chính xác tăng lên 0.6241 và macro F1 đạt 0.6234.
Vấn đề: mô hình quá tự tin
Khi thử với một câu hỏi mơ hồ — "Bạn thường tìm thấy con dơi ở đâu nhất?" (hang động, sân bóng chày, gác mái, sở thú, cửa hàng dụng cụ thể thao) — mô hình chọn A. Hang động với xác suất tới 0.9978. Đây là một câu hỏi không có đáp án rõ ràng, vậy mà mô hình tỏ ra cực kỳ chắc chắn.
Khi chia độ tin cậy thành các khoảng và so với độ chính xác thực tế, tác giả phát hiện:
- Ở khoảng tin cậy 0.9–1.0, mô hình đúng chỉ ~70% số lần.
- Ở khoảng 0.8–0.9, độ chính xác thực tế chỉ khoảng 40%.
Điều này cho thấy mô hình chưa được hiệu chỉnh (uncalibrated) — độ tin cậy không phản ánh đúng năng lực thực sự của nó.
Điểm tin cậy cao không có nghĩa là câu trả lời đúng. Đây là cạm bẫy phổ biến khi triển khai AI trong thực tế.
Hiệu chỉnh bằng temperature scaling
Để đầu ra phản ánh đúng độ chính xác, tác giả dùng phương pháp temperature scaling — điều chỉnh nhiệt độ T để làm phẳng phân bố xác suất đầu ra. Bằng kỹ thuật khớp đường cong (curve fitting), tác giả tìm được giá trị T ≈ 3.797.
Sau khi hiệu chỉnh, các khoảng tin cậy khớp gần như hoàn hảo với độ chính xác thực tế:
- Khoảng 0.9–1.0: tin cậy 0.9333, chính xác 0.9541
- Khoảng 0.7–0.8: tin cậy 0.7492, chính xác 0.7714
- Khoảng 0.4–0.5: tin cậy 0.4472, chính xác 0.5126
Kết quả này giúp mô hình trở nên đáng tin cậy hơn khi đưa ra quyết định — một yếu tố then chốt nếu bạn muốn dùng nó trong các hệ thống thực tế như chẩn đoán, gợi ý hay tự động hóa quy trình.
Ý nghĩa với cộng đồng phát triển AI tại Việt Nam
Với các kỹ sư và nhà phát triển AI trong nước đang tìm cách triển khai mô hình nhỏ gọn trên hạ tầng hạn chế, hướng tiếp cận này đặc biệt hữu ích:
- Tiết kiệm tài nguyên: Chỉ một lượt suy luận cho toàn bộ quyết định — phù hợp khi chạy trên GPU yếu hoặc thiết bị biên.
- Dễ kiểm soát đầu ra: Ràng buộc tập đáp án giúp giảm rủi ro mô hình "bịa" câu trả lời ngoài mong muốn.
- Cần hiệu chỉnh trước khi sản xuất: Đừng bao giờ tin tưởng mù quáng vào điểm confidence mặc định của mô hình.
Tác giả đã công bố một repo GitHub kèm các script hướng dẫn từng bước: xây dựng bộ dữ liệu, đánh giá, tinh chỉnh và hiệu chỉnh mô hình. Bạn có thể kéo về và thử nghiệm với những mô hình lớn hơn để xem liệu kết quả có cải thiện đáng kể hay không.
Bài viết liên quan

Công nghệ
Nộp đơn xin việc lẽ ra nên khó hơn. Thật đấy
25 tháng 8, 2026

Công nghệ
Mô hình AI hàng đầu giỏi Vật lý đến đâu? Nghiên cứu mới chỉ ra các bài kiểm tra hiện hành đang đánh giá sai
16 tháng 9, 2026
Công nghệ
MrBeast chi hàng triệu USD để "giải mã ngược" thuật toán của mọi nền tảng
10 tháng 10, 2026