Amazon Bedrock тепер пропонує кешування промптів для Claude 4.6 — функцію, яка може скоротити затримку відповіді та зменшити витрати на інференс для застосунків генеративного ШІ. Ця можливість працює шляхом запам'ятовування статичної частини промпту на термін до п'яти хвилин, завдяки чому наступні виклики дозволяють уникнути дороговартісної повторної обробки цього тексту.
Як кеш вписується в ланцюжок запитів
Коли надходить запит до Claude 4.6, працюють два рівні.
Рівень моделі – Claude 4.6 підтримує кеш пар ключ-значення (KV) у пам'яті GPU. Під час першого парсингу блоку інструкцій модель зберігає отримане внутрішнє представлення. При наступних викликах, що використовують той самий блок, модель може отримати це представлення замість того, щоб обчислювати його знову.
Рівень Bedrock – Bedrock обчислює відбиток (fingerprint) статичного сегмента промпту. Якщо новий запит має такий самий відбиток, Bedrock спрямовує його безпосередньо на той GPU, який уже містить кешований стан, минаючи етап «прогріву».
Уявіть це як завантаження збереженої гри, а не початок нової щоразу.
Правила, що підтримують кеш активним
Мінімальна кількість токенів – Claude Sonnet 4.6 потребує щонайменше 1024 токенів у кешованому сегменті; Claude Opus 4.6 потребує 4096 токенів. Усе, що менше, ігнорується.
П'ятихвилинний термін дії – Кеш застаріває після п'яти хвилин бездіяльності. Кожен успішний запит (hit) скидає таймер, тому стабільний потік викликів може підтримувати кеш активним нескінченно довго.
Порядок промпту – Bedrock зчитує промпт послідовно. Статичні інструкції мають іти першими, після них — маркер
cachePoint, а всі повідомлення користувача — після цього маркера. Зміна навіть одного символу перед маркером порушує відбиток і змушує виконувати «холодне» зчитування.
Застосування функції на практиці
Точкою входу є Bedrock Converse API. Нижче наведено мінімальний фрагмент коду на Python, який демонструє необхідну структуру.
import boto3
bedrock = boto3.client("bedrock-runtime", region_name="us-east-1")
MODEL_ID = "anthropic.claude-sonnet-4-6"
# Must be >1,024 tokens for Sonnet
BASE_SYSTEM_PROMPT = "Your long instructions here..."
system_configuration = [
{"text": BASE_SYSTEM_PROMPT},
{"cachePoint": {"type": "default"}}
]
conversation_history = []
def run_chat_turn(user_input):
global conversation_history
conversation_history.append(
{"role": "user", "content": [{"text": user_input}]}
)
response = bedrock.converse(
modelId=MODEL_ID,
system=system_configuration,
messages=conversation_history,
inferenceConfig={"maxTokens": 500, "temperature": 0.4}
)
assistant_message = response["output"]["message"]
conversation_history.append(assistant_message)
metrics = response["usage"]
print(f"Read from cache: {metrics.get('cacheReadInputTokens', 0)}")
cachePoint вказує Bedrock, де закінчується незмінний сегмент. Після першого виклику метрика cacheReadInputTokens має показати ненульове значення, що підтверджує використання кешу.
Чому це важливо для розробників
Відокремлення статичних інструкцій від динамічного вводу користувача переносить навантаження з дорогих циклів GPU на легкий етап маршрутизації. Для чат-ботів, конвеєрів генерації з доповненою вибіркою (RAG) або будь-якого сервісу, що повторює один і той самий системний промпт, результатом стануть швидші відповіді та менша кількість токенів, за які нараховується оплата. У сценаріях з високою пропускною здатністю навіть скромне скорочення часу обчислень може призвести до помітної економії коштів.
Обмеження та компроміси
Функція допомагає лише тоді, коли сегмент промпту відповідає мінімальним вимогам до кількості токенів і залишається незмінним. Застосунки, які часто змінюють системні інструкції або використовують короткі промпти, отримають мало користі. П'ятихвилинне вікно також означає, що імпульсний трафік із довгими паузами може призводити до повторних «холодних» зчитувань, нівелюючи перевагу в швидкості. Нарешті, кеш зберігається в пам'яті GPU; якщо кілька моделей використовують одне й те саме обладнання, конкуренція за ресурси може вплинути на продуктивність, хоча Bedrock не розкриває цих деталей.
На що звернути увагу далі
- Дашборди метрик – Стежте за
cacheReadInputTokensта загальною затримкою, щоб переконатися, що кеш використовується належним чином. - Промпт-інжиніринг – Проєктування промптів, які відповідають порогам розміру, не роздуваючи при цьому запит, — це нова дисципліна для розробників.
- Майбутні розширення – Якщо Bedrock збільшить тривалість кешування або пом'якшить ліміти токенів, економіка тривалих розмов може змінитися ще суттєвіше.
Підсумок: Кешування промптів дає користувачам Claude 4.6 реальний інструмент для скорочення як часу відповіді, так і витрат, за умови, що вони можуть зафіксувати достатньо великий незмінний промпт і здійснювати виклики протягом короткого вікна часу. Для будь-якого сервісу GenAI, що повторює однакові системні інструкції, цю функцію варто протестувати якомога раніше.
