Занимался изучением вопроса удешевления стоимости токенов во время работы с облачными LLM.
Изучил некоторые способы и решил рассказать о двух популярных и простых в использовании подходах, которые можно применить для этого.
🔺Кэширование промптов (Prompt Caching)
Это метод, в котором часто используемые промпты сохраняются в памяти провайдера LLM. Он основан на сохранении KV-cache.
Этот подход следует использовать в тех случаях, когда в ваших обращениях к LLM присутствуют большие инструкции, которые повторяются в каждом запросе. Например:
У вас огромный системный промпт, в котором описаны правила решения задачи пользователя. Каждый раз, когда пользователь дает новую задачу - вы отправляете LLM текст в формате "system prompt" + "user query". "system prompt" - всегда одинаковый. А соответственно, его можно закэшировать, и обрабатывать только часть "user query".
У OpenAI кэширование происходит автоматически, у Anthropic при вызове LLM нужно передавать параметр
cache_control. У других провайдеров схожая схема.Использование кэширования позволяет снизить стоимость токенов до 10 раз. Кроме того, кэш позволяет ускорить обработку запросов за счёт того, что модель не обрабатывает закэшированную часть промпта заново.
Разобраться в работе этого механизма мне помогло следующее видео. Советую к просмотру.
🔺Пакетная обработка (Batсh API)
Следующий метод экономии, который дают провайдеры - это Batсh API. Этот подход немного отличается от типичного представления пакетной обработки запросов.
В объяснении этот подход чуть проще:
Исходно да, вы берете большое количество запросов к модели (например 10.000), и отправляете в LLM. Но обработка запросов происходит не мгновенно - а в течении 24 часов. Да да, вы не ослышались.
Использование Batсh API позволяет сэкономить до 50% стоимости токенов. Следует его применять, если вам необходимо обработать тысячи запросов и нет необходимости получать ответ в реальном времени. Популярные провайдеры как OpenAI, Anthropic, Google предоставляют такой функционал.
Реализация этого не сложная. У OpenAI нужно собрать список запросов в JSONL, а после отправить его в нужном формате. У Anthropic - собрать список запросов в массив и отправить их на обработку. И в течении 24 часов можно получить ответ, зато дешевле на 50% чем при обычном использовании.
Это были не единственные методы снижения стоимости токенов при использовании LLM, но одни из самых простых в реализации и дающих заметную экономию.
В комментариях прикрепил наглядное видео из NotebookLM 🙂
Максим Максимов // IT, AI