Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

การกำหนดเส้นทางแบบถ่วงน้ำหนักด้วยต้นทุน

เมื่อมีหลายโมเดลให้เลือกใช้ — Opus, Sonnet, Haiku หรือโมเดลในเครื่องที่อยู่เบื้องหลังเกตเวย์ odysseus ที่โฮสต์เอง — PRECC จะกำหนดเส้นทางแต่ละงานไปยังโมเดลที่ลดต้นทุนเป็นดอลลาร์ที่คาดหวังให้น้อยที่สุด ไม่ใช่จำนวนโทเค็น โทเค็นจากโมเดลราคาถูกและโทเค็นจากโมเดลราคาแพงนั้นมีต้นทุนไม่เท่ากัน ตัวกำหนดเส้นทางจะปรับให้ดอลลาร์เหมาะสมที่สุด ภายใต้เกณฑ์ขั้นต่ำของความสำเร็จที่วัดได้และเกณฑ์ขั้นต่ำของความสามารถต่อหมวดหมู่

หน่วยของต้นทุนคือดอลลาร์ ไม่ใช่โทเค็น

สำหรับงานในหมวดหมู่ c ในบรรดาโมเดลผู้สมัคร m ที่มีคุณสมบัติด้านความสามารถ ตัวกำหนดเส้นทางจะลดต้นทุนที่คาดหวังซึ่งถ่วงน้ำหนักด้วยราคาให้น้อยที่สุด E[$ | task, m] คือต้นทุนโทเค็นเฉลี่ยที่วัดได้ของโมเดลสำหรับหมวดหมู่นั้น คูณด้วยราคาต่อโทเค็น การรัน Haiku ที่ใช้โทเค็นมากกว่า Opus ก็ยังสามารถชนะได้ เพราะ Haiku ถูกกว่าหลายเท่าต่อโทเค็น ทุกตัวเลขในฟังก์ชันเป้าหมายล้วนเป็นค่าที่วัดได้ (ค่าเฉลี่ยโทเค็นจากออราเคิล ความสำเร็จที่บันทึกไว้ ราคาโมเดลที่เผยแพร่) หรือค่าก่อนหน้าที่ระบุป้ายกำกับไว้อย่างชัดเจน — ไม่เคยถูกกุขึ้นมา

choose argmin_m   E[$ | task, m]
       subject to  P(success | task, m) >= min_success
                   capability(m) >= capability_floor(category)

การกำหนดเส้นทางของงาน

precc route "<task>" จะจัดหมวดหมู่ของงาน ใช้เกณฑ์ขั้นต่ำของความสามารถ จัดอันดับโมเดลที่มีคุณสมบัติตามดอลลาร์ที่คาดหวัง และพิมพ์การตัดสินใจออกมา ด้วย --execute มันจะส่งงานไปยังโมเดลที่เลือกผ่าน odysseus session API การตัดสินใจแต่ละครั้งยังถูกหว่านเมล็ดเข้าไปในออราเคิลการพยากรณ์ด้วย เพื่อให้สามารถบันทึกต้นทุนและผลลัพธ์ที่แท้จริงได้หลังจากที่งานทำงานเสร็จ

$ precc route "fix the broken parser"
  category   : fix (capability floor 0)
  → model    : anthropic/claude-haiku-4-5  [Measured, confidence 0.60]
  est. cost  : $0.0096 (12000 tok)
  reason     : measured cheapest-capable for `fix` (by cost): claude-haiku-4-5
  prediction : #42 (seeded; learner will auto-close after the task runs)

การประหยัดเป็นดอลลาร์

precc savings จะเพิ่มส่วนของดอลลาร์ทุกครั้งที่งานที่ถูกกำหนดเส้นทางทำเสร็จแล้ว สำหรับทุกงานที่ถูกกำหนดเส้นทาง มันจะตีราคาโทเค็นที่ใช้ไปจริงตามอัตราของโมเดลที่เลือก และเปรียบเทียบกับเส้นฐานที่ใช้โมเดลเริ่มต้นเสมอ — โดยตรึงโทเค็นไว้คงที่ มีเพียงราคาเท่านั้นที่เปลี่ยนแปลง นี่คือมุมมองแบบ “ลดต้นทุน ไม่ใช่แค่ลดโทเค็น” ส่วนนี้จะยังคงซ่อนอยู่จนกว่าจะมีข้อมูลการกำหนดเส้นทางจริง ดังนั้นมันจึงไม่แสดงแถวที่ถูกกุขึ้นมาเลย

$ precc savings
Routing cost (USD) — baseline: always claude-opus-4-5
  claude-haiku-4-5   :    1 task(s)  $   0.0096 chosen  vs $   0.0600 baseline
  claude-sonnet-4-6  :    1 task(s)  $   0.1200 chosen  vs $   0.2000 baseline
  total              :    2 task(s)  $   0.1296 chosen  vs $   0.2600 baseline
  → saved $0.1304 (50.2% of baseline spend)

วงจรป้อนกลับ

การกำหนดเส้นทางพัฒนาตัวเอง: route → execute → record → retrain การตัดสินใจกำหนดเส้นทางแต่ละครั้งถูกหว่านเมล็ดเข้าไปในออราเคิล เดมอน precc-learner ที่ทำงานเบื้องหลังจะดึงข้อความที่เสร็จสมบูรณ์มา บันทึกโทเค็น โมเดล และความสำเร็จที่แท้จริง และปิดแถวนั้น เมื่อตาราง (model, category) ถูกเติมเต็มขึ้นเรื่อย ๆ ตัวกำหนดเส้นทางจะเปลี่ยนจากค่าก่อนหน้าแบบถูกที่สุดเท่าที่มีความสามารถ ไปสู่ทางเลือกที่วัดได้ และตัวพยากรณ์โทเค็นก็จะได้มิติเฉพาะของแต่ละโมเดลเพิ่มขึ้น

การสำรวจ

เพื่อหลีกเลี่ยงการใช้ประโยชน์จากโมเดลราคาถูกตัวเดียวตลอดไปบนข้อมูลที่ล้าสมัย ตัวกำหนดเส้นทางสามารถสุ่มเลือกเซลล์ (model, category) ที่ยังสำรวจไม่เพียงพอโดยเจตนาก่อนการเลือกแบบโลภได้ การสำรวจเป็นแบบเลือกเข้าร่วม เป็นแบบกำหนดได้ (ไม่มีการสุ่ม — ฮุกต้องทำซ้ำได้) และมีขอบเขตจำกัด: มันจะไม่ข้ามเกณฑ์ขั้นต่ำของความสามารถหรือความสำเร็จที่วัดได้เลย และเพดานความเสียใจด้านราคาจะป้องกันไม่ให้มันหลงไปยังโมเดลที่แพงกว่ามาก

# ~/.config/precc/odysseus.toml
explore_n_min = 3     # sample each (model, category) cell ~3× before trusting it
explore_eps   = 1.0   # allow up to 2× the cheapest price while exploring

วัดได้ ไม่เคยสมมติ

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