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

Quality Gate

ทุกการแปลจะผ่านกระบวนการตรวจสอบแบบ deterministic ก่อนที่จะถูกเขียนลงดิสก์ Quality gate จะดักจับความผิดพลาดที่พบบ่อยในการแปลด้วยเครื่อง — ไม่มี silent fallback ไม่มีข้อมูลขยะถูกเขียนลงไฟล์ locale ของคุณ

การตรวจสอบ

การตรวจสอบสิ่งที่ดักจับป้ายกำกับ Gate
ว่างเปล่า/เว้นวรรคโมเดลคืนค่าเป็น string ว่างหรือ whitespace[GATE] empty
Source echoโมเดลคืนค่าเป็นข้อความภาษาอังกฤษต้นฉบับ[GATE] source-echo
Hallucination loopรูปแบบ trigram ที่ซ้ำกัน (เช่น "Qo' Qo' Qo'")[GATE] hallucination
Length inflationผลลัพธ์ยาวกว่าต้นฉบับอย่างมีนัยสำคัญ[GATE] length
Script complianceสคริปต์ไม่ถูกต้องสำหรับ locale เป้าหมาย[GATE] script
ICU plural categoriesหมวดหมู่รูปพหูพจน์ที่จำเป็นสำหรับ locale ขาดหายไป[GATE] icu-plural

ว่างเปล่า/เว้นวรรค

ปฏิเสธการแปลที่เป็น string ว่าง มีแต่ whitespace หรือ null ซึ่งดักจับโมเดลที่ไม่คืนค่าใดๆ สำหรับ key ที่แปลยาก

Source Echo

ตรวจจับเมื่อโมเดลคืนค่าเป็นข้อความภาษาอังกฤษต้นฉบับแทนที่จะแปล พบบ่อยกับ string สั้นๆ และ prompt ที่ระบุรายละเอียดไม่เพียงพอ

Hallucination Loop

วิเคราะห์รูปแบบ trigram (3 ตัวอักษร) ในผลลัพธ์ หาก trigram ใดซ้ำกันเกินจำนวนครั้งที่กำหนดเมื่อเทียบกับความยาวของผลลัพธ์ การแปลนั้นจะถูกปฏิเสธ ซึ่งดักจับผลลัพธ์ที่ผิดปกติ เช่น "Qo' Qo' Qo' Qo' Qo'"

Length Inflation

ปฏิเสธการแปลที่ความยาวของผลลัพธ์เกิน maxLengthRatio × source length (ค่าเริ่มต้น: 4×) ซึ่งดักจับ hallucination ของโมเดลที่สร้างข้อความยาวมากสำหรับ input สั้นๆ

กำหนดค่าได้ผ่าน maxLengthRatio ในไฟล์ config ของคุณ

Script Compliance

สำหรับ locale ที่มีการกำหนดค่าฟิลด์ script (เช่น "script": "cans" สำหรับ Plains Cree Syllabics) จะตรวจสอบว่าผลลัพธ์มีตัวอักษรที่ไม่ใช่ ASCII ที่เหมาะสมกับสคริปต์เป้าหมาย ผลลัพธ์ที่เป็น Latin เท่านั้นสำหรับ locale ที่เป็น Arabic, CJK หรือ Syllabics จะถูกปฏิเสธ

สิ่งที่เกิดขึ้นเมื่อล้มเหลว

  1. การแปลที่ล้มเหลวจะถูก log ไปยัง stderr พร้อมคำนำหน้า [GATE] ชื่อ key เหตุผล และตัวอย่างของค่านั้น
  2. Key นั้นจะไม่ถูกเขียนลงไฟล์ locale
  3. retry cascade จะเริ่มทำงาน (ดูด้านล่าง)
[GATE] hero.title: source-echo — "Welcome to our platform"
[GATE] nav.about: hallucination — "À À À À À À À À"

Retry Cascade

เมื่อ batch ล้มเหลว (JSON parse error หรือ quality gate ปฏิเสธ) champollion จะลองใหม่ด้วย batch ที่เล็กลงเรื่อยๆ:

Full batch (80 keys) → parse error
└→ Half batch (40 keys) → 2 failures
└→ Individual keys (1 each) → isolates the 2 problem keys

งบประมาณการลองใหม่ถูกจำกัดด้วย maxRetries (ค่าเริ่มต้น: 3 ปรับได้ต่อภาษา) เพื่อป้องกันการใช้ token มากเกินไปกับ key ที่ล้มเหลวซ้ำๆ

หลังจากใช้การลองใหม่หมดแล้ว key ที่มีปัญหาจะถูก log และข้ามไป โดยจะถูกลองใหม่ในการรัน sync ครั้งถัดไป

Prompt Caching

system message (register, กฎไวยากรณ์, หมายเหตุสไตล์) จะถูกแยกออกจาก user message (key ที่ต้องการแปล) การแยกนี้มีเหตุผลดังนี้:

  • system message เหมือนกันทุก batch สำหรับ locale ที่กำหนด
  • Provider อย่าง Anthropic และ Google จะ cache system message ที่ซ้ำกัน
  • ผลลัพธ์: batch แรกจ่าย token cost เต็มจำนวน batch ถัดไปจ่ายเฉพาะ user message

สิ่งนี้สามารถลดต้นทุน token ได้อย่างมีนัยสำคัญสำหรับโปรเจกต์ที่มี batch จำนวนมาก

ICU MessageFormat Validation

คำสั่ง integrity จะตรวจสอบรูปแบบ ICU MessageFormat plural กับกฎ CLDR plural หากไฟล์ต้นฉบับของคุณใช้ syntax แบบ ICU เช่น:

"items": "{count, plural, one {# item} other {# items}}"

Champollion จะตรวจสอบว่าเวอร์ชันที่แปลแล้วมีหมวดหมู่รูปพหูพจน์ที่จำเป็นทั้งหมดสำหรับ locale เป้าหมาย ตัวอย่างเช่น ภาษาอาหรับต้องการหกหมวดหมู่ (zero, one, two, few, many, other) — ไม่ใช่แค่ one และ other

รัน champollion integrity เพื่อตรวจสอบความครบถ้วนของรูปพหูพจน์ในทุก locale

Terminology Enforcement

สำหรับคู่ที่มีการ coach พร้อม dictionary champollion จะรันการตรวจสอบ terminology หลังการแปล หลังจาก quality gate ผ่านแล้ว จะตรวจสอบว่า LLM ใช้คำศัพท์ที่กำหนดใน dictionary จริงหรือไม่

[TERM] en→fr: 2 term violation(s)
• hero.title: "dashboard" → expected "tableau de bord" but got "panneau de contrôle"

การละเมิด terminology เป็นคำเตือน ไม่ใช่ข้อผิดพลาดที่บล็อกการทำงาน การแปลยังคงถูกเขียนลงดิสก์ ซึ่งเป็นเจตนาที่ตั้งใจ — LLM อาจมีเหตุผลที่ถูกต้องในการเลือกทางเลือกอื่น (บริบท ไวยากรณ์) และการบล็อกเมื่อ term ไม่ตรงกันจะก่อให้เกิดผลเสียมากกว่าผลดี

หากต้องการแก้ไขการละเมิด ให้อัปเดต coaching dictionary หรือแก้ไขไฟล์ locale ด้วยตนเอง


ดูเพิ่มเติม