PEFT (Parameter-Efficient Fine-Tuning) (TH)

From Systems analysis Wiki
Jump to navigation Jump to search

การ fine-tuning แบบประหยัดพารามิเตอร์ (อังกฤษ: Parameter-Efficient Fine-Tuning, PEFT) — คือกลุ่มวิธีการสำหรับการปรับโมเดลขนาดใหญ่ที่ผ่านการเทรนมาก่อน เช่น โมเดลภาษาขนาดใหญ่ (LLM) ให้เข้ากับงานเฉพาะทางด้วยต้นทุนด้านการคำนวณและทรัพยากรที่น้อยที่สุด ต่างจาก full fine-tuning แบบดั้งเดิมที่ต้องอัปเดตพารามิเตอร์ทั้งหมดของโมเดล วิธีการ PEFT มุ่งเน้นการปรับเปลี่ยนเฉพาะพารามิเตอร์ส่วนเล็กน้อย (น้อยกว่า 1–5% ของจำนวนทั้งหมด) โดยคงส่วนหลักของโมเดลไว้ไม่เปลี่ยนแปลง («แช่แข็ง»)[1]

แนวทางนี้ช่วยลดความต้องการด้านหน่วยความจำ พื้นที่จัดเก็บข้อมูล และเวลาในการเทรนได้อย่างมีนัยสำคัญ ทำให้กระบวนการปรับโมเดลพื้นฐานที่ทรงพลังนั้นเข้าถึงได้ง่ายขึ้นและมีความทนทานต่อปัญหา catastrophic forgetting[2]

ปัญหาของ full fine-tuning

การทำ full fine-tuning แบบดั้งเดิมซึ่งอัปเดตพารามิเตอร์ทั้งหมดของโมเดล เผชิญกับปัญหาสำคัญหลายประการที่เป็นแรงผลักดันให้เกิดการพัฒนา PEFT:

  • ต้นทุนการคำนวณสูง: การอัปเดตพารามิเตอร์หลายร้อยพันล้านตัวต้องใช้ทรัพยากรการคำนวณมหาศาล (GPU/TPU ประสิทธิภาพสูง) และหน่วยความจำกราฟิก (VRAM) จำนวนมาก ทำให้กระบวนการนี้มีค่าใช้จ่ายสูงและนักวิจัยจำนวนมากไม่สามารถเข้าถึงได้
  • ความไม่มีประสิทธิภาพด้านการจัดเก็บ: สำหรับงานใหม่แต่ละงาน จำเป็นต้องจัดเก็บสำเนาโมเดลขนาดหลายกิกะไบต์อย่างครบถ้วน ส่งผลให้ความต้องการพื้นที่ดิสก์เพิ่มขึ้นแบบทวีคูณ
  • Catastrophic Forgetting: โมเดลที่ปรับตัวเข้ากับข้อมูลใหม่จะ "ลืม" ความรู้ทั่วไปที่ได้รับในขั้นตอนการเทรนล่วงหน้า ส่งผลให้ประสิทธิภาพในงานอื่นลดลง
  • ความเสี่ยงต่อการ Overfitting: บนชุดข้อมูลขนาดเล็กสำหรับการ fine-tuning โมเดลที่มีพารามิเตอร์หลายพันล้านตัวมีแนวโน้มที่จะ "จำ" ตัวอย่างการเทรนแทนที่จะเรียนรู้รูปแบบที่สามารถนำไปใช้งานได้ทั่วไป[2]

อนุกรมวิธานของวิธีการ PEFT

วิธีการ PEFT สามารถจำแนกตามวิธีที่แต่ละวิธีปรับเปลี่ยนพารามิเตอร์ของโมเดล มีสามหมวดหมู่หลัก ได้แก่ additive, selective และ reparameterization[3]

วิธีการแบบ Additive

วิธีการเหล่านี้จะแช่แข็งน้ำหนักเดิมทั้งหมดของโมเดลและเพิ่มโมดูลขนาดเล็กที่สามารถเทรนได้ใหม่เข้าไป

  • Adapters: วิธีการ additive ที่เกิดขึ้นเร็วที่สุด โมดูล Neural Network ขนาดเล็กที่มีสถาปัตยกรรมแบบ "คอขวด" ถูกแทรกไว้ระหว่างชั้นต่าง ๆ ของ transformer โดยจะเทรนเฉพาะน้ำหนักของ adapter เหล่านี้[4]
  • วิธีการที่ใช้ Soft Prompts: แทนที่จะเปลี่ยนน้ำหนักของโมเดล วิธีการเหล่านี้เพิ่ม vector ที่สามารถเทรนได้ («virtual token») ลงในข้อมูลนำเข้า เพื่อชี้นำพฤติกรรมของโมเดล รูปแบบหลัก ได้แก่:
    • Prompt Tuning: เพิ่ม vector ที่สามารถเทรนได้เฉพาะในส่วน embedding ของข้อมูลนำเข้า
    • Prefix-Tuning: เพิ่ม prefix vector ที่สามารถเทรนได้ไปยัง hidden state ในทุกชั้นของกลไก attention ซึ่งให้การควบคุมที่ละเอียดกว่า[5]
    • P-Tuning v2: การขยายแนวคิดของ Prefix-Tuning ที่นำ prompt ที่สามารถเทรนได้มาใช้ในทุกชั้นของโมเดล บรรลุประสิทธิภาพที่เทียบได้กับ full fine-tuning[6]

วิธีการแบบ Selective

วิธีการเหล่านี้ไม่เพิ่มพารามิเตอร์ใหม่ แต่เลือกและทำการ fine-tuning เฉพาะกลุ่มย่อยเล็ก ๆ ของพารามิเตอร์ที่มีอยู่แล้ว

  • BitFit: วิธีการที่ประหยัดอย่างยิ่ง ซึ่งทำการ fine-tuning เฉพาะ bias term และพารามิเตอร์ของชั้น normalization โดยอัปเดตน้อยกว่า 0.1% ของจำนวนพารามิเตอร์ทั้งหมด
  • Diff Pruning: ใช้ mask ที่สามารถเทรนได้เพื่อกำหนดแบบ dynamic ว่าน้ำหนักใดควรได้รับการอัปเดตในระหว่างการเทรน[3]

วิธีการแบบ Reparameterization

หมวดหมู่นี้ตั้งอยู่บนสมมติฐานที่ว่าการเปลี่ยนแปลงน้ำหนักสำหรับการปรับโมเดลมี "rank ภายใน" ต่ำ แทนที่จะอัปเดต matrix น้ำหนักขนาดเต็ม วิธีการเหล่านี้จะอัปเดตการแทนค่า low-rank ของ matrix เหล่านั้น

  • LoRA (Low-Rank Adaptation): วิธีการ PEFT ที่ได้รับความนิยมมากที่สุดในปัจจุบัน วิธีนี้ตั้งสมมติฐานว่าการอัปเดต matrix น้ำหนัก `ΔW` สามารถประมาณได้ด้วยผลคูณของ matrix low-rank สองตัว: `ΔW = BA` ในระหว่าง fine-tuning จะแช่แข็ง matrix เดิม `W` และเทรนเฉพาะ `A` และ `B`[7]
  • QLoRA: รวม LoRA เข้ากับเทคนิค quantization เพื่อลดความต้องการหน่วยความจำให้ยิ่งน้อยลงไปอีก ช่วยให้สามารถทำ fine-tuning โมเดลที่มี 65 พันล้านพารามิเตอร์บน GPU สำหรับผู้บริโภคทั่วไปเพียงตัวเดียว[8]

การเปรียบเทียบประสิทธิภาพและทรัพยากร

วิธีการ PEFT ช่วยให้บรรลุประสิทธิภาพที่เทียบได้กับ full fine-tuning โดยลดต้นทุนลงอย่างมีนัยสำคัญ

ประสิทธิภาพและความคุ้มค่าเชิงเปรียบเทียบของวิธีการ PEFT
โมเดล วิธีการ พารามิเตอร์ที่เทรนได้ (%) ผลลัพธ์บน benchmark (Avg. Accuracy) แหล่งอ้างอิง
BERT-Large Full fine-tuning 100% 80.4 (GLUE) [4]
BERT-Large Adapters 3.6% 80.0 (GLUE) [4]
LLaMA-7B LoRA 0.83% 74.7% [9]
LLaMA-7B DoRA (รูปแบบหนึ่งของ LoRA) 0.84% 78.1% [9]

ข้อดีหลักของ PEFT ในการประหยัดทรัพยากร:

  • หน่วยความจำ GPU (VRAM): สำหรับโมเดล LLaMA 65B การทำ full fine-tuning ต้องการ VRAM มากกว่า 780 GB ในทางทฤษฎี ในขณะที่ QLoRA ช่วยให้สามารถทำ fine-tuning ได้บน GPU ที่มี VRAM น้อยกว่า 48 GB[8]
  • ขนาดพื้นที่จัดเก็บ: checkpoint ที่บันทึกหลังจาก PEFT มีขนาดเป็นเมกะไบต์ ไม่ใช่กิกะไบต์ ทำให้สามารถจัดเก็บ "adapter" หลายร้อยตัวสำหรับงานต่าง ๆ ในพื้นที่ที่โมเดลที่ผ่าน full fine-tuning เพียงตัวเดียวใช้

ขอบเขตการประยุกต์ใช้

แม้เดิมจะพัฒนาขึ้นสำหรับ NLP แต่วิธีการ PEFT ได้รับการนำไปใช้อย่างประสบความสำเร็จในงานหลากหลายประเภท:

  • Computer Vision (CV) และ Multimodal Model (VLM): การปรับโมเดลอย่าง Vision Transformer (ViT) และ Segment Anything Model (SAM) สำหรับงาน image segmentation รวมถึงในสาขาชีวการแพทย์
  • การสร้างและวิเคราะห์โค้ด: การปรับแต่ง LLM ให้เข้ากับลักษณะเฉพาะของโปรเจกต์ซอฟต์แวร์ API ภายใน หรือ codebase เฉพาะทาง
  • Generative Model: การ "ปรับสไตล์" โมเดลสร้างภาพ เช่น Stable Diffusion ด้วย LoRA adapter (เทคนิค Dreambooth)
  • การสังเคราะห์เสียงพูด: การปรับโมเดลสำหรับการสร้างเสียงพูดที่มีเสียง 억양 หรืออารมณ์เฉพาะ

ลิงก์

  • คลังโค้ดไลบรารี PEFT บน GitHub
  • เอกสารประกอบอย่างเป็นทางการของไลบรารี PEFT จาก Hugging Face

บรรณานุกรม

  • Hu, E.J. et al. (2021). LoRA: Low-Rank Adaptation of Large Language Models. arXiv:2106.09685.
  • Dettmers, T. et al. (2023). QLoRA: Efficient Finetuning of Quantized LLMs. arXiv:2305.14314.
  • Houlsby, N. et al. (2019). Parameter-Efficient Transfer Learning for NLP. ICML 2019.
  • Li, X.L.; Liang, P. (2021). Prefix-Tuning: Optimizing Continuous Prompts for Generation. arXiv:2101.00190.
  • Liu, X. et al. (2022). P-Tuning v2: Prompt Tuning Can Be Comparable to Fine-tuning Universally Across Scales and Tasks. arXiv:2110.07602.
  • Ben Zaken, E.; Ravfogel, S.; Goldberg, Y. (2021). BitFit: Simple Parameter-Efficient Fine-Tuning for Transformer-Based Masked Language Models. arXiv:2106.10199.
  • Guo, D.; Rush, A.M.; Kim, Y. (2020). Parameter-Efficient Transfer Learning with Diff Pruning. arXiv:2012.07463.
  • Jiang, Z. et al. (2024). MoRA: High-Rank Updating for Parameter-Efficient Fine-Tuning. arXiv:2405.12130.
  • Mao, K. et al. (2024). A Survey on LoRA of Large Language Models. arXiv:2407.11046.
  • Chen, S. et al. (2024). Parameter-Efficient Fine Tuning: A Comprehensive Analysis Across Applications. arXiv:2404.13506.
  • Zhang, J. et al. (2025). Parameter-Efficient Fine-Tuning for Foundation Models. arXiv:2501.13787.

หมายเหตุ

  1. «Parameter-Efficient Fine-Tuning for Foundation Models». arXiv:2501.13787. [1]
  2. 2.0 2.1 «5 Problems Encountered Fine-Tuning LLMs with Solutions». Machine Learning Mastery. [2]
  3. 3.0 3.1 «PEFT: Parameter-Efficient Fine-Tuning Methods for LLMs». Hugging Face Blog. [3]
  4. 4.0 4.1 4.2 Houlsby, N., et al. «Parameter-Efficient Transfer Learning for NLP». Proceedings of the 36th International Conference on Machine Learning. [4]
  5. Li, X.L., Liang, P. «Prefix-Tuning: Optimizing Continuous Prompts for Generation». arXiv:2101.00190. [5]
  6. Liu, X., et al. «P-Tuning v2: Prompt Tuning Can Be Comparable to Fine-tuning Universally Across Scales and Tasks». arXiv:2110.07602. [6]
  7. Hu, E.J., et al. «LoRA: Low-Rank Adaptation of Large Language Models». arXiv:2106.09685. [7]
  8. 8.0 8.1 Dettmers, T., et al. «QLoRA: Efficient Finetuning of Quantized LLMs». arXiv:2305.14314. [8]
  9. 9.0 9.1 «Parameter Efficient Fine Tuning: A Comprehensive Analysis Across Applications». arXiv:2404.13506. [9]