Few-Shot Prompting
แนวคิด: นำคู่การแปลที่ผ่านการตรวจสอบและมีคุณภาพสูงมาใช้เป็นตัวอย่างในบริบท (in-context examples) เพื่อให้ LLM เรียนรู้รูปแบบ สไตล์ และแบบแผนของภาษาเป้าหมายจากการสาธิต แทนที่จะอาศัยเพียงคำสั่ง
:::info นี่คือ cookbook ไม่ใช่การ implement ที่สมบูรณ์ คู่มือนี้อธิบายแนวทางและการตัดสินใจออกแบบที่สำคัญ คุณสามารถปรับใช้ให้เหมาะกับคู่ภาษาและทรัพยากรที่มีอยู่ :::
เมื่อใดควรใช้วิธีนี้
- คุณมี ชุดการแปลที่ผ่านการตรวจสอบขนาดเล็ก (แม้เพียง 5–10 คู่ gold ก็มีประโยชน์)
- คุณต้องการให้ LLM จับคู่ สไตล์หรือระดับภาษาที่เฉพาะเจาะจง ด้วยตัวอย่าง แทนที่จะใช้กฎ
- ภาษาเป้าหมายของคุณมีรูปแบบที่ แสดงให้เห็นได้ง่ายกว่าการอธิบาย (ลำดับคำ รูปแบบการเติมคำปฏิภาค ตัวบ่งชี้ความสุภาพ)
วิธีการทำงาน
- คัดเลือกคู่ตัวอย่าง — เลือกการแปล source→target ที่มีคุณภาพสูงซึ่งแสดงให้เห็นรูปแบบสำคัญ
- จัดรูปแบบเป็น in-context examples — นำตัวอย่างเหล่านั้นใส่ใน system prompt หรือ user prompt ก่อนคำขอแปลจริง
- รัน harness — วัดว่าตัวอย่างช่วยปรับปรุง metrics เมื่อเทียบกับ zero-shot หรือไม่
- ปรับปรุงการเลือกตัวอย่างซ้ำ — สลับตัวอย่างเพื่อครอบคลุม failure modes ที่แตกต่างกัน
โครงสร้าง Prompt ตัวอย่าง
You are translating English to Plains Cree (SRO orthography).
Examples of correct translations:
- "Hello" → "tânisi"
- "Thank you" → "kinanâskomitin"
- "I am going home" → "nikîwân"
- "The children are playing" → "awâsisak mêtawêwak"
Now translate the following:
- "Welcome to the school"
กฎสำคัญ: ห้ามปนเปื้อนข้อมูลประเมินผล
:::danger ห้ามใช้ข้อมูลประเมินผลเป็น few-shot examples หากตัวอย่างของคุณมาจากชุดข้อมูลประเมินผล วิธีการของคุณจะถูก ตัดสิทธิ์ จาก leaderboard few-shot examples ต้องมาจากแหล่งอิสระ ได้แก่ พจนานุกรม ตำราเรียน คู่ที่ผ่านการตรวจสอบโดยชุมชน หรือ development set แยกต่างหาก harness จะทำ fingerprint prompt ที่คุณใช้ทุกตัวอักษร การปนเปื้อนสามารถตรวจพบได้ :::
การตัดสินใจออกแบบที่สำคัญ
ควรใช้ตัวอย่างกี่ชิ้น? 3–8 ชิ้นคือจุดที่เหมาะสมที่สุด น้อยเกินไปทำให้ LLM ได้รับสัญญาณไม่เพียงพอ มากเกินไปจะกินพื้นที่ context window โดยได้ผลตอบแทนที่ลดลง
ควรเลือกตัวอย่างใด? ให้ความสำคัญกับความหลากหลายมากกว่าความยาก ครอบคลุมโครงสร้างประโยคที่แตกต่างกัน ความยาวของคำ และลักษณะทางไวยากรณ์ อย่าจัดกลุ่มตัวอย่างรอบรูปแบบเดียว
การเลือกแบบ static หรือ dynamic? การเลือกแบบ static นั้นง่ายกว่า การเลือกแบบ dynamic (การเลือกตัวอย่างที่คล้ายกับ input ปัจจุบัน) สามารถปรับปรุงคุณภาพได้แต่เพิ่มความซับซ้อน — พิจารณาใช้ chained models สำหรับขั้นตอนการดึงข้อมูล
ข้อดีและข้อเสีย
| ✅ มีประสิทธิภาพสูงสำหรับการจับคู่สไตล์ | ❌ context window ขนาดเล็กจำกัดจำนวนตัวอย่าง |
| ✅ ไม่ต้องการการฝึกโมเดล | ❌ การเลือกตัวอย่างเป็นศิลปะ ไม่ใช่วิทยาศาสตร์ |
| ✅ ใช้งานได้กับ LLM ทุกตัว | ❌ มีความเสี่ยงต่อการปนเปื้อนข้อมูลประเมินผล (ถูกตัดสิทธิ์) |
| ✅ ทดสอบ A/B ชุดตัวอย่างต่างๆ ได้ง่าย | ❌ ตัวอย่างอาจไม่ครอบคลุม input ทุกประเภท |
ใช้งานร่วมกันได้ดีกับ
- Coached LLM Prompting — กฎ + ตัวอย่างร่วมกันให้ผลดีกว่าการใช้อย่างใดอย่างหนึ่ง
- Dictionary-Augmented LLM — คำศัพท์ที่กำหนดไว้ + ตัวอย่างสไตล์
- FST-Gated Pipeline — ตัวอย่างสำหรับสไตล์ FST สำหรับความถูกต้องทางสัณฐานวิทยา
ดูเพิ่มเติม
- กฎการประเมิน MT — สิ่งที่จะถูกตัดสิทธิ์
- ชุดข้อมูลประเมินผล — ทราบว่าสิ่งใดที่คุณไม่สามารถใช้เป็นตัวอย่าง
- สนับสนุนภาษาที่มีทรัพยากรน้อย