Partager via


Activer la mise en cache sémantique pour les API LLM dans Gestion des API Azure

S'APPLIQUE À : Tous les niveaux de Gestion des API

Activez la mise en cache sémantique des réponses aux demandes d’API LLM pour réduire les exigences de bande passante et de traitement imposées aux API principales et à une latence inférieure perçue par les consommateurs d’API. Avec la mise en cache sémantique, vous pouvez retourner des réponses mises en cache pour des invites identiques et également des invites similaires, même si le texte n’est pas identique. Pour plus d’informations, consultez Tutoriel : Utiliser Azure Managed Redis comme cache sémantique.

Remarque

Les étapes de configuration décrites dans cet article montrent comment activer la mise en cache sémantique pour les API ajoutées à Gestion des API à partir d’Azure OpenAI dans les modèles Microsoft Foundry. Vous pouvez appliquer des étapes similaires pour activer la mise en cache sémantique pour les API LLM (Large Language Model) correspondantes disponibles via l’API d’inférence du modèle IA Azure ou avec des modèles compatibles OpenAI pris en charge par le biais de fournisseurs d’inférence tiers.

Prérequis

Tester le déploiement des API de conversation

Tout d’abord, testez le déploiement Azure OpenAI pour vous assurer que l’API d’achèvement de conversation ou l’API Chat fonctionne comme prévu. Pour connaître les étapes, consultez Importer une API Azure OpenAI dans la Gestion des API Azure.

Par exemple, testez l’API de conversation Azure OpenAI en envoyant une requête POST au point de terminaison de l’API avec un prompt dans le corps de la requête. La réponse devrait inclure la complétion du prompt. Exemple de requête :

POST https://my-api-management.azure-api.net/my-api/openai/deployments/chat-deployment/chat/completions?api-version=2024-02-01

avec le corps de requête :

{"messages":[{"role":"user","content":"Hello"}]}

Une fois que la requête a réussi, la réponse inclut une complétion pour le message de conversation.

Créer un back-end pour l’API d’incorporations

Créez une ressource back-end pour le déploiement de l’API d’incorporations avec les paramètres suivants :

  • Nom : Un nom de votre choix, par exemple embeddings-backend. Vous utilisez ce nom pour référencer le back-end dans les stratégies.

  • Type – Sélectionnez URL personnalisée.

  • URL du runtime : URL du déploiement de l’API d’incorporations dans Azure OpenAI, similaire à : https://my-aoai.openai.azure.com/openai/deployments/embeddings-deployment/embeddings (sans paramètres de requête).

  • Informations d’identification d’autorisation : accédez à l’onglet Identité managée .

    • Identité du client : sélectionnez l’identité affectée par le système ou entrez un ID client d’identité managée affectée par l’utilisateur.
    • ID de ressource : entrez https://cognitiveservices.azure.com/ pour Azure OpenAI.

Test d’incorporations back-end

Pour tester le back-end d’incorporations, créez une opération d’API pour votre API Azure OpenAI :

  1. Sous l’onglet Conception de votre API, sélectionnez + Ajouter une opération.
  2. Entrez un nom d’affichage tel que les incorporations et éventuellement un nom pour l’opération.
  3. Dans la section Front-end, dans URL, sélectionnez POST et entrez le chemin /.
  4. Sous l’onglet En-têtes, ajoutez un en-tête obligatoire avec le nom Content-Type et la valeur application/json.
  5. Cliquez sur Enregistrer.

Configurez les stratégies suivantes dans la section Traitement entrant de l’opération d’API. Dans la stratégie set-backend-service, remplacez le nom du back-end que vous avez créé.

<policies>
    <inbound>
        <set-backend-service backend-id="embeddings-backend" />
        <authentication-managed-identity resource="https://cognitiveservices.azure.com/" />
        [...]
    </inbound>
    [...]
</policies>

Sous l’onglet Tester, testez l’opération en ajoutant un paramètre de requête api-version avec une valeur telle que 2024-02-01. Fournissez un corps de requête valide. Exemple :

{"input":"Hello"}

Si la demande réussit, la réponse inclut une représentation vectorielle du texte d’entrée. Exemple de réponse :

{
    "object": "list",
    "data": [{
        "object": "embedding",
        "index": 0,
        "embedding": [
            -0.021829502,
            -0.007157768,
            -0.028619017,
            [...]
        ]
    }]
}

Configurer des stratégies de mise en cache sémantique

Pour activer la mise en cache sémantique pour les API Azure OpenAI dans Gestion des API Azure, appliquez les stratégies suivantes : une pour vérifier le cache avant d’envoyer des requêtes (recherche) et une autre pour stocker les réponses pour une réutilisation future (magasin) :

  • Dans la section Traitement entrant de l’API, ajoutez la stratégie azure-openai-semantic-cache-lookup. Dans l’attribut embeddings-backend-id, spécifiez le back-end de l’API d’incorporations que vous avez créé.

    Remarque

    Lors de l’activation de la mise en cache sémantique pour d’autres API de modèle de langage volumineux, utilisez plutôt la llm-semantic-cache-lookup.

    Exemple :

    <azure-openai-semantic-cache-lookup
        score-threshold="0.15"
        embeddings-backend-id="embeddings-backend"
        embeddings-backend-auth="system-assigned"
        ignore-system-messages="true"
        max-message-count="10">
        <vary-by>@(context.Subscription.Id)</vary-by>
    </azure-openai-semantic-cache-lookup>
    <rate-limit calls="10" renewal-period="60" />
    

    Remarque

    Ajoutez une stratégie de limite de débit (ou une stratégie de limite de débit par clé ) après la recherche du cache pour limiter le nombre d’appels et empêcher la surcharge sur le service principal si le cache n’est pas disponible.

  • Dans la section Traitement sortant de l’API, ajoutez la stratégie azure-openai-semantic-cache-store.

    Remarque

    Lors de l’activation de la mise en cache sémantique pour d’autres API de modèle de langage volumineux, utilisez plutôt la llm-semantic-cache-store.

    Exemple :

    <azure-openai-semantic-cache-store duration="60" />
    

Confirmer la mise en cache

Pour confirmer que la mise en cache sémantique fonctionne comme prévu, suivez une opération de complétion de test ou de complétion de conversation à l’aide de la console de test dans le portail. Vérifiez que le cache est utilisé lors des tentatives suivantes en inspectant la trace. En savoir plus sur le traçage des appels d’API dans la Gestion des API Azure.

Ajustez l’attribut score-threshold dans la stratégie de recherche pour définir à quel point une invite entrante doit correspondre à une invite mise en cache afin de retourner sa réponse stockée. Un seuil de score faible signifie que les invites doivent avoir une similarité sémantique plus élevée pour retourner des réponses mises en cache. Les requêtes avec des scores au-dessus du seuil n’utilisent pas la réponse mise en cache.

Par exemple, si le cache est utilisé, la section Sortie inclut des entrées similaires à la capture d’écran suivante :

Capture d’écran de la trace de la requête dans le portail Azure.