Mettre en cache les longs préfixes
Maîtriser les coûts grâce à la mise en cache des prompts.
Mettre en cache les longs préfixes est une leçon AI Prompt Engineering gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage AI Prompt Engineering, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours AI Prompt Engineering comprend 4 leçons au total.
Pourquoi la mise en cache des préfixes existe
Toute requête longue paie un coût de préremplissage pour encoder ses jetons avant la génération. Lorsqu'un même préfixe long se répète dans de nombreux appels — une requête système, une spécification d'outil ou un grand document de référence — la mise en cache des requêtes permet au fournisseur de réutiliser l'état d'attention déjà calculé au lieu de le recalculer.
- Les accès au cache réduisent considérablement la latence et le coût de l'entrée.
- Les économies augmentent avec la taille du préfixe et la fréquence de réutilisation.
La mise en cache s'ancre sur le préfixe
Les caches s'appuient sur une correspondance exacte du préfixe de jetons depuis le début de la requête. La portion mise en cache s'étend du début jusqu'au premier point de divergence. Modifiez quoi que ce soit au début et tout ce qui suit ne bénéficiera plus du cache.
Conséquence : la disposition qui maximise les accès au cache place d'abord le contenu le plus stable et laisse le contenu le plus variable à la fin.
# Cache reuse covers: [identical prefix .... first difference)
# One early edit invalidates the whole downstream cache.Ordonnez selon la stabilité
Organisez le contenu du plus stable au moins stable : les règles système immuables et les définitions d'outils, puis les grandes références stables, ensuite le contexte stable au sein de la session, et enfin l'entrée et la question propres à chaque requête.
- Stable -> début (peut être mis en cache).
- Variable -> fin (seule partie à recalculer).
Ce principe d'ordonnancement unique guide la plupart des gains liés à la mise en cache.
prompt = [
SYSTEM_RULES, # never changes
TOOL_SPECS, # rarely changes
REFERENCE_CORPUS, # stable for the session
USER_TURN # changes every call -> keep last
]Points de coupure du cache
Certains fournisseurs vous permettent de définir des points de coupure explicites pour le cache. Placez-les à la fin de chaque segment stable afin que le système puisse mettre en cache tout ce qui précède. Marquez le plus grand bloc stable (le corpus de référence ou la longue requête système) comme pouvant être mis en cache.
En l'absence de marqueurs explicites, structurez malgré tout la requête selon l'ordre de stabilité afin que la correspondance implicite de préfixe reste utile.
blocks = [
{'text': SYSTEM_RULES, 'cache': True},
{'text': REFERENCE_CORPUS, 'cache': True}, # big win
{'text': user_turn} # uncached
]Méfiez-vous de la dérive cachée du préfixe
Des changements subtils et involontaires interrompent silencieusement la mise en cache : un horodatage dans la requête système, un identifiant propre à chaque requête injecté au début, des définitions d'outils réordonnées ou un ordre non déterministe des clés JSON. Chacun modifie le préfixe et force un recalcul complet.
Examinez votre préfixe à la recherche de tout ce qui varie entre les appels et déplacez ces éléments après la région mise en cache.
# BAD: dynamic value early -> kills cache
# system = 'Session ' + str(uuid4()) + ' rules: ...'
# GOOD: keep system static; put the id in the tail user turn.TTL et durée de vie du cache
Les caches expirent après une durée de vie définie par le fournisseur, souvent renouvelée à chaque accès. Les défauts à froid se reproduisent si les appels sont trop espacés. Pour les charges de travail en rafales et à haute fréquence, la mise en cache est rentable ; pour les appels rares et dispersés, le cache peut expirer entre deux utilisations.
Adaptez votre profil de trafic au TTL et envisagez des requêtes ping de maintien en vie pour les préfixes importants.
Modèle de coût de la mise en cache
La mise en cache applique généralement une petite majoration pour écrire une entrée de cache et une forte réduction pour la lire. La rentabilité favorise la réutilisation : une écriture amortie sur de nombreuses lectures représente une économie nette importante ; une utilisation unique qui ne fait qu’écrire peut coûter légèrement plus cher.
- Forte réutilisation -> mettez agressivement en cache.
- Préfixes utilisés une seule fois -> la mise en cache peut ne pas être rentable.
def worth_caching(prefix_tokens, expected_reuses, write_mult, read_mult):
no_cache = expected_reuses
cached = write_mult + read_mult * (expected_reuses - 1)
return cached < no_cache # in normalized prefix-cost unitsConcevoir des blocs système stables
Rendez votre invite système et les spécifications de vos outils déterministes et verrouillées sur une version. Triez les définitions d’outils de manière canonique, évitez d’y intégrer des données dynamiques et ne les modifiez que lors de versions publiées délibérément. Un bloc système stable devient une entrée de cache durable, avec un taux d’accès élevé, partagée entre toutes les requêtes.
Traitez le préfixe mis en cache comme un artefact doté d’une version, et non comme une chaîne que vous modifiez au gré de vos envies.
TOOLS = sorted(tool_defs, key=lambda t: t['name']) # canonical order
SYSTEM_VERSION = 'v3' # change deliberately, not per requestMise en cache dans les agents à plusieurs tours
Dans les boucles d’agents, la conversation qui s’allonge constitue un cache naturel : chaque tour prolonge un préfixe que le tour suivant réutilise. Ajoutez les nouveaux tours uniquement à la fin et ne réécrivez jamais les tours précédents, afin que le cache antérieur reste valide.
Lorsque vous devez compacter la conversation, faites-le de manière à créer un nouveau préfixe stable pour les tours suivants, plutôt que de modifier plusieurs fois les anciens.
Mesurer l’efficacité du cache
Instrumentez-le. La plupart des fournisseurs indiquent, pour chaque appel, le nombre de jetons d’entrée mis en cache et celui des jetons non mis en cache. Suivez le taux d’accès au cache et, s’il est faible, examinez le préfixe à la recherche d’une dérive. Une régression du taux d’accès indique généralement l’introduction récente d’une valeur dynamique au début de l’invite.
- Consignez le rapport entre les jetons mis en cache et le nombre total de jetons d’entrée.
- Déclenchez une alerte lorsque le taux d’accès baisse après un déploiement.
hit_rate = usage['cache_read_input_tokens'] / max(1, usage['input_tokens'])
assert hit_rate > 0.6, 'prefix drift suspected'Mise en page d’une invite tenant compte de la mise en cache
Pour maîtriser le coût des préfixes longs : ordonnez le contenu selon sa stabilité, désignez le plus grand bloc stable comme point de mise en cache, éliminez les dérives cachées, verrouillez les blocs système et d’outils sur une version, ajoutez uniquement à la fin dans les boucles d’agents et surveillez le taux d’accès. L’objectif est d’obtenir un grand préfixe réutilisable et une petite queue volatile recalculée à chaque appel.
Vérification rapide
Vous réutilisez un corpus de référence de 100 000 jetons dans des milliers de requêtes quotidiennes, mais le taux d’accès à votre cache est presque nul.
Récapitulatif : mise en cache des préfixes longs
La mise en cache des invites réutilise le préremplissage d’un préfixe exact et stable, ce qui réduit fortement la latence et le coût des entrées lorsque la réutilisation est fréquente. Ordonnez le contenu en plaçant le plus stable en premier, désignez le grand bloc stable comme point de rupture et repoussez toute volatilité vers la fin. Éliminez les dérives cachées, verrouillez les blocs système et d’outils sur une version, ajoutez uniquement à la fin dans les boucles d’agents et surveillez le taux d’accès afin qu’une régression signale une valeur récemment introduite qui varie au début de l’invite.
Questions Fréquemment Posées
La leçon « Mettre en cache les longs préfixes » est-elle gratuite ?
Oui — le texte complet de « Mettre en cache les longs préfixes » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours AI Prompt Engineering, passe à CoddyKit PRO. Le cours AI Prompt Engineering comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Mettre en cache les longs préfixes » ?
Maîtriser les coûts grâce à la mise en cache des prompts. Tu pratiques AI Prompt Engineering avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer AI Prompt Engineering ?
Aucune expérience préalable n'est requise. AI Prompt Engineering sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.
Combien de temps prend la leçon « Mettre en cache les longs préfixes » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon AI Prompt Engineering ?
Oui. Chaque leçon AI Prompt Engineering inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Fenêtres de contexte d’un million de jetons
- Perdu au milieu
- Structurer d’immenses prompts
- Mettre en cache les longs préfixes