Компромиссы стоимости и задержки
Качество, стоимость и скорость тянут в разные стороны. Нельзя максимизировать все три сразу — но можно тратить каждый ресурс там, где он важен, и экономить везде остальном.
Треугольник
Более крупная модель умнее, но медленнее и дороже; меньшая — быстрая и дешёвая, но менее способная. Хорошая инженерия — это направление каждой задачи в правильную точку этого треугольника.
Самые большие рычаги (примерно по порядку)
- Подбирайте размер модели под задачу. Не запускайте Opus для классификации. Начните с Sonnet, опуститесь до Haiku для простых/высокообъёмных шагов, приберегите Opus для сложных частей — Выбор модели.
- Уровни/каскады моделей. Сначала используйте дешёвую модель; эскалируйте к более сильной только когда нужно (например, в случаях с низкой уверенностью).
- Кэширование промптов. Переиспользуйте стабильный префикс промпта между вызовами — большая экономия для повторяющихся системных промптов, контекста RAG или каталогов инструментов агента.
- Урезайте входные токены. Отправляйте только то, что важно; RAG лучше, чем впихивать всю базу знаний. Более короткие входные данные = дешевле и часто лучше.
- Ограничивайте вывод разумным
max_tokensи строгими инструкциями по формату. - Объединяйте в пакеты офлайн-работу там, где задержка не имеет значения.
Победы конкретно по задержке
- Стримьте ответы, чтобы пользователи сразу видели вывод — огромный выигрыш в воспринимаемой скорости, даже когда общее время не меняется (Стриминг).
- Распараллеливайте независимые подвызовы.
- Кэшируйте повторяющуюся работу; предвычисляйте там, где можете.
- Выбирайте меньшую модель для интерактивного пути; тяжёлую работу делайте асинхронно.
Не оптимизируйте вслепую
Сначала измеряйте: куда на самом деле уходят токены и секунды? Затем оптимизируйте самую крупную статью. И перепроверяйте качество с помощью оценок после любого сокращения затрат — более дешёвая конфигурация, которая ошибается, не дешевле.