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

Dictionary-Augmented LLM

แนวคิด: บังคับใช้การแปลที่ผ่านการตรวจสอบแล้วสำหรับคำศัพท์เฉพาะจากพจนานุกรมสองภาษา แล้วให้ LLM จัดการโครงสร้างประโยคและคำศัพท์ที่ไม่มีในพจนานุกรม พจนานุกรมทำหน้าที่เป็นจุดยึดของความถูกต้อง ส่วน LLM ทำหน้าที่สร้างความคล่องแคล่วทางภาษา

:::info นี่คือ cookbook ไม่ใช่การนำไปใช้งานสำเร็จรูป คู่มือนี้เป็นเพียงการร่างแนวทาง กลยุทธ์การจับคู่พจนานุกรมและการฉีดข้อมูลเข้าสู่ prompt จะขึ้นอยู่กับคู่ภาษาและทรัพยากรคำศัพท์ที่มีอยู่ :::

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

  • มี พจนานุกรมสองภาษา สำหรับคู่ภาษาของคุณ (แม้จะเป็นพจนานุกรมขนาดเล็ก)
  • LLM สร้างคำศัพท์สำคัญขึ้นมาเองอย่างผิดพลาด อยู่เสมอ — ประดิษฐ์คำที่ไม่มีอยู่จริง
  • คุณต้องการ ความสอดคล้องของคำศัพท์เฉพาะทาง ตลอดการแปล (คำเดิมถูกแปลเหมือนกันทุกที่)
  • คุณกำลังแปล เนื้อหาเฉพาะโดเมน ที่การแปลด้วย LLM มาตรฐานให้ผลไม่ถูกต้อง (กฎหมาย การแพทย์ การศึกษา)

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

  1. โหลดพจนานุกรมสองภาษา — คู่ key→value ที่แมปคำในภาษาต้นทางกับการแปลในภาษาปลายทางที่ผ่านการตรวจสอบแล้ว
  2. จับคู่ข้อความต้นทางกับพจนานุกรม — ระบุคำในข้อความนำเข้าที่มีการแปลที่ทราบแล้ว
  3. ฉีดผลการจับคู่เข้าสู่ prompt — บอก LLM ว่า "คำศัพท์เหล่านี้ต้องแปลตามที่กำหนดเท่านั้น"
  4. LLM สร้างการแปล — โดยใช้ข้อจำกัดจากพจนานุกรมเป็นข้อกำหนดที่ต้องปฏิบัติตาม
  5. ประมวลผลภายหลัง — ตรวจสอบว่าคำศัพท์จากพจนานุกรมปรากฏในผลลัพธ์ หากไม่ปรากฏให้ลองใหม่

รูปแบบพจนานุกรม

dictionaries/crk-terms.json
{
"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 เป็นชั้นกฎหนึ่ง

ดูเพิ่มเติม