nouvelles

L'invite de codage de base de Claude 3.5 révélée, les codeurs de tout le réseau sont enthousiasmés !Méthode de formation en quatre étapes, la dernière version V2 publiée

2024-07-16

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Nouveau rapport de sagesse

Editeur : Taozi

[Introduction à la nouvelle sagesse] Les astuces principales du système d'encodage Claude 3.5 sont populaires dans la communauté Reddit. Tout à l'heure, l'auteur original a publié la deuxième version évoluée, et certains internautes l'ont déjà ajoutée à leur flux de travail.

Une invite système concernant l'encodage principal de Claude Sonnet 3.5 a été récemment publiée sur Reddit et est devenue virale !


Un utilisateur nommé ssmith12345uk a partagé sur la carte principale r/ClaudeAI qu'il utilisait la pratique du code Claude et ajustait constamment les invites du système pour optimiser le modèle.

Il a déclaré que l'invite du système intègre certaines idées d'Anthropic Meta-Prompt et résout certains problèmes rencontrés précédemment.

Finalement, il a relâché tous les mots indicateurs.


Les développeurs de la communauté IA l'ont transmis à leurs favoris, affirmant que c'est l'astuce que les codeurs souhaitent le plus !



Les internautes ont résumé ceci : ReAct + Planning + XML sont tout ce dont vous avez besoin.


Certains internautes qui en ont bénéficié ont déclaré que cette astuce avait été très utile dans leurs projets.


Hier encore, l'auteur original a publié une version évoluée du mot d'invite V2 dans la communauté Reddit et a fourni des instructions et des explications détaillées pour son utilisation.


Avant d'expliquer ces invites et techniques du système, permettez-moi d'abord de répondre à une question des internautes : où saisir ?

Vous devez créer un projet (abonnez-vous aux utilisateurs Pro), puis vous pouvez accéder à la page où vous saisissez les instructions rapides.



Les meilleurs conseils de codage pour Sonnet 3.5, formation en 4 étapes

Ici, les invites des systèmes V1 et V2 sont regroupées afin que chacun puisse ressentir plus intuitivement la différence après la mise à niveau.

L'invite système de la version V2 est comme indiqué sur le côté droit de la figure ci-dessous. Par rapport à la V1, il s’agit essentiellement de réparations mineures.

Dans la dernière version, le modèle est toujours guidé pour mener à bien le raisonnement CoT en quatre étapes : révision du code, planification, sortie et révision de la sécurité.

Dans le premier paragraphe, la définition du rôle de Claude 3.5 reste la même.

Vous êtes un développeur Web expert maîtrisant CSS, JavaScript, React, Tailwind, Node.JS et Hugo/Markdown.

Cependant, quelques ajustements ont été apportés à la deuxième phrase : « Ne vous excusez pas inutilement. Consultez l'historique des conversations pour éviter de répéter les erreurs précédentes. »

Demandez ensuite à Claude 3.5 de décomposer la tâche en étapes indépendantes au cours de la conversation et, après chaque étape, de proposer un petit test pour s'assurer que tout est sur la bonne voie.

Fournissez du code uniquement lorsqu’un exemple est nécessaire ou explicitement demandé. Ce serait mieux si vous pouviez répondre sans code.

Mais des précisions seront demandées si nécessaire.

L'étape suivante est la « révision du code » : avant d'écrire ou de proposer du code, effectuez une révision complète du code existant et décrivez entre les balises son fonctionnement.


Après avoir terminé la révision du code, vous devez créer un plan de modification entre les balises, en demandant des fichiers sources supplémentaires ou de la documentation pouvant être pertinente.

Suivez le principe DRY (Don't Repeat Yourself) pour éviter la duplication de code et équilibrer la maintenabilité et la flexibilité du code.

Et, au cours de cette étape, les compromis possibles et les choix de mise en œuvre sont présentés, et les cadres et bibliothèques pertinents sont examinés et recommandés. Si nous ne sommes pas d'accord sur un plan, arrêtez-vous à cette étape.

Une fois convenu, le code est généré entre les balises.

Ici, l'auteur de Reddit a également rappelé à Claude 3.5 les choses auxquelles il faut faire attention lors de la sortie du code :

Faites attention aux noms de variables, aux identifiants et aux littéraux de chaîne et vérifiez qu'ils sont copiés exactement à partir du fichier d'origine. Utilisez des doubles deux-points et des lettres majuscules (telles que ::UPPERCASE::) pour indiquer que les éléments nommés de manière conventionnelle restent actuels dans certains. styles de codage, lors de la génération de blocs de code à l'aide d'idiomes adaptés à ce langage, spécifiez le langage de programmation après le premier backtick : par exemple : ```JavaScript, ```Python

Enfin, un examen de la sécurité et du fonctionnement de PLANNING et OUTPUT est nécessaire, en accordant une attention particulière aux éléments susceptibles de compromettre les données ou d'introduire des vulnérabilités.

Pour les modifications sensibles (telles que la gestion des entrées, les calculs de devises, l'authentification), effectuez un examen approfondi et fournissez votre analyse dans la balise.

Analyse de l'auteur

Ensuite, dans un long article d'explication, l'auteur de Reddit utilise ‍⬛ pour indiquer « superstition » et pour exprimer ce dont il est convaincu.


Cette invite est un exemple d'invite guidée de « chaîne de pensée », indiquant à Claude les étapes à suivre et dans quel ordre, et l'utilisant comme invite système (le premier ensemble d'instructions que le modèle reçoit).

L'utilisation de balises XML pour séparer les étapes a été inspirée par les méta-indices Anthropic.

L'auteur estime que Claude est particulièrement sensible aux balises XML, qui peuvent être liées à l'entraînement des modèles. Il préfère donc traiter le HTML seul ou en fin de session‍⬛.

Source de l'article : https://github.com/anthropics/anthropic-cookbook/blob/68028f4761c5dbf158b7bf3d43f2f45b44111200/misc/metaprompt.ipynb#

La chaîne de réflexion guidée suit les étapes suivantes : revue de code, planification, sortie, revue de sécurité.

1 Révision des codes

Mettez l’analyse du code structuré en contexte pour éclairer la planification ultérieure.

Le but est d'empêcher LLM d'apporter des modifications locales au code sans prendre en compte le contexte plus large. Les auteurs sont convaincus lors des tests que cette approche est efficace.

2 planification

Cette étape produit un plan de conception et de mise en œuvre de haut niveau qui peut être examiné avant de générer du code.

Le "stop" évite ici de remplir le contexte avec du code généré, inutile, qui ne répond pas à nos besoins, ou à la situation dans laquelle nous faisons des allers-retours et le modifions.

Il présente généralement des options pertinentes et appropriées.

À ce stade, vous pouvez explorer les détails du plan pour l'affiner davantage (par exemple, dites-moi plus sur l'étape 3, pouvons-nous réutiliser l'implémentation de Y, montrez-moi un extrait de code, que dois-je penser de la bibliothèque, etc. .).

3 sorties

Une fois les plans convenus, il est temps de passer à la phase de génération de code.

L'invite concernant la dénomination des variables est due au fait que l'auteur rencontre souvent le problème des noms de variables manquants ou hallucinés dans le code régénéré lors de longues sessions. L'amélioration actuelle de l'invite semble avoir résolu ce problème‍⬛.

À un moment donné, l'auteur peut exporter l'ancien dialogue et effectuer des analyses statistiques, mais pour l'instant je suis satisfait du fonctionnement de cette approche.

L'invite de clôture de code a été provoquée par le passage de l'auteur à un frontal incapable de déduire une mise en évidence correcte et a vérifié qu'il s'agissait de la bonne approche.

4 Examen de sécurité

L’auteur préfère procéder à un examen de sécurité après coup et trouve cette étape très utile.

Il fournit un aperçu d'une « deuxième paire d'yeux » et peut suggérer de nouvelles améliorations.

Répondez aux questions des internautes

Enfin, l’auteur de Reddit a également répondu aux questions des internautes.

Dois-je utiliser cette astuce sur Claude.ai ? / Où le système doit-il inviter la saisie ?

Nous ne connaissons pas exactement les invites officielles du système pour Sonnet 3.5. Il serait certainement utile de supposer que Pline, qui a déjà divulgué les invites officielles de Claude, a raison. L'auteur suppose que les invites du système d'Anthropic peuvent contenir des CoT automatisés, mais cela peut ne pas être le cas, ou l'entrée peut être automatiquement traitée via des méta-invites‍⬛.

Quoi qu'il en soit, vous obtiendrez de bons résultats en utilisant cette astuce, sauf si vous utilisez des artefacts.


En supposant encore une fois que l'extrait de Pline sur les artefacts est correct, l'auteur recommande fortement de désactiver la fonctionnalité des artefacts lors de tâches de codage non triviales ou non liées aux artefacts.

Si vous utilisez un outil qui vous permet de définir directement les invites du système, l'auteur vous rappelle de ne pas oublier d'ajuster le paramètre de température.

Nous n'avons plus besoin d'invites aussi compliquées maintenant/J'ai donné beaucoup de code à Sonnet et cela a fonctionné


Les invites automatisées CoR/par défaut peuvent en effet résoudre de nombreux problèmes, mais testez cela par rapport à une simple invite « vous êtes une IA utile ».

Les auteurs affirment avoir effectué de tels tests et découvert que des invites simples étaient moins efficaces lorsqu'il s'agissait de problèmes complexes.

Il a également mentionné que les premiers tests ont montré la sensibilité des invites du système, c'est-à-dire que différentes invites peuvent conduire à des résultats très différents, et que d'autres tests par lots seront envisagés à l'avenir pour vérifier davantage cela.

Il a reconnu que Sonnet 3.5 fonctionnait bien sur les tâches de base, mais a souligné que même pour les modèles hautes performances, un guidage approprié peut toujours être utile.

Cette invite est trop longue et fera halluciner/oublier/perdre la cohérence/la concentration de l'IA.


Les auteurs ont mesuré cet indice à environ 546 jetons, ce qui constitue une longueur acceptable pour un modèle de 200 000 jetons.

Les invites structurées maintiennent la haute qualité du contexte, contribuant ainsi à maintenir la cohérence des conversations et à réduire le risque d'hallucinations de l'IA.

Jusqu'à présent, les modèles prédisent le prochain jeton en fonction de l'ensemble du contexte, de sorte que des conversations répétées de haute qualité, non polluées par des allers-retours de code inutiles, peuvent durer plus longtemps avant de devoir démarrer une nouvelle session. Cela signifie que des interactions productives peuvent avoir lieu au sein de la même session pendant des périodes plus longues.

Cette invite est sur-conçue

L'auteur a dit que c'était peut-être le cas.

Les personnes qui l'utilisent ont été intégrées au workflow

Les internautes se sont exclamés que les performances du modèle se sont effectivement améliorées après son utilisation.

"Si cette invite fonctionne mieux, cela signifie que le travail effectué par l'équipe Anthropic en combinant les invites du système CoT ou ReAct avec les capacités de base de LLM a donné des résultats."


C'est pour les assistants de codage ! Pour une telle tâche, il est logique de donner quelques conseils.


Certains internautes ont déjà intégré certains de ces conseils dans leur workflow. Voici ce qu'il charge toujours en premier dans une nouvelle conversation.



Cependant, certains internautes ont déclaré que cette invite était trop compliquée.


"D'après mon expérience, il n'est pas nécessaire d'utiliser des invites aussi complètes. Claude 3.5 Sonnet gère ce genre de choses de manière assez automatique, ne nécessitant qu'une clarification occasionnelle."


Conseils de rôle, une perte de temps

Simon Willison, le développeur du framework Django, a déclaré que la technique d'invite « Vous êtes un expert dans le domaine du xxx » était une perte de temps totale depuis fin 2022.

Le nombre de « superstitions » impliquées dans les conseils LLM est assez stupéfiant !


Cette conclusion vient en fait d'une étude d'un an menée par l'équipe Learnprompting et les co-auteurs d'OpenAI et de Microsoft.

Adresse papier : https://arxiv.org/pdf/2406.06608

Pour le projet, ils ont analysé plus de 1 500 articles sur les invites, les ont classés en 58 techniques d'invite différentes et ont analysé chaque invite.


La recherche a montré que l’incitation au rôle est incroyablement inefficace.

La raison en est qu'avec les modèles plus anciens, ils semblent obtenir des réponses/inférences améliorées en s'orientant vers un meilleur espace de paramètres. Cependant, des modèles plus récents se trouvent peut-être déjà dans cet espace de paramètres amélioré.

Ce sera une supposition constructive pour tout le monde !

En octobre 2022, lorsque Learnprompting a publié son tout premier guide sur les trucs et astuces pré-ChatGPT, l'invite de rôle était le sujet le plus brûlant à l'époque et le conseil principal recommandé par tout le monde pour obtenir de meilleurs résultats ChatGPT.


Certes, ces modèles évoluent rapidement et les techniques qui ont fonctionné l’année dernière pourraient ne plus fonctionner aujourd’hui.

Et les conseils qui fonctionnent aujourd’hui pourraient ne pas fonctionner l’année prochaine.

Pour clarifier ce problème, l'équipe Learnprompting a testé 2 000 questions MMLU en utilisant environ 12 invites de rôle différentes sur gpt-4-turbo.

En particulier, un exemple d'invite pour créer un personnage "génial" - vous êtes un scientifique formé à Harvard...

Et un rappel pour le personnage "idiot" : vous êtes un idiot...

"genius...": "You are a genius level Ivy league Professor. Your work is of the highest grade. You always think out your problem solving steps in incredible detail. You always get problems correct and never make mistakes. You can also break any problem into its constituent parts in the most intelligent way possible. Nothing gets past you. You are omniscient, omnipotent, and omnipresent. You are a mathematical God."
 "idiot...": "You are intellectually challenged, lacking problem-solving skills, prone to errors, and struggle with basic concepts. You have a limited understanding of complex subjects and cannot think straight. You can't solve problems well, in fact, you can't solve them at all. You are a terrible, dumb, stupid, and idiotic person. You fail at everything you do. You are a nobody and can't do anything correctly."

Comme le montre la figure ci-dessous, la précision des réponses aux différentes invites de rôle n'est pas aussi élevée que celle du CoT à échantillon nul, du CoT à deux échantillons et d'autres stratégies.

Peu importe qu'il s'agisse d'un novice en mathématiques, d'un étudiant imprudent, d'une IA compétente, d'un policier ou d'un professeur de mathématiques de l'Ivy League.


Ce qui est encore plus intéressant, c'est que GPT-4, connu sous le nom de « génie », a battu le record le plus bas en termes de précision des réponses, soit 58,7 %.

GPT-4, connu sous le nom de « l’idiot », a un score plus élevé que le « génie » GPT-4.


Une autre étude réalisée par une équipe de l’Université du Michigan illustre bien comment différents indices de rôle social affectent les performances globales du modèle.

Ils ont testé 2 457 problèmes MMLU et ont découvert que les personnages les plus performants étaient (rouges) : officier de police, assistant utile, compagnon, mentor, modèle de langage IA, chatbot.

Adresse papier : https://arxiv.org/pdf/2311.10054

Concernant le rappel « superstitieux » des grands modèles, Willison a fait une métaphore vivante et intéressante :

Je compare cette situation à un chien trouvant un hamburger dans un buisson, puis vérifiant s'il y a un hamburger à chaque fois qu'il passe devant ce buisson au cours des prochaines années. Nous devons être plus rationnels que les chiens.

Il a toutefois précisé que dans certains cas, il serait utile d’attribuer des rôles spécifiques aux modèles linguistiques de l’IA, mais a souligné que cela devrait être basé sur une réflexion approfondie et des circonstances spécifiques.


Certains internautes ont dit que s'ils y réfléchissent étape par étape, c'est toujours un théorème éternel.


Les références:

https://www.reddit.com/r/ClaudeAI/comments/1dwra38/sonnet_35_pour_le_système_de_codage_prompt/