Dictionary-Augmented LLM
แนวคิด: บังคับใช้การแปลที่ผ่านการตรวจสอบแล้วสำหรับคำศัพท์เฉพาะจากพจนานุกรมสองภาษา แล้วให้ LLM จัดการโครงสร้างประโยคและคำศัพท์ที่ไม่มีในพจนานุกรม พจนานุกรมทำหน้าที่เป็นจุดยึดของความถูกต้อง ส่วน LLM ทำหน้าที่สร้างความคล่องแคล่วทางภาษา
:::info นี่คือ cookbook ไม่ใช่การนำไปใช้งานสำเร็จรูป คู่มือนี้เป็นเพียงการร่างแนวทาง กลยุทธ์การจับคู่พจนานุกรมและการฉีดข้อมูลเข้าสู่ prompt จะขึ้นอยู่กับคู่ภาษาและทรัพยากรคำศัพท์ที่มีอยู่ :::
เมื่อใดควรใช้วิธีนี้
- มี พจนานุกรมสองภาษา สำหรับคู่ภาษาของคุณ (แม้จะเป็นพจนานุกรมขนาดเล็ก)
- LLM สร้างคำศัพท์สำคัญขึ้นมาเองอย่างผิดพลาด อยู่เสมอ — ประดิษฐ์คำที่ไม่มีอยู่จริง
- คุณต้องการ ความสอดคล้องของคำศัพท์เฉพาะทาง ตลอดการแปล (คำเดิมถูกแปลเหมือนกันทุกที่)
- คุณกำลังแปล เนื้อหาเฉพาะโดเมน ที่การแปลด้วย LLM มาตรฐานให้ผลไม่ถูกต้อง (กฎหมาย การแพทย์ การศึกษา)
วิธีการทำงาน
- โหลดพจนานุกรมสองภาษา — คู่ key→value ที่แมปคำในภาษาต้นทางกับการแปลในภาษาปลายทางที่ผ่านการตรวจสอบแล้ว
- จับคู่ข้อความต้นทางกับพจนานุกรม — ระบุคำในข้อความนำเข้าที่มีการแปลที่ทราบแล้ว
- ฉีดผลการจับคู่เข้าสู่ prompt — บอก LLM ว่า "คำศัพท์เหล่านี้ต้องแปลตามที่กำหนดเท่านั้น"
- LLM สร้างการแปล — โดยใช้ข้อจำกัดจากพจนานุกรมเป็นข้อกำหนดที่ต้องปฏิบัติตาม
- ประมวลผลภายหลัง — ตรวจสอบว่าคำศัพท์จากพจนานุกรมปรากฏในผลลัพธ์ หากไม่ปรากฏให้ลองใหม่
รูปแบบพจนานุกรม
{
"school": "kiskinwahamâtowikamik",
"teacher": "okiskinwahamâkêw",
"student": "kiskinwahamâkan",
"book": "masinahikan",
"home": "kīwēwin",
"water": "nipiy"
}
โครงสร้าง Prompt
Translate the following English to Plains Cree (SRO).
REQUIRED TERMINOLOGY — use these exact translations:
- "school" → "kiskinwahamâtowikamik"
- "teacher" → "okiskinwahamâkêw"
Source: "The teacher went to the school"
การตัดสินใจออกแบบที่สำคัญ
กลยุทธ์การจับคู่: การจับคู่แบบตรงทั้งหมด (Exact match) เป็นวิธีที่ง่ายที่สุด การจับคู่แบบ Lemmatized ("teachers" จับคู่กับ "teacher") ครอบคลุมมากกว่าแต่ต้องใช้ lemmatizer สำหรับภาษาต้นทาง การจับคู่แบบ Fuzzy มีความเสี่ยงที่จะเกิด false positive
การจัดการการผันคำ: ในภาษาที่มีการสังเคราะห์คำสูง รูปแบบในพจนานุกรมอาจต้องผันเพื่อให้เข้ากับประโยค คุณสามารถระบุรากศัพท์แล้วให้ LLM ผันคำ หรือระบุรูปแบบที่ผันแล้วหลายรูปแบบ FST สามารถตรวจสอบความถูกต้องของผลลัพธ์ได้
การแก้ไขความขัดแย้ง: จะทำอย่างไรหาก LLM ไม่ปฏิบัติตามคำศัพท์จากพจนานุกรม ตัวเลือก: (a) ลองใหม่ด้วยคำสั่งที่เข้มงวดขึ้น (b) ประมวลผลภายหลังด้วยการแทนที่สตริง (c) ยอมรับและทำเครื่องหมายเพื่อตรวจสอบ
ข้อดีและข้อเสีย
| ✅ ขจัดการสร้างคำผิดพลาดสำหรับคำศัพท์ที่ทราบแล้ว | ❌ ความครอบคลุมของพจนานุกรมมักไม่สมบูรณ์เสมอ |
| ✅ รับประกันความสอดคล้องของคำศัพท์สำคัญ | ❌ การผันคำ/การกริยาอาจไม่เข้ากับบริบทของประโยค |
| ✅ ตรวจสอบและอัปเดตได้ง่าย | ❌ การกำหนดข้อจำกัดมากเกินไปอาจทำให้ผลลัพธ์ไม่เป็นธรรมชาติ |
| ✅ พจนานุกรมเป็นทรัพยากรที่นำกลับมาใช้ใหม่ได้ | ❌ ต้องมีพจนานุกรมอยู่ก่อนจึงจะใช้วิธีนี้ได้ |
แหล่งค้นหาพจนานุกรม
- itwêwina — Plains Cree–English (ขับเคลื่อนด้วย FST, โอเพนซอร์ส)
- Wolvengrey Dictionary — พจนานุกรม Plains Cree อ้างอิงฉบับสมบูรณ์
- Apertium — พจนานุกรมสองภาษาสำหรับคู่ภาษาหลายสิบคู่
- Giellatekno — พจนานุกรมสำหรับภาษา Sámi, Uralic และภาษาชนกลุ่มน้อยอื่น ๆ
- อภิธานศัพท์ที่สร้างโดยชุมชน สื่อการศึกษา และรายการคำศัพท์
ใช้งานร่วมกันได้ดีกับ
- Coached LLM Prompting — รายการพจนานุกรมเป็นรูปแบบหนึ่งของข้อมูลการฝึกสอน
- FST-Gated Pipeline — FST ตรวจสอบว่าคำศัพท์จากพจนานุกรมถูกผันอย่างถูกต้อง
- Rule-Based + LLM Hybrid — การค้นหาพจนานุกรมแบบ deterministic เป็นชั้นกฎหนึ่ง
ดูเพิ่มเติม
- รองรับภาษาที่มีทรัพยากรน้อย — บริบทฉบับสมบูรณ์
- Method Interface — โครงสร้างของ method