Fine-tuning (deep learning) (TH)
การปรับแต่งละเอียด (Fine-tuning) หรือที่รู้จักในชื่อ การปรับจูนอย่างละเอียด — เป็นวิธีการของ transfer learning ใน Machine Learning ซึ่งพารามิเตอร์ของโมเดลที่ผ่านการฝึกมาก่อน (pre-trained model) จะถูกปรับให้เหมาะสมกับการแก้ปัญหาใหม่ที่มีความเฉพาะเจาะจง แทนที่จะฝึกโมเดลจากศูนย์ซึ่งต้องใช้ข้อมูลและทรัพยากรการประมวลผลจำนวนมหาศาล การปรับแต่งละเอียดช่วยให้สามารถนำความรู้ที่ถูกเข้ารหัสไว้ในน้ำหนักของโมเดลมาใช้ และ "ปรับจูน" ให้ตรงกับความต้องการเฉพาะได้
แนวทางนี้ได้กลายเป็นมาตรฐานโดยพฤตินัยในด้าน deep learning โดยเฉพาะอย่างยิ่งเมื่อทำงานกับโมเดลภาษาขนาดใหญ่ (LLM) และโมเดลด้าน computer vision
แนวคิด
กระบวนการปรับแต่งละเอียดสามารถแบ่งออกเป็นสองขั้นตอนหลัก:
1. การฝึกเบื้องต้น (Pre-training): โมเดล (เช่น BERT หรือ GPT) ได้รับการฝึกบนชุดข้อมูลขนาดใหญ่และทั่วไปมาก (เช่น ข้อมูลทั้งหมดจากอินเทอร์เน็ต) โดยใช้งานที่เรียนรู้ด้วยตัวเอง (self-supervised) เช่น การทำนายคำถัดไป ในขั้นตอนนี้โมเดลจะเรียนรู้รูปแบบทั่วไป ไวยากรณ์ ความหมาย และความรู้เกี่ยวกับโลก
2. การปรับแต่งละเอียด (Fine-tuning): โมเดลที่ผ่านการฝึกเบื้องต้นจะถูกนำมาเป็นฐาน และน้ำหนักของมันจะถูกปรับจูนบนชุดข้อมูลที่มีป้ายกำกับขนาดเล็กแต่เฉพาะเจาะจงสำหรับงานเป้าหมาย
แนวคิดหลักคือความรู้ที่ได้รับในขั้นตอนการฝึกเบื้องต้นนั้นมีความเป็นสากล และสามารถถ่ายโอนไปใช้แก้ปัญหาอื่น ๆ ที่เฉพาะเจาะจงกว่าได้อย่างประสบความสำเร็จ
กระบวนการปรับแต่งละเอียด
กระบวนการปรับแต่งละเอียดทั่วไปประกอบด้วยขั้นตอนดังต่อไปนี้:
1. การเลือกโมเดลที่ผ่านการฝึกมาก่อน: เลือกโมเดลที่มีความสามารถพื้นฐานเหมาะสมกับงานเป้าหมาย (เช่น BERT สำหรับงานทำความเข้าใจข้อความ หรือ GPT สำหรับการสร้างข้อความ)
2. การปรับโครงสร้าง: เพิ่มชั้น "head" ใหม่ที่เฉพาะเจาะจงสำหรับงานเป้าหมายเข้าไปในโมเดลที่ผ่านการฝึกมาก่อน ตัวอย่างเช่น:
- สำหรับ การจำแนกประเภทข้อความ จะเพิ่มชั้น fully connected ธรรมดาพร้อมฟังก์ชัน softmax
- สำหรับ การรู้จำหน่วยที่มีชื่อ (NER) จะเพิ่ม classifier ที่ output ของแต่ละ token
3. การฝึกบนชุดข้อมูลเป้าหมาย: โมเดลทั้งหมด (หรือบางส่วน) จะถูกฝึกบนชุดข้อมูลใหม่ที่มีป้ายกำกับ ในขั้นตอนนี้น้ำหนักของโมเดล รวมถึงน้ำหนักของชั้นที่ผ่านการฝึกมาก่อน จะถูกอัปเดตด้วย gradient descent เพื่อลด loss function บนงานใหม่ 4. การใช้อัตราการเรียนรู้ที่ต่ำกว่า: ในการปรับแต่งละเอียดมักจะใช้อัตราการเรียนรู้ที่ต่ำกว่าในการฝึกเบื้องต้นอย่างมีนัยสำคัญ เพื่อหลีกเลี่ยงการ "ทำลาย" ความรู้ที่มีประโยชน์ซึ่งถูกเข้ารหัสไว้ในน้ำหนักของโมเดล และเพียงแค่ปรับแต่งอย่างระมัดระวัง
ประเภทของการปรับแต่งละเอียด
การปรับแต่งละเอียดแบบเต็มรูปแบบ (Full Fine-tuning)
- หลักการ: พารามิเตอร์ทั้งหมดของโมเดลที่ผ่านการฝึกมาก่อนจะถูกอัปเดตพร้อมกับชั้น head ใหม่
- ข้อดี: มีศักยภาพในการให้ประสิทธิภาพที่ดีที่สุด เนื่องจากโมเดลทั้งหมดปรับตัวเข้ากับงานใหม่
- ข้อเสีย: ต้องใช้ทรัพยากรการประมวลผลและหน่วยความจำจำนวนมาก เนื่องจากต้องจัดเก็บและอัปเดต gradient สำหรับพารามิเตอร์ทั้งหมด มีความเสี่ยงของ การลืมอย่างหายนะ (catastrophic forgetting) ซึ่งโมเดล "ลืม" ความรู้ทั่วไปที่ได้รับจากการฝึกเบื้องต้น
การปรับแต่งละเอียดที่ประหยัดพารามิเตอร์ (Parameter-Efficient Fine-Tuning, PEFT)
นี่คือกลุ่มของวิธีการที่มุ่งลดต้นทุนการประมวลผลในการปรับแต่งละเอียด แนวคิดหลักคือการแช่แข็งพารามิเตอร์ส่วนใหญ่ของโมเดลที่ผ่านการฝึกมาก่อน และฝึกเฉพาะพารามิเตอร์ใหม่จำนวนน้อยหรือพารามิเตอร์ที่เลือกไว้
- ตัวอย่างวิธีการ PEFT:
- Adapters (อแด็ปเตอร์): มีการแทรกชั้น adapter เพิ่มเติมขนาดเล็กเข้าไปในโครงสร้าง Transformer และฝึกเฉพาะชั้นเหล่านั้น
- LoRA (Low-Rank Adaptation): แทนที่จะอัปเดต weight matrix แบบเต็ม LoRA จะฝึกการอัปเดตแบบ low-rank แทน ซึ่งช่วยลดจำนวนพารามิเตอร์ที่ต้องฝึกได้หลายพันเท่า
- Prompt Tuning: เพิ่ม vector "prompt" ที่ฝึกได้เข้ากับข้อมูล input ซึ่งจะถูกปรับแต่งสำหรับการแก้ปัญหา ในขณะที่โมเดลเองยังคงถูกแช่แข็งไว้
- ข้อดีของ PEFT:
- ประสิทธิภาพ: ลดความต้องการหน่วยความจำและการประมวลผลอย่างมีนัยสำคัญ
- ความเป็นโมดูล: ช่วยให้สามารถปรับโมเดลที่ผ่านการฝึกมาก่อนหนึ่งโมเดลให้เหมาะกับงานหลายประเภทได้ง่าย โดยจัดเก็บเฉพาะชุดน้ำหนักที่ปรับแต่งแล้วขนาดเล็กสำหรับแต่ละงาน
การปรับแต่งด้วยคำสั่ง (Instruction Tuning)
นี่คือประเภทเฉพาะของการปรับแต่งละเอียดที่มุ่งปรับปรุงความสามารถของ LLM ในการปฏิบัติตามคำสั่งในภาษาธรรมชาติ
- หลักการทำงาน: โมเดลจะถูกปรับแต่งละเอียดบนชุดข้อมูลที่ประกอบด้วยคู่ "คำสั่ง — output ที่ต้องการ"
- เป้าหมาย: ปรับปรุงความสามารถในการวางนัยทั่วไปของโมเดลต่องานใหม่ที่ไม่เคยเห็นมาก่อน ซึ่งสามารถอธิบายในรูปแบบของคำสั่งได้ โมเดลอย่าง InstructGPT และ FLAN-T5 เป็นตัวอย่างที่โดดเด่นของแนวทางนี้
วรรณกรรม
- Howard, J.; Ruder, S. (2018). Universal Language Model Fine-tuning for Text Classification. arXiv:1801.06146.
- Houlsby, N. et al. (2019). Parameter-Efficient Transfer Learning for NLP. arXiv:1902.00751.
- Pfeiffer, J. et al. (2020). AdapterFusion: Non-Destructive Task Composition for Transfer Learning. arXiv:2005.00247.
- Hu, E. J. et al. (2021). LoRA: Low-Rank Adaptation of Large Language Models. arXiv:2106.09685.
- Lester, B.; Al-Rfou, R.; Constant, N. (2021). The Power of Scale for Parameter-Efficient Prompt Tuning. arXiv:2104.08691.
- Ben Zaken, A.; Goldberg, Y.; Ravfogel, S. (2022). BitFit: Simple Parameter-Efficient Fine-Tuning for Transformer-based Masked Language-Models. ACL 2022.
- Ouyang, L. et al. (2022). Training Language Models to Follow Instructions with Human Feedback. arXiv:2203.02155.
- Han, Z. et al. (2024). Parameter-Efficient Fine-Tuning for Large Models: A Comprehensive Survey. arXiv:2403.14608.
- Bian, J. et al. (2025). A Survey on Parameter-Efficient Fine-Tuning for Foundation Models in Federated Learning. arXiv:2504.21099.
- Li, X. et al. (2025). Revisiting Fine-Tuning: A Survey of Parameter-Efficient Techniques and Future Directions. Preprints.org.
ดูเพิ่มเติม
- โมเดลภาษาขนาดใหญ่
- BERT
- GPT