Как снизить расходы на LLM без потери качества ответов?

Автоматический перевод

Эта статья была автоматически переведена с оригинальной английской версии.

Измеряйте стоимость успешно выполненной задачи, затем тестируйте ограничения длины ответа, кэширование, пакетную обработку или более дешёвые модели на отложенном наборе для оценки. Меньший счёт за токены полезен, только если система по-прежнему выполняет требования к качеству и латентности. Начните с повторяющейся работы или дорогих групп запросов, которые видны в данных об использовании.

Определите фактическую стоимость

Для API с ценами за миллион токенов упрощённая стоимость запроса без кэширования составляет:

cost=input tokens×input price+output tokens×output price106\text{cost} = \frac{\text{input tokens} \times \text{input price} + \text{output tokens} \times \text{output price}}{10^6}

Используйте актуальные тарифы, например из документации OpenAI по ценам. Отдельно учитывайте цены на кэшированный ввод, плату за инструменты и повторные попытки. Сравнивайте сумму затрат на все вызовы, нужные для завершения задачи, включая роутинг и валидацию.

При размещении на собственной инфраструктуре учитывайте время GPU, простаивающие мощности, хранение данных, сеть, эксплуатацию и инженерную работу. Если делить только стоимость аренды GPU на число сгенерированных токенов, можно упустить существенные расходы.

Применяйте изменения к подходящим запросам

ИзменениеГде оно может помочьЧто проверить
Более короткие ответыОтветы с ненужными подробностямиПолноту и ошибки обрезки
Prefix cachingПовторяющиеся совместимые префиксы промптовДолю попаданий, условия провайдера и удерживаемую память
Пакетная обработкаРаботу, которая может подождатьСрок завершения и обработку сбоев
Роутинг моделейЗапросы, на которые может ответить более дешёвая модельОшибочно направленные запросы, стоимость роутера и качество всего процесса
КвантизацияПоддерживаемые пары модели и рантайма на собственной инфраструктуреКачество, throughput, память и допустимый размер пакета

Не удаляйте найденные подтверждающие материалы только ради сокращения промпта. Проверьте, увеличивает ли недостающий контекст число неверных ответов или повторных попыток.

Сравнивайте полные задачи

Допустим, гипотетическая нагрузка направляет 70% запросов в более дешёвую модель и 30% — в более сильную. Стоимость вызовов моделей составляет 0.7 × cheap cost + 0.3 × strong cost, плюс роутинг, повторные попытки и другие вызовы. Это предположения о распределении запросов, а не прогноз экономии.

Запустите один и тот же набор для оценки до и после изменения. Укажите ошибки качества, латентность, долю завершённых задач и общую стоимость. RouteLLM показывает роутинг с ограничениями качества в конкретных экспериментах; историческое соотношение затрат не предсказывает ваш счёт.

О связанных методах сервинга читайте в разделе оптимизация затрат в LLM Engineering Guide.