บทที่ 4 จาก 5 · Fine-tune โมเดลภาษา — เมื่อไหร่ควรทำ ทำอย่างไร และรู้ได้อย่างไรว่าได้ผล
วัดผล fine-tune: ชุดทดสอบของเราเอง การจำข้อสอบ และการลืมของเดิม
ไม่มีชุดวัดผลก็ไม่รู้ว่า fine-tune ได้ผลไหม บทนี้ว่าด้วยการแยกชุดเทรนกับชุดทดสอบ อาการจำข้อสอบ การลืมความสามารถเดิม ชุดวัดผลภาษาไทยที่มีอยู่ และกับดักเฉพาะภาษาไทยอย่างการตอบปนภาษาอังกฤษ
OpenAI เขียนไว้ตรง ๆ ว่า ให้ลงทุน fine-tune หลังจากมีชุดวัดผลแล้วเท่านั้น เหตุผลง่ายมาก ถ้าไม่มีตัวเลขก่อนและหลัง ก็บอกไม่ได้ว่าที่เทรนมาดีขึ้น แย่ลง หรือเท่าเดิม
4.1 แยกชุดเทรนกับชุดทดสอบตั้งแต่แรก
OpenAI แนะนำให้ แบ่งข้อมูลเป็นชุดเทรนกับชุดทดสอบ ชุดเทรนใช้สอน ชุดทดสอบใช้วัด และห้ามให้โมเดลเห็นชุดทดสอบระหว่างเทรน
ข้อควรระวังที่มักพลาด
- ตัวอย่างที่เกือบซ้ำกัน ถ้าข้อความลูกค้าเดียวกันที่ต่างกันแค่คำลงท้ายอยู่ทั้งสองชุด คะแนนจะดูดีเกินจริง
- ชุดทดสอบต้องเหมือนงานจริง รวมกรณียาก ๆ และข้อความที่พิมพ์ผิดหรือปนภาษา ไม่ใช่เฉพาะตัวอย่างที่สวย
- วัดโมเดลฐานก่อน ด้วยชุดทดสอบเดียวกันและ prompt ที่ดีที่สุด เพื่อมีตัวเลขไว้เทียบ
4.2 จำข้อสอบแทนที่จะเรียน (overfitting)
OpenAI อธิบาย overfitting ว่าเป็นอาการที่โมเดลดีขึ้นช่วงแรก แต่แล้ว จำชุดข้อมูลแทนที่จะเรียนความรู้ที่นำไปใช้กับกรณีอื่นได้ สัญญาณที่ต้องดู
- คะแนนบนชุดเทรนดีขึ้นเรื่อย ๆ แต่คะแนนบนชุดทดสอบหยุดหรือแย่ลง
- คำตอบซ้ำซากขึ้น OpenAI แนะนำว่า ถ้าคำตอบหลากหลายน้อยกว่าที่คาด ให้ลดจำนวนรอบการเทรน (epoch) ลง 1 หรือ 2
4.3 ลืมของเดิม (catastrophic forgetting)
การเทรนงานใหม่อาจทำให้โมเดลทำงานเดิมได้แย่ลง งานวิจัยของ Luo และคณะพบว่า การลืมแบบนี้เกิดทั่วไปในโมเดลขนาด 1B ถึง 7B และในช่วงขนาดนั้น ยิ่งโมเดลใหญ่ยิ่งลืมรุนแรงขึ้น
ส่วนงานวิจัยที่เทียบ LoRA กับการเทรนเต็ม (บทที่ 3) พบว่า LoRA รักษาความสามารถนอกงานเป้าหมายได้ดีกว่า ตัวอย่างจริงจากการ์ดของ ThaiLLM-8B ซึ่งเทรนต่อจาก Qwen3-8B-Base ด้วยข้อมูลภาษาไทย คะแนนภาษาไทยดีขึ้นหลายชุด แต่คะแนนคณิตศาสตร์ในข้อสอบ M6 ลดจาก 0.4090 เหลือ 0.2727 ส่วน MMLU ภาษาอังกฤษลดเพียง 0.0126 การลืมจึงอาจเกิดเฉพาะบางด้าน และมองไม่เห็นถ้าดูแค่คะแนนเฉลี่ย
วิธีตรวจคือ มีชุดทดสอบสองชุด ชุดหนึ่งวัดงานที่สอน อีกชุดวัดความสามารถทั่วไปที่ยังต้องใช้ เช่น ตอบคำถามภาษาไทยทั่วไปได้ถูก หรือทำตามคำสั่งได้
4.4 ชุดวัดผลภาษาไทยที่มีอยู่
| ชุดวัดผล | วัดอะไร | ขนาด |
|---|---|---|
| ThaiExam | ข้อสอบปรนัยของไทย ได้แก่ ONET, IC, TGAT, TPAT-1, A-Level | 590 ข้อ |
| MT-Bench Thai | บทสนทนาหลายรอบ 9 หมวด รวมหมวดความรู้วัฒนธรรมไทย | 91 ข้อ |
| IFEval-TH | การทำตามคำสั่ง แปลด้วย GPT-4 แล้วคนตรวจแก้ | 215 ข้อ |
| OpenThaiEval | ข้อสอบไทย การอนุมานภาษา และความรู้ในภูมิภาค | ไม่ระบุในหน้าที่เราตรวจ ดูงานวิจัย Typhoon-S |
ชุดเหล่านี้วัดความสามารถทั่วไป ไม่ได้วัดงานของคุณ ใช้เป็นชุดตรวจการลืมตาม 4.3 ได้ แต่ชุดทดสอบหลักต้องสร้างจากงานจริงของคุณเอง
งานวิจัย QLoRA ยังเตือนว่า ชุดวัดผลแชทบอทในปัจจุบันเชื่อถือไม่ได้ สำหรับวัดระดับความสามารถของแชทบอทอย่างแม่นยำ คะแนนจากชุดวัดผลแชทบอทจึงควรใช้ประกอบ ไม่ใช่ตัดสิน
4.5 กับดักเฉพาะภาษาไทย
- ตอบปนภาษาอังกฤษ งานวิจัย Typhoon 2 พบว่าโมเดลที่เน้นภาษาอังกฤษหรืออังกฤษกับจีน มีแนวโน้มสูงที่จะสลับภาษากลางคำตอบเมื่อถูกสั่งให้ตอบเป็นภาษาไทย ชุดทดสอบควรตรวจว่าคำตอบเป็นภาษาไทยตลอด
- การนับคำต้องใช้ตัวตัดคำ ภาษาไทยไม่เว้นวรรคระหว่างคำ ตัวชี้วัดที่นับคำอย่าง ROUGE หรือคำสั่ง “ตอบไม่เกิน N คำ” ใน IFEval ต้องใช้ตัวตัดคำภาษาไทย เช่น PyThaiNLP ไม่อย่างนั้นตัวเลขจะผิด
- ชุดวัดผลที่แปลมามีสำนวนแปล ชุดวัดผลการทำตามคำสั่งและบทสนทนาของ SEA-LION ให้เจ้าของภาษาปรับเนื้อหาเอง เพื่อเลี่ยงภาษาแปลและการตัดบริบทวัฒนธรรมทิ้ง คำสั่งบางแบบในภาษาอังกฤษ เช่น เปลี่ยนตัวพิมพ์ใหญ่ ก็ไม่มีความหมายในอักษรไทย
4.6 ตัวอย่างสมมติ: คะแนนดี แต่ใช้ไม่ได้
ร้านในบทก่อน ๆ เทรนโมเดลจัดหมวด แล้วได้คะแนนสูงมากบนชุดทดสอบ พอเปิดใช้จริงกลับจัดผิดบ่อย
พอย้อนดูจึงพบว่าชุดทดสอบถูกสุ่มจากข้อมูลช่วงเดียวกับชุดเทรน ข้อความลูกค้าคนเดิมที่ทักหลายครั้งด้วยถ้อยคำคล้ายกันจึงอยู่ทั้งสองชุด โมเดลแค่จำได้ วิธีแก้คือแยกชุดทดสอบตามช่วงเวลาหรือตามลูกค้า ให้ข้อความในชุดทดสอบเป็นของที่โมเดลไม่เคยเห็นจริง ๆ
4.7 ลงมือหลังอ่านบทนี้
- แยกชุดทดสอบจากชุดเทรน ตัดตัวอย่างที่เกือบซ้ำกันออก และถ้าข้อมูลมาจากคนเดิมหลายครั้ง ให้แยกตามคนหรือตามช่วงเวลา
- วัดโมเดลฐานกับ prompt ที่ดีที่สุดก่อน จดคะแนนไว้เป็นเส้นฐาน
- เพิ่มชุดทดสอบที่สอง สำหรับความสามารถทั่วไปที่ต้องไม่หายไป
- ตรวจว่าคำตอบเป็นภาษาไทยตลอด และใช้ตัวตัดคำภาษาไทยกับทุกตัวชี้วัดที่นับคำ
บทสุดท้ายว่าด้วยการนำโมเดลไปใช้งานจริง
แหล่งอ้างอิง
- OpenAI — Supervised fine-tuning
- OpenAI — Fine-tuning best practices
- An Empirical Study of Catastrophic Forgetting in LLMs during Continual Fine-tuning (arXiv 2308.08747)
- LoRA Learns Less and Forgets Less (arXiv 2405.09673)
- QLoRA (arXiv 2305.14314)
- ThaiLLM-8B model card
- ThaiExam · MT-Bench Thai · IFEval-TH
- Typhoon 2 (arXiv 2412.13702) · Typhoon-S (arXiv 2601.18129)
- AI Singapore Nemotron-SEA-LION-v4.8 (SEA-HELM)
- SEA-IFEval / SEA-MTBench paper (arXiv 2502.14301)