Trustworthy Language Models
Mô hình ngôn ngữ đáng tin cậy
Bạn hỏi AI 'Phản ứng giữa NaOH và HCl tạo ra gì?' và AI trả lời tự tin 95%: 'Tạo ra H2SO4'. Đây là vấn đề gì?
Hãy chọn các câu hỏi khác nhau. Quan sát confidence score — mô hình đáng tin cậy sẽ cho điểm CAO khi biết chắc và THẤP khi không chắc.
Hình minh họa
Mô hình A trả lời đúng 90% nhưng luôn nói 'chắc chắn 99%'. Mô hình B trả lời đúng 80% nhưng confidence phản ánh chính xác accuracy. Mô hình nào đáng tin cậy hơn?
Giải thích
Trustworthy Language Models (TLM) là cách tiếp cận giúp mô hình ngôn ngữ trở nên đáng tin cậy hơn bằng cách đảm bảo điểm tin cậy phản ánh đúng xác suất trả lời chính xác.
1. Calibration (Hiệu chuẩn): Điểm tin cậy 80% nghĩa là 80% câu trả lời có điểm đó phải đúng. Đo bằng ECE (Expected Calibration Error).
2. Selective Abstention (Từ chối có chọn lọc): Khi không chắc, mô hình nên nói "Tôi không biết" thay vì bịa đáp án. Threshold confidence quyết định khi nào từ chối.
3. Uncertainty Quantification (Đo lường bất định): Phân biệt epistemic uncertainty (thiếu kiến thức) và aleatoric uncertainty (bản chất câu hỏi mơ hồ).
Expected Calibration Error (ECE) — thước đo calibration:
Chia tất cả dự đoán thành M bins theo confidence. Với mỗi bin , so sánh accuracy thực tế với confidence trung bình. ECE = 0 là calibration hoàn hảo.
Temperature scaling: Chia logits cho hệ số T trước softmax. T lớn làm phân phối đều hơn (giảm overconfidence), T nhỏ làm nhọn hơn.
Verbalized confidence: Yêu cầu LLM tự đánh giá: "Hãy trả lời và cho biết mức độ tự tin từ 0-100%".
Self-consistency: Chạy N lần với temperature lớn hơn 0, đếm tỷ lệ câu trả lời giống nhau. Nhất quán cao = confidence cao.
# Đo confidence bằng self-consistency
import openai
def get_confidence(question: str, n_samples: int = 5):
"""Chạy n_samples lần, đếm tỷ lệ nhất quán"""
answers = []
for _ in range(n_samples):
response = openai.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": question}],
temperature=0.7, # Cho phép đa dạng
)
answers.append(response.choices[0].message.content)
# Đếm câu trả lời phổ biến nhất
from collections import Counter
most_common = Counter(answers).most_common(1)[0]
consistency = most_common[1] / n_samples
return {
"answer": most_common[0],
"confidence": consistency,
"n_samples": n_samples,
"all_answers": answers,
}
# Ví dụ
result = get_confidence("Thủ đô Việt Nam là gì?")
# confidence ~1.0 (tất cả 5 lần đều trả lời "Hà Nội")
result = get_confidence("AI có ý thức không?")
# confidence ~0.4 (câu trả lời khác nhau mỗi lần)Y tế: AI tư vấn triệu chứng PHẢI có confidence. "Có thể là sốt xuất huyết (confidence: 40%) — hãy đến bệnh viện ngay".
Tài chính: AI tư vấn đầu tư cần cảnh báo khi không chắc chắn, đặc biệt với thị trường Việt Nam biến động mạnh.
Pháp luật: AI tra cứu luật Việt Nam phải phân biệt rõ "luật hiện hành" (confidence cao) vs "diễn giải luật" (confidence thấp).
Chatbot chăm sóc khách hàng: Khi confidence thấp, tự động chuyển sang nhân viên thật thay vì trả lời bừa.
Hệ thống RAG: Kết hợp confidence score với retrieval score. Nếu cả hai thấp → "Xin lỗi, tôi không tìm thấy thông tin phù hợp".
Giao diện người dùng: Hiển thị confidence bằng màu sắc: xanh (chắc chắn), vàng (nên kiểm tra), đỏ (không nên tin hoàn toàn).
- TLM = mô hình BIẾT KHI NÀO MÌNH SAI. Calibration tốt = confidence phản ánh đúng accuracy.
- ECE đo chất lượng calibration. ECE = 0 là hoàn hảo: nói 80% chắc thì 80% phải đúng.
- Ba kỹ thuật: temperature scaling (điều chỉnh logits), verbalized confidence, self-consistency.
- Overconfidence nguy hiểm hơn underconfidence: sai mà tự tin khiến người dùng không kiểm chứng.
- Bắt buộc trong domain rủi ro cao: y tế, tài chính, pháp luật — luôn cần cảnh báo khi không chắc.
Kiểm tra hiểu biết
Mô hình có confidence = 90% nhưng chỉ đúng 60% trường hợp. Vấn đề này gọi là gì?