Utiliser des saisies de texte dans Azure OpenAI

Effectué

Les modèles GPT-35-Turbo et GPT-4 sont des modèles de langage optimisés pour les interfaces conversationnelles (chats). Les modèles se comportent différemment des anciens modèles GPT-3. Les précédents modèles étaient de type « text-in / text-out » (ou « saisie de texte à traiter » en français), c’est-à-dire qu’ils recevaient une chaîne de prompt (ou « consigne ») qu’ils traitaient avant de répondre en retournant un texte qui complétait la prompt, comme vous venez de l’apprendre.

Les modèles GPT-35-Turbo et GPT-4 sont de type « conversation-in/message-out » (ou « interaction sous forme d’échange de messages »). Les modèles attendent une entrée dans un format de transcription et y génèrent une réponse pour simuler un échange de messages, comme dans une conversation en ligne.

GPT-35-Turbo et GPT-4 peuvent toujours accepter et générer des saisies de texte, mais là où ils brillent, c’est avec la conversation.

Dans Azure OpenAI, il existe deux options différentes pour interagir avec ces types de modèles :

  • API de saisie semi-automatique de conversation.
  • API de saisie semi-automatique avec ChatML (Chat Markup Language).

L’API d’achèvement de conversation est une nouvelle API dédiée pour interagir avec les modèles GPT-35-Turbo et GPT-4 et nous l’utiliserons au fur et à mesure.

Présentation des rôles de l’API d’achèvement de conversation

OpenAI a entraîné les modèles GPT-35-Turbo et GPT-4 pour qu’ils acceptent les entrées de conversation. Chaque entrée ou invite envoyée au modèle et chaque réponse retournée par le modèle est ajoutée à une conversation globale dans l’API d’achèvement de conversation.

L’API d’achèvement de conversation fait référence aux invites entrantes et aux réponses sortantes en tant que messages.

Le modèle accepte un tableau d’objets de message avec une conversation organisée par rôle. Il existe trois types de rôles : Système, Utilisateur et Assistant.

Le rôle Système

Le rôle système également appelé message système est inclus au début du tableau. Ce message fournit les instructions initiales au modèle. Vous pouvez fournir différentes informations dans le rôle système, notamment :

  • Une brève description de l’assistant
  • Les traits de personnalité de l’assistant
  • Les instructions ou les règles à suivre par l’assistant
  • Les données ou les informations nécessaires au modèle telles que des questions pertinentes provenant d’une FAQ

Vous pouvez personnaliser le rôle système selon votre cas d’usage ou simplement inclure des instructions de base. Le message rôle/système est facultatif, mais il est recommandé d’inclure au moins un message système de base, pour obtenir les meilleurs résultats.

Les rôles Utilisateur et Assistant

La conversation se produit entre un utilisateur et le assistant. L’utilisateur est la personne qui entre les invites et interagit avec le modèle. Les réponses du modèle sont représentées par le rôle système.

Le message que l’utilisateur envoie au modèle doit suivre les meilleures pratiques de conception des invites afin d’obtenir des réponses de haute qualité.

Exemples d’invite de messages

Voici quelques exemples de différents styles d’invites que vous pouvez utiliser avec les modèles GPT-35-Turbo et GPT-4. Les exemples ne sont qu’un point de départ et vous pouvez expérimenter différentes invites pour personnaliser le comportement.

Exemple de base

Si vous souhaitez que le modèle GPT-35-Turbo se comporte de la même manière que chat.openai.com, vous pouvez utiliser un message système de base tel que « L’assistant est un modèle de langage étendu entraîné par OpenAI ».

Nous allons apprendre à utiliser le kit de développement logiciel (SDK) .NET de l’API d’achèvement de conversation dans l’unité suivante. Pour l’instant, nous allons nous en tenir aux noms de variables comme exemple.


string systemMessage = "Assistant is a large language model trained by OpenAI";
string userMessage = "Who were the founders of Microsoft?";

Exemple avec des instructions

Pour certains scénarios, vous pouvez donner des instructions supplémentaires au modèle pour définir des critères de contrôle de ce que le modèle est capable de faire.

string systemMessage = """
Assistant is an intelligent chatbot designed to help users answer their tax related questions.
Instructions: 
- Only answer questions related to taxes. 
- If you're unsure of an answer, you can say "I don't know" or "I'm not sure" and recommend users go to the IRS website for more information. 
""";

string userMessage = "When are my taxes due?";

Gestion des conversations

Le modèle n’ayant pas de mémoire, il a besoin d’une transcription mise à jour avec chaque nouvelle question avec toutes les questions et réponses, sinon il perd du contexte.

Cela signifie que vous devez envoyer l’intégralité de la conversation mise à jour au modèle chaque fois que vous interagissez avec celui-ci, et que la limite de jeton pour chaque modèle peut facilement être atteinte.

La limite de jeton pour gpt-35-turbo est de 4 096, tandis que les limites de jeton pour gpt-4 et gpt-4-32k sont de 8 192 et 32 768 respectivement. Vous devez rester en dessous de ces limites, sinon vous recevrez une erreur.

Vous pouvez suivre le nombre de jetons et supprimer les messages les plus anciens du tableau envoyé au modèle. Il est préférable de toujours conserver les messages du système et de ne supprimer que les messages de l’assistant ou de l’utilisateur. Cependant, au fil du temps, cette méthode de gestion de la conversation peut entraîner une dégradation de la qualité de la conversation, car le contexte des parties antérieures de la conversation est perdu.

Une fois la limite de jeton atteinte, vous pouvez également inviter l’utilisateur à démarrer une nouvelle conversation.

Contrôle des connaissances

1.

Quelle est l’importance du rôle Système ?