На Хабре вышел перевод статьи Сэма Роуза из ngrok про механизм работы процесса кэширования тоненов. Попутно она объясняет, как вообще устроена LLM. Очень хорошая и глубокая статья. Без этого понимания к модели, на мой взгляд, лучше не подходить: промпт-инженерия превращается в заклинания, а счёт за API - в сюрприз. Первое, что ломает интуицию: кэшируется не ответ. Отправьте один и тот же промпт десять раз и получите десять разных ответов, хотя в usage будет написано, что входные токены взяты из кэша. Кэширование происходит внутри механизма attention. Attention разобран на примере “Mary had a little” с реальными весами GPT-2. Каждый токен смешивает эмбеддинги предыдущих в пропорции их важности, а маска с минус бесконечностью не даёт будущему влиять на прошлое. На простом наблюдении держится вся экономика. Модель генерирует по одному токену и на каждой итерации прогоняет весь контекст заново. При этом веса уже обработанных токенов не меняются. Значит, матрицы K и V можно посчитать один раз, сохранить и дальше считать только новую строку. Это и есть KV-кэш. Провайдеры держат его 5-10 минут после запроса. Из этого следуют инженерные выводы, которые полезнее любого гайда по промптам: • Совпадение работает по префиксу. Стабильная часть промпта должна идти первой, всё изменчивое - в конец. Если сдвинуть один символ в начале, платишь полную цену. • Temperature, top_p и top_k кэш не ломают. Они работают уже после attention, на этапе выбора токена. У вендоров разная философия. OpenAI кэширует автоматически, и в тестах автора попадание было около 50%. Anthropic даёт явный контроль за доплату и попадает в 100% случаев. Для длинных контекстов, где нужна предсказуемая задержка, это архитектурное решение. https://habr.com/ru/articles/978498/