Arrêtez de retaper les invites : modèles, personnages et exemples succincts
Tous ceux qui utilisent régulièrement un modèle de langage ont le même problème d'archéologie : quelque part dans un historique de discussion se trouve l'invite qui a produit exactement le résultat que vous vouliez, il y a trois semaines, et vous ne pouvez pas la trouver. Vous retapez donc une approximation, obtenez quelque chose de proche et ajustez – à chaque fois, pour la même tâche récurrente. Le correctif n'est pas un meilleur souvenir. Il s'agit de traiter une invite qui fonctionne comme un artefact que vous conservez.
Séparez ce qui change de ce qui ne change pas
Regardez une invite que vous exécutez chaque semaine et vous trouverez deux parties. Il y a une partie stable – le rôle, les contraintes, le format de sortie, les choses que vous voulez éviter – et une partie variable, qui est généralement un document et deux ou trois détails. C'est en retapant la partie stable à chaque fois que vient la dérive : chaque retape est légèrement différente, et vous ne savez jamais si la sortie a changé parce que votre entrée a changé ou parce que vous avez reformulé une instruction sans le vouloir.
Écrivez-le une fois avec des espaces réservés. Le modèle d'invite prend un modèle avec {{placeholder}} marqueurs et une liste de key = value paires et les remplit. Stockez le modèle, fournissez les valeurs, collez le résultat. La partie stable est désormais identique en octets à chaque exécution, ce qui rend vos différences de sortie significatives et, comme avantage secondaire, maintient le fonctionnement de la mise en cache des invites du fournisseur, puisque la mise en cache dépend d'un préfixe inchangé.
Certains espaces réservés valent la peine d'être conservés même si vous pensez que vous n'en avez pas besoin : l'audience, la durée de sortie, le format et le ton. Ce sont exactement les paramètres que vous finissez par corriger dans un message de suivi, et un suivi coûte un aller-retour supplémentaire complet de toute la conversation.
Le bloc de personnalité
La partie stable s'ouvre généralement par une description de qui est censé être le modèle. Écrit avec désinvolture, cela se termine par trois phrases vagues qui font moins que ce que les gens pensent. Écrite délibérément, c'est la partie de l'invite qui a le plus grand effet de levier, car elle définit les valeurs par défaut pour tout ce que vous ne spécifiez pas plus tard.
Ce qui aide réellement : un rôle spécifique plutôt que flatteur (« un éditeur technique qui supprime 30 % de chaque brouillon » bat « un expert en rédaction de classe mondiale »), le public et son niveau, un format de sortie explicite et – le plus sous-estimé – une courte liste de choses à ne pas faire. Les contraintes négatives ne sont pas glamour et fonctionnent : « pas de préambule, pas de résumé à la fin, pas de liste à puces de plus de cinq éléments » supprime les trois désagréments les plus courants sur une seule ligne.
Le Générateur d'invites de personnages IA assemble ce bloc à partir de quelques champs, de sorte que le résultat a la même structure à chaque fois plutôt que de dépendre de ce à quoi vous avez pensé. Conservez le bloc assemblé dans vos notes et réutilisez-le comme en-tête de chaque modèle partageant une audience.
Les exemples battent les adjectifs
Lorsque la tâche est une transformation avec un style spécifique – réécriture des réponses d’assistance, extraction de champs, classification des tickets, conversion des notes au format maison – les instructions plafonnent rapidement. Vous pouvez écrire trois paragraphes sur le ton souhaité et obtenir un résultat presque correct d'une manière que vous ne pouvez pas vraiment articuler. Deux exemples concrets corrigent le problème immédiatement, car le modèle peut voir le mappage au lieu de le déduire de la description.
Le formatage compte ici plus que ce à quoi les gens s’attendent. Les exemples nécessitent des délimiteurs cohérents, des étiquettes cohérentes et le même ordre des champs à chaque fois, sinon le modèle consacre son attention à l'élaboration de la convention plutôt qu'au contenu. Le générateur d'invites en quelques tirs génère un modèle vierge avec des blocs d'entrée/sortie numérotés afin que la structure soit fixée avant que vous commenciez à le remplir - ce qui est précisément la discipline qui manque aux exemples manuscrits du troisième.
Trois règles pratiques. Utilisez deux à cinq exemples ; au-delà de cela, vous payez des jetons pour des rendements décroissants. Incluez un cas limite – un champ vide, une entrée ambiguë, quelque chose qui devrait produire la réponse « Je ne sais pas » – car les exemples définissent les limites autant que le centre. Et rendez les exemples réels : les exemples inventés ont tendance à être plus ordonnés que vos données réelles, et le modèle apprend l'ordre.
Lorsque l'entrée est plus grande que la fenêtre
Un modèle survit au contact avec un long document uniquement si le document s'adapte. Lorsque ce n'est pas le cas, le fractionnement est la solution, et bien diviser est une question de limites de fragments : un fragment qui se termine au milieu d'une phrase force le modèle à deviner, et un fragment qui se termine au milieu de l'enregistrement produit une extraction partielle qu'il signalera en toute confiance comme étant complète.
Le diviseur rapide divise le texte en morceaux séquentiels selon une limite de caractères que vous définissez, en respectant des limites raisonnables et en numérotant les parties, afin que chacune puisse sortir avec le même bloc d'instructions attaché. Deux choses améliorent considérablement les résultats : indiquez le total dans l'instruction de chaque morceau ("partie 3 sur 7, ne résumez pas avant la dernière partie") et gardez l'instruction identique d'un morceau à l'autre plutôt que de la modifier au fur et à mesure.
Exploitez votre propre histoire
La meilleure source de modèles sont les invites que vous avez déjà écrites et qui ont fonctionné. Les transcriptions de discussions copiées à partir d'une interface Web sont un gâchis : rôles entrelacés, artefacts d'interface utilisateur, horodatages, boutons de copie rendus sous forme de texte parasite - et ce gâchis est la raison pour laquelle personne ne les consulte.
Le Analyseur de journaux de discussion IA nettoie une transcription ChatGPT ou Claude collée dans un dialogue utilisateur/assistant bien rangé que vous pouvez réellement lire et rechercher. Une fois par semaine, exécutez les sessions qui ont produit quelque chose que vous avez utilisé, extrayez les invites qui ont fonctionné et transformez-les en modèles. Il s’agit d’une habitude de quinze minutes qui s’accumule plus rapidement que n’importe quelle quantité de conseils d’ingénierie rapides.
Traitez les invites comme du code
Trois pratiques auxquelles les gens finissent par arriver et devraient adopter dès le départ :
- Versionnez-les. Conservez les invites dans les fichiers, dans le référentiel, à côté du code qui les envoie. Une invite dans une page wiki est une invite que personne ne peut différer.
- Conservez les entrées de test fixes. Trois ou quatre documents représentatifs que vous réexécutez chaque fois que vous modifiez l'invite ou le modèle. Sans eux, « la nouvelle version semble meilleure » est infalsifiable – et chaque mise à niveau de modèle est un changement de comportement silencieux.
- Notez sur quel modèle il a été écrit. Une invite adaptée aux bizarreries d'un modèle peut se comporter différemment sur le suivant, et savoir pour quoi il a été conçu vous indique où chercher lorsque la sortie change.
Rien de tout cela ne nécessite une plateforme. Un dossier de fichiers texte, un modèle avec des espaces réservés et l'habitude de sauvegarder ceux qui ont fonctionné surpasseront indéfiniment un historique de discussion non structuré. Chaque outil mentionné ici s'exécute localement dans votre navigateur, de sorte que les invites et les transcriptions que vous organisez (qui contiennent régulièrement du matériel client et des détails internes) restent sur votre ordinateur.
Créateur de TextArray : création d'outils gratuits axés sur la confidentialité qui s'exécutent entièrement dans votre navigateur.