PEFT (Parameter-Efficient Fine-Tuning) คือชื่อเรียกรวมของวิธีการ fine-tuning ที่ปรับโมเดลให้เข้ากับงานเฉพาะด้วยทรัพยากรการคำนวณและข้อมูลที่น้อยลง โดยอัปเดตเพียงบางส่วนของพารามิเตอร์ในโมเดลภาษาขนาดใหญ่ แทนที่จะอัปเดตพารามิเตอร์ทั้งหมด
การฝึก LLM ที่มีพารามิเตอร์หลายพันล้านตัวแบบเต็มรูปแบบนั้น แม้จะใช้ A100 ถึง 8 ใบ ก็ยังต้องใช้เวลามากกว่าครึ่งวัน ในสภาพแวดล้อมที่มีงบประมาณและฮาร์ดแวร์จำกัด ตัวเลือกนี้มักไม่ได้รับการพิจารณาตั้งแต่ต้น PEFT เอาชนะอุปสรรคนี้ด้วยแนวทาง "แช่แข็งพารามิเตอร์ส่วนใหญ่ของโมเดล แล้วฝึกเฉพาะพารามิเตอร์ส่วนน้อยที่เพิ่มเข้ามา" เมื่อจัดระเบียบวิธีการที่เป็นตัวแทน จะได้ดังนี้ - **LoRA** (Low-Rank Adaptation) — แทรกส่วนต่างของ rank ต่ำลงในเมทริกซ์น้ำหนัก พารามิเตอร์ที่เพิ่มเข้ามาอยู่ที่ประมาณ 0.1〜1% ของโมเดลทั้งหมด เป็นวิธีที่ได้รับการนำไปใช้มากที่สุดในปัจจุบัน - **QLoRA** — ผสมผสาน LoRA เข้ากับการ quantization แบบ 4bit เพื่อบีบอัด GPU memory ให้เหลือไม่ถึงครึ่ง สามารถฝึกโมเดล 7B ได้แม้บน consumer GPU - **Prefix Tuning / Prompt Tuning** — วิธีการเพิ่มเวกเตอร์ที่ฝึกได้ทางฝั่ง input โดยไม่แตะต้องตัวโมเดลหลักเลย - **Adapter** — แทรก bottleneck layer ระหว่าง Transformer layer เป็นวิธีหลักก่อนที่ LoRA จะปรากฏขึ้น แต่ปัจจุบันความนิยมลดลงบ้าง ทีมของผู้เขียนได้ฝึก LLM ขนาด 7B พารามิเตอร์ด้วย LoRA บน A100 เพียง 1 ใบ ใช้เวลาประมาณ 3 ชั่วโมง และสามารถเพิ่มความแม่นยำเฉพาะงานได้ 15〜20% เมื่อเทียบกับ base model หากใช้ Full FT งานเดียวกันต้องการ A100×8 และใช้เวลา 12 ชั่วโมง ความแตกต่างด้านต้นทุนจึงชัดเจนมาก อย่างไรก็ตาม PEFT ไม่ใช่วิธีที่ใช้ได้กับทุกกรณี การให้โมเดลได้รับความสามารถที่ไม่มีอยู่เดิม เช่น การสร้างข้อความในภาษาที่ยังไม่รองรับ ด้วย PEFT เพียงอย่างเดียวนั้นเป็นเรื่องยาก ในกรณีดังกล่าวจำเป็นต้องใช้ร่วมกับ Continued Pre-training มักมีคำถามว่า "ควรใช้ PEFT หรือ RAG" แต่ที่จริงแล้วทั้งสองมีบทบาทต่างกัน RAG ทำหน้าที่อ้างอิงความรู้จากภายนอก ส่วน PEFT ทำหน้าที่ปรับพฤติกรรมและสไตล์ของโมเดล หากต้องการให้อ้างอิงความรู้ภายในองค์กรได้อย่างแม่นยำให้ใช้ RAG หากต้องการปรับโทนหรือรูปแบบของคำตอบให้ใช้ PEFT นี่คือจุดเริ่มต้นของการแบ่งการใช้งานในทางปฏิบัติ และการนำทั้งสองมาใช้ร่วมกันก็ไม่ใช่เรื่องแปลก


ไฟน์-ทูนนิ่ง (Fine-Tuning) หมายถึงกระบวนการนำข้อมูลการเรียนรู้เพิ่มเติมมาใช้กับโมเดลแมชชีนเลิร์นนิงที่ผ่านการ Pre-Training มาแล้ว เพื่อปรับให้เหมาะสมกับงานหรือโดเมนเฉพาะ

การปรับขนาดการประมวลผลในช่วง Inference (Inference-Time Scaling) คือวิธีการที่เพิ่มหรือลดปริมาณการคำนวณในช่วง Inference ของโมเดลอย่างพลวัต โดยใช้ "ขั้นตอนการคิด" มากขึ้นสำหรับปัญหาที่ซับซ้อน และตอบทันทีสำหรับปัญหาที่ง่าย

LoRA (Low-Rank Adaptation) คือวิธีการที่แทรกเมทริกซ์ผลต่างแบบ low-rank เข้าไปในเมทริกซ์น้ำหนักของโมเดลภาษาขนาดใหญ่ และทำการเรียนรู้เฉพาะส่วนผลต่างนั้น ซึ่งช่วยให้สามารถทำ fine-tuning ได้โดยเพิ่มพารามิเตอร์เพียงประมาณ 0.1–1% ของโมเดลทั้งหมด


การเปรียบเทียบการติดตั้ง LLM / SLM แบบโลคอล — การใช้ AI โดยไม่พึ่งพา Cloud API

ATDD (Acceptance Test-Driven Development) คือวิธีการพัฒนาซอฟต์แวร์ที่ทีมงานทั้งหมดร่วมกันกำหนดเกณฑ์การทดสอบการยอมรับ (Acceptance Test) ก่อนเริ่มการพัฒนา จากนั้นจึงทำการ Automate การทดสอบดังกล่าว แล้วจึงดำเนินการ Implement ต่อไป