Knowledge & RAG — ให้โมเดลใช้ความรู้ภายนอก

คู่ตรงข้ามของ Post-Training: แทนที่จะฝังความรู้ในน้ำหนัก (ต้องเทรน) คอร์สนี้สอนให้ความรู้ตอนรัน — RAG เต็มระบบ (chunking, embeddings ที่เข้าใจไทย, vector search, rerank) ไปจนถึง LLM-Wiki ที่ความรู้ทบต้น

เหมาะกับ: องค์กรที่อยากให้ AI ตอบจากเอกสารภายในโดยข้อมูลไม่ออกนอกเครื่อง

  • Dark knowledge — ข้อมูลที่ซ่อนอยู่ในช่องความน่าจะเป็นเล็ก ๆ ของ teacher (เช่น “เลข 7 คล้ายเลข 1”) ซึ่ง hard label แบบ one-hot ทิ้งไปหมด เทคนิคนี้มาจาก paper Distilling the Knowledge in a Neural Network (Hinton, Vinyals, Dean — Google, 2015)
  • Teacher vs Student — teacher คือโมเดลใหญ่ที่เทรนเสร็จแล้วและถูกแช่แข็ง (ไม่ update น้ำหนัก) ทำหน้าที่แค่ “ออกความเห็น”; student คือตัวเล็กที่ถูกเทรนจริง โดยเป้าหมายคือ “ตอบให้เหมือนครู” ไม่ใช่แค่ตอบให้ถูก
  • Temperature (T) — ปุ่มปรับความนุ่มของ softmax: T=1 คือมาตรฐาน (แหลม/มั่นใจเกิน), T>1 ทำให้ distribution แบนลงจน dark knowledge โผล่, T สูงมากเข้าใกล้ uniform ระหว่างเทรน teacher กับ student ต้องใช้ T เดียวกัน แต่ตอนใช้งานจริงต้องกลับมา T=1
  • Soft label — ผลลัพธ์ softmax ที่อุณหภูมิสูงของ teacher เป็น “แผนที่คำตอบ” ทั้งเส้นที่ student ต้องเรียนรู้
  • KD loss — loss ผสมสองตัว: α × soft loss + (1−α) × hard loss (soft loss วัดด้วย KL divergence ส่งต่อความรู้ครู; hard loss ใช้ cross-entropy ยึด student ให้ติดความจริง)
  • ประเภท distillation 4 แบบ — response (logit), feature (hidden), sequence, และ CoT — เลือกตามสิทธิ์การมองเห็น teacher: white-box(เห็นน้ำหนัก/logits/hidden) ทำได้ทุกแบบ; black-box (เห็นแค่ text) ทำได้แค่ sequence/CoT
  • กับดักหลัก — teacher bias (อคติครูถ่ายลงมา), capacity ceiling (student เล็กเกินรับไม่หมด), forgetting (ลืมความสามารถเดิม), และ exposure bias (ฝึกกับ sequence ครูแต่สอบด้วยการสร้างเอง) — ต้องประเมินกับงานจริงเสมอ ไม่ใช่ดูแค่ training loss
  • ไฮเปอร์พารามิเตอร์ตั้งต้น — T ≈ 2–4 (student เล็กยิ่งต้องการ T สูง), α ≈ 0.7–0.9 (เน้น soft loss เป็นหลัก)
  • เมื่อไหร่ควร distill แทน SFT ตรง ๆ — เมื่อ “ข้อมูล label หายากแต่ teacher หาได้ง่าย”; distillation ช่วยเปลี่ยนข้อมูลหายากให้เป็นข้อมูลเยอะ แต่อย่าลืมตรวจลิขสิทธิ์/เงื่อนไขการใช้งาน output ของ teacher ก่อนลงมือ