• 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 เดียว

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น