โมเดลที่ผ่านการ Fine-Tune
แนวคิด: Fine-tune โมเดลแบบ open-weight (Llama, Mistral, Gemma) บนข้อความคู่ขนาน (parallel text) สำหรับคู่ภาษาเป้าหมายของคุณ วิธีนี้มีศักยภาพด้านคุณภาพสูงสุด แต่ต้องการข้อมูลคู่ขนานซึ่งอาจหายาก และกฎเกี่ยวกับการปนเปื้อนของข้อมูลประเมินผลมีความเข้มงวดมาก
:::info นี่คือ cookbook ไม่ใช่การ implement ที่สมบูรณ์ คู่มือนี้อธิบายแนวทาง ข้อกำหนดด้านข้อมูล และข้อควรระวัง โครงสร้างพื้นฐานสำหรับการฝึกจริงอยู่นอกขอบเขตของ harness :::
เมื่อใดควรใช้วิธีนี้
- คุณมีสิทธิ์เข้าถึง คลังข้อมูลคู่ขนาน (parallel corpus) (หลายร้อยถึงหลายพันคู่ประโยค) ที่ เป็นอิสระอย่างสมบูรณ์ จากชุดข้อมูลประเมินผล
- คุณมี GPU สำหรับการฝึก (ฮาร์ดแวร์ในเครื่อง, cloud, หรือคลัสเตอร์คอมพิวเตอร์ของมหาวิทยาลัย)
- คุณต้องการ ศักยภาพด้านคุณภาพสูงสุด สำหรับคู่ภาษาเฉพาะ และพร้อมลงทุนในการฝึก
- แนวทางอื่น (coached prompting, few-shot) ถึงจุดอิ่มตัวด้านคุณภาพแล้ว
วิธีการทำงาน
- รวบรวมข้อมูลคู่ขนาน — คู่ประโยคต้นฉบับ-แปลจากแหล่งอิสระ (ตำราเรียน, คลังชุมชน, บันทึก Hansard, ตำราศาสนา, สื่อการศึกษา)
- เตรียมรูปแบบข้อมูลสำหรับฝึก — รูปแบบ instruction-tuning (system prompt + input + expected output)
- Fine-tune — LoRA/QLoRA บนโมเดลพื้นฐาน (การ quantization แบบ 4-bit ทำให้ทำได้บน GPU สำหรับผู้บริโภคทั่วไป)
- ประเมินผลด้วย harness — รันโมเดลที่ผ่านการ fine-tune ผ่าน eval harness
- ปรับปรุงซ้ำ — ปรับข้อมูลฝึก, hyperparameters, การเลือกโมเดลพื้นฐาน
ข้อกำหนดด้านข้อมูล
| ขนาด Corpus | สิ่งที่คาดหวังได้ |
|---|---|
| 50–200 คู่ | การปรับปรุงเล็กน้อยเมื่อเทียบกับ zero-shot; อาจเกิด overfit |
| 200–1,000 คู่ | การปรับปรุงด้านสไตล์และคำศัพท์เฉพาะที่เห็นได้ชัด |
| 1,000–5,000 คู่ | การพัฒนาคุณภาพอย่างมีนัยสำคัญสำหรับคู่ภาษาเฉพาะ |
| 5,000+ คู่ | ใกล้เคียงศักยภาพสูงสุดของโมเดลพื้นฐาน |
:::danger การปนเปื้อนของข้อมูลประเมินผล = การตัดสิทธิ์ ข้อมูลฝึกของคุณ ต้องไม่ ซ้อนทับกับชุดข้อมูลประเมินผล ไม่ว่าจะเป็นประโยค, รายการคำศัพท์, หรือการถอดความเนื้อหาเดียวกัน harness จะทำ fingerprint ผลลัพธ์ของคุณ และสามารถตรวจจับการซ้อนทับทางสถิติได้ หากไม่แน่ใจว่าแหล่งข้อมูลเป็นอิสระหรือไม่ ให้เลือกตัดออกไว้ก่อน ดู กฎของ Leaderboard :::
โครงร่าง: LoRA Fine-Tuning
# Conceptual skeleton — adapt to your framework (HuggingFace, Axolotl, etc.)
# 1. Format your parallel data as instruction pairs
training_data = [
{"instruction": "Translate to Plains Cree (SRO)",
"input": "The children are playing",
"output": "awâsisak mêtawêwak"},
# ... hundreds more
]
# 2. Fine-tune with LoRA (4-bit for consumer GPUs)
# Base model: meta-llama/Llama-3.1-8B, google/gemma-2-9b, etc.
# Rank: 16–64, Alpha: 32–128, Epochs: 3–5
# 3. Export and serve via the harness TranslationMethod protocol
แหล่งค้นหาข้อมูลคู่ขนาน
- คลังชุมชน — สื่อการศึกษา, เอกสารราชการ, สิ่งพิมพ์สองภาษา
- Nunavut Hansard — คู่ภาษาอังกฤษ-Inuktitut จำนวน 1.3 ล้านคู่ที่จัดเรียงแล้ว (NRC Canada)
- การแปลพระคัมภีร์ — มีให้สำหรับภาษาที่มีทรัพยากรน้อยหลายภาษา แต่เฉพาะโดเมน
- ตำราเรียน — มักเป็นสองภาษาสำหรับบริบทการเรียนภาษา
- สร้างข้อมูลเอง — ดู คู่มือการสร้าง Corpus
ข้อดีและข้อเสีย
| ✅ ศักยภาพด้านคุณภาพสูงสุด | ❌ ต้องการข้อมูลคู่ขนาน (หายากสำหรับ LRL) |
| ✅ โมเดลเรียนรู้รูปแบบเฉพาะของภาษา | ❌ ค่าใช้จ่าย GPU (แม้ LoRA จะช่วยลดได้) |
| ✅ สามารถทำได้ดีกว่าแนวทาง prompted | ❌ ความเสี่ยง overfit กับชุดข้อมูลขนาดเล็ก |
| ✅ ค่าใช้จ่ายฝึกครั้งเดียว จากนั้น inference ราคาถูก | ❌ กฎการปนเปื้อนของข้อมูลประเมินผลที่เข้มงวด |
ใช้ร่วมกับได้ดี
- การสร้าง Corpus — สร้างข้อมูลฝึกที่คุณต้องการ
- Back-Translation — ขยาย parallel corpus ของคุณแบบสังเคราะห์
- FST-Gated Pipeline — โมเดลที่ผ่านการ fine-tune + การตรวจสอบทางสัณฐานวิทยา
- Coached LLM Prompting — การ coaching บนโมเดลพื้นฐานที่ผ่านการ fine-tune
ดูเพิ่มเติม
- ชุดข้อมูลประเมินผล — ทราบว่าคุณ ไม่สามารถ ฝึกบนข้อมูลใดได้บ้าง
- กฎของ Leaderboard — นโยบายการปนเปื้อน
- สนับสนุนภาษาที่มีทรัพยากรน้อย