field-level confidence ที่ calibrate แล้ว กับการ route ให้คนตรวจ
แนวคิด
บทก่อนบอกว่าความมั่นใจของโมเดลดิบ ๆ เชื่อไม่ได้ แต่ไม่ได้แปลว่า confidence ไร้ประโยชน์ กุญแจอยู่ที่คำว่า calibrate คือปรับเทียบ ให้โมเดล output confidence score ระดับ field แล้ว calibrate threshold ด้วยชุดข้อมูลที่ติดป้ายคำตอบจริงไว้ ก่อนนำไปใช้ตัดสินว่าอะไรควรส่งให้คนตรวจ
field-level หมายความว่าเราไม่ได้ให้คะแนนความมั่นใจรวมทั้งเอกสาร แต่ให้แต่ละ field มีคะแนนของตัวเอง เพราะโมเดลอาจมั่นใจมากกับ field total แต่ไม่แน่ใจกับ field tax_id การแยกระดับ field ทำให้เรา route ได้ละเอียด คือส่งเฉพาะ field ที่ความมั่นใจต่ำหรือเอกสารที่ขัดแย้ง/กำกวมไปให้คนตรวจ แทนที่จะส่งทั้งเอกสารหรือไม่ส่งเลย
calibrate ด้วย labeled validation set คือหัวใจ เพราะคะแนน 0.8 ที่โมเดลให้อาจไม่ได้แปลว่า "ถูก 80% ของครั้ง" จริง ๆ เราต้องเอาคะแนนที่โมเดลให้ไปเทียบกับคำตอบจริงในชุดที่ติดป้ายไว้ เพื่อหาว่า threshold ตรงไหนจึงจะแยกถูกออกจากผิดได้ดี แล้วค่อยตั้ง threshold นั้นเป็นเส้นแบ่งว่าอะไรผ่านอัตโนมัติและอะไรต้องให้คนดู
ทำไมสำคัญ
เอกสาร reduce hallucinations เตือนว่า self-reported confidence เชื่อตรง ๆ ไม่ได้ และแนะนำเทคนิคเชิงโครงสร้างแทน เช่น ให้หา quote สนับสนุนทุกคำกล่าวอ้าง หรือรันหลายครั้งแล้วเทียบผลแบบ best-of-N การ calibrate confidence ด้วย labeled set เป็นการทำให้คะแนนความมั่นใจ "มีความหมายที่ตรวจสอบได้" แทนที่จะเชื่อตัวเลขดิบ ซึ่งสอดคล้องกับจิตวิญญาณของ docs คืออย่าเชื่อความมั่นใจโดยไม่มีหลักฐานรองรับ
ประโยชน์เชิงปฏิบัติคือการจัดสรรกำลังคนตรวจที่มีจำกัด ถ้าเราส่งทุกอย่างให้คนดูก็ไม่ต่างจากทำมือ ถ้าไม่ส่งอะไรเลยก็เสี่ยง confidence ที่ calibrate แล้วช่วยให้ route ได้ตรงจุด คือทุ่มสายตาคนไปที่การดึงที่ความมั่นใจต่ำและกรณีที่ต้นทางกำกวมหรือขัดแย้ง ซึ่งเป็นจุดที่ error มีโอกาสสูงสุด ส่วนการดึงที่ผ่าน threshold ด้วยหลักฐานว่าแม่นจริงก็ปล่อยอัตโนมัติได้
สิ่งที่ต้องเข้าใจให้ลึกคือ field-level confidence ต้องออกแบบเข้าไปใน schema ของ output ตั้งแต่ต้น เอกสาร define tools แนะนำให้ออกแบบ input schema และผลลัพธ์ให้ชัดเจน เราจึงเพิ่ม field คู่กัน เช่น value กับ confidence ต่อ field ได้ และเชื่อมกับหลักจากโมดูลก่อน คือเมื่อข้อมูลไม่มีในต้นทางให้ปล่อย field เป็น null แทนการกุค่า การรวมสองอย่างนี้ทำให้ระบบทั้งซื่อสัตย์เรื่องความไม่แน่นอน และ route ความไม่แน่นอนนั้นไปให้คนได้อย่างเป็นระบบ
ตัวอย่าง
{
"invoice_total": { "value": 1240, "confidence": 0.98 },
"tax_id": { "value": "TH-9921", "confidence": 0.62 },
"issue_date": { "value": null, "confidence": 0.20 }
}
threshold ที่ calibrate จาก labeled set = 0.85
- invoice_total (0.98) → ผ่านอัตโนมัติ
- tax_id (0.62) → route ให้คนตรวจ
- issue_date (0.20, null) → route ให้คนตรวจ
เช็คความเข้าใจ
ทำไมต้อง calibrate confidence ด้วย labeled validation set แทนการเชื่อคะแนนดิบ
ทำไม confidence ระดับ field จึงดีกว่าคะแนนรวมทั้งเอกสาร และควร route อะไรให้คน