Как работает ценообразование LLM API

Токены, ввод и вывод, контекстные окна — почему одна и та же задача может стоить в 50 раз дороже для одной модели, чем для другой, объясняется просто.

ДомУчиться › Оперативное кэширование: как сократить расходы на повторные вызовы

Оперативное кэширование: как сократить расходы на повторные вызовы

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

Что на самом деле делает кэширование подсказок

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

Ключевое слово префикс. Кэширование работает с самого начала вашего приглашения, вплоть до того момента, когда содержимое начинает отличаться. Если первые 5000 токенов каждого запроса идентичны (скажем, фиксированный блок инструкций плюс справочный документ), эти токены можно кэшировать, а уникальный вопрос пользователя в конце обрабатывается обычным образом.

Почему это экономит деньги

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

Вот наглядный пример (придуманы тарифы для наглядности). Предположим, что ввод обычно стоит 3 доллара за миллион токенов, а чтение из кэша стоит 0,30 доллара за миллион. Если вы отправляете фиксированное приглашение на 10 000 токенов на 1 000 вызовов, его обработка каждый раз будет стоить 10 000 x 1 000 = 10 миллионов токенов x 3 доллара США = 30 долларов США. При кэшировании первый вызов оплачивается полностью, а остальные считываются из кэша: примерно 10 000 x 3 доллара США/миллион + 9,99 миллиона x 0,30 доллара США/миллион, что близко к 3 долларам США. Именно такой масштаб становится возможным благодаря сохранению повторяющихся префиксов.

Обычно существует стоимость записи и ограничение по времени.

Кэширование не является полностью бесплатным. Большинство провайдеров взимают небольшую надбавку за писать содержимое в кеш в первый раз, иногда примерно на 25% выше обычной скорости ввода для этих токенов. Вы восстанавливаете это при последующих чтениях, поэтому кэширование окупается только тогда, когда один и тот же префикс используется повторно достаточное количество раз.

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

Кэширование экономит деньги, а не контекстное пространство.

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

Кэширование снижает сумму, которую вы платите, и время ожидания обработки этих токенов. Это не увеличивает количество текста, которое модель может видеть одновременно. Если вы достигли предела контекстного окна, кэширование не исправит это, вам все равно придется обрезать историю, суммировать или перейти к модели с большим окном. Кэширование помогает только в том случае, если ваше приглашение уже подходит.

То же самое относится к ограничениям поминутной скорости токена у большинства провайдеров: кэшированные токены обычно по-прежнему учитываются в вашей квоте токенов в минуту даже по сниженной цене. Кэшированная рабочая нагрузка большого объема все равно может быть ограничена по скорости, даже если счет невелик, поскольку ограничитель отслеживает количество токенов, а не долларов.

Когда кэширование того стоит

Оперативное кэширование проявляется в определенных шаблонах:

  • Длинные фиксированные системные подсказки повторно используется многими пользователями или запросами.
  • Документ: вопросы и ответы где один большой документ запрашивается много раз за сеанс.
  • Подсказка из нескольких кадров с большим блоком примеров, который никогда не меняется.
  • Чат-боты где ранние ходы разговора остаются постоянными, а новые добавляются.

Оно того не стоит, когда каждый запрос уникален, когда ваш фиксированный префикс невелик (несколько сотен токенов) или когда вызовы редки и находятся далеко друг от друга, поэтому срок действия кэша постоянно истекает.

Как структурировать запросы для кэширования

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

Избегайте добавления динамических значений (временных меток, имен пользователей, случайных идентификаторов) в первую часть приглашения. Даже один измененный символ на раннем этапе может сделать кеш недействительным. Храните эти динамические биты в хвосте запроса, где им и место.

Оценка выигрыша

Чтобы решить, помогает ли кэширование, сравните два числа: размер вашего фиксированного префикса в токенах и количество раз, которое вы повторно используете в окне кэширования. Чем больше жетонов в префиксе и чем больше раз вы его повторно используете, тем больше выигрыш. Крошечный префикс, использованный дважды, почти ничего не спасает; Префикс на 20 000 токенов, используемый повторно сотни раз в час, — это то, где кэширование преобразует ваш счет.

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

Часто задаваемые вопросы

Изменяет ли кэширование подсказок выходные данные модели?

Нет. Кэширование повторно использует только обработанное входное состояние для экономии средств и задержки. Модель выдает тот же результат, что и без кэширования, поскольку базовые токены идентичны.

Как долго кэшированное приглашение остается действительным?

Это зависит от поставщика, но обычно по умолчанию используется несколько минут бездействия до истечения срока действия кэша. Некоторые провайдеры предлагают продление срока хранения за дополнительную плату. Частое повторное использование сохраняет кэш теплым.

Есть ли риск кэширования конфиденциальных данных?

Кэшированный контент привязан к вашей учетной записи и используется только для обслуживания ваших повторных запросов, но вам все равно следует следовать политике данных вашего провайдера и избегать кэширования всего, что вам не разрешено хранить.

Позволяет ли кэширование подсказок разместить больше контента в контекстном окне?

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

Только образовательный, а не финансовый совет.

Tools & Hosting

📈 TradingView🔒 NordVPN💳 RevolutDigitalOcean $200Hostinger