Как снизить стоимость и задержку приложения на LLM?
- Почему LLM отвечает медленно?
- Что такое кэширование промпта?
- Что такое время до первого токена?
Платим и ждём за токены: меньше входа и выхода, модель по задаче, кэш, стриминг и параллельность.
- Задержка = время до первого токена + скорость генерации × длина ответа
- Кэширование неизменного начала промпта, кэш готовых ответов, маленькая модель для простых запросов
А ещё Любую оптимизацию проверять на наборе: экономия не должна ронять качество
Подробно
Из чего складывается. Стоимость — входные и выходные токены (выходные обычно дороже). Задержка — время до первого токена (растёт с длиной входа и загрузкой провайдера) плюс время генерации, пропорциональное длине ответа.
Как снижать:
- короче вход — убрать лишнее из промпта, сжимать историю, давать меньше, но точнее фрагменты RAG;
- короче выход — ограничить длину, просить формат без «воды»; длинный ответ — главный источник задержки;
- модель по задаче — простые запросы (классификация, извлечение) — маленькой быстрой моделью, сложные — большой; маршрутизация между ними;
- кэширование промпта — многие провайдеры кэшируют неизменное начало промпта (системный текст, документы), и повторные запросы дешевле и быстрее; поэтому неизменное ставят в начало;
- кэш ответов — на одинаковые или очень похожие запросы;
- стриминг — показывать ответ по мере генерации: пользователь видит результат почти сразу;
- параллельность — независимые запросы выполнять одновременно; можно запустить несколько моделей и взять первый хороший ответ;
- пакетная обработка — для фоновых задач дешевле, если не нужна мгновенность.
Пример
Ассистент в звонке: первые слова подсказки нужны за 1–2 секунды. Помогают короткий ответ в 3–5 строк, стриминг, быстрая модель для первого ответа, неизменный системный промпт в начале для кэширования и запуск запроса сразу по концу вопроса.
Что хотят услышать
- Из чего состоят стоимость и задержка.
- Конкретные приёмы: длина, модель, кэш, стриминг, параллельность.
- Контроль качества при оптимизации.
Частые ошибки
- Думать только о стоимости входа и забывать про длину ответа.
- Переходить на дешёвую модель без проверки качества.
Проверьте себя
Несколько верных вариантов. Подумайте, потом откройте ответ.
Показать варианты и ответ
- ✓Сократить вход и выход, выбрать модель под задачу
- ✓Кэшировать неизменное начало промпта и готовые ответы
- ✓Стриминг ответа и параллельные вызовы
- ✗Всегда использовать самую большую модель — она отвечает за меньше токенов
Что спросят дальше
Разбор темы
- LLM в продакшене — стоимость, надёжность и наблюдаемость
Как сделать LLM-функцию быстрой, недорогой и надёжной — стриминг, повторы, кэш, guardrails, трассировка и борьба с галлюцинациями.
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.