Skip to content

LLM როუტერი

LLM როუტერი არის PRX-ის მოდელის შერჩევის ძრავა — 2,808 სტრიქონი Rust კოდი, რომელიც წყვეტს რომელი პროვაიდერი და მოდელი ამუშავებს ყოველ შემავალ მოთხოვნას. ის აბალანსებს ხარისხს, ხარჯს, დაყოვნებას და შესაძლებლობებს ოპტიმალური მარშრუტიზაციის გადაწყვეტილებების მისაღებად რეალურ დროში.

მარშრუტიზაციის ნაკადი

Section titled “მარშრუტიზაციის ნაკადი”
შემავალი მოთხოვნა
├─ 1. განზრახვის კლასიფიკაცია
│ მოთხოვნის კატეგორიზაცია (კოდი, ჩატი, ანალიზი, თარგმანი და ა.შ.)
├─ 2. მოდელის შერჩევა (ქულის მიმნიჭებელი)
│ ყველა კანდიდატი მოდელის შეფასება და რანჟირება
├─ 3. საიმედოობის სარეზერვო
│ თუ არჩეული მოდელი მიუწვდომელია, ჯაჭვში ჩამოსვლა
├─ 4. Automix
│ იაფი მოდელით დაწყება; განახლება თუ საიმედოობა დაბალია
└─ 5. შედეგის ჩაწერა
შედეგის ლოგირება Elo განახლებებისა და მომავალი მარშრუტიზაციის გადაწყვეტილებებისთვის

ყოველი კანდიდატი მოდელი იღებს კომპოზიტურ ქულას:

score = alpha * similarity
+ beta * capability
+ gamma * elo
- delta * cost
- epsilon * latency
ფაქტორიწონაწყარო
similarityalphaKNN სემანტიკური მანძილი მოთხოვნასა და მოდელის საუკეთესო წარსულ მოთხოვნებს შორის
capabilitybetaსტატიკური შესაძლებლობების მატრიცა (კოდირება, მათემატიკა, მსჯელობა, მრავალენიანი, ხედვა და ა.შ.)
elogammaდინამიური Elo რეიტინგი, განახლებული ყოველი დასრულებული მოთხოვნის შემდეგ
costdeltaტოკენზე ფასი (შეყვანა + გამოსავალი)
latencyepsilonმოცურავე საშუალო პასუხის დრო ამ მოდელისთვის

წონები კონფიგურირებადია და შეიძლება მორგება არხის ან მომხმარებლის მიხედვით ხარისხის ან ხარჯის პრიორიტეტიზაციისთვის.

განზრახვის კლასიფიკაცია

Section titled “განზრახვის კლასიფიკაცია”

კლასიფიკატორი ასახავს ყოველ მოთხოვნას ერთ ან მეტ განზრახვის კატეგორიაში:

განზრახვააღწერასასურველი შესაძლებლობები
codeკოდის წერა, დებაგი ან მიმოხილვაძლიერი კოდირების ბენჩმარკები
chatყოველდღიური საუბარიდაბალი დაყოვნება, იაფი
analysisმონაცემთა ანალიზი, რთული მსჯელობამაღალი მსჯელობის შესაძლებლობა
translationენის თარგმანიმრავალენიანი ძალა
visionგამოსახულების გაგებახედვის მოდელი აუცილებელი
mathმათემატიკური ამოცანების გადაჭრამათემატიკა/მსჯელობის ბენჩმარკები
creativeწერა, ბრეინშტორმინგიშემოქმედებითი თავისუფლება
tool_useაგენტური სამუშაო პროცესები ინსტრუმენტების გამოძახებითნეიტივი ინსტრუმენტების გამოძახება, ინსტრუქციების შესრულება

კლასიფიკაცია სწრაფია — იყენებს საკვანძო სიტყვების ევრისტიკებს და მსუბუქ მოდელის გამოძახებას ორაზროვნების შემთხვევაში.

შესაძლებლობების შესაბამისობა

Section titled “შესაძლებლობების შესაბამისობა”

ყოველ მოდელს აქვს სტატიკური შესაძლებლობების პროფილი, რომელიც აფასებს მას განზომილებებში:

claude-sonnet-4: coding=0.95 reasoning=0.93 creative=0.90 speed=0.80 cost=0.70
gpt-4o: coding=0.90 reasoning=0.88 creative=0.85 speed=0.85 cost=0.75
gemini-2.5-pro: coding=0.88 reasoning=0.90 creative=0.82 speed=0.82 cost=0.80
llama3.1-70b: coding=0.75 reasoning=0.70 creative=0.72 speed=0.90 cost=0.95

როუტერი ამრავლებს განზრახვასთან შესაბამის შესაძლებლობების ქულებს beta-ზე საბოლოო ქულის შესაძლებლობის კომპონენტის მისაღებად.

ყოველი მოდელი ინახავს Elo რეიტინგს, რომელიც განახლდება ყოველი მოთხოვნის შემდეგ. როცა მოთხოვნა წარმატებულია (მომხმარებელი მიიღებს პასუხს, ხელახალი ცდა არ სჭირდება), მოდელი იძენს Elo-ს. როცა მოთხოვნა ჩავარდება ან ხელახლა ცდება სხვა მოდელზე, მოდელი კარგავს Elo-ს.

ეს ქმნის თვითკორექტირებად უკუკავშირის ციკლს: მოდელები, რომლებიც კარგად მუშაობენ პრაქტიკაში, იზრდებიან რანჟირებაში, მათი სტატიკური ბენჩმარკების მიუხედავად.

KNN სემანტიკური მარშრუტიზაცია

Section titled “KNN სემანტიკური მარშრუტიზაცია”

როუტერი ინახავს წარსული მოთხოვნებისა და მათი შედეგების ემბედინგების ინდექსს. ყოველი ახალი მოთხოვნისთვის, ის პოულობს K უახლოეს წარსულ მოთხოვნას (ემბედინგის მსგავსებით) და ამოწმებს რომელმა მოდელებმა ყველაზე კარგად იმუშავეს მსგავს შეყვანებზე.

ეს განსაკუთრებით ღირებულია სპეციალიზებული დომენებისთვის — თუ კონკრეტული მოდელი თანმიმდევრულად კარგად ამუშავებს SQL კითხვებს თქვენს გარემოში, როუტერი სწავლობს მის პრეფერენციას SQL-თან დაკავშირებული მოთხოვნებისთვის.

Automix არის ხარჯის ოპტიმიზაციის სტრატეგია:

  1. მოთხოვნის მარშრუტიზაცია იაფ მოდელზე ჯერ (მაგ., Haiku, GPT-4o-mini)
  2. პასუხის საიმედოობის შეფასება (მოდელის თვითშეფასებაზე, პასუხის თანმიმდევრულობაზე და გამოსავლის ხარისხის სიგნალებზე დაყრდნობით)
  3. თუ საიმედოობა ზღვარს ქვემოთაა, ხელახალი მარშრუტიზაცია პრემიუმ მოდელზე (მაგ., Opus, o3)
  4. პრემიუმ პასუხის დაბრუნება მომხმარებლისთვის

ეს დაზოგავს ხარჯებს მარტივ მოთხოვნებზე ხარისხის შენარჩუნებით რთულებზე. საიმედოობის ზღვარი რეგულირებადია.

მოთხოვნა ──→ იაფი მოდელი ──→ საიმედოობის შემოწმება
≥ ზღვარი → იაფი პასუხის დაბრუნება
< ზღვარი → ხელახალი მარშრუტიზაცია პრემიუმ მოდელზე
→ პრემიუმ პასუხის დაბრუნება

როუტერი ლოგავს ყოველ მარშრუტიზაციის გადაწყვეტილებას და მის შედეგს:

  • რომელი მოდელი შეირჩა და რატომ (ქულის დეტალიზაცია)
  • მოთხოვნა წარმატებული იყო თუ ხელახლა ცდილია
  • პასუხის დაყოვნება და ტოკენების რაოდენობა
  • მომხმარებლის უკუკავშირის სიგნალები (თუ ხელმისაწვდომია)

ეს ისტორია აწვდის Elo სისტემას, KNN ინდექსს და უზრუნველყოფს მარშრუტიზაციის ქცევის დაკვირვებადობას.

ცივი სტარტის დაცვა

Section titled “ცივი სტარტის დაცვა”

როცა PRX იწყება ახლიდან ისტორიის გარეშე, როუტერი ბრუნდება გონივრულ ნაგულისხმევებზე:

  • Elo რეიტინგები ინიციალიზდება 1500-ზე ყველა მოდელისთვის
  • KNN ინდექსი ცარიელია, ამიტომ similarity ნულს აძლევს ქულას
  • შესაძლებლობების შესაბამისობა და ხარჯი/დაყოვნება ხდება დომინანტური ფაქტორები
  • კონფიგურირებადი default_model გამოიყენება ქულების თანაბრობისას

სისტემის ისტორიის დაგროვებისას, დინამიური კომპონენტები (Elo, KNN) თანდათან ცვლიან სტატიკურ ევრისტიკებს.

[router]
default_model = "anthropic/claude-sonnet-4-20250514"
# ქულის წონები
alpha = 0.25 # სემანტიკური მსგავსება
beta = 0.30 # შესაძლებლობების შესაბამისობა
gamma = 0.20 # Elo რეიტინგი
delta = 0.15 # ხარჯის ჯარიმა
epsilon = 0.10 # დაყოვნების ჯარიმა
# Automix
automix_enabled = true
automix_cheap_model = "anthropic/claude-haiku-4-20250414"
automix_premium_model = "anthropic/claude-sonnet-4-20250514"
automix_confidence_threshold = 0.7
# სარეზერვო ჯაჭვი
fallback_chain = [
"anthropic/claude-sonnet-4-20250514",
"openai/gpt-4o",
"google/gemini-2.5-pro",
]