Perspective d’Azure Well-Architected Framework sur le service Azure OpenAI
Azure OpenAI Service fournit un accès à l’API REST aux grands modèles de langage (LLMs) 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 azure Well-Architected Framework.
Important
Guide pratique pour utiliser ce guide
Chaque section possède une liste de contrôle de conception qui présente des domaines d’intérêt architecturaux, ainsi que des stratégies de conception localisées dans l’étendue de la technologie.
Il y a également des recommandations sur les fonctionnalités technologiques qui peuvent aider à matérialiser ces stratégies. 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 référence de la conversation openAI de référence openAI de bout en bout.
É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 en permettant de récupérer rapidement des défaillances.
Les principes de conception de fiabilité fournissent une stratégie de conception de haut niveau appliquée aux composants individuels, aux flux système et au 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 conception pour la fiabilité. Déterminez sa pertinence pour vos besoins métier. Étendez la stratégie pour inclure davantage d’approches en fonction des besoins.
Résilience : choisissez l’option de déploiement appropriée pour le paiement à l’utilisation ou le débit provisionné en fonction de votre cas d’usage. Étant donné que la capacité réservée augmente la résilience, choisissez un 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 possibilité de résister à des défaillances temporaires telles que la limitation et également la route vers plusieurs instances Azure OpenAI. Envisagez de router vers des instances 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 router les appels vers l’instance de paiement à l’utilisation via votre passerelle lorsque votre modèle de débit approvisionné est limité.
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 aider à prévenir les interruptions de service en raison de contraintes de capacité.
Résilience : suivez les instructions pour affiner les fichiers de données volumineux et importer les données à partir d’un magasin d’objets blob Azure. Les fichiers volumineux, 100 Mo ou plus, peuvent devenir instables lors du chargement via des formulaires multipart, car les requêtes sont atomiques et ne peuvent pas être retentées ou reprise.
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 l’apprentissage des données chargées dans 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’apprentissage.
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 les demandes par minute (RPM). | Ces informations importantes sur le débit fournissent des informations nécessaires pour vous assurer que vous affectez suffisamment de module de plateforme sécurisée à 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 approvisionné, surveillez l’utilisation gérée par l’approvisionnement. | Il est important de surveiller l’utilisation gérée par l’approvisionnement pour s’assurer qu’elle ne dépasse pas 100 %, afin d’empêcher la limitation des appels à vos modèles déployés. |
Activez la fonctionnalité de quota dynamique : si votre budget de charge de travail le prend en charge, effectuez une surprovisionnement 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 normalement, tant qu’il existe une capacité disponible du point de vue d’Azure. Une capacité de quota supplémentaire peut potentiellement empêcher la limitation non souhaitée. |
Régler les filtres de contenu : paramétrez les filtres de contenu pour réduire les faux positifs à partir de filtres trop agressifs. | Les filtres de contenu bloquent les invites ou les achèvements en fonction d’une analyse des risques opaque. Vérifiez que les filtres de contenu sont paramétrés pour autoriser l’utilisation attendue de votre charge de travail. |
Sécurité
L’objectif du pilier de 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 en fonction de 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é. Évaluez ensuite la Base de référence de sécurité Azure pour Azure OpenAI. Enfin, étendez la stratégie pour inclure davantage d’approches en fonction des besoins.
Protéger la confidentialité : Si vous chargez des données d’apprentissage sur Azure OpenAI, utilisez des clés gérées par le client pour le chiffrement de données, implémentez une stratégie de rotation des clés et supprimez les données de formation, de validation et de résultats de la formation. Si vous utilisez un magasin de données externe pour les données d’apprentissage, suivez les meilleures pratiques de sécurité pour ledit magasin. Par exemple, pour le 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 un 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 de l’exfiltration des données en limitant les URL sortantes auxquelles des 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 à l’aide du principe de privilège minimum et en utilisant des identités individuelles à la place des clés.
Protéger l’intégrité : Implémentez la détection des risques de jailbreak pour protéger les déploiements de votre modèle de langage contre les attaques par injection d’invites.
Protéger la disponibilité : Utilisez des contrôles de sécurité pour empêcher des 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 suspects au moyen du routage ou de la limitation.
Recommandations
Recommandation | Avantage |
---|---|
Sécuriser les clés : Si votre architecture nécessite une authentification basée sur des clés Azure OpenAI, stockez lesdites clés dans Azure Key Vault , pas dans le code de l’application. | La séparation des secrets du code, par leur stockage 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 des 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 autorisez 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éfinissez la valeur disableLocalAuth sur true . Accordez aux identités effectuant des achèvements ou une génération d’images le rôle Utilisateur OpenAI de Cognitive Services. Accordez aux pipelines d’automatisation des modèles et à l’accès à la science des données ad hoc un rôle comme Contributeur OpenAI à Cognitive Services. |
L’utilisation de Microsoft Entra ID centralise le composant de gestion des identités et élimine l’utilisation de 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 à granularité fine n’est pas possible avec des 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’apprentissage chargées dans Azure OpenAI. | L’utilisation de clés gérées par le client vous offre plus de flexibilité pour créer, permuter, désactiver et révoquer des contrôles d’accès. |
Protéger contre les attaques de type jailbreak : Utilisez Azure AI Sécurité du Contenu pour détecter les risques de jailbreak. | Détectez les tentatives de jailbreak pour identifier et bloquer les invites essayant 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épense, la hiérarchisation des investissements dans les domaines critiques et l’optimisation dans d’autres pour répondre au budget de l’organisation 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 afin 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, compte tenu des tailles d’invite. Comprendre les tailles d’entrée et de réponse d’invite et la façon dont le texte se traduit en jetons vous permet de créer un modèle de coût viable.
Optimisation de l’utilisation : commencez par la tarification de paiement à l’utilisation pour Azure OpenAI jusqu’à ce que l’utilisation de votre jeton soit prévisible.
Optimisation du débit : lorsque l’utilisation de votre jeton est suffisamment élevée et prévisible sur une période donnée, utilisez le modèle de tarification du débit approvisionné pour optimiser les coûts.
Optimisation de l’utilisation : envisagez la tarification et les fonctionnalités des modèles lorsque vous choisissez des modèles. Commencez par 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 des 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 les 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 correspond le mieux à vos besoins, vous pouvez optimiser les coûts tout en obtenant les performances de l’application souhaitées.
Optimisation de l’utilisation : utilisez les contraintes de limitation des jetons offertes par les appels d’API, telles que
max_tokens
etn
, 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 la génération de 100 images est identique au coût de 1 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 : optimiser l’entrée d’invite et la longueur de réponse. Des invites plus longues augmentent les coûts en consommant plus de jetons. Toutefois, les invites qui manquent suffisamment de contexte n’aident pas les modèles à produire de bons résultats. Créez des invites concises qui fournissent suffisamment de contexte pour le modèle afin de générer une réponse utile. Veillez également à optimiser la limite de la longueur de la réponse.
Efficacité des coûts : les demandes batch, si possible, pour réduire la surcharge par appel, ce qui peut réduire les coûts globaux. Veillez à optimiser la taille du lot.
Efficacité des coûts : étant donné que les modèles ont différents coûts de réglage précis, 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 du modèle. Utilisez ces informations pour vous aider à informer les choix de modèle 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èvement 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 des limites garantit que le serveur ne produit pas plus que les besoins du client. |
L’utilisation de fonctionnalités d’API pour restreindre l’utilisation aligne la consommation de service avec 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 de TPM et 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 rpm vous offre des métriques pertinentes pour optimiser le coût des modèles Azure OpenAI. Vous pouvez coupler cette surveillance avec les fonctionnalités du modèle et la tarification des modèles 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 approvisionné : si vous utilisez le débit approvisionné, surveillez l’utilisation gérée par l’approvisionnement pour vous assurer que vous n’utilisez pas le débit approvisionné 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 approvisionné. |
Gestion des coûts : utilisez des 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 des budgets et les alertes de définition fournissent une gouvernance avec les processus de responsabilité appropriés. |
Excellence opérationnelle
L’excellence opérationnelle se concentre principalement sur les procédures 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 vers les 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. Assurez-vous que vous disposez d’environnements pour prendre en charge l’apprentissage continu et l’expérimentation tout au long du cycle de développement.
Observabilité : surveiller, agréger et visualiser 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 où elles sont autorisées. 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 requises pour ajuster les modèles.
Déployer en toute confiance : suivez les pratiques des opérations de modèle de langage volumineux (LLMOps) pour opérationnaliser la gestion de vos machines virtuelles LLMS Azure OpenAI, notamment le déploiement, le réglage précis et l’ingénierie rapide.
Automatiser l’efficacité : si vous utilisez l’authentification basée sur des clés, implémentez une stratégie automatisée de rotation des clés.
Recommandations
Recommandation | Avantage |
---|---|
Activez et configurez Diagnostics Azure : activez et configurez diagnostics pour le service Azure OpenAI. | Les diagnostics collectent et analysent 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 en fonction de la liste de contrôle de révision de conception pour la définition d’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 à priorité élevée qui nécessite des réponses synchrones et un trafic de faible priorité qui peut être asynchrone et par lots.
Capacité : référencez les exigences de consommation des 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 voisin bruyants, tels que la latence accrue et la limitation dans les régions sous une forte utilisation. 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 les mêmes régions ou différentes.
Capacité : allouez des PROCESSEURs pour couvrir votre utilisation prédite et complétez ces unités de traitement avec un déploiement TPM pour gérer l’élasticité au-dessus de cette limite. Cette approche combine le débit de base avec le débit élastique pour l’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 du module de plateforme sécurisée lorsque les limites de PTU sont atteintes.
Capacité : envoyez des requêtes de haute priorité de manière synchrone. Mettez en file d’attente les demandes de faible priorité et envoyez-les par lots lorsque la demande est faible.
Capacité : sélectionnez un modèle qui s’aligne sur vos besoins en matière de performances, compte tenu 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 qualité supérieure au détriment d’une augmentation du temps de réponse.
Atteindre les performances : pour les applications telles que les chatbots ou les interfaces conversationnelles, envisagez d’implémenter la diffusion en continu. 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 valider 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 pour diriger le modèle sont trop longues ou complexes pour s’adapter à l’invite, assurez-vous que les approches d’ingénierie et de récupération augmentée par invite (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 d’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. Tenez compte des définitions de stratégie suivantes :
- Désactiver l’accès à la clé
- Restreindre l’accès réseau
- Désactiver l’accès au réseau public
- Utiliser Azure Private Link
- Activer le chiffrement des données avec des clés gérées par le client
Ces définitions Azure Policy sont également des recommandations en matière de sécurité Azure Advisor pour Azure OpenAI.
Étapes suivantes
Considérez les articles suivants comme des ressources qui illustrent les recommandations mises en évidence dans cet article.
- Utilisez cette architecture de référence comme exemple de la façon dont vous pouvez appliquer les conseils de cet article à une charge de travail : architecture de référence de référence de conversation openAI de bout en bout.
- Créez une expertise en matière d’implémentation à l’aide de la documentation du produit Azure Machine Learning .