𝗪𝗵𝘆 𝗬𝗼𝘂𝗿 𝗔𝗜 𝗖𝗼𝗻𝗳𝗶𝗱𝗲𝗻𝗰𝗲 𝗦𝗰𝗼𝗿𝗲𝘀 𝗟𝘆𝗲
คุณเทรนโมเดลของคุณแล้ว Metrics ดูดีมาก คุณนำมันไปใช้งานจริงแล้ว
หกเดือนต่อมา มีบางอย่างผิดปกติ แดชบอร์ดความแม่นยำของคุณดูปกติดี แต่โมเดลกลับทำงานล้มเหลว
สิ่งนี้เกิดขึ้นเนื่องจาก distribution shift ข้อมูลใน production แตกต่างจากข้อมูลที่คุณใช้เทรน การเปลี่ยนแปลงนี้ทำให้ calibration เสียไป
หากคุณใช้สถาปัตยกรรม Mixture-of-Experts (MoE) คุณจะเผชิญกับความเสี่ยงเฉพาะตัว
Calibration หมายความว่า หากโมเดลบอกว่ามีความมั่นใจ 80% มันจะต้องทายถูก 80% ของจำนวนครั้งทั้งหมด ในโมเดล MoE ที่ใช้ soft routing สิ่งนี้จะพังลงอย่างเงียบๆ
Soft routing จะผสมผสานผู้เชี่ยวชาญ (experts) หลายคนเข้าด้วยกันเพื่อให้ได้ผลลัพธ์ แม้ว่าผู้เชี่ยวชาญแต่ละคนจะได้รับการปรับเทียบ (calibrated) มาอย่างดีแล้ว แต่คะแนนรวมจะเริ่มไม่น่าเชื่อถือเมื่อข้อมูลนำเข้าเปลี่ยนไป รูปแบบการ routing ที่แตกต่างออกไปจะปรากฏขึ้น ซึ่งเป็นสิ่งที่โมเดลไม่เคยเห็นในระหว่างการเทรน
Hard routing มีความ robust มากกว่า โดยจะส่งข้อมูลนำเข้าไปยังผู้เชี่ยวชาญเพียงคนเดียวเท่านั้น ทำให้ความมั่นใจยังคงผูกติดอยู่กับผู้เชี่ยวชาญคนนั้นๆ
วิธีแก้ไข:
- ใช้ Adversarial Reweighting: เทรนโมเดลของคุณด้วยตัวอย่างที่ยาก (hard examples) โดยใช้ exponential tilt เพื่อเน้นตัวอย่างที่มีค่า loss สูงในระหว่างการเทรน
- ใช้ Robust Filtered Loss: มุ่งเน้นการเทรนไปที่กรณีที่การผสมผสานผู้เชี่ยวชาญให้ผลลัพธ์แย่กว่าการใช้ผู้เชี่ยวชาญเพียงคนเดียว
สิ่งที่ควรทำทันที:
- ติดตาม Expected Calibration Error (ECE): ตรวจสอบว่าคะแนนความมั่นใจของคุณตรงกับความแม่นยำจริงหรือไม่
- พล็อตกราฟ Reliability Diagrams: คอยสังเกตเส้นโค้งที่เบี่ยงเบนออกจากเส้นทแยงมุม
- ติดตาม Input Drift: ใช้การทดสอบเช่น Kolmogorov-Smirnov เพื่อดูว่าข้อมูลใน production ของคุณมีการเปลี่ยนแปลงหรือไม่
- ใช้ Temperature Scaling: นี่คือการแก้ไขปัญหาเฉพาะหน้าอย่างรวดเร็วเพื่อปรับคะแนนความมั่นใจหลังการใช้งานจริง แม้ว่าจะไม่ใช่การแก้ไขปัญหาแบบถาวรก็ตาม
Calibration คือคุณสมบัติของระบบ ส่วนประกอบที่ได้รับการปรับเทียบแล้วไม่ได้หมายความว่าผลลัพธ์รวมจะได้รับการปรับเทียบเสมอไป
คุณเคยเจอปัญหา calibration drift ใน production บ้างไหม? บอกเล่าวิธีการ monitoring ของคุณในคอมเมนต์ได้เลย
Optional learning community: https://t.me/GyaanSetuAi