NVIDIA เปิดตัว Switchyard: ตัวกลางจัดการทราฟฟิก LLM ข้ามค่ายผ่าน Rust Proxy และ Library

· By: NatapolK

NVIDIA เปิดตัว Switchyard: ตัวกลางจัดการทราฟฟิก LLM ข้ามค่ายผ่าน Rust Proxy และ Library

ทีมพัฒนา Coding Agent มักประสบปัญหาการสื่อสารข้ามแพลตฟิกเกอร์ เช่น Claude Code ใช้ Anthropic Messages API ขณะที่ Codex CLI สื่อสารผ่าน OpenAI แต่โมเดลที่ต้องการใช้งานจริงกลับรันอยู่บนระบบอื่นอย่าง vLLM, NVIDIA NIM หรือ Ollama การเขียนโค้ด Agent ใหม่ทั้งหมดจึงทำได้ยาก ทำให้ความจำเป็นในการมีเลเยอร์ตัวกลาง (Translation Layer) เข้ามามีบทบาทสำคัญ

Switchyard คือทางออกล่าสุดจาก NVIDIA ในรูปแบบ Rust Proxy และ Library สำหรับทราฟฟิก LLM ที่ทำหน้าที่สลับเส้นทางคำขอ (Routing) แปลรูปแบบคำสั่งระหว่าง OpenAI และ Anthropic พร้อมทั้งจัดเก็บเมตริกการทำงาน โดยเปิดให้ใช้งานภายใต้สัญญาอนุญาต Apache 2.0 และมีเอกสารประกอบที่ docs.nvidia.com/nemo/switchyard

สำหรับการใช้งานในปัจจุบัน NVIDIA ระบุว่า Switchyard อยู่ในช่วง pre-alpha และอยู่ในขั้นทดลอง แม้จะสามารถติดตั้งผ่าน crates.io หรือ PyPI เพื่อทดสอบได้ แต่ยังไม่แนะนำให้ใช้ในสภาพแวดล้อมการทำงานจริง (Production) เนื่องจาก API และอัลกอริทึมอาจมีการเปลี่ยนแปลงครั้งใหญ่ก่อนถึงเวอร์ชัน 1.0

สิ่งที่ Switchyard ทำ

กลไกหลักของ Switchyard คือการปล่อยให้ไคลเอนต์ใช้ API เดิมที่คุ้นเคย จากนั้นตัวโปรแกรมจะถอดรหัสคำขอที่เข้ามาให้เป็นรูปแบบกลาง (Provider-neutral) ในภาษา Rust แล้วจึงเลือกเส้นทาง Backend ที่เหมาะสมผ่านอัลกอริทึม ก่อนจะเข้ารหัสกลับเป็นรูปแบบที่ Backend นั้นๆ รองรับ พร้อมทั้งแปลผลลัพธ์และข้อมูลแบบสตรีมมิ่งกลับไปยังไคลเอนต์ได้อย่างไร้รอยต่อ

server รองรับรูปแบบขาเข้า 3 ประเภท ได้แก่ OpenAI Chat Completions, OpenAI Responses และ Anthropic Messages โดยการแยกส่วน API ของ Agent ออกจาก API ของ Backend ช่วยให้การเลือกใช้งานโมเดลมีความยืดหยุ่นสูงขึ้น ไม่จำเป็นต้องยึดติดกับผู้ให้บริการรายใดรายหนึ่งอีกต่อไป

วิธีการใช้งาน 3 รูปแบบ

1. เส้นทาง Launcher: เหมาะสำหรับ Coding Agent โดยติดตั้งผ่านเครื่องมือ Python bash uv tool install --python 3.12 "nemo-switchyard[cli]" จากนั้นรันคำสั่ง bash switchyard launch claude , bash switchyard launch codex หรือ ```bash switchyard launch openclaw

 
**2. เส้นทาง Server:** สำหรับผู้ที่ต้องการติดตั้ง Proxy แบบแยกอิสระ สามารถใช้คำสั่ง ```bash
cargo install --locked switchyard-server
``` โดยรองรับการตรวจสอบค่าคอนฟิกผ่าน `--dry-run` ก่อนเริ่มให้บริการบนโฮสต์และพอร์ตที่กำหนด
 
**3. เส้นทาง Library:** ใช้งานผ่าน `switchyard-libsy` เพื่อฝังอัลกอริทึมการเลือกเส้นทางลงในแอปพลิเคชันที่เขียนด้วย Rust โดยตรง วิธีนี้ตัว Library จะทำหน้าที่ตัดสินใจเลือกเป้าหมายแทนที่จะเรียกโมเดลด้วยตัวเอง
 
## อัลกอริทึมการหาเส้นทาง
 
หนึ่ง [route](https://github.com/NVIDIA-NeMo/Switchyard/blob/main/docs/routing_algorithms/overview.md) ประกอบด้วย ID โมเดลที่ฝั่งไคลเอนต์เห็น ผสมผสานกับอัลกอริทึมเบื้องหลังที่เซิร์ฟเวอร์รองรับ ดังนี้:
 
- `passthrough`: ส่งคำขอทั้งหมดไปยังเป้าหมายเดียวที่กำหนดไว้
- `random`: กระจายทราฟฟิกไปยังเป้าหมายต่างๆ ตามน้ำหนักที่กำหนด เหมาะสำหรับการทำ A/B Testing และการควบคุมต้นทุน
- `llm_classifier`: ใช้โมเดลตัวจำแนกประเภทเพื่อประเมินความยากของงาน แล้วจึงส่งต่อไปยังโมเดลระดับรอง (Weak) หรือโมเดลประสิทธิภาพสูง (Strong)
- `stage_router`: ประเมินจากผลลัพธ์ของเครื่องมือ (Tool-result) และความคืบหน้าของ Agent ในรอบล่าสุด เพื่อเลือกใช้โมเดลที่เหมาะสมที่สุดโดยไม่ต้องเรียกตัวจำแนกประเภทซ้ำซ้อน
 
## ความสามารถในการสังเกตการณ์ (Observability)
 
ระบบรองรับการส่งออกข้อมูลผ่าน `GET /metrics` ในรูปแบบ Prometheus โดยครอบคลุมทั้งความหน่วงในการเรียกโมเดล ปริมาณการใช้โทเคน (Prompt, Completion, Reasoning) และความสำเร็จในการเชื่อมต่อ นอกจากนี้ยังมีเมตริก `switchyard_routing_overhead_ms` ที่ช่วยวิเคราะห์ว่าอัลกอริทึมการเลือกเส้นทางใช้เวลาประมวลผลไปเท่าใด
 
สำหรับการจัดเก็บข้อมูลเพื่อตรวจสอบย้อนหลัง ผู้ใช้สามารถใช้งาน `--routing-log-file` เพื่อบันทึกข้อมูลในรูปแบบ JSON หรือเรียกดูสถิติรายเซสชันผ่าน `GET /v1/routing/session-stats` เพื่อตรวจสอบยอดรวมการใช้โทเคนได้อย่างละเอียด
 
## การตั้งค่า (Configuration)
 
การกำหนดค่าผ่านไฟล์ TOML แบ่งเป็น 3 ส่วนหลัก ได้แก่ `llm_clients` สำหรับระบุ URL และรูปแบบข้อมูล, `targets` สำหรับเชื่อมโยง ID โมเดลเข้ากับไคลเอนต์ และ `routes` สำหรับเปิดพอร์ตใช้งาน โดยมีการรักษาความปลอดภัยด้วยการอ้างอิง API Key ผ่านตัวแปรสภาพแวดล้อม (Environment Variables) แทนการเก็บความลับไว้ในไฟล์โดยตรง
 
## ประเด็นสำคัญ
- Switchyard เป็นเครื่องมือโอเพนซอร์สบน Rust (Apache-2.0) สำหรับจัดการทราฟฟิก LLM
- รองรับการแปลภาษา API ระหว่าง OpenAI และ Anthropic ได้แบบสองทิศทาง
- มีอัลกอริทึมการเลือกเส้นทาง 4 รูปแบบหลัก เพื่อประสิทธิภาพและความคุ้มค่า
- ระบบ Monitoring ครบครัน แยกส่วนต่างของเวลาที่เกิดจากการหาเส้นทางชัดเจน
- สถานะปัจจุบันคือ pre-alpha เหมาะสำหรับการทดสอบและประเมินผลเท่านั้น
Source: MarkTechPost
ดูแลงานแปลและเรียบเรียงโดย NatapolK

ความคิดเห็น (0)

เข้าสู่ระบบเพื่อร่วมแสดงความเห็น

สมัครสมาชิก

มาเป็นคนแรกที่แสดงความเห็นกันเลยโบร