SFT: สอนบทบาทผู้ช่วยด้วยตัวอย่าง
ขั้นถัดไปคือสอนให้เขียนต่อจากป้าย <|ผู้ช่วย|> แบบผู้ช่วยที่ดี
วิธีแรกคือ การฝึกด้วยตัวอย่างคำตอบ (supervised fine-tuning, SFT)ฝึกโมเดลต่อด้วยบทสนทนาตัวอย่างที่คัดมาแล้ว ใช้ loss เดาคำถัดไปแบบเดิม แต่มักคิดเฉพาะส่วนคำตอบของผู้ช่วยดูคำศัพท์ทั้งหมด ซึ่งฝึกต่อด้วยบทสนทนาตัวอย่าง (คำถาม + คำตอบที่ดี) ที่คนเขียนเอง หรือให้โมเดลร่างแล้วคัดกรอง (แบบหลังใช้กันมากขึ้นเรื่อยๆ)
ข้อมูลมีหลักพันถึงหลักล้านตัวอย่าง น้อยมากเมื่อเทียบกับ pre-training
เป้าหมายเหมือนบทที่ 4: เดา token ถัดไป วัดด้วย ค่าความผิดพลาด (loss, cross-entropy loss)ตัวเลขที่บอกว่าโมเดลเดาผิดมากแค่ไหน ยิ่งต่ำยิ่งดี การเดาคำถัดไปใช้แบบ cross-entropy คือ −ln ของโอกาสที่โมเดลให้คำเฉลย จึงสูงมากเมื่อโมเดลมั่นใจแต่ผิดดูคำศัพท์ทั้งหมด แบบ cross-entropy:
ต่างกันตรงที่มักนับ loss เฉพาะ token ของคำตอบ เพราะอยากให้เรียน "การตอบ" ไม่ใช่เลียนแบบผู้ใช้
ดูคำแรกหลังป้ายผู้ช่วย ก่อนและหลัง SFT:
ก่อน SFT อันดับหนึ่งคือ "ผู้ใช้:" แบบตัวอักษรธรรมดา 40.1% คือจะเขียนบทผู้ใช้ต่อเอง ส่วน "เรียน ทีมทุกคน" ได้แค่ 18.0%
หลัง SFT "เรียน ทีมทุกคน" ขึ้นเป็น 93.8%
loss ของคำเฉลย "เรียน ทีมทุกคน":
- ก่อน SFT:
- หลัง SFT:
loss ต่ำลง = โมเดลคาดหวังคำตอบแบบที่ตัวอย่างสอน
SFT สอน พฤติกรรม เป็นหลัก เช่น โครงคำตอบ บทบาท น้ำเสียง จังหวะหยุด และการเขียนคำขอใช้เครื่องมือ (tool calling บทที่ 7) ไม่ใช่ความรู้ก้อนใหม่
SFT ใช้สูตร loss เดิมจาก pre-training แค่เปลี่ยนข้อมูลเป็นบทสนทนาตัวอย่างที่คัดมา โมเดลจึงเรียน "บทบาทผู้ช่วย" มากกว่าความรู้ใหม่

มังคุด
ทำไมไม่เขียนบทสนทนาตัวอย่างให้ครบทุกคำถามไปเลยล่ะ?