Короткий вывод
Каскад из малой и большой LLM может заметно снизить стоимость инференса, но только если компания считает не долю запросов, отправленных в дешёвую модель, а стоимость принятого результата с учётом повторных вызовов, проверки и ошибок. Для малого и среднего бизнеса самый безопасный старт — не обученный «умный роутер», а правила риска, малая модель в теневом режиме и явный порог передачи сильной модели.
Исследования RouteLLM и FrugalGPT показывают, что маршрутизация между моделями способна улучшать соотношение качества и стоимости. Но опубликованные проценты экономии получены на конкретных наборах данных, моделях и ценах. Их нельзя переносить в бюджет службы поддержки, отдела продаж или внутреннего RAG без собственной выборки и собственной цены ошибки.
Что именно маршрутизировать
Есть два похожих, но экономически разных паттерна.
Первый — маршрутизация до генерации. Классификатор или роутер оценивает запрос и сразу отправляет его одной из двух моделей. Именно такую постановку рассматривает RouteLLM: каждый запрос получает только одна модель. Преимущество — нет обязательной двойной генерации. Риск — ошибочный выбор слабой модели может остаться незамеченным.
Второй — каскад. Сначала отвечает малая модель, затем валидатор решает, достаточно ли надёжен результат. Если нет, запрос вместе с контекстом уходит сильной модели. FrugalGPT описывает именно последовательный вызов: следующие модели включаются, пока ответ не сочтён достаточно надёжным. Такой подход проще объяснить бизнесу, но при частых отказах от первого ответа компания платит и за малую, и за большую модель, а пользователь ждёт обе.
Для процессов с разной ценой ошибки эти паттерны можно сочетать:
- платежи, юридические формулировки, персональные данные и запись в учётную систему сразу отправлять сильной модели или человеку;
- классификацию обращений, извлечение простых полей и черновики типовых ответов отдавать малой модели;
- неоднозначные запросы и результаты, не прошедшие проверку, переводить на сильную модель;
- любые действия во внешней системе выполнять детерминированным сервисом после проверки, а не самой LLM.
Модельный расчёт: экономия до и после цены ошибки
Ниже не рыночный тариф, а модель с явными допущениями. Компания обрабатывает 20 000 запросов в месяц. Внутренняя себестоимость одного вызова малой модели принята равной 0,35 рубля, сильной — 2,80 рубля, а маршрутизации и журналирования — 0,05 рубля на запрос. В эти ставки условно включены аренда или амортизация GPU, электричество и базовая эксплуатация; разработка интеграции считается отдельно.
Роутер отправляет 65% запросов малой модели. Из них 18% не проходят проверку и повторно обрабатываются сильной моделью.
Расчёт без цены незамеченной ошибки:
- малая модель: 13 000 × 0,35 = 4 550 рублей;
- сильная модель сразу: 7 000 × 2,80 = 19 600 рублей;
- сильная модель после отказа каскада: 2 340 × 2,80 = 6 552 рубля;
- роутер и трассировка: 20 000 × 0,05 = 1 000 рублей;
- итого: 31 702 рубля вместо 56 000 рублей при обработке всех запросов сильной моделью.
На этом уровне экономия составляет 24 298 рублей, или около 43%. Выглядит убедительно — пока в модели нет стоимости неверно принятого ответа.
Малая модель окончательно обслужила 10 660 запросов. Допустим, 0,3% этих результатов прошли автоматическую проверку ошибочно, а средняя стоимость исправления одного такого случая — 300 рублей. Дополнительный ущерб равен примерно 9 594 рубля. Реальная экономия падает до 14 704 рублей, или примерно 26%.
При тех же допущениях точка безубыточности наступает, когда доля незамеченных ошибок среди принятых ответов малой модели приближается к 0,76%. Это главный управленческий вывод: даже редкая ошибка может съесть выгоду от дешёвого инференса, если она приводит к возврату, повторной работе менеджера или неверной операции в системе.
Универсальная формула месячной стоимости выглядит так:
`N × Crouter + N × p × Csmall + N × (1 − p + p × f) × Cstrong + N × p × (1 − f) × e × L`
где `N` — число запросов, `p` — доля маршрутизации в малую модель, `f` — доля последующего отказа и перехода к сильной модели, `e` — доля незамеченных ошибок среди принятых ответов, `L` — средняя стоимость такой ошибки.
Почему лабораторная экономия не равна вашему TCO
RouteLLM сообщает крупное снижение стоимости на MT Bench, MMLU и GSM8K при сохранении заданной доли качества сильной модели. Это важное доказательство принципа, но не готовое коммерческое предложение. Бизнес-задача отличается как минимум в пяти местах.
Во-первых, качество должно измеряться не общей «умностью», а принятием конкретного результата: корректно ли извлечены реквизиты, верно ли выбрана категория, не нарушена ли политика ответа, можно ли отправить черновик клиенту.
Во-вторых, стоимость локальной модели не линейна по токенам. Если для сильной модели зарезервирована отдельная GPU и она простаивает, уменьшение числа запросов не всегда уменьшает счёт. Экономия появляется, когда можно сократить аренду, повысить полезную загрузку общего кластера или отложить покупку следующей карты.
В-третьих, каскад может ухудшить задержку. При неудаче слабой модели пользователь получает сумму времени первой генерации, проверки, очереди и второй генерации. Для интерактивного помощника это заметнее, чем для ночной пакетной обработки.
В-четвёртых, две модели означают две версии промптов, два профиля наблюдаемости, отдельные тесты после обновления весов и возможную фрагментацию кэша. Это постоянная эксплуатационная работа, а не разовая настройка порога.
В-пятых, уверенность самой LLM плохо подходит как единственный сигнал. Модель может уверенно ошибаться. Надёжнее сочетать риск-класс процесса, признаки запроса, детерминированные проверки результата и статистику на размеченной выборке.
Минимальная архитектура без магии
Практичная схема для локального контура состоит из восьми узлов:
1. Шлюз аутентифицирует пользователя, применяет права доступа, удаляет запрещённые поля и присваивает идентификатор трассы.
2. Правила риска сразу исключают операции, которые нельзя отдавать слабой модели.
3. Роутер оценивает домен, длину, наличие инструментов, тип требуемого ответа и похожесть на размеченные примеры.
4. Малая модель создаёт ответ или структурированный результат.
5. Валидатор проверяет JSON-схему, обязательные поля, ссылки на источники, бизнес-правила и порог качества.
6. Сильная модель получает исходный запрос и необходимые данные, если первая попытка отклонена. Черновик слабой модели лучше не передавать автоматически: он может закрепить ошибку.
7. Человек принимает решения для высокорисковых и спорных случаев.
8. Трасса сохраняет выбранную модель, причину маршрута, токены, задержку, исход проверки и итоговое исправление без лишних персональных данных.
Какие данные собрать до переключения трафика
Нужен золотой набор не из случайных диалогов, а из слоёв, отражающих бизнес-риск:
- простые типовые запросы;
- длинные или многошаговые запросы;
- редкие категории;
- случаи с персональными и коммерчески чувствительными данными;
- запросы, требующие инструмента или записи во внешнюю систему;
- исторические ошибки и эскалации сотрудников.
На каждом примере следует сохранить допустимый результат, класс риска и стоимость ошибки. Для свободного текста полезна парная оценка моделей экспертами, для структурированных задач — схема, справочники и сверка с системой-источником.
Порог выбирают не по максимальной доле запросов малой модели. Строят кривую «стоимость — качество» и отдельно смотрят:
- долю принятых ответов малой модели;
- долю переходов к сильной модели;
- незамеченные ошибки малой модели;
- стоимость принятого результата;
- p95 задержки для прямого и каскадного маршрута;
- нагрузку на человека;
- результат по каждому классу риска.
Что измерять в локальном инференсе
Документация vLLM перечисляет метрики, которые превращают расчёт из таблицы допущений в эксплуатационную экономику: число выполняющихся и ожидающих запросов, использование KV-кэша, входные и выходные токены, время до первого токена, межтокенную задержку, полную задержку и время в очереди. Перезапуск модели, вытеснение из памяти и пики очереди тоже должны попадать в стоимость принятого ответа.
Если обе модели работают на одной GPU, пилот обязан проверить взаимное влияние очередей. Если на разных — считать стоимость зарезервированной мощности, а не только активные секунды. Для пакетного процесса можно заполнять дешёвую очередь ночью; для клиентского чата важнее запас по p95.
Приёмочный пилот на четыре недели
Первая неделя — собрать 1 000–3 000 репрезентативных запросов, удалить лишние персональные данные, разметить риск и критерии принятия. Вторая — прогнать обе модели и простой роутер в теневом режиме, не меняя ответ пользователю. Третья — выбрать два или три порога и сравнить стоимость, качество и p95. Четвёртая — включить малую модель только для низкорискового слоя с автоматическим откатом на сильную.
До расширения трафика должны выполняться четыре условия:
- экономия остаётся положительной после стоимости ошибок и ручной проверки;
- незамеченные ошибки не превышают заранее утверждённый предел по каждому классу риска;
- p95 каскадного маршрута соответствует SLA;
- обновление любой модели автоматически запускает повторную оценку и позволяет быстро вернуть весь трафик на сильную модель.
Следующий шаг руководителю
Возьмите один массовый процесс с дешёвой проверкой результата: классификацию обращений, извлечение фиксированных полей или подготовку черновика по шаблону. Зафиксируйте стоимость сильной модели как базовую линию, добавьте в расчёт цену ошибки и проведите теневой прогон. Если экономия исчезает при доле незамеченных ошибок меньше одного процента, сначала улучшайте валидацию и данные, а не усложняйте роутер.
Каскад моделей — не способ заставить маленькую LLM изображать большую. Это механизм бюджетного контроля: простые задачи получает дешёвый исполнитель, сложные — сильный, а правила и человек не дают экономии превратиться в счёт за исправления.
