Von Krish Maniar und William Fu-Hinthorn
Beim Schreiben von Hinweisen versuchen wir, unsere Absichten den Large Language Models (LLMs) mitzuteilen, damit sie diese Anweisungen auf komplexe Daten anwenden können. Es ist jedoch nicht einfach, alle Nuancen auf einmal klar auszudrücken. Prompt-Engineering wird oft durch manuelles Ausprobieren, Testen und Abstimmen optimiert, aber Werkzeuge wie DSPy und promptim zeigen den Wert von "Prompt-Programmierung" und systematischer Prompt-Optimierung. Sie überbrücken die Kluft zwischen Absicht und Anweisung durch Messung und Test an realen Daten. In diesem Papier, wir:
- Fünf Datensätze mit überprüfbaren Ergebnissen wurden für das Benchmarking ausgewählt, um eine Optimierung zu veranlassen
- Fünf Methoden zur systematischen Verbesserung von Prompts wurden realisiert und verglichen
- Es wurden drei verschiedene Modelle bewertet (
gpt-4o
, undclaude-sonnet
, undo1
) bei der Optimierung von Stichwörtern
Unsere Schlussfolgerung:
- Das von uns empfohlene Modell für die Cue-Optimierung lautet
claude-sonnet
(Besser also1
) - Die Cue-Optimierung ist am effektivsten bei Aufgaben, bei denen dem Modell das Fachwissen fehlt
- In diesen Fällen kann die Cue-Optimierung die Genauigkeit um etwa 200% gegenüber den Basis-Cues verbessern
- Die Cue-Optimierung kann auch als eine Form des Langzeitgedächtnisses betrachtet werden: Lernen direkt aus den Daten und Anpassen an
Was wir getestet haben.
Wir haben fünf gängige Methoden zur Cue-Optimierung verglichen (die wir später im Detail erläutern):
- Few-shot prompting: Verwendung von Trainingsbeispielen als Demonstration des gewünschten Verhaltens
- Meta-Prompting: Analysieren und Verbessern von Prompts mit LLM
- Meta-Prompting mit Reflexion: Ermöglicht den LLMs, über ihre vorgeschlagenen Änderungen nachzudenken und sie kritisch zu analysieren, bevor sie aktualisierte Prompts einreichen
- Prompt-Gradienten: Generieren Sie "Textgradienten" für jedes Beispiel als Verbesserungsvorschläge und wenden Sie diese Vorschläge dann in einem weiteren LLM-Aufruf an.
- Evolutionäre Optimierung: Erkundung des Cue Space durch kontrollierte Mutation
Wir haben diese Methoden auf drei Modelle (O1, GPT-4o und Claude-3.5-Sonnet) angewendet und sie an fünf Datensätzen getestet, die gängige Aufgaben repräsentieren, um die folgenden Kernfragen zu beantworten:
- Wann sind Optimierungstipps am effektivsten?
- Welche Grenzmodelle eignen sich für die Optimierung von Stichworten?
- Welche Algorithmen sind am zuverlässigsten?
Arithmetik
Wir haben fünf Methoden zur Optimierung von Hinweisen getestet, jede mit ihrer eigenen Optimierungstheorie:
Soufflieren von wenigen Schüssen
Dieser Ansatz ist der einfachste, bei dem wir bis zu 50 Beispiele aus der Trainingsmenge auswählen (über mehrere Trainingszyklen hinweg) und sie in den Hinweis als Demonstration des gewünschten Verhaltens einbeziehen. Dieser Ansatz hat geringe Lernkosten (es sind keine LLM-Aufrufe erforderlich, um Änderungen vorzuschlagen), aber zum Zeitpunkt des Tests Token Höhere Kosten (da Demo-Beispiele in der Regel mehr Inhalt haben als direkte Anweisungen).
Meta-Prompting (Meta-Prompting)
Dies ist eine der grundlegendsten Methoden der Befehlsabstimmung. Wir lassen zunächst den Ziel-LLM das Beispiel ausführen und berechnen dann die Bewertungen der Outputs (Hinweis: ein Evaluator muss eingerichtet werden). Dann geben wir dem Meta-Cue-LLM die Inputs, Outputs, Referenz-Outputs (falls vorhanden) und die Bewertungen des aktuellen Cues für diese Outputs und bitten den LLM, einen besseren Cue zu schreiben. Dieser Prozess wird an kleinen Datenmengen wiederholt und regelmäßig an der zurückbehaltenen Entwicklungsmenge (dev set) evaluiert, um die Cues mit den höchsten Punktzahlen zu behalten.
Meta-Prompting mit Reflexion (Meta-Prompting mit Reflexion)
Bereitstellung von "Denk-" und "Kritik"-Tools zusätzlich zu den Meta-Prompts. Diese Werkzeuge erlauben es LLM nur, Überlegungen im Entwurfsbereich aufzuzeichnen, bevor sie Aktualisierungen der Hinweise einreichen, so dass mehr Rechenleistung genutzt werden kann, um frühere Hinweise zu analysieren und versteckte Muster in den Daten zu entdecken, bevor die endgültige Version eingereicht wird.
Prompt-Gradienten (Prompt-Gradienten)
Das Papier von Pryzant et al.Automatische Prompt-OptimierungInspiriert von "The Optimisation Process", unterteilt dieser Ansatz den Optimierungsprozess in mehrere Schritte:
- Bewertung der Ausgabe der aktuellen Eingabeaufforderung
- LLM soll spezifisches Feedback (d.h. "Gradienten") für Fehlerbeispiele erzeugen
- Aufforderung zur Aktualisierung auf der Grundlage dieser "Gradienten"
Der Kerngedanke der Methode ist, dass das Sammeln von feinkörnigem Feedback vor der Durchführung von Änderungen gezieltere Verbesserungsvorschläge liefern kann als Meta-Prompting-Methoden.
Evolutionäre Optimierung (EO)
Die Algorithmen laufen in "Generationen" ab, wobei jede Generation durch verschiedene Stufen optimiert wird. In jeder Generation wenden die Algorithmen semi-zufällige "Mutationen" auf die Cues an (in diesem Experiment wurden diese Mutationen vom LLM generiert, um die verschiedenen Arten von Cues zu aktualisieren) und behalten dann die Cues mit der besten Leistung bei.
In diesen Experimenten haben wir die von Cui et al. vorgeschlagene Technik verwendet. PhaseEvoEs kombiniert einen "Textgradienten"-Ansatz mit einer globaleren Variationsstrategie, um den Cue-Raum auf einer größeren Skala zu erkunden und so das Problem der lokalen Optimalität zu überwinden.
Datensatz
Wir haben fünf Datensätze für das Benchmarking erstellt:
- Unterstützung für die Postverteilung 3Jede eingehende E-Mail wird kategorisiert und einem von 3 Bearbeitern zugewiesen.
- Unterstützung für die Postverteilung 10Ähnlich wie bei (1), aber mit einer Erhöhung auf 10 Prozessoren ist die Aufgabe schwieriger, weil das "Fachwissen" der einzelnen Prozessoren nicht ausreichend klar ist.
- mehrsprachige MathematikLLM besteht darin, mathematische Anwendungsprobleme zu lösen und die Antworten in einer von fünf Sprachen zu buchstabieren. Die Zielsprache wird durch das Thema der Frage bestimmt (Sport → Koreanisch, Weltraum → Arabisch, Kochen → Deutsch, Musik → Englisch, Tierwelt → Russisch). Der Optimierer muss dieses versteckte Muster aus den Daten herausfinden.
- Postassistent (einfach)Dies ist ein synthetischer Datensatz, mit dem getestet werden soll, ob die Cue-Optimierung für Aufgaben nützlich ist, bei denen das LLM bereits über Domänenwissen verfügt: Das LLM muss beurteilen, ob eine E-Mail ignoriert, beantwortet oder dem Benutzer mitgeteilt werden soll, damit er sich damit befasst.
- Mail-Assistent (Präferenzen)Die Aufgabe ähnelt dem vorherigen Datensatz, aber die Aufgabenregeln sind subtiler. Wir haben einen vielbeschäftigten und "exzentrischen" Technikguru als Ersteller von E-Mail-Präferenzregeln eingesetzt, um die Basiswahrheit zu liefern.
am Ende
Wir verwenden OpenAIs GPT-4o und O1 auf fünf Datensätzen, sowie die Anthropisch von Claude-3.5-Sonnet wurde als Meta-Cue-LLM optimiert. Das Ziel-LLM war GPT-4o-mini (d.h. wir haben andere Modelle verwendet, um den GPT-4o-mini-Cue zu optimieren).
Die folgende Abbildung zeigt die Optimierungsergebnisse für verschiedene Datensätze und Algorithmen:
Der durchschnittliche relative Verbesserungswert für alle Testdatensätze, 100%, entspricht einer Verdoppelung der Genauigkeit und 200% einer Verdreifachung der Genauigkeit gegenüber dem Original.
Aus den Ergebnissen.Claude ist ein stabileres OptimierungsmodellO1 ist zuverlässiger als O1. Darüber hinaus hat O1 Nachteile in Bezug auf Verarbeitungszeit, Kosten und API-Zuverlässigkeit (OpenAI-Endpunkte markieren Anfragen manchmal fälschlicherweise als Verletzung der ToS). Daher empfehlen wir derzeit Claude-3.5-Sonnet als das bevorzugte Modell für die Optimierung von Hinweisen. Wir werden diese Empfehlung aktualisieren, sobald O3 und andere neue Modelle verfügbar werden.
Was wir gefunden haben
Die obigen Ergebnisse unterstützen im Allgemeinen die bestehende Literatur, dass Large Language Models (LLMs) beim Input Cue Engineering gut abschneiden. Diese Experimente zeigen auch, wann LLMs effektiv sind (oder nicht).
- Meta-Prompting (Meta-Prompting) existierenRegeln oder Präferenzen für die Entdeckung und andere eindeutige Muster sind besonders nützlich, vor allem, wenn diese Informationen außerhalb des ursprünglichen Wissensbereichs des LLMs liegen. Das bedeutet, dass man die gewünschten Verhaltensweisen anhand von Beispielen definieren kann und sich darauf verlassen kann, dass der Optimierer diese Verhaltensweisen auf andere LLMs überträgt, solange diese sinnvolle Anweisungen befolgen können. Dies macht das deklarative Input-Hinweis-Programmiermodell möglich.
- Meta-Hinweise (Feinabstimmung per Befehl) Bei der Übermittlung von Präferenzen in derNuance Aspekte sind weniger nützlich, z. B. schneiden in dem einfachen E-Mail-Klassifizierungsdatensatz alle Methoden zur Feinabstimmung der Eingabehinweise schlechter ab als die Methoden mit wenigen Eingabehinweisen (few-shot). In diesem Datensatz basierte die Klassifizierung hauptsächlich auf Fuzzy-Regeln und bedingten Urteilen und nicht auf expliziten Regeln.
- KombinationWeniger Aufforderungen zur Eingabe von Beispielen und Feinabstimmung von Befehlen können ergänzende Verbesserungen bringen. Dies steht im Gegensatz zu den Opsahl Ong et al. im Gesang antworten Wan et al. Die Ergebnisse der Studie sind konsistent. Beispiellose Beispiele können mehr Informationen vermitteln als einfache Anweisungen, können aber nicht dieKomplexe Bedingungen und Regeln Dies kann ein wichtiger Teil dessen sein, was für Unternehmensagenten benötigt wird. Andererseits ermöglicht die Optimierung von Eingabehinweisen durch Reflexion, "Textgradienten" oder evolutionäre Algorithmen gezieltere Verbesserungen auf der Grundlage bestehender Leistungs- und Datensatzmerkmale bei gleichzeitiger Verbesserung der Token-Effizienz. Auch die Token-Effizienz wird verbessert.
- Meta-Prompts verleihen dem Modell keine neuen Fähigkeiten . Im Datensatz "Mehrsprachige Mathematik" zum Beispiel schafft es GPT-4o-mini selbst in der optimierten Konfiguration nicht, die Erfolgsquote von 65% zu erreichen, was hauptsächlich auf Inferenzfehler zurückzuführen ist. Während der Optimierer das Modell anleiten kann, wie es Manifestationen (Manchmal können Argumentationspfade durch Beispiele zu einer besserenDenkweise ), aber sie erschließen keine stärkeren Argumentationsfähigkeiten oder komplexere bereichsspezifische Kenntnisse.
Jenseits der Bewertung
Wir haben LangSmith entwickelt, um Teams bei der systematischen Bewertung von LLM-Anwendungen zu unterstützen. Eine gute Evaluierung ermöglicht es Ihnen, Probleme zu erkennen und das Verhalten des Systems zu verstehen. Aber die während des Evaluierungsprozesses erstellten Datensätze und Metriken erschließen auch einen noch wichtigeren Wert: die systematische Verbesserung der Modellleistung durch Optimierung.
Die Datensätze in unseren Experimenten eignen sich gut für den Optimierungsprozess, weil sie eindeutig sind,Überprüfbare Ergebnisse ::
- Routing-Entscheidungen mit echten Etiketten
- Überprüfbare mathematische Antworten
- Spracheinschränkungen, die vom Programm überprüft werden können
Dies ist wichtig, weil die Optimierung für unscharfe oder unzuverlässige Metriken die Eingabehinweise eher verschlechtert als verbessert. Wenn der LLM die Ausgabe allein auf der Grundlage unscharfer Kriterien beurteilt, wird er eher seine eigenen Vorurteile berücksichtigen, als dass er Ihre tatsächlichen Bedürfnisse erfüllt.
Wenn Sie die Anwendungsleistung in LangSmith verfolgen, legen Sie bereits den Grundstein für eine effektive Optimierung der Eingabeaufforderung. Der gleiche Datensatz hilft Ihnen nicht nur zu verstehen, warum Sie scheitern, sondern führt auch zu systematischen Verbesserungen. Daten, Metriken und Lernen bilden einen geschlossenen Kreislauf.
Optimierung der Eingabeaufforderungen, d.h. des Langzeitgedächtnisses
Optimierung ist Lernen, so dass wir uns die Optimierung von Input-Cues als eine besondere Form des Langzeitgedächtnisses vorstellen können, das "immerwährende" Verhaltensmuster festhält.
Während herkömmliche Gedächtnissysteme Informationen in Datenbanken (Vektoren, Graphen oder anderen Formaten) speichern, werden bei der Input-Cue-Optimierung Informationen direkt in den Input-Cues der Intelligenzen gespeichert, so dass sie jederzeit verfügbar sind und jede Entscheidung beeinflussen. Dieser Ansatz eignet sich besonders für die Speicherung von Kernmustern wie Verhaltensregeln, Stilpräferenzen und wichtigen Persönlichkeitsmerkmalen.
Der Prozess des "Lernens und Verbesserns" ist der traditionellen Optimierung von Eingabehinweisen sehr ähnlich, mit leichten Unterschieden in der Art und Weise, wie Aktualisierungen geplant werden und wo sie gespeichert werden. Die Techniken, die für die Optimierung von Eingabewörtern und Lernalgorithmen verwendet werden, könnten auch auf Speichersysteme anwendbar sein. Dies ist eine Richtung, die wir aktiv erforschen.
Bedeutung
Diese Ergebnisse untermauern unsere Beobachtung (und die von Forschern wie DSPy), dass die LLM-gestützte Optimierung von Eingabeaufforderungen systematisch verbessert werden kann und den derzeit von manuellen Versuchen und Fehlern geprägten Prozess der Entwicklung von Eingabeaufforderungen automatisiert. Diesen Ansatz allen interessierten Parteien zugänglich zu machen, kann uns helfen, bessere und stärkere Systeme zu entwickeln.
Es handelt sich jedoch nicht um eine Einheitslösung für alle. Unsere optimierten Eingabeaufforderungen sind in der Testreihe nicht optimal, und die Verbesserung variiert von Aufgabe zu Aufgabe. Dies deutet darauf hin, dass die Optimierung der Eingabehinweise als ein Werkzeug im Werkzeugkasten der LLM-Anwendungsoptimierung betrachtet werden sollte, und nicht als einziger Ansatz.
Wir planen, diese Erkenntnisse direkt in LangSmith zu integrieren, um den Teams zu helfen, über die manuellen Eingaben hinauszugehen und die Entwicklung zu beschleunigen. Unser Ziel ist es nicht, menschliches Urteilsvermögen zu eliminieren, sondern Entscheidungen systematischer und datengesteuert zu treffen.
Wiederholungsexperiment
Sie können GitHub-Repositorien den Nagel auf den Kopf treffen all_sweeps.sh
Skripte, um diese Experimente zu reproduzieren.
anhang
Dynamik der Ausbildung
Im vorigen Abschnitt haben wir uns auf Folgendes konzentrierteventuell Leistung der Eingabehinweise auf dem Testsatz. Unten zeigen wir Diagramme der Trainingsdynamik jedes Datensatzes auf dem Entwicklungsset. Diese Diagramme zeigen, wie sich die verschiedenen Algorithmen an die Datensätze anpassen und können zum Vergleich der endgültigen Ergebnisse herangezogen werden, um festzustellen, ob die Algorithmen die Datensätze auf instabile Weise anpassen oder nichtÜberanpassung Daten, so dass kein konsistenter Aufschwung möglich ist.
Unterstützung für Mail-Routing (3 Klassen)
Die meisten Optimierer verbesserten sich bei den grundlegenden Eingabehinweisen, wobei die Gradienten- und Evolutionsmethoden ähnlich gut abschnitten. Bemerkenswert ist, dass Claude bei allen Methoden besser abschneidet als GPT-4o. In der Entwicklungsgruppe gelingt es Claude und GPT-4o jedoch nicht, sich signifikant zu verbessern, wenn Meta-Cueing-Methoden verwendet werden.
Unterstützung für Mail-Routing (10 Klassen)
Die Einstellungen meta-cue und meta-cue+reflection mit GPT-4o konnten die Klassifizierungsregeln im Datensatz nicht erlernen. Es zeichnet sich ein allgemeines Muster ab: Wenn die Kurve flach bleibt, hat der Algorithmus nicht gelernt. Nähert sich die Kurve schnell einem perfekten Ergebnis, liegt möglicherweise eine Überanpassung vor. Die beste Leistung im Testdatensatz zeigen in der Regel die Algorithmen, die sich im Entwicklungsdatensatz stetig verbessern.
Mehrsprachige mathematische Datensätze
Die Trainingsleistung dieses Datensatzesdiskret Das liegt daran, dass einige Einstellungen erst in Runde 2 oder 3 (oder sogar noch später) einen deutlichen Schub erhalten. Dies unterstreicht die Tatsache, dass die VerfolgungRedaktionelle Geschichte LLM fungiert als Meta-Optimierer und ist in der Lage, auf der Grundlage der Bearbeitungshistorie effektivere Aktualisierungsstrategien zu entwickeln.
Vergleich der Eingabeaufforderungen
Obwohl wir uns letztlich mehr für die nachgelagerten Metriken als für die Besonderheiten der Eingabeaufforderungen interessieren, ist es dennoch wertvoll zu analysieren, was der Optimierer über die Änderungen gelernt hat und welche Änderungen zu Verbesserungen geführt haben.
Vergleich von vier verschiedenen Optimierungsalgorithmen am Beispiel eines kategorisierten 10-Klassen-Datensatzes für E-Mails:
Alle vier Algorithmen haben die wichtigsten Klassifizierungsregeln gelernt. Die Gradientenmethode ist jedoch schwach bei der Suche nach unscharfen Grenzen, während die anderen Methoden es vorziehen, "Prioritätsregeln" zu formulieren oder Entscheidungsbäume zu konstruieren, um Klassifizierungskriterien zu spezifizieren.
Unterschiede im Verhalten sind auch beim Vergleich verschiedener Optimierungsmodelle mit demselben Algorithmus zu erkennen. Zum Beispiel scheint O1 die Kombination verschiedener Techniken zu bevorzugen (z.B. die Synthese von Beispielen ohne Beispiele und Schritt-für-Schritt-Anweisungen) und sein charakteristisches Trennzeichen ("-") zur Unterscheidung zwischen Regelsätzen zu verwenden. Während Claude prägnanter und direkter, lernte aber auch Prioritätsregeln und Bereichszuordnung. Im Gegensatz dazu erzeugt GPT-4o die geringste Informationsdichte.