การกลั่นกรองความรู้ (Knowledge Distillation)

การกลั่นกรองความรู้ (Knowledge Distillation)

เทคนิคการถ่ายโอนความรู้จากโมเดลครู (teacher model) ขนาดใหญ่ไปยังโมเดลนักเรียน (student model) ขนาดเล็ก เพื่อสร้างโมเดลที่มีน้ำหนักเบาและมีความแม่นยำสูง

Knowledge Distillation คืออะไร

Knowledge Distillation คือเทคนิคการฝึก "Student Model" ขนาดเล็กโดยใช้การกระจายผลลัพธ์ (output distribution) ของ "Teacher Model" ขนาดใหญ่เป็นข้อมูลการเรียนรู้ Student Model สามารถรักษาความแม่นยำในระดับสูงไว้ได้ในขณะที่ลดจำนวน Parameter ลงอย่างมาก ด้วยการเลียนแบบรูปแบบการอนุมานของ Teacher Model

เหตุใดจึงต้องการ Distillation

หากนำ LLM ที่มีพารามิเตอร์หลายหมื่นล้านตัวไปใช้งานในสภาพแวดล้อม Production โดยตรง ต้นทุน GPU และ Latency จะกลายเป็นข้อจำกัดทางธุรกิจ แต่หากฝึก Model ขนาดเล็กขึ้นมาใหม่ตั้งแต่ต้น ก็ยากที่จะได้ความแม่นยำเทียบเท่า Model ขนาดใหญ่ Distillation จึงเป็นแนวทางเชิงปฏิบัติที่ช่วยแก้ความขัดแย้งนี้

ตัวอย่างเช่น Phi Series ของ Microsoft ได้ทำการ Distill Model ขนาดเล็กด้วยข้อมูลสังเคราะห์ที่สร้างโดย Model ขนาดใหญ่ จนสามารถบรรลุประสิทธิภาพที่ใกล้เคียง Model ขนาดใหญ่ แม้จะเป็น SLM (Small Language Model) ก็ตาม

ความแตกต่างจาก Fine-tuning

Fine-tuning คือเทคนิคการปรับ Weight ของ Model ที่มีอยู่เดิมให้เชี่ยวชาญเฉพาะงาน โดยขนาดของ Model ไม่เปลี่ยนแปลง ในขณะที่ Distillation แตกต่างตรงที่ลดขนาดของ Model ลงโดยตรง ในทางปฏิบัติ Pipeline ที่ทำ Distillation เพื่อลดขนาดก่อน แล้วจึงปรับให้เข้ากับ Domain งานด้วยเทคนิคอย่าง LoRA ในภายหลัง กำลังกลายเป็นแนวทางมาตรฐานมากขึ้นเรื่อยๆ

ข้อจำกัดของ Distillation

งานที่ Teacher Model ทำได้ไม่ดี Student Model ก็จะทำได้ไม่ดีเช่นกัน นอกจากนี้ เนื่องจากต้องสร้าง Output จาก Teacher Model ในปริมาณมาก ต้นทุนการคำนวณของกระบวนการ Distillation เองจึงเป็นสิ่งที่ไม่ควรมองข้าม

คำศัพท์ที่เกี่ยวข้อง