Partager via


Perspective d’Azure Well-Architected Framework sur Azure OpenAI Service

Le service Azure OpenAI fournit un accès d’API REST aux modèles de langage volumineux OpenAI, en ajoutant des fonctionnalités de mise en réseau et de sécurité Azure. Cet article fournit des recommandations architecturales pour vous aider à prendre des décisions éclairées lorsque vous utilisez Azure OpenAI dans le cadre de l’architecture de votre charge de travail. Les conseils sont basés sur les piliers d’Azure Well-Architected Framework.

Important

Comment utiliser ce guide

Chaque section a une liste de contrôle de conception qui présente les domaines d’intérêt architecturaux ainsi que les stratégies de conception localisées en fonction de l’étendue de la technologie.

Des recommandations sur les capacités technologiques qui peuvent aider à matérialiser ces stratégies sont également incluses. Les recommandations ne représentent pas une liste exhaustive de toutes les configurations disponibles pour Azure OpenAI et ses dépendances. Au lieu de cela, ils répertorient les recommandations clés mappées aux perspectives de conception. Utilisez les recommandations pour créer votre preuve de concept ou optimiser vos environnements existants.

Architecture de base qui illustre les recommandations clés : Architecture de référence de la conversation de bout en bout OpenAI de base.

Étendue de la technologie

Cette révision se concentre uniquement sur Azure OpenAI.

Fiabilité

L’objectif du pilier Fiabilité est de fournir des fonctionnalités continues en créant suffisamment de résilience et la possibilité de récupérer rapidement après des défaillances.

Les principes de conception de fiabilité fournissent une stratégie de conception de haut niveau appliquée pour des composants individuels, des flux système et le système dans son ensemble.

Check-list pour la conception

Démarrez votre stratégie de conception en fonction de la liste de vérification de la révision de la conception pour la fiabilité. Déterminez sa pertinence par rapport aux besoins de votre entreprise. Étendez la stratégie pour inclure d’autres approches en fonction des besoins.

  • Résilience : choisissez l’option de déploiement appropriée du paiement à l’utilisation ou du débit approvisionné en fonction de votre cas d’usage. Étant donné que la capacité réservée augmente la résilience, choisissez le débit approvisionné pour les solutions de production. L’approche de paiement à l’utilisation est idéale pour les environnements de développement/test.

  • Redondance : ajoutez les passerelles appropriées devant vos déploiements Azure OpenAI. La passerelle doit avoir la capacité de résister à des défaillances temporaires telles que la limitation et également d’acheminer vers plusieurs instances Azure OpenAI. Envisagez le routage vers des instances situées dans différentes régions pour créer une redondance régionale.

  • Résilience : si vous utilisez un débit provisionné, envisagez également de déployer une instance de paiement à l’utilisation pour gérer le dépassement de capacité. Vous pouvez acheminer les appels vers l’instance de paiement à l’utilisation via votre passerelle lorsque votre modèle de débit provisionné est limité. Vous pouvez également utiliser la surveillance pour prédire quand le modèle sera limité et acheminer les appels de manière préventive vers le instance de paiement à l’utilisation.

  • Résilience : surveillez l’utilisation de la capacité pour vous assurer que vous ne dépassez pas les limites de débit. Passez régulièrement en revue l’utilisation de la capacité pour obtenir des prévisions plus précises et éviter les interruptions de service dues à des contraintes de capacité.

  • Résilience : suivez les instructions pour les fichiers de données volumineux et importez les données à partir d’un magasin d’objets blob Azure. Les fichiers volumineux, de 100 Mo ou plus, peuvent devenir instables lorsqu’ils sont chargés via des formulaires en plusieurs parties, car les demandes sont atomiques et ne peuvent pas être retentées ou reprises.

  • Récupération : définissez une stratégie de récupération qui inclut un plan de récupération pour les modèles affinés et pour les données d’entraînement chargées sur Azure OpenAI. Étant donné qu’Azure OpenAI n’a pas de basculement automatique, vous devez concevoir une stratégie qui englobe l’ensemble du service et toutes les dépendances, telles que le stockage qui contient des données d’entraînement.

Recommandations

Recommandation Avantage
Surveiller les limites de taux pour le paiement à l’utilisation : si vous utilisez l’approche de paiement à l’utilisation, gérez les limites de débit pour vos déploiements de modèle et surveillez l’utilisation des jetons par minute (TPM) et des demandes par minute (RPM). Ces informations importantes sur le débit fournissent les informations nécessaires pour vous assurer que vous affectez suffisamment de TPM à partir de votre quota pour répondre à la demande de vos déploiements.

L’attribution d’un quota suffisant empêche la limitation des appels à vos modèles déployés.
Surveiller l’utilisation gérée par l’approvisionnement pour le débit provisionné : si vous utilisez le modèle de paiement de débit provisionné , surveillez l’utilisation gérée par l’approvisionnement. Il est important de surveiller l’utilisation gérée par l’approvisionnement pour vous assurer qu’elle ne dépasse pas 100 %, afin d’éviter la limitation des appels à vos modèles déployés.
Activer la fonctionnalité de quota dynamique : si votre budget de charge de travail la prend en charge, effectuez un surapprovisionnement en activant le quota dynamique sur les déploiements de modèles. Le quota dynamique permet à votre déploiement de consommer plus de capacité que votre quota d’habitude, tant qu’il existe une capacité disponible du point de vue d’Azure. Une capacité de quota supplémentaire peut potentiellement empêcher une limitation non souhaitée.
Régler les filtres de contenu : paramétrez les filtres de contenu pour réduire les faux positifs des filtres trop agressifs. Les filtres de contenu bloquent les invites ou les complétions basées sur une analyse opaque des risques. Vérifiez que les filtres de contenu sont paramétrés pour permettre l’utilisation attendue de votre charge de travail.

Sécurité

L’objectif du pilier Sécurité est de fournir des garanties de confidentialité, d’intégrité et de disponibilité à la charge de travail.

Les principes de conception de la sécurité fournissent une stratégie de conception de haut niveau pour atteindre ces objectifs en appliquant des approches à la conception technique autour d’Azure OpenAI.

Check-list pour la conception

Démarrez votre stratégie de conception basée sur la liste de vérification de la révision de conception pour la sécurité et identifiez les vulnérabilités et les contrôles pour améliorer la posture de sécurité. Ensuite, passez en revue la base de référence de sécurité Azure pour Azure OpenAI. Enfin, étendez la stratégie pour inclure d’autres approches si nécessaire.

  • Protéger la confidentialité : si vous chargez des données d’entraînement dans Azure OpenAI, utilisez des clés gérées par le client pour le chiffrement des données, implémentez une stratégie de rotation des clés et supprimez les données de résultats d’entraînement, de validation et d’entraînement. Si vous utilisez un magasin de données externe pour l’apprentissage des données, suivez les meilleures pratiques de sécurité pour ce magasin. Par exemple, pour Stockage Blob Azure, utilisez des clés gérées par le client pour le chiffrement et implémentez une stratégie de rotation des clés. Utilisez l’accès basé sur l’identité managée, implémentez un périmètre réseau à l’aide de points de terminaison privés et activez les journaux d’accès.

  • Protéger la confidentialité : Protégez-vous contre l’exfiltration de données en limitant les URL sortantes auxquelles les ressources Azure OpenAI peuvent accéder.

  • Protéger l’intégrité : implémentez des contrôles d’accès pour authentifier et autoriser l’accès utilisateur au système en utilisant le principe des privilèges minimum et en utilisant des identités individuelles au lieu de clés.

  • Protéger l’intégrité : implémentez la détection des risques de jailbreak pour protéger vos déploiements de modèles de langage contre les attaques par injection d’invite.

  • Protéger la disponibilité : utilisez des contrôles de sécurité pour empêcher les attaques susceptibles d’épuiser les quotas d’utilisation du modèle. Vous pouvez configurer des contrôles pour isoler le service sur un réseau. Si le service doit être accessible à partir d’Internet, envisagez d’utiliser une passerelle pour bloquer les abus présumés en utilisant le routage ou la limitation.

Recommandations

Recommandation Avantage
Clés sécurisées : si votre architecture nécessite une authentification basée sur une clé Azure OpenAI, stockez ces clés dans Azure Key Vault, et non dans le code de l’application. Séparer les secrets du code en les stockant dans Key Vault réduit le risque de fuite de secrets. La séparation facilite également la gestion centralisée des secrets, ce qui facilite les responsabilités telles que la rotation des clés.
Restreindre l’accès : désactivez l’accès public à Azure OpenAI, sauf si votre charge de travail l’exige. Créez des points de terminaison privés si vous vous connectez à partir de consommateurs dans un réseau virtuel Azure. Le contrôle de l’accès à Azure OpenAI permet d’empêcher les attaques d’utilisateurs non autorisés. L’utilisation de points de terminaison privés garantit que le trafic réseau reste privé entre l’application et la plateforme.
Microsoft Entra ID : utilisez Microsoft Entra ID pour l’authentification et pour autoriser l’accès à Azure OpenAI à l’aide du contrôle d’accès en fonction du rôle (RBAC). Désactivez l’authentification locale dans Azure AI Services et définissezdisableLocalAuth sur true. Accordez aux identités qui effectuent des complétions ou la génération d’images le rôle Utilisateur OpenAI Cognitive Services . Accordez aux pipelines d’automatisation de modèle et à la science des données ad hoc un accès comme Contributeur OpenAI Cognitive Services. L’utilisation de Microsoft Entra ID centralise le composant de gestion des identités et élimine l’utilisation des clés API. L’utilisation de RBAC avec Microsoft Entra ID garantit que les utilisateurs ou les groupes disposent exactement des autorisations dont ils ont besoin pour effectuer leur travail. Ce type de contrôle d’accès affiné n’est pas possible avec les clés API Azure OpenAI.
Utiliser des clés gérées par le client : utilisez des clés gérées par le client pour des modèles affinés et des données d’entraînement chargées dans Azure OpenAI. L’utilisation de clés gérées par le client vous offre une plus grande flexibilité pour créer, faire pivoter, désactiver et révoquer des contrôles d’accès.
Protection contre les attaques par jailbreak : utilisez Azure AI Sécurité du Contenu Studio pour détecter les risques de jailbreak. Détectez les tentatives de jailbreak pour identifier et bloquer les invites qui tentent de contourner les mécanismes de sécurité de vos déploiements Azure OpenAI.

Optimisation des coûts

L’optimisation des coûts se concentre sur la détection des modèles de dépenses, la hiérarchisation des investissements dans les domaines critiques et l’optimisation dans d’autres pour répondre au budget de l’organization tout en répondant aux besoins de l’entreprise.

Lisez les principes de conception de l’optimisation des coûts pour en savoir plus sur les approches permettant d’atteindre ces objectifs et les compromis nécessaires dans les choix de conception technique liés à Azure OpenAI.

Check-list pour la conception

Démarrez votre stratégie de conception en fonction de la liste de vérification de la révision de conception pour l’optimisation des coûts pour les investissements. Ajustez la conception pour que la charge de travail soit alignée sur son budget alloué. Votre conception doit utiliser les fonctionnalités Azure appropriées, surveiller les investissements et trouver des opportunités d’optimisation au fil du temps.

  • Gestion des coûts : développez votre modèle de coût en tenant compte des tailles d’invite. La compréhension des tailles d’entrée et de réponse d’invite et la façon dont le texte se traduit en jetons vous aide à créer un modèle de coût viable.

  • Optimisation de l’utilisation : commencez par la tarification du paiement à l’utilisation pour Azure OpenAI jusqu’à ce que l’utilisation de votre jeton soit prévisible.

  • Optimisation du débit : lorsque votre utilisation des jetons est suffisamment élevée et prévisible sur une période donnée, utilisez le modèle de tarification du débit provisionné pour une meilleure optimisation des coûts.

  • Optimisation de l’utilisation : tenez compte de la tarification et des fonctionnalités du modèle lorsque vous choisissez des modèles. Commencez avec des modèles moins coûteux pour les tâches moins complexes telles que la génération de texte ou les tâches d’achèvement. Pour les tâches plus complexes telles que la traduction linguistique ou la compréhension du contenu, envisagez d’utiliser des modèles plus avancés. Tenez compte des différentes fonctionnalités du modèle et des limites d’utilisation maximale des jetons lorsque vous choisissez un modèle approprié pour des cas d’usage tels que l’incorporation de texte, la génération d’images ou les scénarios de transcription. En sélectionnant soigneusement le modèle qui répond le mieux à vos besoins, vous pouvez optimiser les coûts tout en atteignant les performances d’application souhaitées.

  • Optimisation de l’utilisation : utilisez les contraintes de limitation des jetons offertes par les appels d’API, telles que max_tokens et n, qui indiquent le nombre d’achèvements à générer.

  • Optimisation de l’utilisation : optimisez les points d’arrêt de prix Azure OpenAI, par exemple, le réglage précis et les points d’arrêt de modèle comme la génération d’images. Étant donné que le réglage précis est facturé par heure, utilisez autant de temps que vous avez disponible par heure pour améliorer les résultats de réglage précis tout en évitant de glisser dans la période de facturation suivante. De même, le coût de génération de 100 images est le même que celui d’une image. Optimisez les points d’arrêt de prix à votre avantage.

  • Optimisation de l’utilisation : supprimez les modèles affinés inutilisés lorsqu’ils ne sont plus consommés pour éviter d’entraîner des frais d’hébergement continus.

  • Ajuster l’utilisation : optimisez la longueur de l’entrée et de la réponse de l’invite. Les invites plus longues augmentent les coûts en consommant plus de jetons. Toutefois, les invites qui ne disposent pas d’un contexte suffisant n’aident pas les modèles à obtenir de bons résultats. Créez des invites concises qui fournissent suffisamment de contexte pour que le modèle génère une réponse utile. Veillez également à optimiser la limite de la longueur de la réponse.

  • Rentabilité : les requêtes par lot dans la cas où cela est possible pour réduire la surcharge par appel, ce qui peut réduire les coûts globaux. Veillez à optimiser la taille du lot.

  • Rentabilité : étant donné que les modèles ont des coûts de réglage précis différents, tenez compte de ces coûts si votre solution nécessite un réglage précis.

  • Surveiller et optimiser : configurez un système de suivi des coûts qui surveille l’utilisation des modèles. Utilisez ces informations pour informer les choix de modèles et les tailles d’invite.

Recommandations

Recommandation Avantage
Concevoir du code client pour définir des limites : vos clients personnalisés doivent utiliser les fonctionnalités de limite de l’API d’achèvements Azure OpenAI, telles que la limite maximale du nombre de jetons par modèle (max_tokens) ou le nombre d’achèvements à la génération (n). La définition de limites garantit que le serveur ne produit pas plus que les besoins du client. L’utilisation des fonctionnalités d’API pour restreindre l’utilisation aligne la consommation du service sur les besoins du client. Cela permet d’économiser de l’argent en garantissant que le modèle ne génère pas une réponse trop longue qui consomme plus de jetons que nécessaire.
Surveiller l’utilisation du paiement à l’utilisation : si vous utilisez l’approche de paiement à l’utilisation, surveillez l’utilisation du module de plateforme sécurisée et du rpm. Utilisez ces informations pour informer les décisions de conception architecturale, telles que les modèles à utiliser, et pour optimiser les tailles d’invite. La surveillance continue du module TPM et du rpm vous donne des métriques pertinentes pour optimiser le coût des modèles Azure OpenAI. Vous pouvez associer cette surveillance aux fonctionnalités du modèle et à la tarification du modèle pour optimiser l’utilisation du modèle. Vous pouvez également utiliser cette surveillance pour optimiser les tailles d’invite.
Surveiller l’utilisation du débit provisionné : si vous utilisez le débit provisionné, surveillez l’utilisation gérée par l’approvisionnement pour vous assurer que vous ne sous-utilisez pas le débit provisionné que vous avez acheté. La surveillance continue de l’utilisation gérée par l’approvisionnement vous donne les informations dont vous avez besoin pour comprendre si vous sous-utilisez votre débit provisionné.
Gestion des coûts : utilisez les fonctionnalités de gestion des coûts avec OpenAI pour surveiller les coûts, définir des budgets pour gérer les coûts et créer des alertes pour informer les parties prenantes des risques ou des anomalies. La surveillance des coûts, la définition de budgets et la définition d’alertes assurent la gouvernance avec les processus de responsabilité appropriés.

Excellence opérationnelle

L’excellence opérationnelle se concentre principalement sur les procédures pour les pratiques de développement, l’observabilité et la gestion des mises en production.

Les principes de conception d’excellence opérationnelle fournissent une stratégie de conception de haut niveau pour atteindre ces objectifs en fonction des exigences opérationnelles de la charge de travail.

Check-list pour la conception

Démarrez votre stratégie de conception en fonction de la liste de vérification de la révision de conception pour l’excellence opérationnelle. Cette liste de contrôle définit les processus d’observabilité, de test et de déploiement liés à Azure OpenAI.

  • Culture Azure DevOps : assurez le déploiement d’instances Azure OpenAI dans vos différents environnements, tels que le développement, le test et la production. Vérifiez que vous disposez d’environnements pour prendre en charge l’apprentissage et l’expérimentation continus tout au long du cycle de développement.

  • Observabilité : surveillez, agrégez et visualisez les métriques appropriées.

  • Observabilité : si les diagnostics Azure OpenAI sont insuffisants pour vos besoins, envisagez d’utiliser une passerelle comme Azure Gestion des API devant Azure OpenAI pour journaliser les invites entrantes et les réponses sortantes lorsque cela est autorisé. Ces informations peuvent vous aider à comprendre l’efficacité du modèle pour les invites entrantes.

  • Déployer en toute confiance : utilisez l’infrastructure en tant que code (IaC) pour déployer Azure OpenAI, les déploiements de modèles et d’autres infrastructures nécessaires au réglage précis des modèles.

  • Déployer en toute confiance : suivez les pratiques des opérations de modèle de langage volumineux (LLMOps) pour rendre opérationnelle la gestion de vos machines virtuelles Azure OpenAI, y compris le déploiement, le réglage précis et l’ingénierie des invites.

  • Automatiser pour plus d’efficacité : si vous utilisez l’authentification basée sur les clés, implémentez une stratégie de rotation des clés automatisée.

Recommandations

Recommandation Avantage
Activer et configurer Diagnostics Azure : activez et configurez diagnostics pour le service Azure OpenAI. Diagnostics collecte et analyse les métriques et les journaux, ce qui vous aide à surveiller la disponibilité, les performances et le fonctionnement d’Azure OpenAI.

Efficacité des performances

L’efficacité des performances consiste à maintenir l’expérience utilisateur même en cas d’augmentation de la charge en gérant la capacité. La stratégie inclut la mise à l’échelle des ressources, l’identification et l’optimisation des goulots d’étranglement potentiels et l’optimisation des performances maximales.

Les principes de conception d’efficacité des performances fournissent une stratégie de conception de haut niveau pour atteindre ces objectifs de capacité par rapport à l’utilisation attendue.

Check-list pour la conception

Démarrez votre stratégie de conception basée sur la liste de vérification de la révision de conception pour l’efficacité des performances pour définir une base de référence basée sur les indicateurs de performances clés pour les charges de travail Azure OpenAI.

  • Capacité : estimer les demandes d’élasticité des consommateurs. Identifiez le trafic de priorité élevée qui nécessite des réponses synchrones et un trafic de faible priorité qui peut être asynchrone et par lot.

  • Capacité : évaluez les exigences de consommation de jetons en fonction des demandes estimées des consommateurs. Envisagez d’utiliser l’outil d’évaluation Azure OpenAI pour vous aider à valider le débit si vous utilisez des déploiements d’unités de débit approvisionnées (PTU).

  • Capacité : utilisez le débit provisionné pour les charges de travail de production. Le débit provisionné offre une mémoire et un calcul dédiés, une capacité réservée et une latence maximale cohérente pour la version de modèle spécifiée. L’offre de paiement à l’utilisation peut souffrir de problèmes de voisinage bruyants , comme une latence accrue et une limitation dans les régions fortement utilisées. En outre, l’approche de paiement à l’utilisation n’offre pas de capacité garantie.

  • Capacité : ajoutez les passerelles appropriées devant vos déploiements Azure OpenAI. Vérifiez que la passerelle peut acheminer vers plusieurs instances dans la même région ou dans des régions différentes.

  • Capacité : allouez des processeurs pour couvrir votre utilisation prédite et complétez ces processeurs avec un déploiement TPM pour gérer l’élasticité au-delà de cette limite. Cette approche combine le débit de base avec le débit élastique pour plus d’efficacité. Comme d’autres considérations, cette approche nécessite une implémentation de passerelle personnalisée pour acheminer les demandes vers le déploiement TPM lorsque les limites de PTU sont atteintes.

  • Capacité : envoyer des demandes de priorité élevée de manière synchrone. Mettre en file d’attente les demandes de faible priorité et les envoyer par lots lorsque la demande est faible.

  • Capacité : sélectionnez un modèle qui s’aligne sur vos exigences de performances, en tenant compte du compromis entre la vitesse et la complexité de la sortie. Les performances du modèle peuvent varier considérablement en fonction du type de modèle choisi. Les modèles conçus pour la vitesse offrent des temps de réponse plus rapides, ce qui peut être bénéfique pour les applications qui nécessitent des interactions rapides. À l’inverse, des modèles plus sophistiqués peuvent fournir des sorties de meilleure qualité au détriment d’un temps de réponse accru.

  • Atteindre des performances : pour les applications telles que les chatbots ou les interfaces conversationnelles, envisagez d’implémenter le streaming. La diffusion en continu peut améliorer les performances perçues des applications Azure OpenAI en fournissant des réponses aux utilisateurs de manière incrémentielle, ce qui améliore l’expérience utilisateur.

  • Atteindre les performances : déterminez quand utiliser le réglage précis avant de vous engager dans le réglage précis. Bien qu’il existe de bons cas d’usage pour le réglage précis, par exemple lorsque les informations nécessaires au pilotage du modèle sont trop longues ou complexes pour tenir dans l’invite, assurez-vous que les approches promptes d’ingénierie et de récupération augmentée (RAG) ne fonctionnent pas ou sont manifestement plus coûteuses.

  • Atteindre les performances : envisagez d’utiliser des déploiements de modèles dédiés par groupe de consommateurs pour fournir une isolation de l’utilisation par modèle qui peut aider à empêcher les voisins bruyants entre vos groupes de consommateurs.

Recommandations

Il n’existe aucune configuration recommandée pour l’efficacité des performances pour Azure OpenAI.

Azure Policy

Azure fournit un ensemble complet de stratégies intégrées liées à Azure OpenAI et à ses dépendances. Certaines des recommandations précédentes peuvent être auditées via Azure Policy. Considérez les définitions de stratégie suivantes :

Ces définitions Azure Policy sont également des recommandations de bonnes pratiques de sécurité Azure Advisor pour Azure OpenAI.

Étapes suivantes

Considérez les articles suivants comme des ressources illustrant les recommandations mises en évidence dans cet article.

  • Utilisez cette architecture de référence comme exemple d’application des conseils de cet article à une charge de travail : Architecture de référence de référence de conversation OpenAI de bout en bout.
  • Développez une expertise en implémentation à l’aide de la documentation produit Azure Machine Learning .