- แอปพลิเคชันที่ทำงานบน LLM (Large Language Model) ประเมินด้วยวิธีทดสอบแบบดั้งเดิมได้ยาก เนื่องจากมี ลักษณะผลลัพธ์ที่ไม่เป็นเชิงกำหนดแน่นอน
- ดังนั้นเพื่อรักษาและปรับปรุงประสิทธิภาพของระบบ LLM จึงจำเป็นต้องมี วิธีประเมินเฉพาะทาง (evals)
เหตุใด eval จึงสำคัญ
- การกำหนดเกณฑ์ประสิทธิภาพ: ให้ทิศทางต่อประสิทธิภาพของโมเดลและตั้ง benchmark ที่เปรียบเทียบกันได้
- สร้างความสม่ำเสมอและความน่าเชื่อถือ: ค้นพบและควบคุมผลลัพธ์ที่คาดเดาไม่ได้ล่วงหน้า
- ชี้ทิศทางการปรับปรุง: ระบุจุดที่ประสิทธิภาพลดลงอย่างชัดเจนเพื่อให้ปรับปรุงได้อย่างตรงจุด
- รองรับ regression test: ตรวจสอบว่าหลังการเปลี่ยนแปลงแล้วประสิทธิภาพยังคงเดิมหรือไม่ เพื่อรับประกันเสถียรภาพ
องค์ประกอบสำคัญของการประเมินก่อนนำขึ้นใช้งานจริง
เหตุใดการประเมินก่อนนำขึ้นใช้งานจริงจึงสำคัญ
- วัดประสิทธิภาพได้ตั้งแต่เนิ่น ๆ และเปรียบเทียบกันได้
- สามารถตรวจจับปัญหา regression ได้ล่วงหน้าเมื่อมีการเปลี่ยนโค้ด พรอมป์ต์ หรือพารามิเตอร์
วิธีดำเนินการประเมิน
1. สร้างชุดข้อมูล Ground Truth
- ต้องมีชุดข้อมูลที่ประกอบด้วยคู่คำถาม-คำตอบซึ่งจัดทำโดยผู้เชี่ยวชาญ
- สิ่งสำคัญคือ ต้องครอบคลุมหลายสถานการณ์ ที่สะท้อนรูปแบบคำถามของผู้ใช้จริง
LLM สามารถสร้าง Ground Truth ได้หรือไม่?
- LLM สามารถช่วยในบทบาทเสริมได้ แต่ไม่แนะนำให้สร้างเองทั้งหมดเพียงลำพัง
- ยังเข้าใจพฤติกรรมผู้ใช้ได้ไม่เพียงพอ
- คำถามและคำตอบที่เหมาะกับบริบทจำเป็นต้องมีการตรวจทานโดยมนุษย์
- การตรวจทานโดยมนุษย์เป็นสิ่งจำเป็นเพื่อรับประกันความเหมาะสมกับโดเมนและคุณภาพ
2. การเลือกตัวชี้วัดการประเมิน
- Answer relevancy: ให้คำตอบที่ตรงประเด็นและมีความหมายต่อคำถามหรือไม่
- Coherence: ความลื่นไหลเชิงตรรกะและความชัดเจนของคำตอบ
- Contextual relevance: พิจารณาบริบทของบทสนทนาได้ดีเพียงใด
- Responsibility: เป็นผลลัพธ์ที่มีความรับผิดชอบหรือไม่ เช่น ด้านจริยธรรม ความเป็นอันตราย และอคติ
3. ตัวชี้วัดการประเมิน RAG
- ตัวชี้วัดการสร้างคำตอบ:
- Faithfulness: อิงข้อเท็จจริงหรือไม่
- Answer relevancy: ความเหมาะสมของคำตอบ
- ตัวชี้วัดการค้นคืนข้อมูล:
- Context precision: สัดส่วนสัญญาณต่อสัญญาณรบกวนของข้อมูลที่เกี่ยวข้อง
- Context recall: ค้นข้อมูลที่จำเป็นต่อคำตอบที่ถูกต้องได้ดีเพียงใด
4. ตัวชี้วัดเฉพาะงาน
- จำเป็นต้องมีตัวชี้วัดแบบปรับแต่งให้เหมาะกับงานเฉพาะ
- ตัวอย่าง: งานสรุปความใช้ Fluency, Coherence, Consistency, Relevance
5. การคำนวณคะแนนและการจูนระบบ
- คำนวณคะแนนโดยเปรียบเทียบผลลัพธ์จริงกับ Ground Truth สำหรับแต่ละตัวชี้วัด
- ตัวอย่าง:
- Recall ต่ำ: ลด
chunk size
- Precision ต่ำ: พิจารณาใช้ re-ranking
- ตัวอย่างไลบรารีสำหรับการประเมิน: DeepEval, Relari-ai
เทคนิคการประเมินแบบ LLM-as-Judge
- ใช้ LLM เช่น GPT-4 เป็นตัวประเมิน โดยไม่ต้องมี Ground Truth
- ตัวอย่าง: เฟรมเวิร์ก G-eval, งานวิจัย Vicuna, QLoRA
- ข้อเสีย:
- ตัวชี้วัดบางอย่าง (เช่น Context Recall) วัดไม่ได้หากไม่มี Ground Truth
- ในด้านความแม่นยำและความละเอียด การประเมินโดยมนุษย์ยังเหนือกว่า
- บทสรุป: แนวทางที่เหมาะที่สุดคือ ใช้ LLM-as-Judge ควบคู่กับ Ground Truth
วิธีผสานการประเมินเข้ากับขั้นตอนการนำขึ้นใช้งานจริง
- ผสานระบบอัตโนมัติของการประเมินเข้ากับ deployment pipeline
- รันทดสอบอัตโนมัติก่อน commit โค้ดหรือก่อน deploy
- ตัวอย่าง: ใช้ Giskard สำหรับการทดสอบอัตโนมัติเพื่อตรวจจับความเป็นอันตรายและ hallucination
- ควรรวมการทดสอบสำหรับขั้นตอน preprocessing และการเก็บรวบรวมข้อมูลด้วย
การประเมินหลังนำขึ้นใช้งานจริงและ data flywheel
การมอนิเตอร์ระหว่างปฏิบัติการ
- ติดตามอินพุต/เอาต์พุตแบบเรียลไทม์
- จัดเซสชันประเมินร่วมกับผู้เชี่ยวชาญโดเมนเป็นประจำ
- มีช่องทางรับ feedback จากผู้ใช้
กลยุทธ์ data flywheel
- ใช้ข้อมูลและ feedback ที่เกิดขึ้นระหว่างการใช้งานจริงเพื่อสร้าง ลูปการปรับปรุงอย่างต่อเนื่อง
- ตัวอย่าง: วิเคราะห์แพตเทิร์นคำถามของผู้ใช้ → ปรับปรุงวิธีค้นคืนข้อมูล
- ปรับพรอมป์ต์ พารามิเตอร์ inference และวิธีค้นคืนข้อมูลตามเมตริก
- อาจจำเป็นต้องเปลี่ยนตัวชี้วัดตามพฤติกรรมผู้ใช้และสถานการณ์ความล้มเหลว
บทสรุป: กลยุทธ์ “Evals First” คือหัวใจของผลิตภัณฑ์ LLM ที่เชื่อถือได้
- ควรนำแนวคิดที่ให้การประเมินเป็นศูนย์กลางมาใช้ตั้งแต่ช่วงเริ่มต้นของการพัฒนาแอปพลิเคชัน LLM
- หัวใจสำคัญคือ กำหนดตัวชี้วัดและเกณฑ์ที่ถูกต้องตั้งแต่ต้น และใช้สิ่งเหล่านี้เป็น จุดอ้างอิงของการพัฒนาและการนำขึ้นใช้งานจริง
- ต้องกำหนดให้การประเมินเป็น กระบวนการพัฒนาหลัก ไม่ใช่งานที่ทำภายหลัง จึงจะสร้าง ระบบ AI ที่เชื่อถือได้และยึดผู้ใช้เป็นศูนย์กลาง ได้
1 ความคิดเห็น
จากประสบการณ์ของผมเอง รวมถึงจากกรณีอื่น ๆ อย่าง https://blog.lawrencejones.dev/ai-mvp/ ก็ดูเหมือนว่าโมเดลรุ่นใหม่ล่าสุดไม่ได้รับประกันว่าจะให้ผลลัพธ์ที่ดีกว่าเสมอไปนะครับ ทุกครั้งที่ปรับจูนโมเดลหรือพรอมป์ต์ ก็ต้องทำ evaluation ผ่านชุดข้อมูลอยู่ดี และถึงแม้ว่า llm จะช่วยสนับสนุนการตัดสินใจได้ แต่สุดท้ายมนุษย์ก็ยังต้องมานั่งสร้างชุดข้อมูล ground truth ให้โมเดล llm ด้วยมือทีละรายการอยู่ดี ซึ่งก็ค่อนข้างย้อนแย้งดีเหมือนกันครับ 555