ข้ามไปยังเนื้อหาหลัก

Few-Shot Prompting

แนวคิด: นำคู่การแปลที่ผ่านการตรวจสอบและมีคุณภาพสูงมาใช้เป็นตัวอย่างในบริบท (in-context examples) เพื่อให้ LLM เรียนรู้รูปแบบ สไตล์ และแบบแผนของภาษาเป้าหมายจากการสาธิต แทนที่จะอาศัยเพียงคำสั่ง

:::info นี่คือ cookbook ไม่ใช่การ implement ที่สมบูรณ์ คู่มือนี้อธิบายแนวทางและการตัดสินใจออกแบบที่สำคัญ คุณสามารถปรับใช้ให้เหมาะกับคู่ภาษาและทรัพยากรที่มีอยู่ :::

เมื่อใดควรใช้วิธีนี้

  • คุณมี ชุดการแปลที่ผ่านการตรวจสอบขนาดเล็ก (แม้เพียง 5–10 คู่ gold ก็มีประโยชน์)
  • คุณต้องการให้ LLM จับคู่ สไตล์หรือระดับภาษาที่เฉพาะเจาะจง ด้วยตัวอย่าง แทนที่จะใช้กฎ
  • ภาษาเป้าหมายของคุณมีรูปแบบที่ แสดงให้เห็นได้ง่ายกว่าการอธิบาย (ลำดับคำ รูปแบบการเติมคำปฏิภาค ตัวบ่งชี้ความสุภาพ)

วิธีการทำงาน

  1. คัดเลือกคู่ตัวอย่าง — เลือกการแปล source→target ที่มีคุณภาพสูงซึ่งแสดงให้เห็นรูปแบบสำคัญ
  2. จัดรูปแบบเป็น in-context examples — นำตัวอย่างเหล่านั้นใส่ใน system prompt หรือ user prompt ก่อนคำขอแปลจริง
  3. รัน harness — วัดว่าตัวอย่างช่วยปรับปรุง metrics เมื่อเทียบกับ zero-shot หรือไม่
  4. ปรับปรุงการเลือกตัวอย่างซ้ำ — สลับตัวอย่างเพื่อครอบคลุม 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 สำหรับความถูกต้องทางสัณฐานวิทยา

ดูเพิ่มเติม