เกินกว่า LoRA: เทคนิค Fine-tuning ที่ได้รับความนิยมที่สุด มีข้อดีกว่าเสมอไปจริงหรือ?
การปรับแต่งโมเดล AI ให้เข้ากับงานเฉพาะทางเป็นสิ่งสำคัญ แต่การทำเช่นนั้นมักต้องใช้ทรัพยากรจำนวนมาก เทคนิค Parameter-Efficient Fine-Tuning (PEFT) จึงเข้ามามีบทบาทในการลดข้อจำกัดนี้ ในบรรดาเทคนิค PEFT ทั้งหมด LoRA กลายเป็นชื่อที่คุ้นหูและถูกเลือกใช้มากที่สุด แต่คำถามที่น่าสนใจคือ LoRA คือตัวเลือกที่ดีที่สุดจริงหรือ? บทความนี้จะพาคุณไปสำรวจโลกของ PEFT ที่กว้างกว่า LoRA เพื่อค้นหาเทคนิคที่เหมาะสมที่สุดสำหรับคุณ
PEFT คืออะไร และทำไมคุณถึงต้องการมัน?
โมเดล AI แบบ Open Source มีให้เลือกมากมาย แต่บ่อยครั้งที่ประสิทธิภาพยังไม่ตรงกับความต้องการใช้งานเฉพาะทางของคุณ การปรับแต่ง (Fine-tuning) โมเดลที่มีอยู่จึงเป็นทางเลือกที่ดีกว่าการสร้างโมเดลใหม่ตั้งแต่ต้น อย่างไรก็ตาม การ Fine-tuning แบบดั้งเดิมนั้น กินทรัพยากรสูงมาก โดยเฉพาะหน่วยความจำ (VRAM)
PEFT จึงถูกพัฒนาขึ้นเพื่อแก้ไขปัญหานี้ โดยมีเป้าหมายเพื่อ ลดความต้องการหน่วยความจำลงอย่างมาก ทำให้สามารถ Fine-tune โมเดลได้แม้จะมีทรัพยากรจำกัด หรือแม้แต่ Fine-tune โมเดลที่ถูก Quantized แล้วก็ตาม
ประโยชน์ของ PEFT ไม่ได้มีเพียงแค่การประหยัดหน่วยความจำเท่านั้น แต่ยังรวมถึง:
- ขนาด Checkpoint เล็ก: ทำให้จัดเก็บและแชร์ได้ง่าย
- ลดปัญหา Catastrophic Forgetting: ช่วยให้โมเดลไม่ลืมความรู้เดิมที่เคยเรียนรู้มา
- รองรับการให้บริการหลายโมเดล: สามารถใช้โมเดลพื้นฐานเดียวกันเพื่อให้บริการ Fine-tune ได้หลายแบบ
ที่ Hugging Face เราได้พัฒนา PEFT library ซึ่งเป็นไลบรารีที่รวมเทคนิค PEFT หลากหลายไว้ภายใต้ API เดียวกัน และทำงานร่วมกับ Ecosystem อื่นๆ ได้อย่างราบรื่น เช่น Transformers และ Diffusers ทำให้การเข้าถึง PEFT ง่ายขึ้นสำหรับทุกคน
LoRA: ราชาแห่งเทคนิค Fine-tuning 👑
หนึ่งในเทคนิค PEFT ที่ได้รับความนิยมอย่างสูงคือ Low Rank Adaptation (LoRA) ซึ่งทำงานโดยการเพิ่มพารามิเตอร์จำนวนเล็กน้อยเข้าไปในโมเดลพื้นฐาน โดยที่น้ำหนัก (weights) ของโมเดลเดิมจะถูก Freeze ไว้ และจะฝึกฝนเฉพาะพารามิเตอร์ที่เพิ่มเข้ามาใหม่เท่านั้น
จากสถิติและการสำรวจต่างๆ พบว่า LoRA เป็นเทคนิค PEFT ที่ถูกใช้งานมากที่สุดอย่างท่วมท้น:
- Hugging Face Hub: เกือบ 98.4% ของ Model Cards ที่ระบุเทคนิค PEFT เพียงเทคนิคเดียว เป็น LoRA
- การสร้างภาพ (Image Generation): ในบรรดา Checkpoints PEFT กว่า 10,000 รายการ LoRA คิดเป็น 95.0%
- GitHub: การค้นหาส่วนโค้ดที่เกี่ยวข้องกับ PEFT พบว่า 71.3% เป็น LoRA
ความนิยมที่สูงลิ่วนี้ อาจเป็นเพราะ LoRA ทำงานได้ดีที่สุดสำหรับทุกคนจริง ๆ หรืออาจเป็นเพราะ LoRA เป็นหนึ่งในเทคนิค PEFT แรกๆ ที่ได้รับความนิยม ทำให้มี การสนับสนุนที่ดี มีบทเรียนและตัวอย่างมากมาย จนกลายเป็นที่แพร่หลาย
แต่สิ่งนี้ทำให้เกิดคำถามสำคัญ: เรากำลังพลาดประสิทธิภาพที่ดียิ่งกว่าไปหรือไม่ ด้วยการยึดติดกับ LoRA เพียงอย่างเดียว?
ความท้าทายในการเลือกเทคนิค PEFT จากผลการวิจัย
มีงานวิจัยมากมายที่นำเสนอเทคนิค PEFT ใหม่ๆ ที่อ้างว่าเหนือกว่า LoRA แต่การตัดสินใจเลือกจากงานวิจัยเหล่านี้ไม่ใช่เรื่องง่าย:
- แรงกดดันในการนำเสนอผลลัพธ์: นักวิจัยมักมีเป้าหมายที่จะทำให้เทคนิคของตนเองดูดีกว่าเทคนิคที่มีอยู่ ซึ่งอาจนำไปสู่การปรับแต่งพารามิเตอร์ของเทคนิคที่นำเสนออย่างละเอียด แต่กลับใช้เวลากับเทคนิคอื่นน้อยกว่า
- ความหลากหลายของ Benchmark: แต่ละงานวิจัยใช้ชุดเทคนิคและชุดข้อมูล Benchmark ที่แตกต่างกัน ทำให้ผลลัพธ์ยากต่อการเปรียบเทียบโดยตรง
- การทำซ้ำผลลัพธ์ที่ยาก: โค้ดที่ใช้ในการวิจัยมักไม่เปิดเผยหรือใช้งานยาก ทำให้การตรวจสอบความถูกต้องของผลลัพธ์ทำได้ลำบาก
ด้วยเหตุนี้ การเลือกเทคนิค PEFT ที่ดีที่สุดจากผลการวิจัยเพียงอย่างเดียวจึงเป็นเรื่องที่ซับซ้อน และบ่อยครั้งที่ทำให้ผู้ใช้เลือกใช้ LoRA เป็นค่าเริ่มต้นไปโดยปริยาย
แนวทางการประเมินผล Benchmark ใน PEFT Library
ที่ Hugging Face เราตระหนักถึงความสำคัญของการช่วยให้ผู้ใช้ตัดสินใจเลือกเทคนิค PEFT ได้อย่างมีข้อมูล จึงได้พัฒนา Benchmark ที่ครอบคลุมมากขึ้น:
- LLM Math Dataset Benchmark: ทดสอบการ Fine-tune LLM เพื่อแก้โจทย์คณิตศาสตร์ โดยวัดผลจากความสามารถในการให้เหตุผลแบบ Chain-of-Thought และการปรับรูปแบบผลลัพธ์
- Image Generation Benchmark: ทดสอบการ Fine-tune โมเดลเพื่อเรียนรู้คอนเซ็ปต์ใหม่ (เช่น ตุ๊กตาแมว) และนำไปสร้างในบริบทใหม่ โดยไม่ลืมคอนเซ็ปต์เดิม
หัวใจสำคัญของ Benchmark ของเราคือ:
- เงื่อนไขการประเมินที่เท่าเทียม: ใช้โมเดลพื้นฐาน, ชุดข้อมูล, โค้ดการฝึกและประเมิน, และฮาร์ดแวร์ชุดเดียวกันสำหรับทุกเทคนิค PEFT
- การวัดผลที่หลากหลาย: นอกจากประสิทธิภาพการทดสอบ (Test Performance) แล้ว ยังวัดผลอื่นๆ ที่ผู้ใช้ให้ความสำคัญ เช่น การใช้ VRAM, เวลาในการประมวลผล (Runtime), และขนาด Checkpoint
- ผลลัพธ์ที่เข้าถึงได้: การทดลองถูกออกแบบให้สามารถรันบนฮาร์ดแวร์ทั่วไป และการเพิ่มเทคนิคใหม่ๆ ทำได้ง่าย
เราเชื่อว่าการเปรียบเทียบเทคนิค PEFT อย่างเป็นธรรมบนพื้นฐานเดียวกัน โดยไม่มีอคติ จะช่วยให้เห็นภาพที่ชัดเจนว่าเทคนิคใดทำงานได้ดีที่สุดในแต่ละมิติ
ผลการทดสอบ: LoRA ทำงานได้ดี แต่ไม่ใช่ตัวเลือกที่ดีที่สุดเสมอไป
จากการทดสอบของเรา พบว่า LoRA ทำงานได้ดีจริง แต่ก็มีเทคนิค PEFT อื่นๆ ที่สามารถ เอาชนะ LoRA ได้ในบางมิติ และควรค่าแก่การพิจารณา
การวิเคราะห์ตาม Pareto Frontier
เราใช้แนวคิด Pareto Frontier เพื่อทำความเข้าใจ Trade-off ระหว่าง ประสิทธิภาพการทดสอบ (Test Accuracy) กับ การใช้หน่วยความจำ (Memory Usage) เทคนิคที่อยู่บน Pareto Frontier หมายความว่า หากต้องการประสิทธิภาพที่ดีขึ้น ก็ต้องแลกมาด้วยการใช้หน่วยความจำที่มากขึ้น หรือหากต้องการประหยัดหน่วยความจำ ก็ต้องยอมรับประสิทธิภาพที่ลดลง
- LLM Math Dataset: LoRA อยู่บน Pareto Frontier โดยให้ Test Accuracy 53.2% และใช้ VRAM สูงสุด 22.6 GB แต่ก็มีเทคนิคอื่นที่น่าสนใจ เช่น BEFT ที่ใช้ VRAM น้อยกว่า (20.2 GB) แต่ได้ Accuracy 32.9% หรือ Lily ที่ให้ Accuracy สูงกว่า (54.9%) แต่ก็แลกมาด้วย VRAM ที่มากขึ้น (25.6 GB) ดังนั้น LoRA อาจไม่ใช่ Trade-off ที่ดีที่สุดสำหรับทุกคน
- LoRA Variants: การทดสอบยังพบว่า LoRA แบบปรับปรุง เช่น LoRA with rank stabilized initialization หรือ LoRA-FA (ใช้ Optimizer ที่พิเศษ) สามารถให้ผลลัพธ์ที่ดีกว่า LoRA แบบปกติอย่างเห็นได้ชัด (LoRA ปกติได้ Accuracy 48.1% ที่ 22.5 GB)
- Image Generation Benchmark: สำหรับงานสร้างภาพ LoRA อยู่ต่ำกว่า Pareto Frontier โดยมีคะแนน Dino Similarity 0.697 และใช้ VRAM 9.97 GB ในขณะที่เทคนิค OFT ให้คะแนน Similarity สูงกว่า (0.708) และใช้ VRAM น้อยกว่า (9.01 GB) OFT จึงเป็นการปรับปรุงที่ดีกว่า LoRA อย่างชัดเจน
ข้อควรจำ: นอกจากตัวชี้วัดหลักแล้ว ควรพิจารณา Runtime Performance หรือ ขนาด Checkpoint ด้วย รวมถึง การดูตัวอย่างภาพที่สร้างขึ้นจริง เพื่อประเมินความสามารถของโมเดล
ข้อโต้แย้ง: Benchmark อาจเอนเอียงหรือไม่ครอบคลุม?
เป็นไปได้ว่า Benchmark ที่เราทำอาจมีข้อจำกัดบางประการ:
- การเลือก Hyper-parameter: การหาค่า Hyper-parameter ที่เหมาะสมที่สุดสำหรับทุกเทคนิค PEFT เป็นเรื่องที่ท้าทาย แต่เราเปิดโอกาสให้ทุกคนสามารถ ร่วมส่งการทดลองของตนเอง เข้ามาใน PEFT library ได้ หากเชื่อว่าเทคนิคใดสามารถปรับปรุงได้ด้วย Hyper-parameter ที่แตกต่างกัน
- การสะท้อนความสามารถทั้งหมด: Benchmark อาจไม่สามารถวัดผลได้ทุกมิติ เช่น เทคนิค Cartridges ถูกออกแบบมาเพื่อบีบอัด Prompt ยาวๆ ซึ่งไม่ได้ถูกวัดใน Benchmark นี้
- ปัจจัยอื่นๆ ในการเลือก:
- บางเทคนิค PEFT อาจ รองรับเฉพาะ Layer Type บางประเภท เท่านั้น
- ไม่ใช่ทุกเทคนิค PEFT ที่ รองรับโมเดลที่ถูก Quantized
- บางเทคนิค PEFT อนุญาตให้ Merge Adapter เข้ากับโมเดลหลัก เพื่อลด Overhead ในการรัน แต่บางเทคนิคไม่สามารถทำได้
Benchmark ช่วยชี้แนะแนวทางได้ แต่ก็ยัง ไม่สามารถทดแทนการศึกษาและทดลองด้วยตนเองได้ทั้งหมด
ข้อโต้แย้ง: แต่ llama.cpp/vLLM/... รองรับแค่ LoRA
เป็นความจริงที่เครื่องมือบางอย่าง เช่น llama.cpp หรือ vLLM อาจยังรองรับ LoRA เป็นหลัก ซึ่งอาจเป็นข้อจำกัดในการใช้งานเทคนิค PEFT อื่นๆ อย่างไรก็ตาม การพัฒนาใน Ecosystem ของ AI นั้นรวดเร็วมาก และเราคาดหวังว่าจะมีการรองรับเทคนิค PEFT ที่หลากหลายมากขึ้นในอนาคต
สรุป: มองให้ไกลกว่า LoRA เพื่อประสิทธิภาพสูงสุด
LoRA เป็นเทคนิค PEFT ที่ยอดเยี่ยมและได้รับความนิยมด้วยเหตุผลที่ดี แต่ก็ไม่ใช่คำตอบสุดท้ายสำหรับทุกสถานการณ์ การสำรวจเทคนิค PEFT อื่นๆ ที่มีอยู่มากมาย เช่น OFT, BEFT, Lily, หรือ LoRA Variants ต่างๆ อาจช่วยให้คุณค้นพบ Trade-off ที่เหมาะสมที่สุด กับความต้องการและทรัพยากรของคุณ
การทำความเข้าใจข้อดีข้อเสียของแต่ละเทคนิค และการทดลองด้วยตนเอง โดยใช้ประโยชน์จากเครื่องมืออย่าง PEFT library จะช่วยให้คุณสามารถ ปลดล็อกศักยภาพสูงสุด ของการ Fine-tuning โมเดล AI ได้อย่างแท้จริง
#PEFT #LoRA #FineTuning #AI #MachineLearning
ขอบคุณ แหล่งข้อมูล
https://huggingface.co/blog/peft-beyond-lora