# Comment utiliser les modes d’édition et d’insertion de GPT-3?

Date: 2022-03-24 · Author: Robert Scales · https://guidetoartificialintelligence.com/fr/apprendre/modes-edition-insertion-gpt-3/

**Answer:** Le mode d’édition prend un texte existant et une consigne, comme « rends ce texte plus amical », et renvoie une version révisée; le mode d’insertion prend le texte avant et après un trou et écrit ce qui doit aller entre les deux. Les deux sont arrivés en version bêta le 15 mars 2022 : GPT-3 et Codex peuvent désormais réviser et compléter du contenu au lieu de seulement ajouter du texte à la fin.

Jusqu’à la semaine dernière, GPT-3 ne pouvait faire qu’une chose avec votre texte : le poursuivre. Vous lui donniez le début, et il écrivait la suite. Cela convient à l’écriture d’un premier jet, mais l’essentiel du vrai travail d’écriture est de la révision, et l’essentiel de la vraie programmation se fait au milieu d’un fichier. Le 15 mars, OpenAI a lancé des modèles GPT-3 et Codex mis à jour, dotés de deux nouvelles capacités qui répondent exactement à ce besoin : l’**édition** (*edit*) et l’**insertion** (*insert*).

Les deux sont en version bêta, les deux peuvent être essayées dans le Playground (l’interface Web d’OpenAI pour tester des prompts), et les deux peuvent être utilisées au moyen de l’API. Elles fonctionnent différemment; il vaut donc mieux les regarder une à la fois.

## Édition : un texte existant plus une consigne

Le mode d’édition a son propre point de terminaison, une adresse distincte dans l’API pour ce type de requête. Vous envoyez deux choses : le texte que vous avez déjà et une courte consigne qui décrit la modification. Le modèle renvoie le texte modifié plutôt qu’une suite.

OpenAI énumère les types de modifications qu’il réussit bien : ajuster le ton, réorganiser la structure et apporter de petites corrections ciblées, comme l’orthographe. Pour le code, il propose la refactorisation (restructurer du code sans changer ce qu’il fait), l’ajout de documentation, la traduction d’un langage de programmation à un autre et le changement de style de code. Deux modèles dédiés le font fonctionner, `text-davinci-edit-001` pour la prose et `code-davinci-edit-001` pour le code, et pendant la période bêta, le point de terminaison des modifications est gratuit.

Voici un exemple concret. Le texte :

```prompt
En raison de circonstances imprévues, la réunion du jardin communautaire prévue jeudi est par la présente reportée. Les membres sont avisés qu’une nouvelle date sera communiquée en temps opportun. Le fait de ne pas consulter ses courriels peut entraîner l’omission de la réunion reportée.
```

La consigne :

```prompt
Réécris ce texte sur un ton chaleureux et amical, pour des voisins. Reste sous les 50 mots.
```

Voici le genre de réécriture à viser : « Bonjour, chers voisins! Nous avons dû reporter la réunion du jardin communautaire de jeudi. Nous vous enverrons bientôt la nouvelle date par courriel, alors surveillez votre boîte de réception. Merci de votre compréhension! » Les faits restent les mêmes; seuls le ton et la longueur changent.

Vous pouvez enchaîner les modifications. La démonstration d’OpenAI part d’une zone de texte vide, demande un poème, puis demande le poème à la première personne, puis sous forme de lettre avec une formule d’appel et une signature. Chaque étape travaille sur le résultat précédent. Un texte de départ vide signifie aussi que le mode d’édition peut générer du nouveau contenu, un peu comme le fait une complétion ordinaire.

## Insertion : combler un trou

L’insertion fonctionne à l’intérieur du point de terminaison habituel des complétions. En plus du prompt habituel, vous pouvez maintenant fournir un **suffixe** (*suffix*) : le texte qui doit venir après la partie générée. Le modèle écrit quelque chose qui relie les deux. Elle est offerte avec les modèles les plus récents, `text-davinci-002` et `code-davinci-002`, et coûte le même prix que les modèles Davinci précédents.

Savoir ce qui vient ensuite change le résultat. L’exemple d’OpenAI est un plan : quand on lui demande de remplir l’espace entre deux titres de section, une complétion ordinaire écrit quelque chose sans rapport avec la seconde section, alors que l’insertion produit un passage qui y mène.

C’est avec le code que l’insertion brille, et OpenAI dit que Codex était la raison première de sa création. Les programmeurs écrivent rarement à la fin d’un fichier; ils ajoutent des fonctions entre des morceaux de code qui existent déjà. Voici un petit exemple concret en Python. Le prompt (le code avant le trou) :

```prompt
import csv

def load_scores(path):
    """Lit un fichier CSV aux colonnes name,score et renvoie une liste de tuples (name, score)."""
```

Le suffixe (le code après le trou) :

```prompt
scores = load_scores("class.csv")
best = max(scores, key=lambda row: row[1])
print(f"Meilleur élève : {best[0]} avec {best[1]}")
```

Comme le modèle voit comment `load_scores` est utilisée ensuite, il sait que la fonction doit renvoyer des paires dont le second élément peut être comparé comme un nombre. Une bonne insertion ouvre le fichier, saute la ligne d’en-tête, convertit chaque note en nombre et renvoie la liste. Sans le suffixe, il devrait deviner. OpenAI note que l’insertion peut même ajouter des importations manquantes ou de la documentation qui n’ont de sens qu’une fois qu’on sait ce qui suit, et que GitHub Copilot teste déjà la fonction en projet pilote.

> **À essayer :** dans le Playground, collez en mode d’édition un paragraphe que vous avez écrit récemment et donnez tour à tour trois consignes différentes : « corrige seulement la grammaire », « raccourcis-le de moitié » et « réécris-le pour un enfant de dix ans ». Passez ensuite au mode d’insertion, écrivez une phrase d’ouverture et une phrase de clôture pour une courte histoire, et laissez le modèle écrire le milieu.

## Quand vaut-il mieux réviser que générer à partir de rien?

Réviser vaut mieux quand le fond est déjà bon et que vous voulez changer la forme. Si vos notes contiennent les bons faits, les bonnes dates et les bons noms, demander au modèle de les réviser garde ces détails ancrés dans votre texte. Générer à partir de rien invite le modèle à combler les trous par des inventions plausibles, alors qu’une modification lui laisse beaucoup moins de place pour s’égarer.

Cela convient aussi au travail qui doit s’intégrer à quelque chose d’existant : un paragraphe au milieu d’un rapport, une fonction dans un programme qui fonctionne, une transition entre deux sections dont vous êtes satisfait. Le mode d’insertion est conçu pour ces cas, parce qu’il lit les deux côtés du trou.

Générer un texte neuf reste sensé quand vous n’avez encore rien, ou quand vous voulez des options auxquelles vous n’aviez pas pensé. Une façon de travailler pratique combine les deux : générer un premier jet, le réviser par petites étapes guidées par des consignes, et utiliser l’insertion pour relier toute section qui ne s’enchaîne pas. Après chaque étape, relisez le résultat, car une modification peut encore faire tomber un détail ou changer un sens auquel vous teniez.

## Sources

- New GPT-3 Capabilities: Edit & Insert: https://openai.com/blog/gpt-3-edit-insert/
- Introducing Insert and Edits Capabilities: https://community.openai.com/t/introducing-insert-and-edits-capabilities/15993
