LangChain Official Release : Découvrez les conseils pour optimiser les mots-clés

Par Krish Maniar et William Fu-Hinthorn

Lorsque nous écrivons des indices, nous essayons de communiquer nos intentions aux grands modèles de langage (LLM) afin qu'ils puissent appliquer ces instructions à des données complexes. Cependant, il n'est pas facile d'exprimer clairement toutes les nuances à la fois. L'ingénierie des messages est souvent optimisée par des essais et des erreurs manuels, des tests et des réglages, mais des outils comme DSPy et promptim démontrent la valeur de la "programmation des messages" et de l'optimisation systématique des messages. Ils comblent le fossé entre l'intention et l'instruction en mesurant et en testant des données réelles. Dans ce document, nous :

  • Cinq ensembles de données aux résultats vérifiables ont été sélectionnés pour l'étalonnage des performances et l'optimisation des résultats.
  • Cinq méthodes d'amélioration systématique des messages-guides ont été réalisées et comparées
  • Trois modèles différents ont été évalués (gpt-4o,claude-sonnet,o1) dans l'optimisation des indices

Notre conclusion :

  • Le modèle que nous recommandons pour l'optimisation des repères est le suivant claude-sonnet(Mieux que o1)
  • L'optimisation des indices est plus efficace dans les tâches où le modèle manque de connaissances du domaine.
  • Dans ces cas, l'optimisation des repères peut améliorer la précision d'environ 200% par rapport aux repères de base
  • L'optimisation des repères peut également être considérée comme une forme de mémoire à long terme : apprendre directement à partir des données et s'adapter à l'évolution de l'environnement.

 

Ce que nous avons testé.

Nous avons comparé cinq méthodes populaires d'optimisation des repères (expliquées en détail plus loin) :

  1. Incitation en quelques coups : utilisation d'exemples de formation comme démonstrations du comportement souhaité
  2. Méta-promptage : analyse et amélioration des messages-guides avec LLM
  3. Méta-promptage avec réflexion : permettre aux MLD de réfléchir et d'analyser de manière critique les changements qu'ils proposent avant de soumettre des messages actualisés.
  4. Gradients d'incitation : générez des "gradients de texte" pour chaque exemple en tant que suggestions d'amélioration, puis appliquez ces suggestions dans un autre appel LLM.
  5. Optimisation évolutive : exploration de l'espace des repères par mutation contrôlée

Nous avons appliqué ces méthodes à trois modèles (O1, GPT-4o et Claude-3.5-Sonnet) et les avons testées sur cinq ensembles de données représentant des tâches courantes afin de répondre aux questions fondamentales suivantes :

  • Quand les conseils d'optimisation sont-ils les plus efficaces ?
  • Quels sont les modèles de frontières qui conviennent à l'optimisation des repères ?
  • Quels sont les algorithmes les plus fiables ?

 

arithmétique

Nous avons testé cinq méthodes d'optimisation des indices, chacune reposant sur une théorie d'optimisation unique :

Incitation à l'action en quelques coups de feu

Cette approche est la plus simple : nous sélectionnons jusqu'à 50 exemples de l'ensemble de formation (échantillonnés sur plusieurs cycles de formation) et les incluons dans le repère comme démonstration du comportement souhaité. Cette approche a un faible coût d'apprentissage (aucun appel au LLM n'est nécessaire pour proposer des changements), mais au moment de l'essai Jeton Coût plus élevé (parce que les exemples de démonstration contiennent généralement plus de contenu que les instructions directes).

Méta-promptage (Méta-promptage)

Il s'agit de l'une des méthodes les plus élémentaires de réglage des instructions. Nous demandons d'abord au LLM cible d'exécuter l'exemple et de calculer les notes des sorties (remarque : un évaluateur doit être mis en place). Nous fournissons ensuite au LLM méta-cue les entrées, les sorties, les sorties de référence (le cas échéant) et les scores du repère actuel sur ces sorties, et demandons au LLM d'écrire un meilleur repère. Ce processus est répété sur de petits lots de données et évalué périodiquement sur l'ensemble de développement retenu (dev set) afin de conserver les repères les mieux notés.

Méta-promptage avec réflexion (Méta-promptage avec réflexion)

Fournir des outils de "réflexion" et de "critique" en plus des métaprompts. Ces outils permettent uniquement au LLM d'enregistrer des réflexions dans la zone d'ébauche avant de soumettre des mises à jour d'indices, de sorte qu'une plus grande puissance de calcul peut être utilisée pour analyser les indices précédents et découvrir des modèles cachés dans les données avant de soumettre la version finale.

Prompt Gradients (Prompt Gradients)
L'article de Pryzant et al.Optimisation automatique des invitesInspirée du "processus d'optimisation", cette approche divise le processus d'optimisation en plusieurs étapes :

  1. Notation de la sortie de l'invite actuelle
  2. Faire en sorte que le LLM génère un retour d'information spécifique (c'est-à-dire des "gradients") pour les exemples d'échec.
  3. Des mises à jour rapides basées sur ces "gradients"

L'idée centrale de cette méthode est que la collecte d'un retour d'information précis avant d'apporter des modifications peut fournir des suggestions d'amélioration plus ciblées que les méthodes de méta-promotion.

Optimisation évolutive (EO)
Les algorithmes fonctionnent par "générations", chaque génération étant optimisée par différentes étapes. Dans chaque génération, les algorithmes appliquent des "mutations" semi-aléatoires aux indices (dans cette expérience, ces mutations ont été générées par le LLM avec différents types de mises à jour des indices), puis conservent les indices les plus performants.

Dans ces expériences, nous avons utilisé la technique de pointe proposée par Cui et al. PhaseEvoElle combine une approche de "gradient de texte" avec une stratégie variationnelle plus globale pour explorer l'espace des repères sur une plus grande échelle, surmontant ainsi le problème de l'optimalité locale.

 

ensemble de données

Nous avons créé cinq ensembles de données pour l'évaluation comparative :

  1. Prise en charge de la distribution du courrier 3Chaque courrier électronique entrant est classé par catégorie et affecté à l'un des trois processeurs.
  2. Prise en charge de la distribution du courrier 10La tâche est plus difficile car l'expertise de chaque processeur n'est pas suffisamment claire.
  3. mathématiques multilinguesLe programme LLM consiste à résoudre des problèmes d'application des mathématiques et à épeler les réponses dans l'une des cinq langues proposées. La langue cible est déterminée par le thème de la question (Sports → Coréen, Espace → Arabe, Cuisine → Allemand, Musique → Anglais, Faune → Russe). L'optimiseur doit découvrir ce modèle caché à partir des données.
  4. Assistant courrier (simple)Le LLM doit juger si un e-mail doit être ignoré, s'il faut y répondre ou si l'utilisateur doit en être averti pour qu'il le traite.
  5. Assistant courrier (préférences)La tâche est similaire à l'ensemble de données précédent, mais les règles sont plus subtiles. Nous avons mis en place un gourou de la technologie très occupé et "excentrique" comme créateur de règles de préférence pour les courriels afin de fournir des étiquettes de vérité de base.

 

en fin de compte

Nous utilisons GPT-4o et O1 d'OpenAI sur cinq ensembles de données, ainsi que l'outil d'évaluation de la qualité des données. Anthropique de Claude-3.5-Sonnet a été optimisé en tant que méta-cue LLM. Le LLM cible était GPT-4o-mini (c'est-à-dire que nous avons utilisé d'autres modèles pour optimiser le repère GPT-4o-mini).

La figure suivante montre les résultats de l'optimisation pour différents ensembles de données et algorithmes :

LangChain官方发布:探索提示词优化技巧
La valeur moyenne de l'amélioration relative pour tous les ensembles de données testés, 100% représente un doublement de la précision et 200% représente une augmentation de la précision à trois fois l'original.

Les résultats.Claude est un modèle d'optimisation plus stableO1 est plus fiable que O1. En outre, O1 présente des inconvénients en termes de temps de traitement, de coût et de fiabilité de l'API (les points de terminaison OpenAI marquent parfois à tort les demandes comme violant les ToS). Par conséquent, nous recommandons actuellement Claude-3.5-Sonnet comme modèle préféré pour l'optimisation des indices. Nous mettrons à jour cette recommandation lorsque O3 et d'autres nouveaux modèles seront disponibles.

Ce que nous avons trouvé

Les résultats ci-dessus soutiennent généralement la littérature existante selon laquelle les grands modèles de langage (LLM) fonctionnent bien dans l'ingénierie des indices d'entrée. Ces expériences révèlent également quand les LLM seront (ou ne seront pas) efficaces.

  1. Méta-promptage (Méta-promptage) existentRègles ou préférences en matière de découverte et d'autres modèles clairs sont particulièrement utiles, surtout lorsque ces informations ne font pas partie du domaine de connaissances initial du MFR. Cela signifie que vous pouvez définir les comportements souhaités par l'exemple et compter sur l'optimiseur pour traduire ces comportements à d'autres LLM, à condition qu'ils puissent suivre des instructions raisonnables. C'est ce qui rend possible le modèle de programmation déclaratif des indices d'entrée.
  2. Méta-conseils (affinés par commande) En transmettant les préférences dans lenuance sont moins utiles. Par exemple, dans l'ensemble de données de classification d'e-mails simples, toutes les méthodes de réglage fin des signaux d'entrée sont moins performantes que les méthodes de réglage des signaux d'entrée peu nombreux (peu nombreux). Dans cet ensemble de données, la classification était principalement basée sur des règles floues et des jugements conditionnels plutôt que sur des règles explicites.
  3. combinantMoins d'invites de saisie d'échantillons et d'affinement des commandes peuvent apporter des améliorations complémentaires. Cela contraste avec l'approche de l Opsahl Ong et al. répondre en chantant Wan et al. Les résultats de l'étude sont cohérents. Des exemples moins nombreux peuvent transmettre plus d'informations que de simples instructions, mais ne peuvent pas englober la totalité de l'information.Conditions et règles complexes Ces éléments peuvent constituer une part importante de ce qui est nécessaire pour les agents d'entreprise. D'autre part, l'optimisation des indices d'entrée par la réflexion, les "gradients de texte" ou les algorithmes évolutionnaires permet des améliorations plus ciblées basées sur les performances existantes et les caractéristiques de l'ensemble de données, tout en améliorant l'efficacité des jetons. L'efficacité des jetons est également améliorée.
  4. Les métaprompts ne confèrent pas de nouvelles capacités au modèle . Par exemple, dans l'ensemble de données Maths multilingues, GPT-4o-mini ne parvient pas à dépasser le taux de réussite de 65%, même dans la configuration optimisée, principalement en raison d'erreurs d'inférence. Bien que l'optimiseur puisse guider le modèle sur la manière de manifestations (Parfois, le fait de raisonner à partir d'exemples permet d'obtenir de meilleurs résultats).façon de penser ), mais ils ne débloquent pas des capacités de raisonnement plus fortes ou des connaissances plus complexes dans un domaine spécifique.

Au-delà de l'évaluation

Nous avons développé LangSmith pour aider les équipes à évaluer systématiquement les candidatures au programme LLM. Une bonne évaluation vous permet d'identifier les problèmes et de comprendre le comportement du système. Mais les ensembles de données et les métriques construits au cours du processus d'évaluation débloquent également une valeur encore plus importante : l'amélioration systématique des performances du modèle par le biais de l'optimisation.

Les ensembles de données utilisés dans nos expériences donnent de bons résultats dans le processus d'optimisation parce qu'ils sont clairs,Des résultats vérifiables : :

  • Décisions d'acheminement avec des étiquettes réelles
  • Réponses mathématiques vérifiables
  • Contraintes linguistiques pouvant être vérifiées par le programme

Ceci est important car l'optimisation pour des mesures floues ou peu fiables tend à empirer les indices d'entrée plutôt qu'à les améliorer. Si le LLM évalue la sortie sur la base de critères flous uniquement, il aura tendance à optimiser ses propres biais plutôt qu'à répondre à vos besoins réels.

Si vous suivez les performances de vos applications dans LangSmith, vous avez déjà jeté les bases d'une optimisation efficace des messages d'entrée. Le même ensemble de données vous permet non seulement de comprendre pourquoi vous échouez, mais aussi d'apporter des améliorations systématiques. Les données, les mesures et l'apprentissage forment une boucle fermée.

Optimisation des invites de saisie, c'est-à-dire de la mémoire à long terme

L'optimisation est un processus d'apprentissage, de sorte que nous pouvons considérer l'optimisation des signaux d'entrée comme une forme spéciale de mémoire à long terme qui capture des modèles de comportement "toujours actifs".

Alors que les systèmes de mémoire traditionnels stockent les informations dans des bases de données (vecteurs, graphiques ou autres formats), l'optimisation des signaux d'entrée stocke les informations directement dans les signaux d'entrée des intelligences, les rendant toujours disponibles et influençant chaque décision. Cette approche est particulièrement adaptée au stockage de modèles fondamentaux tels que les règles de comportement, les préférences de style et les traits de personnalité clés.

Le processus "apprendre et améliorer" est très similaire à l'optimisation traditionnelle des indices d'entrée, avec de légères différences dans la manière dont les mises à jour sont programmées et dans l'endroit où elles sont stockées. Les techniques utilisées pour l'optimisation des indices d'entrée et les algorithmes d'apprentissage peuvent également s'appliquer aux systèmes de mémoire. C'est une voie que nous étudions activement.

signification

Ces résultats confirment notre observation (et celle de chercheurs tels que DSPy) selon laquelle l'optimisation de l'invite d'entrée pilotée par LLM peut systématiquement améliorer les invites d'entrée et automatiser le processus manuel actuel d'ingénierie de l'invite d'entrée dominé par l'essai et l'erreur. Rendre cette approche plus accessible à toutes les parties intéressées peut nous aider à construire des systèmes meilleurs et plus solides.

Toutefois, il ne s'agit pas d'une solution universelle. Nos invites d'entrée optimisées ne sont pas optimales sur l'ensemble de test et l'amélioration varie d'une tâche à l'autre. Cela suggère que l'optimisation des signaux d'entrée devrait être considérée comme un outil dans la boîte à outils d'optimisation de l'application LLM, plutôt que comme la seule approche.

Nous prévoyons d'intégrer ces informations directement dans LangSmith afin d'aider les équipes à aller au-delà de l'ingénierie manuelle. Notre objectif n'est pas d'éliminer le jugement humain, mais de rendre les décisions plus systématiques et fondées sur des données.

expérience de récurrence

Vous pouvez exécuter Dépôts GitHub a fait mouche all_sweeps.sh pour reproduire ces expériences.

annexe

Dynamique de formation

Dans la section précédente, nous nous sommes concentrés suréventuel la performance des indices d'entrée sur l'ensemble de test. Ci-dessous, nous présentons des graphiques de la dynamique d'apprentissage de chaque ensemble de données sur l'ensemble de développement. Ces graphiques montrent comment les différents algorithmes s'adaptent aux ensembles de données et peuvent être utilisés pour comparer les scores finaux afin de révéler si les algorithmes s'adaptent aux ensembles de données de manière instable ou non.surajustement et ne parviennent donc pas à produire des résultats cohérents.

Prise en charge de l'acheminement du courrier (3 classes)

La plupart des optimiseurs se sont améliorés avec les indices d'entrée de base, les méthodes de gradient et d'évolution affichant des performances similaires. Claude surpasse notamment GPT-4o pour toutes les méthodes ; cependant, dans l'ensemble de développement, Claude et GPT-4o ne parviennent pas à s'améliorer de manière significative lors de l'utilisation de méthodes de méta-cueing.

LangChain官方发布:探索提示词优化技巧

Prise en charge de l'acheminement du courrier (10 classes)

Les paramètres méta-cue et méta-cue+réflexion utilisant GPT-4o n'ont pas réussi à apprendre les règles de classification dans l'ensemble de données. Un schéma commun commence à émerger : si la courbe reste plate, l'algorithme n'a pas réussi à apprendre. Si la courbe s'approche rapidement d'un score parfait, il peut y avoir un surajustement. Les algorithmes qui s'améliorent régulièrement dans l'ensemble de développement ont tendance à obtenir les meilleures performances dans l'ensemble de test.

LangChain官方发布:探索提示词优化技巧

Ensembles de données mathématiques multilingues

Les performances de formation de cet ensemble de donnéesdiscret Cela s'explique par le fait que certains paramètres ne bénéficient pas d'un coup de pouce significatif avant le deuxième ou le troisième tour (ou même plus tard). Cela met en évidence le fait que le suivi desHistoire éditoriale LLM agit comme un méta-optimiseur et est capable de traduire des stratégies de mise à jour plus efficaces basées sur l'historique des modifications.

LangChain官方发布:探索提示词优化技巧

Comparaison des invites de saisie

Bien que nous nous intéressions davantage aux mesures en aval qu'aux spécificités des invites de saisie, il est toujours utile d'analyser ce que l'optimiseur a appris sur les modifications et les changements qui ont entraîné des améliorations.

Comparaison de quatre algorithmes d'optimisation différents à l'aide de l'exemple d'un ensemble de données catégorisées à 10 classes contenant des courriers électroniques :

LangChain官方发布:探索提示词优化技巧

Les quatre algorithmes ont appris les principales règles de classification. Toutefois, la méthode du gradient ne permet pas de trouver des limites floues, tandis que les autres méthodes préfèrent formuler une "règle de priorité" ou construire un arbre de décision pour spécifier les critères de classification.

Des différences de comportement peuvent également être observées lorsque l'on compare différents modèles d'optimisation avec le même algorithme. Par exemple, O1 semble préférer combiner différentes techniques (par exemple, synthétiser des exemples sans échantillon et des instructions étape par étape) et utiliser son séparateur caractéristique ("-") pour faire la distinction entre les ensembles de règles. Alors que Claude plus concis et plus direct, mais il a également appris les règles de priorité et la cartographie des domaines. En revanche, le GPT-4o génère la densité d'information la plus faible.

LangChain官方发布:探索提示词优化技巧
© déclaration de droits d'auteur

Articles connexes

Pas de commentaires

Vous devez être connecté pour participer aux commentaires !
S'inscrire maintenant
aucun
Pas de commentaires...