Mise en cache exacte ou sémantique pour les LLM : quand chacun gagne, mesuré

DEV - 12/06
La mise en cache de correspondance exacte est bon marché et ne se trompe jamais, mais elle fonctionne rarement. La mise en cache sémantique détecte les quasi-doublons mais risque de générer des faux positifs. Voici le

Si vous construisez sur une API LLM et que la facture commence à être lourde, vous avez probablement lu que la mise en cache est la solution. La question suivante est de savoir quel type de mise en cache, et la réponse honnête est : généralement les deux, mais pour des raisons différentes. La mise en cache de correspondance exacte ne vous coûte presque rien à exécuter et ne renvoie jamais de mauvaise réponse ; le problème, c'est qu'il répond peut-être à une demande sur dix en production. La mise en cache sémantique capture plusieurs fois ce volume, mais introduit un risque d'exactitude pour lequel vous devez concevoir. Cet article explique où chacun gagne, les calculs derrière le compromis et comment décider quoi exécuter pour votre charge de travail.

La mise en cache fait partie de la mise en cache des API AI en tant que discipline : exacte et sémantique sont deux des trois couches ; le troisième est le relais de cache natif du fournisseur, couvert séparément.

Définitions, brièvement

La mise en cache de correspondance exacte calcule une empreinte déterministe de la requête (généralement SHA-256 sur le tableau de messages normalisés, le nom du modèle, la température et d'autres paramètres de la requête), puis recherche cette empreinte digitale dans un magasin clé-valeur comme Redis. Si l'empreinte digitale existe, renvoyez la réponse mise en cache. La recherche est O(1) et inférieure à 10 ms p95. Le magasin est limité par le budget de taille de votre cache ; les entrées sont expulsées par LRU ou TTL.

La mise en cache sémantique intègre l'invite de l'utilisateur avec un modèle d'intégration (souvent un petit modèle rapide comme BGE-small, MiniLM ou text-embedding-3-small), puis interroge une base de données vectorielle pour l'intégration stockée la plus proche. Si la similarité cosinusoïdale entre l'intégration entrante et celle stockée la plus proche dépasse un seuil (généralement 0,93 à 0,97), diffusez la réponse mise en cache associée à cette intégration stockée. La recherche est O (log n) dans le nombre d'entrées stockées et dure environ 20 à 40 ms p95, y compris l'inférence d'intégration.

Les deux couches mettent en cache la réponse complète. Le relais natif du fournisseur est différent – ​​il met en cache le traitement du préfixe du côté du fournisseur – et est couvert par la mise en cache des invites Anthropic, expliquée. Le reste de cet article reste consacré aux couches de mise en cache des réponses.

L’écart de réussite est réel et structurel

Les taux d'échec du cache de correspondance exacte sont élevés dans le trafic LLM réel pour une raison. Les invites de production comportent presque toujours un contexte par requête : un nom d'utilisateur, un identifiant de session, un horodatage actuel, un passage RAG récemment récupéré, une liste d'outils variable. Même si l'intention sous-jacente de l'utilisateur est i...
[Courte citation de 8% de l'article original]

Loading...