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

โมเดลแบบลูกโซ่ (Multi-Stage Pipeline)

แนวคิด: โมเดล A สร้างการแปลเบื้องต้น → โมเดล B ปรับแก้ → โมเดล C ให้คะแนนหรือตรวจสอบผลลัพธ์ แต่ละขั้นตอนเชี่ยวชาญในสิ่งเดียว ผลลัพธ์ของ pipeline ดีกว่าโมเดลใดโมเดลหนึ่งเพียงลำพัง

:::info นี่คือ cookbook ไม่ใช่การนำไปใช้งานสำเร็จรูป คู่มือนี้ร่างสถาปัตยกรรม multi-stage pipeline โมเดลและการกำหนดค่าของ chain ขึ้นอยู่กับคู่ภาษาและงบประมาณของคุณ :::

เมื่อใดควรใช้

  • โมเดลเดียวให้คุณภาพที่ไม่สม่ำเสมอ — ดีกับบางอินพุต แย่กับบางอินพุต
  • คุณต้องการแยกการสร้างออกจากการตรวจสอบ — โมเดลหนึ่งสร้าง อีกโมเดลวิจารณ์
  • คุณมีงบประมาณสำหรับการเรียก API หลายครั้งต่อการแปลหนึ่งครั้ง (latency และต้นทุนเพิ่มขึ้นเป็นเส้นตรงตามจำนวนขั้นตอน)
  • คุณต้องการรวมโมเดลที่มีจุดแข็งต่างกัน (เช่น ตัวสร้างที่สร้างสรรค์ + บรรณาธิการที่แม่นยำ)

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

Input ──→ [Stage 1: Generator] ──→ [Stage 2: Editor] ──→ [Stage 3: Validator] ──→ Output
│ │ │
│ "Translate this" │ "Fix errors in │ "Rate 1-5 and
│ │ this translation" │ flag issues"
▼ ▼ ▼
Raw translation Polished translation Score + accept/reject

ตัวอย่าง: Three-Stage Pipeline

# Stage 1: Fast model generates candidate
raw = await fast_model.translate(source, target_lang="crk")

# Stage 2: Strong model post-edits
edited = await strong_model.complete(
f"The following {target_lang} translation may contain errors. "
f"Fix any grammatical or vocabulary mistakes:\n"
f"Source: {source}\nTranslation: {raw}\nCorrected:"
)

# Stage 3: Validator model scores
score = await validator.complete(
f"Rate this translation 1-5 for accuracy and fluency:\n"
f"Source: {source}\nTranslation: {edited}\nScore:"
)

# Accept if score >= 3, otherwise retry Stage 1 with different temperature

รูปแบบ Chain ที่พบบ่อย

รูปแบบขั้นตอนกรณีการใช้งาน
Generate → EditFast LLM → Strong LLMการปรับปรุงคุณภาพที่คุ้มค่าต้นทุน
Generate → Validate → RetryLLM → FST/rules → LLM (retry on failure)ความถูกต้องทางสัณฐานวิทยา (ดู FST-Gated)
Generate → Back-translate → ScoreLLM(en→crk) → LLM(crk→en) → compareการตรวจสอบความสอดคล้องแบบ round-trip
Ensemble → Vote3 LLMs อิสระ → majority voteความทนทานผ่านความหลากหลาย

การตัดสินใจออกแบบที่สำคัญ

งบประมาณ latency: แต่ละขั้นตอนทำให้ latency เพิ่มขึ้นทวีคูณ chain 3 ขั้นตอนที่ใช้เวลา 2 วินาทีต่อขั้น = 6 วินาทีต่อการแปลหนึ่งครั้ง สำหรับการประเมินแบบ batch นี้ถือว่าเหมาะสม แต่สำหรับการใช้งานแบบ real-time อาจไม่เหมาะ

ตัวคูณต้นทุน: 3 ขั้นตอน = ต้นทุน API 3 เท่า ใช้โมเดลที่ถูกกว่าสำหรับขั้นตอนแรก และโมเดลที่มีราคาสูงกว่าสำหรับขั้นตอนที่สำคัญ

การแพร่กระจายของข้อผิดพลาด: ผลลัพธ์ที่ไม่ดีจากขั้นตอนที่ 1 อาจทำให้ขั้นตอนที่ 2 เข้าใจผิดได้ ควรรวมต้นฉบับไว้ในทุกขั้นตอนเพื่อให้โมเดลในขั้นตอนหลังสามารถแก้ไขได้

ข้อดีและข้อเสีย

✅ สามารถรวมจุดแข็งของผู้เชี่ยวชาญแต่ละด้านได้❌ Latency และต้นทุนเพิ่มขึ้นทวีคูณตามจำนวนขั้นตอน
✅ แยกหน้าที่ชัดเจน (สร้าง vs. ตรวจสอบ)❌ ดีบักได้ยาก — ขั้นตอนใดที่ทำให้เกิดข้อผิดพลาด?
✅ สลับขั้นตอนแต่ละส่วนได้ง่าย❌ การแพร่กระจายของข้อผิดพลาดระหว่างขั้นตอน
✅ การตรวจสอบแบบ round-trip ช่วยตรวจจับ hallucination❌ ผลตอบแทนลดลงเมื่อมีมากกว่า 2-3 ขั้นตอน

ใช้งานร่วมกับ

  • FST-Gated Pipeline — FST ในฐานะขั้นตอนการตรวจสอบ
  • Dictionary-Augmented LLM — การฉีดพจนานุกรมในขั้นตอนการสร้าง
  • Coached LLM Prompting — การ coaching ในหนึ่งขั้นตอนหรือมากกว่า

ดูเพิ่มเติม