Intégrer Azure OpenAI à votre application

Effectué

Azure OpenAI propose des kits de développement logiciel (SDK) spécifiques aux deux langages et une API REST que les développeurs peuvent utiliser pour ajouter des fonctionnalités d’IA à leurs applications. Les fonctionnalités d’IA générative dans Azure OpenAI sont fournies par le biais de modèles. Les modèles disponibles dans le service Azure OpenAI appartiennent à différentes familles, chacune ayant son propre objectif. Pour utiliser l’un de ces modèles, vous devez effectuer un déploiement via le service Azure OpenAI.

Créer une ressource Azure OpenAI

Vous pouvez déployer une ressource Azure OpenAI via l’interface de ligne de commande (CLI) Azure et le Portail Azure. La création de la ressource Azure OpenAI via le Portail Azure est similaire au déploiement de ressources Azure AI Services individuelles et fait partie des services Azure AI Services.

  1. Accéder au portail Azure
  2. Recherchez Azure OpenAI, sélectionnez-le, puis cliquez sur Créer.
  3. Entrez les valeurs appropriées pour les champs vides, puis créez la ressource.

Les régions possibles pour Azure OpenAI sont actuellement limitées. Choisissez la région la plus proche de votre emplacement physique, ou la plus proche qui dispose de la disponibilité du ou des modèles que vous souhaitez utiliser.

Une fois la ressource créée, vous disposez de clés et d’un point de terminaison que vous pouvez utiliser dans votre application.

Choisir et déployer un modèle

Chaque famille de modèles excelle dans différentes tâches, et il existe différentes fonctionnalités de modèles au sein de chaque famille. Les familles de modèles se décomposent en trois familles principales :

  • Transformateur génératif pré-entraîné (GPT, Generative Pre-trained Transformer) : modèles qui comprennent et génèrent du langage naturel et du code. Ces modèles sont les plus adaptés pour les tâches générales, les conversations et les formats de conversation.
  • Code (gpt-3 et versions antérieures) : les modèles de code sont basés sur des modèles GPT et entraînés sur des millions de lignes de code. Ces modèles peuvent comprendre et générer du code, y compris l’interprétation des commentaires ou du langage naturel pour générer du code. gpt-35-turbo et les modèles ultérieurs incluent cette fonctionnalité de code et n’ont pas besoin d’un modèle de code distinct.
  • Incorporations : ces modèles peuvent comprendre et utiliser des incorporations, qui sont un format spécial de données qui peut être utilisé par les modèles et algorithmes Machine Learning.

Ce module se concentre sur les modèles GPT généraux, d’autres modèles étant couverts dans d’autres modules.

Pour les modèles plus anciens, la famille et la capacité du modèle sont indiquées dans le nom du modèle de base. Par exemple, text-davinci-003 spécifie qu’il s’agit d’un modèle texte avec une capacité de niveau davinci et un identificateur 3. Pour plus d’informations sur les modèles, les niveaux de capacité et les conventions d’affectation de noms, consultez la page de documentation des modèles Azure OpenAI.

Les modèles plus récents indiquent la génération de gpt et s’il s’agit de la version turbo. Par exemple, gpt-35-turbo représente le modèle GPT 3.5 Turbo.

Pour déployer un modèle que vous pouvez utiliser, accédez à Azure AI Studio, puis à la page Déploiements. Le labo plus loin dans ce module explique exactement comment procéder.

Authentification et spécification du modèle déployé

Quand vous déployez un modèle dans Azure OpenAI, vous choisissez un nom de déploiement à lui attribuer. Lors de la configuration de votre application, vous devez spécifier votre point de terminaison de ressource, votre clé et votre nom de déploiement pour spécifier le modèle de déploiement auquel envoyer votre requête. Cela vous permet de déployer différents modèles au sein de la même ressource et d’effectuer des requêtes auprès du modèle approprié en fonction de la tâche.

Demander à l’ingénierie

La façon dont l’invite d’entrée est écrite joue un rôle important dans la façon dont le modèle IA répondra. Par exemple, pour une invite simple comme « Qu’est-ce qu’Azure OpenAI », vous obtenez souvent une réponse générique similaire à l’utilisation d’un moteur de recherche.

Toutefois, si vous donnez plus de détails sur ce que vous souhaitez dans votre réponse, vous obtenez une réponse plus spécifique. Par exemple, à l’invite suivante :

Classify the following news headline into 1 of the following categories: Business, Tech, Politics, Sport, Entertainment

Headline 1: Donna Steffensen Is Cooking Up a New Kind of Perfection. The Internet’s most beloved cooking guru has a buzzy new book and a fresh new perspective
Category: Entertainment

Headline 2: Major Retailer Announces Plans to Close Over 100 Stores
Category:

Vous obtiendrez probablement la « Catégorie : » sous le titre, renseignée avec « Business ».

Vous trouverez plusieurs exemples similaires à celui-ci dans le terrain de jeu d’Azure AI Studio, sous la liste déroulante Exemples. Essayez d’être aussi précis que possible sur ce que vous voulez recevoir en réponse à partir du modèle, et vous serez peut-être surpris de voir à quel point il peut être perspicace !

Notes

Il n’est jamais sûr de supposer que les réponses d’un modèle IA sont factuelles ou correctes. Les équipes ou les personnes chargées de développer et de déployer des systèmes d’IA doivent s’employer à identifier, mesurer et atténuer les dommages. Il est de votre responsabilité de vérifier les réponses d’un modèle IA et d’utiliser l’IA de manière responsable. Consultez les Notes de transparence de Microsoft sur Azure OpenAI pour obtenir des instructions supplémentaires sur l’utilisation responsable des modèles Azure OpenAI.

Pour plus d’informations, consultez la page de documentation Ingénierie des invites.

Points de terminaison disponibles

Azure OpenAI est accessible via une API REST ou un kit de développement logiciel (SDK) disponible pour Python, C#, JavaScript et bien d’autres. Les points de terminaison disponibles pour interagir avec un modèle déployé sont utilisés différemment, et certains points de terminaison peuvent uniquement utiliser certains modèles. Les points de terminaison disponibles sont les suivants :

  • Completion : à partir d’un prompt d’entrée, le modèle génère une ou plusieurs complétions prédites. Vous verrez ce terrain de jeu dans le studio, mais il n’est pas abordé en profondeur dans ce module.
  • ChatCompletion : à partir d’une entrée sous forme de conversation (où les rôles sont spécifiés avec le message qu’ils envoient), le modèle génère la complétion de conversation suivante.
  • Embeddings : à partir d’une entrée, le modèle retourne une représentation vectorielle de cette entrée.

Par exemple, l’entrée pour ChatCompletion est une conversation avec des rôles clairement définis pour chaque message :

{"role": "system", "content": "You are a helpful assistant, teaching people about AI."},
{"role": "user", "content": "Does Azure OpenAI support multiple languages?"},
{"role": "assistant", "content": "Yes, Azure OpenAI supports several languages, and can translate between them."},
{"role": "user", "content": "Do other Azure AI Services support translation too?"}

Lorsque vous donnez au modèle IA une conversation réelle, il peut générer une meilleure réponse avec un ton, une formulation et un contexte plus précis. Le point de terminaison ChatCompletion permet au modèle ChatGPT d’avoir une conversation plus réaliste en envoyant l’historique de la conversation avec le message utilisateur suivant.

ChatCompletion permet d’avoir aussi des scénarios autres que des conversations, comme des résumés ou des extractions d’entités. Pour ce faire, vous pouvez fournir une conversation courte, en spécifiant les informations système et ce que vous voulez, ainsi que les entrées utilisateur. Par exemple, si vous souhaitez générer une description de poste, donnez à ChatCompletion quelque chose comme l’entrée de conversation suivante.

{"role": "system", "content": "You are an assistant designed to write intriguing job descriptions. "},
{"role": "user", "content": "Write a job description for the following job title: 'Business Intelligence Analyst'. It should include responsibilities, required qualifications, and highlight benefits like time off and flexible hours."}

Notes

Completion est disponible pour tous les modèles de génération gpt-3, tandis que ChatCompletion est la seule option prise en charge pour les modèles gpt-4 et constitue le point de terminaison préféré lors de l’utilisation du modèle gpt-35-turbo. Le labo de ce module utilise gpt-35-turbo avec le point de terminaison ChatCompletion.