- RouteLLM คือเฟรมเวิร์กสำหรับ serving และการประเมินผล LLM Router ที่พัฒนาร่วมกันโดย LMSys และ Anyscale
- ความสามารถหลัก:
- ใช้แทน OpenAI client เพื่อส่งต่อคิวรีแบบง่ายไปยังโมเดลที่มีต้นทุนต่ำกว่า
- มีเราเตอร์ที่ผ่านการฝึกมาแล้ว รองรับการขยายเราเตอร์ใหม่ และการเปรียบเทียบประสิทธิภาพของเราเตอร์บนเบนช์มาร์ก เป็นต้น
รองรับโมเดล
- นอกจาก GPT-4 และ Mixtral 8x7B แล้ว ยังสามารถใช้คู่โมเดลได้หลากหลายโดยแก้ไขอาร์กิวเมนต์
strong-model และ weak-model
- รองรับ chat completions บนโมเดลโอเพนซอร์สและโมเดลแบบปิดที่หลากหลายผ่าน LiteLLM
- ใช้งาน OpenAI-compatible endpoint ได้เช่นกัน
- มีวิธีตั้งค่า API key สำหรับผู้ให้บริการโมเดลหลายราย
ที่มาของการพัฒนา
- เมื่อต้องนำ LLM ที่มีต้นทุนและความสามารถต่างกันไปใช้งานจริง หากใช้โมเดลที่ทรงพลังที่สุดเพื่อให้ได้คำตอบคุณภาพสูงก็จะมีค่าใช้จ่ายสูง แต่ถ้าใช้โมเดลราคาถูกกว่าคุณภาพก็อาจลดลง
- การทำ LLM routing เป็นแนวทางที่ช่วยรักษาคุณภาพพร้อมลดต้นทุน โดยส่งคิวรีที่ง่ายไปยังโมเดลที่มีต้นทุนต่ำกว่า
- แต่ละคำขอจะมี cost threshold ที่ใช้กำหนด tradeoff ระหว่างต้นทุนกับคุณภาพ
เซิร์ฟเวอร์
- RouteLLM มีเซิร์ฟเวอร์แบบเบาที่รองรับ OpenAI compatibility สำหรับส่งต่อคำขอตามกลยุทธ์การ routing ที่หลากหลาย
- ใช้
--routers เพื่อระบุรายการเราเตอร์ที่ใช้งานได้ และใช้ --config เพื่อระบุพาธของไฟล์ตั้งค่าเราเตอร์
- โดยส่วนใหญ่แนะนำให้ใช้เราเตอร์
mf ที่ทั้งทรงพลังและมีขนาดเบา
- ไคลเอนต์จะส่งคำขอโดยระบุชื่อเราเตอร์และ threshold ในฟิลด์
model
การปรับเทียบ Threshold
- threshold ที่ใช้ในการ routing จะควบคุม tradeoff ระหว่างต้นทุนกับคุณภาพ
- เนื่องจากช่วง threshold ที่มีความหมายจะแตกต่างกันไปตามประเภทของเราเตอร์และคิวรีที่ได้รับ จึงควรปรับเทียบโดยใช้คิวรีตัวอย่างและสัดส่วนของคิวรีที่จะส่งไปยังโมเดลที่แข็งแกร่งกว่า
- โดยค่าเริ่มต้นรองรับการปรับเทียบ threshold บนฐานข้อมูล Chatbot Arena
- ควรปรับเทียบด้วยชุดข้อมูลที่คล้ายกับประเภทคิวรีที่ได้รับจริง
การประเมินผล
- RouteLLM ยังมีเฟรมเวิร์กสำหรับประเมินผลเพื่อวัดประสิทธิภาพของกลยุทธ์การ routing แบบต่าง ๆ บนเบนช์มาร์ก
- ใช้
--routers เพื่อระบุรายการเราเตอร์ที่จะประเมิน และใช้ --benchmark เพื่อระบุเบนช์มาร์กเฉพาะที่ต้องการประเมิน
- ผลการประเมินจะแสดงบนคอนโซล และมีการสร้างกราฟประสิทธิภาพของเราเตอร์ด้วย
- โดยค่าเริ่มต้น คู่โมเดลที่ใช้ในการประเมินคือ GPT-4 และ Mixtral และสามารถแก้ไขได้ด้วยแฟล็ก
--strong-model และ --weak-model
เราเตอร์
- RouteLLM มีเราเตอร์ 4 แบบที่ผ่านการฝึกกับคู่โมเดล
gpt-4-1106-preview และ mixtral-8x7b-instruct-v0.1
- รายการเราเตอร์:
mf, sw_ranking, bert, causal_llm, random
- เราเตอร์เหล่านี้สามารถ generalize ได้ดีกับคู่โมเดล strong/weak อื่น ๆ ด้วย จึงไม่จำเป็นต้องฝึกใหม่แม้จะเปลี่ยนคู่โมเดล
ความเห็นของ GN⁺
- RouteLLM ดูเป็นเฟรมเวิร์กที่มีประโยชน์สำหรับการใช้งาน LLM หลายแบบได้อย่างมีประสิทธิภาพ โดยเฉพาะความสามารถในการส่งคิวรีง่าย ๆ ไปยังโมเดลที่มีต้นทุนต่ำกว่าเพื่อลดค่าใช้จ่ายโดยยังรักษาคุณภาพไว้ได้ ซึ่งเป็นจุดที่น่าสนใจ
- จุดที่ดีอีกอย่างคือเราเตอร์ที่ให้มาสามารถ generalize ได้ดีกับคู่โมเดลหลายแบบ ผู้ใช้จึงไม่จำเป็นต้องฝึกเราเตอร์ด้วยตนเอง
- ฟังก์ชันการปรับเทียบ Threshold ก็ดูน่าสนใจ เพราะสามารถใช้ข้อมูลคิวรีจริงของผู้ใช้เพื่อหา threshold ที่เหมาะสมที่สุดได้
- อีกข้อดีคือสามารถใช้เฟรมเวิร์กการประเมินผลเพื่อเปรียบเทียบประสิทธิภาพของเราเตอร์และเบนช์มาร์กต่าง ๆ ได้อย่างง่ายดาย
- อย่างไรก็ตาม การใช้งานเฟรมเวิร์กนี้จำเป็นต้องเตรียมความพร้อมล่วงหน้า เช่น การตั้งค่า API key สำหรับโมเดลที่แข็งแกร่งและโมเดลที่อ่อนกว่า จึงอาจมีอุปสรรคในการเริ่มต้นใช้งานสำหรับผู้ใช้มือใหม่อยู่บ้าง
- โปรเจกต์อื่นที่มีความสามารถคล้ายกันคือโอเพนซอร์ส Multi-model ซึ่งมีฟังก์ชันรวมและ routing โมเดลภาษาหลายตัวผ่าน API เดียว
ยังไม่มีความคิดเห็น