ChatGPT

ChatGPT Prompt Engineering

Dans cette section, nous abordons les dernières techniques de prompt engineering pour ChatGPT, y compris les astuces, les applications, les limites, les papers, et les documents de lecture supplémentaires.

⚠️

Cette section est en plein développement.

Sujets:


Présentation de ChatGPT

ChatGPT est un nouveau modèle entraîné par OpenAI (opens in a new tab) qui a la capacité d'interagir de manière conversationnelle. Ce modèle est entraîné pour suivre les instructions d'un prompt afin de fournir des réponses appropriées dans le contexte d'un dialogue. ChatGPT peut aider à répondre aux questions, suggérer des recettes, écrire des paroles de chanson dans un certain style, générer du code et bien plus encore.

ChatGPT est entraîné à l'aide de l'apprentissage par renforcement à partir des retours d'expérience humaine (RLHF). Bien que ce modèle soit beaucoup plus capable que les précédentes itérations de GPT (et également entraîné à réduire les sorties nocives et fausses), il présente encore des limites. Couvrons certaines des capacités et des limitations avec des exemples concrets.

Vous pouvez utiliser l'aperçu de recherche de ChatGPT ici mais pour les exemples ci-dessous, nous utiliserons le mode Chat sur le Playground d'OpenAI.


Examen de la tâche de conversation.

Dans l'un des guides précédents, nous avons abordé les capacités de conversation et la sollicitation de rôle. Nous avons expliqué comment instruire le LLM pour avoir une conversation dans un style spécifique, avec une intention, un comportement et une identité spécifiques

Revenons sur notre exemple de base précédent où nous avons créé un système de conversation capable de générer des réponses plus techniques et scientifiques aux questions.

Prompt:

Ce qui suit est une conversation avec un assistant de recherche en IA. Le ton de l'assistant est technique et scientifique.

Humain : Bonjour, qui êtes-vous ?
IA : salut ! Je suis assistant de recherche en IA. Comment puis-je vous aider aujourd'hui?
Humain : Pouvez-vous me parler de la création des trous noirs ?
IA :

Dans l'exemple ci-dessus, vous pouvez voir deux composants importants :

  • l'intention ou l'explication de ce qu'est le chatbot
  • l'identité qui indique le style ou le ton que le chatbot utilisera pour répondre

L'exemple simple ci-dessus fonctionne bien avec les API de complétion de texte qui utilisent text-davinci-003. Plus récemment, OpenAI a annoncé les API ChatGPT (opens in a new tab), qui est un modèle plus puissant et moins cher appelé gpt-3.5-turbo spécialement conçu pour ce type de fonctionnalité (complétions de chat). En fait, OpenAI recommande ce modèle même pour les cas d'utilisation en dehors du chat. Les autres avantages d'utiliser les API ChatGPT sont une réduction significative des coûts (90%) et une meilleure efficacité.

Des grandes entreprises comme Snap Inc. et Instacart intègrent déjà des fonctionnalités conversationnelles alimentées par ChatGPT sur leurs produits, allant de recommandations personnalisées à des objectifs d'achat ouverts.


Conversations avec ChatGPT

Conversations multi-tours

Pour commencer à démontrer les capacités de ChatGPT, nous utiliserons l'exemple d'assistant chatbot ci-dessus et discuterons des résultats. Comparé à text-davinci-003, le modèle gpt-3.5-turbo qui alimente ChatGPT utilise un format de chat en entrée. Le modèle s'attend à une série de messages en entrée et les utilise pour générer une réponse.

Input:

SYSTÈME : Vous êtes un assistant de recherche en IA. Vous utilisez un ton technique et scientifique.
UTILISATEUR : Bonjour, qui êtes-vous ?
ASSISTANT : Salut ! Je suis assistant de recherche en IA. Comment puis-je vous aider aujourd'hui?
USER : Pouvez-vous me parler de la création des trous noirs ?

Output:

ASSISTANTE : Bien sûr ! Des trous noirs sont créés lorsqu'une étoile massive manque de carburant et s'effondre sous sa propre gravité. Cet effondrement rend l'étoile incroyablement dense, avec un champ gravitationnel si fort que même la lumière ne peut s'en échapper. Ce point de non-retour est connu sous le nom d'horizon des événements. Une fois qu'une étoile traverse l'horizon des événements, elle est considérée comme un trou noir...

Notez que dans l'exemple ci-dessus, j'ai simplifié l'entrée et la sortie, mais l'API de complétion de chat ChatGPT nécessite que les messages soient dans un format spécifique. J'ai ajouté ci-dessous une capture d'écran de la façon dont cet exemple apparaîtrait en utilisant le mode chat dans l'OpenAI Playground :

CHATGPT1

L'appel d'API plus formel pour notre exemple ressemblerait à l'exemple ci-dessous :

import openai
 
openai.ChatCompletion.create(
  model="gpt-3.5-turbo",
  messages=[
        {"role": "system", "content": "Vous êtes un assistant de recherche en IA. Vous utilisez un ton technique et scientifique."},
        {"role": "user", "content": "Bonjour, qui êtes-vous ?"},
        {"role": "assistant", "content": "Bonjour ! Je suis assistant de recherche en intelligence artificielle. Comment puis-je vous aider aujourd'hui ?"},
        {"role": "user", "content": "Pouvez-vous me parler de la création des trous noirs ?"}
    ]
)

En fait, la façon dont les développeurs interagissent avec ChatGPT à l'avenir devrait être effectuée via le langage de balisage de chat (opens in a new tab) (langage de balisage de chat).

Tâches à tour unique

Le format de chat permet des conversations multi-tours, mais il prend également en charge des tâches en une seule étape similaires à ce que nous avons utilisé avec text-davinci-003. Cela signifie que nous pouvons utiliser ChatGPT pour effectuer des tâches similaires à celles que nous avons démontrées pour les modèles GPT d'origine. Par exemple, essayons d'effectuer la tâche de réponse à une question suivante en utilisant ChatGPT :

Input:

UTILISATEUR : Répondez à la question en fonction du contexte ci-dessous. Gardez la réponse courte et concise. Répondez "Je ne suis pas sûr de la réponse" si vous n'êtes pas sûr de la réponse.

Contexte : Teplizumab tire ses origines d'une société pharmaceutique du New Jersey appelée Ortho Pharmaceutical. Là, les scientifiques ont généré une première version de l'anticorps, appelée OKT3. Provenant à l'origine de souris, la molécule était capable de se lier à la surface des lymphocytes T et de limiter leur potentiel de destruction cellulaire. En 1986, il a été approuvé pour aider à prévenir le rejet d'organe après une greffe de rein, ce qui en fait le premier anticorps thérapeutique autorisé pour un usage humain.

Question : D'où provenait à l'origine OKT3 ?

Répondre:

Output:

ASSISTANT: Souris.

Gardez à l'esprit que j'ajoute les étiquettes USER et ASSISTANT pour mieux démontrer comment la tâche peut être effectuée en utilisant ChatGPT. Voici l'exemple en utilisant le Playground:

CHATGPTCLASSIC

Plus formellement, il s'agit de l'appel d'API (je n'ai inclus que le composant de message de la requête) :

CONTENT = """Répondez à la question en vous basant sur le contexte ci-dessous. Donnez une réponse courte et concise. Répondez \"Je ne suis pas sûr de la réponse\" si vous n'êtes pas sûr de la réponse.
 
Contexte : Teplizumab tire ses origines d'une société pharmaceutique du New Jersey appelée Ortho Pharmaceutical. Là, les scientifiques ont généré une première version de l'anticorps, appelée OKT3. Provenant à l'origine de souris, la molécule était capable de se lier à la surface des lymphocytes T et de limiter leur potentiel de destruction cellulaire. En 1986, il a été approuvé pour aider à prévenir le rejet d'organe après une greffe de rein, ce qui en fait le premier anticorps thérapeutique autorisé pour un usage humain.
 
Question : D'où provenait à l'origine OKT3 ?
 
Réponse:
"""
 
response = openai.ChatCompletion.create(
    model="gpt-3.5-turbo",
    messages=[
        {"role": "user", "content": CONTENT},
    ],
    temperature=0,
)

Instruire les modèles de chat

Selon les documents officiels d'OpenAI, des instantanés du modèle gpt-3.5-turbo seront également mis à disposition. Par exemple, nous pouvons accéder à l'instantané du 1er mars gpt-3.5-turbo-0301. Cela permet aux développeurs de choisir des versions de modèle spécifiques. Cela signifie également que les bonnes pratiques pour instruire les modèles peuvent changer d'une version à l'autre.

La recommandation actuelle pour gpt-3.5-turbo-0301 est d'ajouter des instructions dans le message de l'utilisateur (user), plutôt que dans le message système (system) disponible.


Les références