Что такое оперативное кэширование на самом деле
Большинство приложений LLM отправляют один и тот же блок текста в начале каждого запроса — длинное системное приглашение, набор определений инструментов, несколько примеров или фрагмент справочного контекста. Обычно вы платите полную стоимость входной токен цена за этот блок при каждом вызове, даже если она никогда не меняется.
Оперативное кэширование позволяет провайдеру хранить эту стабильную префикс после первого звонка, а за последующие звонки, начинающиеся с точно такого же текста, выставляйте счет по небольшой доле обычного тарифа — часто около 10% (скидка ~90%). Вы по-прежнему платите полную цену за часть, которая меняет каждый звонок (фактический вопрос пользователя), но фиксированные накладные расходы становятся почти бесплатными.
Подскажите калькулятор экономии кэширования →Как это работает у разных провайдеров
Есть два основных варианта, и разница имеет значение для вашего счета.
Явное кэширование (например, Anthropic)
Вы отмечаете, где заканчивается кэшируемый префикс. Первый звонок пишет кэш и стоит немного более чем обычный входной токен — обычно около 1.25× скорость ввода — потому что провайдеру приходится хранить обработанный префикс. Каждый последующий вызов, который повторно использует его, является чтение кэша, счет примерно 0.1× скорость ввода. В кэше есть время жизни (TTL) — часто несколько минут — и обновляется при каждом посещении, поэтому постоянный поток трафика поддерживает его в тепле.
Автоматическое кеширование (например, OpenAI и другие)
Поставщик обнаруживает повторяющиеся префиксы и применяет скидку без надбавки за запись в кеш и без изменений кода. Это проще, но у вас меньше контроля: вы не можете принудительно использовать долгоживущий кеш, а правила скидок и приемлемости устанавливаются провайдером (обычно вступают в силу, когда префикс достигает минимальной длины).
| Явный кеш | Автоматический кэш | |
|---|---|---|
| Кто решает, что кэшировать | Вы (отметьте префикс) | Провайдер (обнаруживает повторы) |
| Стоимость записи в кэш | ~1,25× ввод, один раз | Никто |
| Стоимость чтения кэша | ~0,1× вход | Со скидкой (набор поставщика) |
| Контроль над TTL | Да | Нет |
Множители представляют собой типичные опубликованные значения и различаются в зависимости от модели и поставщика. Обязательно уточняйте их на странице цен поставщика.
Компромисс между записью и чтением — когда он окупается
При использовании явного кэша вы платите небольшую единовременную надбавку за запись, а затем получаете большую скидку за каждое чтение. Таким образом, кэширование окупится, как только вы повторно используйте префикс достаточное количество раз, чтобы компенсировать стоимость записи. Выход на безубыточность происходит быстро: надбавка за запись составляет всего лишь около 0,25× дополнительных входных данных, в то время как каждое чтение экономит около 0,9× входных данных — так что вы опередите примерно после два повторных использования того же префикса. После этого каждое попадание — это почти чистая экономия.
Ингредиенты, которые делают кэширование очевидным преимуществом:
- Большой повторяющийся префикс — чем больше фиксированных токенов, тем больше скидка в абсолютном выражении.
- Высокая громкость звонков — многие запросы имеют один и тот же префикс в окне TTL.
- Стабильный префикс — повторно используемый блок побайтно идентичен при каждом вызове.
Приложения с расширенными возможностями поиска, помощники по программированию с большими системными подсказками и многоходовой чат — все это соответствует этой форме. См. более широкую тактику в руководство по сокращению счета за LLM API.
Проработанный пример
Скажем, у вас есть Системное приглашение на 2000 токенов (инструкции + определения инструментов + несколько примеров), который отправляется с каждым запросом, и вы делаете 100 000 звонков. Предположим, что входная цена равна 3 доллара США за миллион токенов, скорость чтения кэша 0,1× (0,30 доллара США/М) и скорость записи в кэш 1,25× (3,75 доллара США/М). Здесь мы проигнорируем вопросы и выходные данные пользователя для каждого вызова, поскольку кеширование их не меняет.
Без кэширования
За каждый вызов оплачивается полная стоимость всех 2000 токенов префикса:
100 000 × 2 000 = 200 000 000 токенов × 3 доллара США/миллион = $600.
С кэшированием
Префикс записывается один раз и считывается при остальных 99 999 вызовах (на практике он перезаписывается всякий раз, когда истекает TTL, но при стабильном трафике это незначительно):
- 1 запись: 2000 токенов × 3,75 доллара США/млн ≈ $0.0075
- 99 999 прочтений: ~200 000 000 токенов × 0,30 доллара США/млн ≈ $60
Итого ≈ $60 против $600 — ~90% сокращение на повторяющейся части счета по цене одной строки, обозначающей место окончания префикса. При реальных рабочих нагрузках префикс часто больше и вызовы происходят чаще, поэтому абсолютная экономия еще больше.
Калькулятор стоимости токена →Оцените свою экономию →Подводные камни, на которые стоит обратить внимание
- Все, что находится перед изменяемой частью, должно быть идентичным. Кэширование совпадений по точному префиксу. Временная метка, имя пользователя или перетасованный пример порядка вверху делают совпадение недействительным, и вы молча платите полную цену.
- Срок действия ТТЛ истек. Если трафик разрежен и промежуток между вызовами превышает время жизни кэша, срок действия префикса истекает, и следующий вызов снова оплачивает стоимость записи. Менее всего выигрывают от пакетных рабочих нагрузок с небольшим объемом.
- Маленькие префиксы того не стоят. Ниже минимальной длины кэширования, установленной провайдером, или когда фиксированный блок составляет всего несколько сотен токенов, экономия незначительна, а надбавка за запись может немного ухудшить ваше положение.
- Ставьте стабильные вещи на первое место. Структурируйте подсказки таким образом, чтобы неизменные системные подсказки, инструменты и контекст предшествовали изменчивому пользовательскому вводу; кэширование может охватывать только первую серию идентичных токенов.
Часто задаваемые вопросы
Сколько экономит кэширование подсказок?
При чтении кэша большинство провайдеров выставляют счет за кэшированные токены примерно в размере 10 % от обычной скорости ввода — 90 % скидка на повторяющуюся часть вашего запроса. Точная цифра варьируется в зависимости от провайдера, но большой стабильный префикс, повторно используемый во многих вызовах, дает наибольшую экономию.
Требуется ли дополнительная установка кэширования запросов?
При использовании явных кэшей (таких как Anthropic) первый вызов, записывающий кэш, стоит немного дороже, чем обычный входной токен — обычно примерно в 1,25 раза больше скорости ввода. Вы восстанавливаете эту премию за запись, как только повторно используете префикс пару раз, после чего каждое обращение оплачивается по скорости чтения с большой скидкой.
Когда оперативное кэширование нецелесообразно?
Кэширование помогает только в том случае, если большой префикс одинаков во всех вызовах и повторно используется до истечения срока действия кэша. Короткий префикс, подсказка, которая меняет каждый вызов, или низкий объем вызовов означают, что стоимость записи никогда не возмещается — в этих случаях кэширование увеличивает накладные расходы, а не экономит деньги.
Только для образовательных целей — скорость кэширования, TTL и минимальная длина являются приблизительными; подтвердите текущие условия на странице цен каждого поставщика.