30 points par GN⁺ 2024-11-26 | Aucun commentaire pour le moment. | Partager sur WhatsApp

À qui s’adresse ce document ?

  • Ce document s’adresse à celles et ceux qui veulent améliorer leur capacité à rédiger des prompts pour des LLM post-entraînés.
  • Il vise les personnes ayant une expérience de base de l’usage des LLM, même avec peu de bagage technique.
  • Première partie : fournit une compréhension intuitive du post-entraînement et des prompts.
  • Seconde partie : présente une procédure concrète de rédaction de prompts ainsi que des conseils.

Pourquoi un guide de tuning est-il nécessaire ?

  • La rédaction de prompts pour les LLM est un travail empirique qui demande un apprentissage et des ajustements continus.
  • Ce document vise à partager de manière structurée des stratégies efficaces de rédaction de prompts.
  • Il est centré sur des modèles post-entraînés comme Gemini, mais peut aussi s’appliquer à d’autres modèles.

Pre-Training vs. Post-Training

Pré-entraînement (Pre-training)

  • Concept du pré-entraînement
    • Le pré-entraînement est un concept ancien du deep learning : il consiste à apprendre d’abord des caractéristiques générales à partir d’un grand jeu de données (B), similaire à un petit jeu de données (A) mais bien plus vaste, puis à affiner le modèle sur le jeu de données A.
    • On peut par exemple imaginer un petit jeu de données de mammographies (A) et un vaste jeu de données d’images naturelles collectées sur Internet (B).
  • Procédure du pré-entraînement
    1. Le modèle est entraîné sur le grand jeu de données (B) afin d’apprendre des caractéristiques générales utiles.
    2. Ensuite, le modèle est affiné pour s’adapter au jeu de données A et obtenir de meilleures performances sur celui-ci.
    3. Plus concrètement, il apprend d’abord sur le jeu de données B des compétences de base, comme la segmentation d’objets ou la reconnaissance de concepts indépendamment de leur position dans l’image, puis il acquiert sur cette base des compétences plus spécifiques au jeu de données A.
  • Pourquoi le pré-entraînement est nécessaire
    • Sans apprentissage sur le jeu de données B, le jeu de données A seul peut manquer de données pour apprendre des compétences générales, ce qui risque de dégrader les performances.
    • Un modèle ayant appris des compétences générales sur le jeu de données B n’a plus qu’à apprendre, sur le jeu de données A, des compétences spécialisées à partir d’un volume limité de données.
  • Cas des LLM (grands modèles de langage)
    • Le pré-entraînement des LLM se fait en accomplissant la « prédiction du mot suivant » sur des textes issus d’Internet.
    • Au cours de ce processus, le modèle apprend implicitement la structure du monde telle qu’elle se reflète sur le web.
  • Internet et son reflet du monde
    • La question de savoir quel monde Internet reflète est importante, et on peut pour l’aborder recourir à la métaphore de l’« univers cinématographique ».

Intuition de l’« univers cinématographique » du pré-entraînement

  • Le texte et la description du monde
    • Les grands modèles de langage (LLM) apprennent le monde à travers le texte.
    • Le texte n’est pas contraint de ne refléter que la « vérité ».
    • Au-delà de la désinformation ou des affirmations erronées, il existe de nombreuses raisons pour lesquelles le texte ne reflète pas une unique réalité objective.
  • Exemple : Aragorn et le Gondor
    • Le fait que la phrase « Aragorn devient finalement roi du Gondor » soit vraie ou non dépend du contexte et des présupposés.
      • Univers cinématographique du « Seigneur des anneaux » : cela peut être considéré comme vrai.
      • « Marvel Cinematic Universe » ou réalité : Aragorn et le Gondor étant des entités fictives, ce n’est pas vrai.
  • Le critère de vérité
    • Le caractère vrai d’un énoncé dépend du « monde » que l’on prend pour cadre.
    • C’est un sujet ancien de discussion en philosophie et en linguistique, et un aperçu détaillé de la vérité est disponible à ce lien.
    • D’un point de vue pratique, on peut simplifier cela ainsi : « le fait qu’un énoncé soit vrai ou non dépend de l’univers cinématographique qu’il prend pour arrière-plan ».
  • Données de pré-entraînement et univers cinématographiques
    • Le corpus de pré-entraînement est proche d’une union de divers univers cinématographiques produits par la culture humaine.
    • Plus précisément, il correspond à l’ensemble des cultures qui ont fortement contribué aux sources de données de pré-entraînement, comme le web.

Important
Le corpus de pré-entraînement peut être considéré comme l’union des univers cinématographiques créés par la culture humaine, et reflète en particulier les cultures ayant fortement contribué à des sources de données comme le web.

  • Compréhension du contexte par le modèle
    • Le LLM infère dans quel « univers » il se trouve à partir du contexte fourni, c’est-à-dire du préfixe.
    • Il agit ensuite selon les règles, conventions et faits propres à cet univers.
    • Les prompts contenant des signaux contextuels forts aident le modèle à comprendre plus facilement le « script ».
      • Exemple : le début d’un billet de blog sur New York (« La jungle de béton où les rêves se réalisent n’est pas qu’une simple parole de chanson, c’est la vérité électrique de New York... »)
    • À l’inverse, un prompt au contexte faible comme « Hi, how are you? » rend plus difficile pour le modèle de déterminer dans quel univers il se trouve.
      • Ce type d’expression générique apparaît dans des corpus très variés et laisse donc ouvertes de nombreuses possibilités.
  • Rôle du post-entraînement (Post-training)
    • Quand le contexte manque, le post-entraînement joue un rôle important pour permettre au modèle de produire des sorties plus spécifiques et cohérentes.

Post-entraînement (Post-training)

  • Rôle du post-entraînement
    • Le post-entraînement fournit des directives sur l’« univers par défaut » dans lequel le LLM opère.
    • Au lieu de laisser le modèle inférer l’univers à partir du seul prompt, le post-entraînement fixe certaines hypothèses ou impose des contraintes pour résoudre l’ambiguïté de manière cohérente.
    • Cela est nécessaire pour accroître l’utilité du modèle, par exemple en lui apprenant par défaut à « suivre les instructions de l’utilisateur ».
  • Importance du post-entraînement
    • Sans post-entraînement, une instruction comme « rédige un rapport sur George Washington » pourrait dysfonctionner en produisant simplement un texte qui prolonge cette instruction.
    • Le post-entraînement peut aider à aligner le comportement par défaut du modèle sur les normes sociales.
    • Il contribue ainsi à faire du modèle un outil plus sûr et plus productif.

Important
Le post-entraînement apprend au modèle à remplir de manière cohérente un rôle de base dans divers environnements de déploiement.

  • Ce que l’on peut apprendre en post-entraînement
    • Ce que le modèle peut apprendre pendant le post-entraînement va d’éléments pratiques et concrets à des aspects subjectifs et personnels.
  • Principaux éléments que l’on peut enseigner lors du post-entraînement
    • Comment suivre un format précis
      • Exemple : dans Gemma's Formatter, on part du principe que le modèle opère toujours dans un univers cinématographique où il converse avec l’utilisateur.
      • Dans ce scénario, le modèle agit selon les instructions système, et la conversation commence toujours par un tour de parole de l’utilisateur humain.
    • Comment suivre les instructions de l’utilisateur
      • Exemple : face à une demande telle que « rédige un essai sur les chiens », il doit effectivement rédiger cet essai.
      • Le post-entraînement permet d’apprendre à ne pas ignorer la demande de l’utilisateur ni à répondre d’une autre manière.
    • Alignement avec le « monde réel »
      • Il sert à aligner l’univers cinématographique par défaut du modèle sur le « monde réel » qui intéresse le plus souvent les utilisateurs.
      • Exemple : à la question « où est né la célébrité $CELEBRITY ? », on suppose par défaut une information issue du monde réel, et non d’un univers de fan fiction.
    • Renforcement de la sécurité
      • Internet contient des normes très diverses, et certains contenus peuvent être inadaptés à un environnement de distribution commerciale.
      • Le post-entraînement aide à ajuster le modèle à des politiques de sécurité spécifiques et à définir des normes sur le contenu généré.
      • Cela implique que le modèle intègre les hypothèses normatives nécessaires lorsqu’il génère des textes complexes.
  • Conclusion
    • Le post-entraînement aide le modèle à adopter de manière cohérente des comportements conformes aux attentes dans divers contextes d’usage.
    • C’est un processus essentiel pour maximiser l’utilité et la sécurité du modèle.

Collecte de données pour le post-entraînement

  • Résumé essentiel
    • Pendant le post-entraînement, les LLM sont entraînés et évalués à partir de données créées par des évaluateurs humains.
    • Pendant le post-entraînement, le modèle prend comme modèle les évaluateurs humains ayant généré les données, en tant que « comédien numérique ».
  • Processus de collecte des données de post-entraînement
    • Création d’un jeu de données d’exemples d’entrée variés
      • Création d’un ensemble de prompts décrivant les tâches que le LLM peut accomplir (par ex. restructurer des données en JSON, aider à organiser un mariage, etc.).
      • Ces données peuvent être créées à partir de l’intuition du développeur ou d’idées proposées par des évaluateurs humains.
    • Recrutement d’évaluateurs humains
      • Rôle des évaluateurs : rédiger la « bonne réponse » pour des exemples d’entrée ou classer les réponses du modèle.
      • Selon l’étape d’entraînement du modèle, les évaluateurs produisent différents types de données.
    • Rédaction des consignes d’évaluation
      • Fournir des exemples et des instructions détaillées pour que les évaluateurs comprennent bien la tâche.
    • Collecte des données et exécution du post-entraînement
      • Utiliser les données collectées sur le modèle préentraîné pour effectuer le post-entraînement.
    • Déploiement du modèle
      • Une fois le post-entraînement terminé, déployer le modèle dans un environnement réel.
  • Impact du post-entraînement
    • L’une des raisons pour lesquelles un LLM peut se comporter comme un humain est qu’il a appris sur des jeux de données de comportements humains soigneusement collectés.
    • Le préentraînement construit les capacités fondamentales du modèle, tandis que le post-entraînement oriente son comportement à l’aide de démonstrations humaines.

Important
Si un LLM peut se comporter comme un humain, c’est parce qu’il a appris à partir de données de comportements humains soigneusement collectées.

  • Défis de la collecte de données pour le post-entraînement
    • Monotonie des tâches répétitives
      • Le travail d’évaluation peut être ennuyeux. Par exemple, un excellent programmeur Python peut trouver plus intéressant d’avancer sur ses propres projets.
      • Un poète préférera écrire ses propres poèmes et aura probablement peu d’intérêt à évaluer de la poésie générée par l’IA.
      • Les évaluateurs peuvent perdre en motivation à cause de la répétitivité des tâches, du faible contrôle sur la propriété des données ou de l’absence de sens social du travail.
    • Difficulté à définir une « bonne » réponse
      • Définir ce qu’est une « bonne » réponse pour une tâche est complexe.
      • Il est difficile de clarifier les critères de qualité pour l’écriture, l’exactitude factuelle ou les tâches reflétant la complexité de la réalité sociale.
      • Comme dans un système juridique qui traite les cas limites par la jurisprudence, ces questions dépendent fortement de la subjectivité et du contexte.
    • Manque de compréhension de la tâche par les évaluateurs
      • Il est possible que les évaluateurs ne comprennent pas correctement la tâche.
      • Cela peut se produire si l’on recrute des évaluateurs au mauvais niveau technique ou si les évaluateurs ne reconnaissent pas leurs propres limites.
      • Exemple : rédiger une mauvaise réponse à une question de biologie sur la base de connaissances universitaires obsolètes.
    • Erreurs humaines
      • Les humains font des erreurs. Un professeur peut proposer un sujet d’examen contenant une mauvaise réponse, et un médecin fatigué a plus de risques de poser un mauvais diagnostic.
      • Comme la qualité des données d’évaluation humaines n’est pas parfaite, les systèmes d’IA peuvent eux aussi apprendre à partir de données erronées.
  • Conclusion
    • La collecte de données pour le post-entraînement joue un rôle crucial dans la qualité du modèle, mais elle demande beaucoup d’efforts pour garantir la qualité des données.
    • Il est important d’assurer une bonne adéquation entre les évaluateurs et les tâches afin d’obtenir des données précises et fiables.

Rédaction des prompts

  • Résumé essentiel
    • Lors de la rédaction des instructions système et des prompts, il faut les concevoir en gardant à l’esprit « l’esprit collectif » du groupe d’évaluateurs de l’équipe de post-entraînement.
    • Si les instructions sont rédigées de manière à être comprises et suivies fidèlement par les évaluateurs, le modèle aura lui aussi davantage de chances de bien les suivre.

Important
Les instructions système et les prompts doivent être rédigés de manière à refléter l’esprit collectif du groupe d’évaluateurs de l’équipe de post-entraînement.

Points clés à prendre en compte lors de la rédaction des prompts

  • Vérifier que les instructions sont claires, concises et explicites

    • Exemple : s’il s’agit d’une instruction pour générer du code Python, un programmeur Python expérimenté choisi au hasard doit pouvoir la lire et la comprendre immédiatement.
      • Mauvais : "Write a Python function that computes prime numbers."
      • Bon : "Write a Python function that computes prime numbers from 1 to 100. Include pytype annotations for the function and use 2-space indentation."
  • Vérifier que les instructions ne sont pas contradictoires ou difficiles à suivre

    • Elles doivent être rédigées de façon concise et intuitive afin qu’un humain puisse les suivre fidèlement, même s’il est fatigué ou a faim.
      • Mauvais : "Don’t write a story about a mean dog, unless it's friendly, and also sad..."
      • Bon : "Write a short story (200-300 words) about a loyal golden retriever named Buddy..."
  • Y a-t-il trop d’instructions ?

    • Le modèle peut avoir du mal à suivre toutes les instructions si elles sont longues et complexes. Quand c’est possible, il vaut mieux découper la tâche en sous-tâches.
      • Mauvais : "Read each article and, for each key idea, rate it on a scale of 1-10..."
      • Bon : Découper en sous-tâches : 1) générer une liste des idées principales, 2) évaluer chaque idée, 3) traduire les meilleures idées, 4) générer un post pour les réseaux sociaux.
  • Utiliser des instructions positives

    • Il est plus efficace d’indiquer « ce qu’il faut faire » plutôt que « ce qu’il ne faut pas faire ».
      • Mauvais : "Don’t ever end your response with a full stop."
      • Bon : "Your response should always end with an exclamation mark or a question mark."
  • Instructions jouant un rôle de « rappel » pour le modèle

    • En prenant en compte différents exemples d’entrée, elles apportent des consignes supplémentaires pour les cas qui ne sont pas clairs.
    • Exemple : expliquer clairement les cas limites dans une section « considérations supplémentaires » ou « hypothèses supplémentaires ».
  • Les prompts sont le nouveau hyperparamètre

    • La qualité des prompts a un impact majeur sur les performances du système. Il est impossible de trouver le prompt « optimal », mais il est important d’expérimenter pour trouver progressivement de meilleurs prompts.
  • Instructions pour répondre « je ne sais pas »

    • Fournir des consignes explicites pour les cas « inconnus » ou « ambigus », afin d’amener le modèle à signaler clairement l’ambiguïté au lieu de produire une réponse erronée.
  • Lien étroit entre prompt et checkpoint

    • Un prompt est étroitement lié à un checkpoint de modèle donné. Sur une nouvelle version du modèle, le même prompt peut fonctionner différemment.

Guide de style pour les prompts (bases)

  • Envisager l’usage de Markdown : enregistrer chaque prompt dans un fichier Markdown distinct, avec des titres et des sections bien structurés pour améliorer la lisibilité.
  • Penser aux autres utilisateurs : les prompts doivent être rédigés non seulement pour le modèle, mais aussi pour les personnes chargées de la maintenance.
  • Rester simple : si un prompt est long ou complexe, la charge de maintenance peut augmenter lors des changements de modèle. Il faut donc rédiger de manière concise et claire.
  • Privilégier les instructions zero-shot : les instructions zero-shot sont simples, faciles à déboguer et à comprendre. Le few-shot ne doit être utilisé qu’en dernier recours.
  • Intégrer des exemples : il est préférable d’intégrer naturellement les exemples dans l’instruction, par exemple avec « For example ».
    • Exemple : "Always start your response to the user with something passive aggressive. For example, start with something like 'Oh that’s what you want? ...'"

Procédure itérative d’amélioration de nouvelles instructions système

  • Le développement de prompts est un processus itératif
    • Rédiger un prompt s’apparente à entraîner un modèle à l’aide d’un jeu de données de validation.
    • La clé est d’écrire des formulations claires et concises, et il est efficace de séparer les étapes de génération et d’édition.
  • Il est possible de commencer sans jeu de données de validation
    • Au départ, il faut construire rapidement un MVP (Minimum Viable Product) simple, puis suivre les performances plus tard via une évaluation quantitative.
    • Il est important de concevoir le produit de façon à ce qu’il reste stable même face à des comportements inattendus du modèle.

Procédure itérative des instructions système

  1. Préparer divers exemples d’entrée
  • Rassembler environ 10 à 50 exemples d’entrée variés qui représentent bien le problème.
  • Se forger une intuition sur le comportement de sortie souhaité.
  1. Commencer par une instruction simple
  • Rédiger une instruction aussi simple et claire que possible.
  • Utiliser d’abord un modèle à petit budget (par ex. Gemini Flash 8B).
  1. Exécuter sur le premier exemple d’entrée
  • Tester si le modèle génère une réponse appropriée.
  1. Surajuster au premier exemple
  • Ajouter des « rappels » à l’instruction pour corriger les défauts spécifiques repérés dans la réponse du modèle.
  • Exemple : si l’on doit extraire uniquement des noms de personnes mais que des noms de bâtiments sont aussi inclus, le préciser explicitement dans l’instruction.
  1. Passer à l’exemple suivant
  • Tester si l’instruction reste efficace sur d’autres exemples d’entrée.
  • S’il existe des consignes trop fortement adaptées au premier exemple, les ajuster pour les rendre plus générales.
  1. Nettoyer l’instruction
  • Une fois qu’une instruction fonctionne sur tous les exemples d’entrée, reformuler les phrases et corriger les fautes d’orthographe.
  • Vérifier que l’instruction nettoyée fonctionne toujours sur tous les exemples.
  1. Possibilités d’automatisation
  • À l’avenir, des outils de méta-optimisation pourraient automatiser la génération d’instructions.
  • Mais l’analyse qualitative et les tâches d’assurance qualité resteront nécessaires.

Important
L’analyse qualitative est indispensable au développement des modèles et ne peut pas être évitée.

Situations où les LLM sont utiles

  1. Problèmes faciles à vérifier
    • Les LLM sont particulièrement adaptés aux problèmes pour lesquels « produire la réponse est difficile, mais la vérifier est facile ».
    • Voir par exemple le post de Chris Gorgolewski sur le « sweet spot » de l’IA générative.
  2. Décomposer le problème en sous-problèmes
    • Au lieu d’un prompt complexe, diviser le problème en sous-problèmes bien définis pour construire la chaîne de raisonnement du modèle.
  3. Une approche pensée pour l’avenir
    • Prendre en compte la possibilité d’une augmentation de la capacité d’inférence grâce aux avancées matérielles et aux innovations des modèles économiques.
    • Concevoir les fonctionnalités en fonction de la valeur, plutôt que du coût actuel.
  4. Baisse du coût de l’inférence
    • Le coût de l’inférence devrait diminuer progressivement, ce qui exige une prise de décision centrée sur la « valeur ».
    • Envisager un déploiement progressif tenant compte des limites économiques actuelles afin d’implémenter des fonctionnalités à plus forte valeur.

Prévision
Il est possible que le coût de l’inférence des LLM connaisse une baisse des prix comparable à la loi de Moore.


Ressources complémentaires

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.