OpenAI a commencé à fournir une mise en cache rapide pour les grands modèles (modèles de la série GPT) : le prix des entrées des modèles de la série GPT-4o a été divisé par deux et la vitesse d'accès a été augmentée de 80%.

Dans les applications de grands modèles, le traitement de demandes complexes s'accompagne souvent d'un temps de latence et d'un coût élevés, en particulier lorsque le contenu de la demande est très répétitif. Ce problème de "demande lente" est particulièrement important dans les scénarios comportant de longues invites et des interactions à haute fréquence. Pour relever ce défi, l'OpenAI a récemment introduit la technologie Mise en cache des messages Fonction. Cette nouvelle technologie évite le double calcul en mettant en cache la même portion de préfixe traitée par le modèle, ce qui réduit considérablement le temps de réponse et les coûts associés à la demande. La mise en cache des indices peut améliorer considérablement l'efficacité et réduire les frais généraux opérationnels, en particulier pour les longues demandes d'indices contenant un contenu statique. Dans cet article, nous présenterons en détail le fonctionnement de cette fonctionnalité, les modèles pris en charge et la manière d'optimiser le taux de réponse du cache grâce à une structure d'indices raisonnable, afin d'aider les développeurs à améliorer l'expérience d'utilisation des modèles de grande taille.

 

Qu'est-ce que la mise en cache d'un grand modèle (Prompt Caching) ?

La mise en cache des invites est un mécanisme utilisé pour réduire la latence et le coût de calcul du traitement des longues invites au contenu répété. Dans ce contexte, une "invite" fait référence à l'entrée que vous envoyez au modèle. Au lieu de recalculer les N premiers jetons d'entrée d'une invite à chaque fois pendant le processus de demande, le système met en cache les résultats des calculs précédents. Au lieu de cela, le système met en cache les résultats des calculs précédents afin de pouvoir réutiliser les données mises en cache pour les demandes ultérieures avec le même préfixe d'indice, ce qui accélère le traitement, réduit la latence et permet d'économiser des coûts.

En termes simples, la mise en cache des indices fonctionne comme suit :

  • Mettre en cache les 1024 premiers jetons Le système vérifie si les 1024 premiers jetons du contenu de l'invite sont identiques à ceux de la demande précédente et, si c'est le cas, il met en cache le calcul de ces jetons.
  • cache hit Lorsqu'une nouvelle demande correspond à un indice mis en cache, nous parlons d'une "réponse positive". À ce stade, la réponse contient des informations détaillées sur le jeton de cache, ce qui permet de réduire le temps et le coût de calcul.
  • réduire les coûts : en Type de déploiement standard dans lequel les jetons mis en cache seront facturés à un prix réduit, alors que dans le cadre de la Types de déploiement préconfigurés dans laquelle les étiquettes de cache peuvent même bénéficier d'une réduction de 100%.

Un schéma très graphique de la mise en cache des indices est donné officiellement :

OpenAI开始提供大模型(GPT系列模型)的提示缓存(Prompt Caching):GPT-4o系列模型输入价格下降一半,访问速度提升80%

Comme vous pouvez le voir dans la figure ci-dessus, si les jetons précédents de votre demande initiale sont identiques à ceux de la demande précédente, cette partie de la demande peut être résolue sans passer par le modèle, mais en lisant directement les résultats mis en cache.

Actuellement, OpenAI fournit officiellement les modèles de cache suivants :

modélisationCoûts des intrants textuelsCoûts des entrées audio
gpt-4o (sauf gpt-4o-2024-05-13 et chatgpt-4o-latest)Bon marché 50%inapplicable
gpt-4o-miniBon marché 50%inapplicable
gpt-4o-realtime-previewBon marché 50%Bon marché 80%
o1-previewBon marché 50%inapplicable
o1-miniBon marché 50%inapplicable

Les modèles actuels qui prennent en charge la mise en cache des indices (par exemple, gpt-4o, gpt-4o-mini, gpt-4o-realtime-preview, etc.) sont tous efficaces pour réduire le coût de la saisie de texte, en particulier avec la réduction de coût de 50%, et le modèle gpt-4o-realtime-preview bénéficie même d'une réduction de coût de 80% lors du traitement de la saisie audio. 80% lors du traitement des données audio. La prise en charge de ces modèles améliore non seulement l'efficacité de réponse du modèle, mais fournit également aux développeurs une solution peu coûteuse et très performante, en particulier pour les scénarios qui nécessitent des requêtes répétées fréquentes ou qui contiennent de grandes quantités de contenu statique.

 

Fonctionnement du cache d'indices

Selon la documentation officielle actuelle d'OpenAI, les conditions suivantes doivent être remplies pour que votre demande puisse utiliser le cache :

  • La longueur du message doit être d'au moins 1024 tags .
  • demandé Premières 1024 étiquettes Doit faire l'objet d'une demande ultérieure identique .

En outre, il convient de noter que, officiellement, les 1024 jetons de départ constituent la longueur minimale de la mémoire cache, mais que les 128 jetons incrémentiels des occurrences ultérieures, c'est-à-dire la longueur de la mémoire cache, sont de 1024, 1152, 1280, 1408, de manière à1024 jetons est le minimum, 128 jetons par incrément.La manière dont il est sauvegardé.

Lorsqu'un "cache hit" se produit, la réponse de l'API contiendra cached_tokensqui indique le nombre de jetons provenant du cache. Par exemple, le nombre de jetons envoyés à o1-preview-2024-09-12 Une demande de modèle peut donner lieu à la réponse suivante :

  1. {
  2. "created":1729227448,
  3. "model":"o1-preview-2024-09-12",
  4. "object":"chat.completion",
  5. "usage":{
  6. "completion_tokens":1518,
  7. "prompt_tokens":1566,
  8. "total_tokens":3084,
  9. "completion_tokens_details":{
  10. "reasoning_tokens":576
  11. },
  12. "prompt_tokens_details":{
  13. "cached_tokens":1408
  14. }
  15. }
  16. }

Dans cet exemple, le1408 marqueursest extrait de la mémoire cache, ce qui réduit considérablement le temps de traitement et le coût.

Gagner du temps après l'obtention d'un cache hint

L'OpenAI déclare officiellement que les modèles ne conservent pas en permanence les informations mises en cache. Le mécanisme actuel lié à la mise en cache des indices pour la série de modèles GPT est le suivant :

  • Durée du cache Le cache se trouve dans la base de données de l 5-10 minutesest effacé après l'état inactif de la mémoire cache. Si la dernière utilisation de la mémoire cache n'a pas été consultée pendant plus d'une heure, elle est complètement supprimée.
  • Cache manquant Si l'un des 1024 premiers tokens de l'invite est différent, l'option Cache manquant en ce moment cached_tokens aura une valeur de 0.
  • Le cache n'est pas partagé : Indique que le cache ne se trouve pas dans un endroit différent de celui où il se trouve.s'abonner àpartagée entre eux. Chaque abonnement dispose de son propre cache.
Types de contenu mis en cache pris en charge

La fonctionnalité du cache d'indices varie en fonction du modèle utilisé. Par exemple.Modèles de la série o1Il ne prend en charge que le texte, et non les messages système, les images, les appels d'outils ou les sorties structurées, de sorte que sa fonction de mise en cache s'applique principalement à la partie message de l'utilisateur. La fonction de mise en cache s'applique donc principalement à la partie message de l'utilisateur. gpt-4o et gpt-4o-mini Le modèle prend en charge la mise en cache d'un plus grand nombre de types de contenu, notamment :

  • messages Messages : Une gamme complète de messages, y compris les messages du système, les messages des utilisateurs et les messages d'aide.
  • imagerie Images : Images (liens ou données encodées en base64) contenues dans les messages des utilisateurs, à condition que l'élément detail Les paramètres sont cohérents.
  • Appel d'outil Les caches : Comprend les tableaux de messages et les caches définis par l'outil.
  • Sortie structurée Mode de sortie structuré : mode de sortie structuré attaché à un message système.

Pour augmenter la probabilité d'obtenir des réponses dans le cache, il est recommandé de placer les doublons à l'avant du tableau de messages.

Indication de la version de l'API d'OpenAI prise en charge par le cache

La fonction de mise en cache des indices a été introduite pour la première fois dans le document Version API 2024-10-01-preview dans la fourniture de l'aide. Pour les o1 Série de modèles La réponse de l'API a été ajoutée à la page cached_tokens pour afficher le nombre de jetons trouvés par le cache.

Marche à suivre pour activer la mise en cache des signaux :

  1. longueur minimale Le message d'accueil doit être d'une longueur d'au moins 1024 tokens.
  2. préfixe cohérent (math.) Les demandes d'information doivent être cohérentes entre les 1024 premiers tokens de l'invite.
  3. Réponse de l'API Lorsque le cache est atteint, la réponse de l'API affiche le nom de l'utilisateur et le mot de passe de l'utilisateur. cached_tokensindiquant le nombre de jetons mis en cache.

 

Est-il possible de désactiver la mise en cache des indices ?

Les conseils sont mis en cache dans tous les modèles pris en charge Activé par défaut et est actuellement Pas d'option de désactivation . Cela signifie que si vous utilisez un modèle pris en charge, la mise en cache est automatiquement activée, à condition que la demande soit éligible.

 

Pourquoi la mise en cache des signaux est-elle si importante ?

La mise en cache des repères présente deux avantages principaux :

  1. Réduction des délais La mise en cache permet d'accélérer considérablement les temps de réponse en évitant le traitement en double du même contenu.
  2. réduire les coûts La mise en cache permet de réduire le nombre de jetons à traiter et donc de réduire le coût global de calcul, en particulier pour les invites longues contenant beaucoup de contenu en double.

La mise en cache des indices est particulièrement avantageuse pour les scénarios d'application dans lesquels les mêmes données ou indices doivent souvent être traités, tels que les systèmes d'intelligence artificielle conversationnelle, l'extraction de données et les requêtes répétitives.

 

Meilleures pratiques pour la mise en cache des indices OpenAI

Pour améliorer la probabilité d'obtenir des résultats dans le cache, l'OpenAI donne également quelques conseils officiels :

  • Messages-guides structurés : placer un contenu statique ou répétitif devant le message-guide et un contenu dynamique derrière le message-guide.
  • Surveillance des paramètres de la mémoire cache : optimisez les politiques de mise en cache et d'attribution des indices en surveillant les taux de réussite de la mémoire cache, la latence et les pourcentages de marquage de la mémoire cache.
  • Utiliser des indices longs et les heures creuses : utilisez des indices plus longs et lancez des requêtes pendant les heures creuses pour augmenter les chances d'obtenir des résultats dans le cache, car celui-ci sera vidé plus fréquemment pendant les heures de pointe.
  • Maintenir la cohérence : réduire la probabilité de vidage du cache en utilisant périodiquement des requêtes avec le même préfixe.
La technique de mise en cache des indices d'OpenAI Questions et réponses fréquemment posées
  1. Comment la mise en cache garantit-elle la confidentialité des données ?
    Les cue caches ne sont pas partagés entre différentes organisations. Seuls les membres d'une même organisation peuvent accéder à la même mémoire cache.
  2. La mise en cache des indices affecte-t-elle le balisage de sortie ou la réponse finale ?

Cache Cuen'affectera pasLa sortie du modèle. La sortie générée est toujours la même, que la mise en cache soit utilisée ou non. Étant donné que seules les invites sont mises en cache, la réponse réelle est recalculée à chaque fois sur la base des invites mises en cache.

  1. Est-il possible de vider le cache manuellement ?
    L'effacement manuel de la mémoire cache n'est pas pris en charge actuellement. Les invites qui n'ont pas été utilisées depuis longtemps sont automatiquement supprimées de la mémoire cache. En règle générale, la mémoire cache est vidée lors de l'exécution de la commande 5-10 minutes est effacé après une période d'inactivité, mais pendant les périodes de faible trafic, le cache peut durer tout au plus une heure .
  2. Dois-je payer un supplément pour utiliser le cache d'indices ?
    Pas nécessaire. La mise en cache est activée automatiquement, sans action ni coût supplémentaire pour l'utilisateur.
  3. Les indices mis en cache sont-ils pris en compte dans les limites de la MTP ?
    Oui, la mise en cache n'a pas d'incidence sur la limitation de la vitesse. Les hits de la cache sont toujours pris en compte dans le nombre total de demandes.
  4. Puis-je utiliser les remises de cache dans les API Scale Tier et Bulk ?
    Conseil Les remises de cache ne s'appliquent pas à l'API en bloc, mais elles s'appliquent à l'échelle. Avec Scale Tier, les jetons de débordement sont également soumis aux réductions de cache.
  5. La mise en cache des indices s'applique-t-elle aux demandes de conservation zéro des données ?
    Oui, la mise en cache rapide est conforme à la politique existante de conservation zéro des données.

 

résumés

La fonction de mise en cache des signaux d'Azure OpenAI offre une solution d'optimisation précieuse pour le traitement des signaux longs et des demandes répétitives. Elle améliore considérablement l'efficacité du modèle en réduisant la latence et le coût des calculs.

La prise en charge d'un plus grand nombre de modèles et l'optimisation continue de la fonction de mise en cache des indices devraient permettre aux utilisateurs d'Azure OpenAI de bénéficier d'une expérience de service plus efficace et plus rentable.

© déclaration de droits d'auteur

Postes connexes

Pas de commentaires

Vous devez être connecté pour participer aux commentaires !
S'inscrire maintenant
aucun
Pas de commentaires...