FAIRouter: открытая библиотека для автоматического выбора LLM под задачу

В открытый доступ выложили библиотеку FAIRouter — она автоматически подбирает LLM-исполнителя под конкретный запрос, а после ответа проверяет его с помощью модели-судьи. Код распространяется под лицензией Apache 2.0.

Главное
  • FAIRouter выбирает модель по прогнозу качества, стоимости и скорости для каждой задачи
  • Библиотека выложена под Apache 2.0 в двух реализациях: Python 3.11 и C# на .NET 10
  • По данным каталога OpenRouter, разброс цен на выход среди 428 моделей достигает тысячи раз
Схема работы библиотеки FAIRouter: выбор LLM-исполнителя под задачу и проверка ответа моделью-судьёй
Фото: Хабр: Машинное обучение

Разработчики выложили в открытый доступ библиотеку FAIRouter, которая автоматически выбирает подходящую LLM под конкретную задачу. После получения ответа система проверяет работу исполнителя с помощью модели-судьи. Код распространяется под лицензией Apache 2.0.

Зачем это нужно

Разработчики, работающие с LLM, регулярно сталкиваются с выбором модели. Одни лучше генерируют тексты, другие сильны в коде, третьи точнее в фактах внутри узкой области. Универсальной модели, лучшей во всём, не существует, а стоимость и скорость у них различаются.

По данным каталога сервиса OpenRouter, из 428 моделей цена выхода различается в тысячу раз — от 0,03 до 25 долларов за миллион токенов. Отправлять все запросы в самую мощную модель дорого, а в дешёвую — можно потерять качество на сложных задачах.

Как устроен выбор

FAIRouter сначала отсеивает модели, которые прогнозируемо не дают нужного качества, а затем среди оставшихся ищет оптимальную по метрике, учитывающей качество, стоимость и время. Прогноз качества строится так: LLM извлекает параметры технического задания, после чего считается скалярное произведение с обучаемым вектором весов для каждой модели. Стоимость и время прогнозировать проще — нужно оценить объём выхода, а зная объём входа и выхода, можно точно посчитать и цену, и задержку.

Проверка выбора построена по принципу «пусть выбор проверяет судья, а судью проверяет человек». Критик показывает расхождения с заданием по пунктам — например, заказанный стиль, число таблиц, ссылки на источники или объём в символах.

Установка и провайдеры

Библиотека ставится с GitHub. Для Python-версии достаточно импортировать модуль, указать API-ключ и список моделей-кандидатов. Кандидатов можно перечислить идентификаторами: цены, размер окна и возможности берутся из каталога поставщика, начальная скорость — из замеров Artificial Analysis, стартовое качество по типам задач — из датасетов авторов. При необходимости кандидата можно описать вручную.

Ключ создаётся в OpenRouter, но привязываться к этому сервису необязательно: поддерживается любой OpenAI-совместимый провайдер. Если нужна просто «любая подходящая модель» внутри агента, FAIRouter можно поднять как OpenAI-совместимый сервер с единственной моделью auto.

Для профиТехнические детали: архитектура, цифры, ссылки
  • Лицензия: Apache 2.0
  • Реализации: C# на .NET 10 и Python 3.11, из зависимостей только numpy
  • Установка: pip install «git+https://github.com/MASFractal/FAIRouter»
  • Провайдеры: from_openrouter, from_fractalrouter, from_openai_compatible(base_url, …)
  • Скорость кандидатов: замеры Artificial Analysis по 147 моделям каталога
  • Классификатор: хранится в файле БД database_path=»fai-router.db», инициализирован на данных сервиса Арена
  • Интеграция: запуск как OpenAI-совместимого сервера с моделью auto, например для OpenClaw
  • Репозиторий: github.com/MASFractal/FAIRouter

Вопросы и ответы

Под какой лицензией выходит FAIRouter?
Библиотека распространяется под лицензией Apache 2.0.
На каких языках реализован FAIRouter?
Есть две независимые реализации: на Python 3.11 и на C# для .NET 10.
Нужно ли обязательно использовать OpenRouter?
Нет, поддерживается любой OpenAI-совместимый провайдер, включая FractalRouter.