Mise en cache des invites pour une inférence de modèle plus rapide - Amazon Bedrock

Mise en cache des invites pour une inférence de modèle plus rapide

Note

La mise en cache des invites dans Amazon Bedrock est généralement disponible avec Claude 3.7 Sonnet, Claude 3.5 Haiku, Amazon Nova Micro, Amazon Nova Lite, Amazon Nova Pro et Amazon Nova Premier. Les clients ayant obtenu l’accès à Claude 3.5 Sonnet v2 pendant l’aperçu de la mise en cache des invites conserveront cet accès. Cependant, aucun autre client ne se verra accorder l’accès à la mise en cache des invites sur le modèle Claude 3.5 Sonnet v2.

La mise en cache des invites est une fonctionnalité facultative que vous pouvez utiliser avec les modèles pris en charge dans Amazon Bedrock afin de réduire la latence des réponses d’inférence et les coûts des jetons d’entrée. En ajoutant des parties de votre contexte à un cache, le modèle peut tirer parti du cache pour ignorer le recalcul des entrées, ce qui permet à Bedrock de partager les économies de calcul et de réduire les latences de réponse.

La mise en cache des invites peut être utile lorsque des charges de travail comportant des contextes longs et répétés sont fréquemment réutilisées pour plusieurs requêtes. Par exemple, si vous avez un chatbot où les utilisateurs peuvent charger des documents et poser des questions à leur sujet, le modèle peut prendre beaucoup de temps à traiter les documents chaque fois que l’utilisateur fournit des entrées. Grâce à la mise en cache des invites, vous pouvez mettre le document en cache afin que les futures requêtes contenant le document n’aient pas besoin de le retraiter.

Lorsque vous utilisez la mise en cache des invites, vous êtes facturé à un tarif réduit pour les jetons lus depuis le cache. Selon le modèle, les jetons écrits dans le cache peuvent être facturés à un tarif supérieur à celui des jetons d’entrée non mis en cache. Tous les jetons non lus depuis le cache, ou écrits dans ce dernier, sont facturés au tarif de jeton d’entrée standard pour ce modèle. Pour plus d’informations, consultez la page Tarification Amazon Bedrock.

Fonctionnement

Si vous choisissez d’utiliser la mise en cache des invites, Amazon Bedrock crée un cache composé de points de contrôle du cache. Il s’agit de marqueurs qui définissent la sous-section contiguë de l’invite que vous souhaitez mettre en cache (souvent appelée préfixe d’invite). Ces préfixes d’invite doivent être statiques entre les demandes. Les modifications apportées au préfixe d’invite dans les demandes suivantes entraîneront des échecs de cache.

Les points de contrôle du cache comportent un nombre minimum et maximum de jetons, selon le modèle spécifique que vous utilisez. Vous ne pouvez créer un point de contrôle du cache que si le nombre total de préfixes d’invite correspond au nombre minimum de jetons. Par exemple, le modèle Anthropic Claude 3.7 Sonnet nécessite au moins 1 024 jetons par point de contrôle du cache. Cela signifie que votre premier point de contrôle du cache peut être défini au bout de 1 024 jetons et que le deuxième point de contrôle du cache peut être défini au bout de 2 048 jetons. Si vous essayez d’ajouter un point de contrôle du cache avant d’atteindre le nombre minimum de jetons, l’inférence réussira tout de même, mais le préfixe ne sera pas mis en cache. Le cache a une durée de vie (TTL) de cinq minutes, qui se réinitialise à chaque accès au cache réussi. Pendant cette période, le contexte en cache est conservé. Si aucun accès au cache ne se produit pendant la période TTL, celui-ci expire.

Vous pouvez utiliser la mise en cache des invites chaque fois que vous obtenez une inférence de modèle dans Amazon Bedrock pour les modèles pris en charge. La mise en cache des invites est prise en charge par les fonctionnalités Amazon Bedrock suivantes :

API Converse et ConverseStream

Vous pouvez poursuivre une conversation avec un modèle dans lequel vous spécifiez les points de contrôle du cache dans les invites.

API InvokeModel et InvokeModelWithResponseStream

Vous pouvez soumettre des demandes d’invite uniques dans lesquelles vous activez la mise en cache des invites et spécifiez vos points de contrôle du cache.

Mise en cache des invites avec inférence entre régions

La mise en cache des invites peut être utilisée conjointement avec l’inférence entre régions. L’inférence entre régions sélectionne automatiquement la région AWS optimale au sein de votre zone géographique pour répondre à la demande d’inférence, maximisant ainsi les ressources disponibles et la disponibilité des modèles. En période de forte demande, ces optimisations peuvent entraîner une augmentation du nombre d’écritures dans le cache.

Amazon Bedrock Prompt Management

Lorsque vous créez ou modifiez une invite, vous pouvez choisir d’activer la mise en cache des invites. Selon le modèle, vous pouvez mettre en cache les invites système, les instructions système et les messages (utilisateur et assistant). Vous pouvez également choisir de désactiver la mise en cache des invites.

Les API vous offrent le maximum de flexibilité et de contrôle granulaire sur la mise en cache des invites. Vous pouvez définir un point de contrôle du cache individuel au sein des invites. Vous pouvez ajouter du contenu au cache en créant d’autres points de contrôle du cache, dans la limite du nombre maximum de points de contrôle du cache autorisés pour le modèle spécifique. Pour plus d’informations, consultez Modèles, régions et limites pris en charge.

Modèles, régions et limites pris en charge

Le tableau suivant répertorie les modèles pris en charge ainsi que le nombre minimum de jetons, le nombre maximum de points de contrôle du cache et les champs autorisant les points de contrôle du cache.

Nom du modèle ID du modèle Type de version Nombre minimum de jetons par point de contrôle du cache Nombre maximum de points de contrôle du cache par demande Champs qui acceptent les points de contrôle de mise en cache des invites

Claude 3 Opus 4.1

anthropic.claude-opus-4-1-20250805-v1:0

Disponibilité générale

1 024

4

`système`, `messages` et `outils`

Claude Opus 4

anthropic.claude-opus-4-20250514-v1:0

Disponibilité générale

1 024

4

`système`, `messages` et `outils`

Claude Sonnet 4.5

anthropic.claude-sonnet-4-5-20250929-v1:0

Disponibilité générale

1 024

4

`système`, `messages` et `outils`

Claude Haiku 4.5

anthropic.claude-haiku-4-5-20251001-v1:0

Disponibilité générale

4 096

4

`système`, `messages` et `outils`

Claude Sonnet 4

anthropic.claude-sonnet-4-20250514-v1:0

Disponibilité générale

1 024

4

`système`, `messages` et `outils`

Claude 3.7 Sonnet

anthropic.claude-3-7-sonnet-20250219-v1:0

Disponibilité générale

1 024

4

`système`, `messages` et `outils`

Claude 3.5 Haiku

anthropic.claude-3-5-haiku-20241022-v1:0

Disponibilité générale

2 048

4

`système`, `messages` et `outils`

Claude 3.5 Sonnet v2

anthropic.claude-3-5-sonnet-20241022-v2:0

Version préliminaire

1 024

4

`système`, `messages` et `outils`

Amazon Nova Micro

amazon.nova-micro-v1:0

Disponibilité générale

1 0001

4

`système` et `messages`

Amazon Nova Lite

amazon.nova-lite-v1:0

Disponibilité générale

1 0001

4

`système` et `messages`2

Amazon Nova Pro

amazon.nova-pro-v1:0

Disponibilité générale

1 0001

4

`système` et `messages`2

Amazon Nova Premier

amazon.nova-premier-v1:0

Disponibilité générale

1 0001

4

`système` et `messages`2

1 : Les modèles Amazon Nova prennent en charge un nombre maximum de 20 000 jetons pour la mise en cache des invites.

2 : La mise en cache des invites concerne principalement les invites de texte.

Amazon Nova propose la mise en cache automatique des invites pour toutes les invites de texte, y compris les messages User et System. Ce mécanisme peut présenter des avantages concernant la latence lorsque les invites commencent par des parties répétitives, même en l’absence de configuration explicite. Cependant, pour bénéficier d’économies et garantir des avantages de performance plus constants, nous vous recommandons d’activer la mise en cache des invites explicite.

Gestion du cache simplifiée pour les modèles Claude

Pour les modèles Claude, Amazon Bedrock propose une approche simplifiée de la gestion du cache qui réduit la complexité du placement manuel des points de contrôle du cache. Au lieu de vous obliger à spécifier des emplacements précis pour les points de contrôle du cache, vous pouvez utiliser la gestion automatique du cache avec un seul point d’arrêt à la fin de votre contenu statique.

Lorsque vous activez la gestion simplifiée du cache, le système vérifie automatiquement les accès au cache aux limites des blocs de contenu précédents, en remontant jusqu’à environ 20 blocs de contenu par rapport au point d’arrêt spécifié. Cela permet au modèle de trouver le préfixe correspondant le plus long dans votre cache sans que vous ayez à prévoir l’emplacement optimal des points de contrôle. Pour l’utiliser, placez un point de contrôle du cache unique à la fin de votre contenu statique, avant tout contenu dynamique ou variable. Le système trouvera automatiquement la meilleure correspondance dans le cache.

Pour un contrôle plus précis, vous pouvez toujours utiliser plusieurs points de contrôle du cache (jusqu’à 4 pour les modèles Claude) pour définir les limites exactes du cache. Vous devez utiliser plusieurs points de contrôle du cache si vous mettez en cache des sections qui changent à des fréquences différentes ou si vous souhaitez mieux contrôler exactement ce qui est mis en cache.

Important

La vérification automatique des préfixes ne prend en compte qu’une vingtaine de blocs de contenu depuis le point de contrôle du cache. Si votre contenu statique dépasse cette plage, envisagez d’utiliser plusieurs points de contrôle du cache ou de restructurer votre invite pour placer le contenu le plus fréquemment réutilisé dans cette plage.

Mise en route

Les sections suivantes présentent un bref aperçu de l’utilisation de la fonctionnalité de mise en cache des invites pour chaque méthode d’interaction avec les modèles via Amazon Bedrock.

L’API Converse fournit des options avancées et flexibles pour implémenter une mise en cache des invites dans les conversations complexes. Pour plus d’informations sur les exigences d’invite pour chaque modèle, consultez la section précédente : Modèles, régions et limites pris en charge.

Exemple de demande

Les exemples suivants montrent un point de contrôle du cache défini dans les champs messages, system ou tools, ou d’une demande à l’API Converse. Vous pouvez placer des points de contrôle à n’importe lequel de ces emplacements pour une demande donnée. Par exemple, si vous envoyez une demande au modèle Claude 3.5 Sonnet v2, vous pouvez placer deux points de contrôle du cache dans messages, un point de contrôle du cache dans system et un autre dans tools. Pour plus de détails et des exemples de structuration et d’envoi de demandes d’API Converse, consultez Mener une conversation avec les opérations d’API Converse.

messages checkpoints

Dans cet exemple, le premier champ image fournit une image au modèle, et le second champ text demande au modèle d’analyser l’image. Tant que le nombre de jetons précédant le cachePoint dans l’objet content correspond au nombre minimum de jetons pour le modèle, un point de contrôle du cache est créé.

... "messages": [ { "role": "user", "content": [ { "image": { "bytes": "asfb14tscve..." } }, { "text": "What's in this image?" }, { "cachePoint": { "type": "default" } } ] } ] ...
system checkpoints

Dans cet exemple, vous indiquez l’invite système dans le champ text. En outre, vous pouvez ajouter un champ cachePoint pour mettre en cache l’invite système.

... "system": [ { "text": "You are an app that creates play lists for a radio station that plays rock and pop music. Only return song names and the artist. " }, { "cachePoint": { "type": "default" } } ], ...
tools checkpoints

Dans cet exemple, vous indiquez la définition d’outil dans le champ toolSpec. (Vous pouvez également appeler un outil que vous avez défini précédemment. Pour plus d’informations, consultez Appel d’un outil à l’aide de l’API Converse.) Ensuite, vous pouvez ajouter un champ cachePoint pour mettre en cache l’outil.

... toolConfig={ "tools": [ { "toolSpec": { "name": "top_song", "description": "Get the most popular song played on a radio station.", "inputSchema": { "json": { "type": "object", "properties": { "sign": { "type": "string", "description": "The call sign for the radio station for which you want the most popular song. Example calls signs are WZPZ and WKRP." } }, "required": [ "sign" ] } } } }, { "cachePoint": { "type": "default" } } ] } ...

Le modèle de réponse de l’API Converse inclut deux nouveaux champs spécifiques à la mise en cache des invites. Les valeurs CacheReadInputTokens et CacheWriteInputTokens vous indiquent combien de jetons ont été lus depuis le cache et combien de jetons ont été écrits dans le cache à la suite de votre précédente demande. Il s’agit de valeurs qui vous sont facturées par Amazon Bedrock, à un tarif inférieur au coût de l’inférence de modèle complète.

La mise en cache des invites est activée par défaut lorsque vous appelez l’API InvokeModel. Vous pouvez définir des points de contrôle du cache à tout moment dans le corps de votre demande, comme dans l’exemple précédent pour l’API Converse.

Anthropic Claude

L’exemple suivant montre comment structurer le corps de votre demande InvokeModel pour le modèle Anthropic Claude 3.5 Sonnet v2. Notez que le format exact et les champs du corps de demande InvokeModel peuvent varier en fonction du modèle que vous choisissez. Pour connaître le format et le contenu des corps de demande et de réponse pour différents modèles, consultez Paramètres de demande d’inférence et champs de réponse pour les modèles de fondation.

body={ "anthropic_version": "bedrock-2023-05-31", "system":"Reply concisely", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe the best way to learn programming." }, { "type": "text", "text": "Add additional context here for the prompt that meets the minimum token requirement for your chosen model.", "cache_control": { "type": "ephemeral" } } ] } ], "max_tokens": 2048, "temperature": 0.5, "top_p": 0.8, "stop_sequences": [ "stop" ], "top_k": 250 }
Amazon Nova

L’exemple suivant montre comment structurer le corps de votre demande InvokeModel pour le modèle Amazon Nova. Notez que le format exact et les champs du corps de demande InvokeModel peuvent varier en fonction du modèle que vous choisissez. Pour connaître le format et le contenu des corps de demande et de réponse pour différents modèles, consultez Paramètres de demande d’inférence et champs de réponse pour les modèles de fondation.

{ "system": [{ "text": "Reply Concisely" }], "messages": [{ "role": "user", "content": [{ "text": "Describe the best way to learn programming" }, { "text": "Add additional context here for the prompt that meets the minimum token requirement for your chosen model.", "cachePoint": { "type": "default" } }] }], "inferenceConfig": { "maxTokens": 300, "topP": 0.1, "topK": 20, "temperature": 0.3 } }

Pour plus d’informations sur l’envoi d’une demande InvokeModel, consultez Soumission d’une seule invite avec InvokeModel.

Dans un terrain de jeu de discussion de la console Amazon Bedrock, vous pouvez activer l’option de mise en cache des invites. Ensuite, Amazon Bedrock crée automatiquement des points de contrôle du cache pour vous.

Suivez les instructions de Génération de réponses dans la console à l’aide de terrains de jeu pour commencer à recevoir des invites dans un terrain de jeu Amazon Bedrock. Pour les modèles pris en charge, la mise en cache des invites est automatiquement activée dans le terrain de jeu. Toutefois, si ce n’est pas le cas, procédez comme suit pour activer la mise en cache des invites :

  1. Dans le panneau latéral gauche, ouvrez le menu Configurations.

  2. Activez la bascule Mise en cache des invites.

  3. Exécutez vos invites.

Une fois que vos réponses combinées d’entrée et de modèle atteignent le nombre minimum de jetons requis pour un point de contrôle (qui varie selon le modèle), Amazon Bedrock crée automatiquement le premier point de contrôle du cache pour vous. Au fur et à mesure que vous poursuivez la discussion, chaque fois que vous atteignez le nombre minimum de jetons, un nouveau point de contrôle est créé, dans la limite du nombre maximum de points de contrôle autorisé pour le modèle. Vous pouvez consulter les points de contrôle de votre cache à tout moment en choisissant Afficher les points de contrôle du cache en regard de la bascule Mise en cache des invites, comme le montre la capture d’écran suivante.

Bascule de l’interface utilisateur pour la mise en cache des invites dans un terrain de jeu de texte Amazon Bedrock.

Vous pouvez voir le nombre de jetons qui sont lus depuis et écrits dans le cache en raison de chaque interaction avec le modèle en consultant la fenêtre contextuelle Métriques de mise en cache ( The metrics icon shown in model responses when prompt caching is enabled. ) dans les réponses du terrain de jeu.

Zone Métriques de mise en cache qui indique le nombre de jetons lus et écrits dans le cache.

Si vous désactivez la bascule de mise en cache des invites alors que vous êtes au milieu d’une conversation, vous pouvez continuer à discuter avec le modèle.