Nachricht

Claude 3.5-Kerncodierungsaufforderung enthüllt, Programmierer im gesamten Netzwerk sind begeistert!Vierstufige Trainingsmethode, die neueste V2-Version veröffentlicht

2024-07-16

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

Neuer Weisheitsbericht

Herausgeber: Taozi

[Einführung in die neue Weisheit] Die wichtigsten Tipps zum Claude 3.5-Kodierungssystem sind in der Reddit-Community beliebt. Der ursprüngliche Autor hat gerade die weiterentwickelte zweite Version veröffentlicht, und einige Internetnutzer haben sie bereits zu ihrem Workflow hinzugefügt.

Eine Systemaufforderung zur Kernkodierung von Claude Sonnet 3.5 wurde kürzlich auf Reddit gepostet und ging viral!


Ein Benutzer namens ssmith12345uk teilte auf dem r/ClaudeAI-Mainboard mit, dass er die Codepraxis von Claude nutzte und die Systemaufforderungen ständig anpasste, um das Modell zu optimieren.

Er sagte, dass der System-Prompt einige Ideen von Anthropic Meta-Prompt aufgreift und einige zuvor aufgetretene Probleme löst.

Schließlich ließ er alle Stichworte los.


Entwickler in der KI-Community haben es an ihre Favoriten weitergeleitet und gesagt, dass dies der Tipp ist, den sich Programmierer am meisten wünschen!



Netizens haben dies zusammengefasst: ReAct + Planning + XML ist alles, was Sie brauchen.


Einige Internetnutzer, die davon profitierten, sagten, dass dieser Tipp bei ihren Projekten sehr hilfreich sei.


Erst gestern hat der ursprüngliche Autor eine weiterentwickelte Version des V2-Eingabeworts in der Reddit-Community veröffentlicht und detaillierte Anweisungen und Erklärungen zu seiner Verwendung bereitgestellt.


Bevor ich diese Systemaufforderungen und -techniken erkläre, möchte ich zunächst eine Frage von Internetnutzern beantworten: Wo soll ich etwas eingeben?

Sie müssen ein Projekt erstellen (Pro-Benutzer abonnieren) und können dann die Seite aufrufen, auf der Sie Eingabeaufforderungsanweisungen eingeben.



Die stärksten Codierungstipps für Sonnet 3.5, 4-stufiges Training

Hier werden die Systemansagen von V1 und V2 zusammengefasst, damit jeder den Unterschied nach dem Upgrade intuitiver spüren kann.

Die Systemaufforderung der V2-Version ist auf der rechten Seite der folgenden Abbildung dargestellt. Im Vergleich zu V1 handelt es sich grundsätzlich um kleinere Reparaturen.

In der neuesten Version wird das Modell weiterhin durch vier Schritte zur Vervollständigung der CoT-Begründung geführt: Codeüberprüfung, Planung, Ausgabe und Sicherheitsüberprüfung.

Im ersten Absatz bleibt die Rollendefinition von Claude 3.5 dieselbe.

Sie sind ein erfahrener Webentwickler mit Kenntnissen in CSS, JavaScript, React, Tailwind, Node.JS und Hugo/Markdown.

Im zweiten Satz wurden jedoch einige Feinabstimmungen vorgenommen: „Entschuldigen Sie sich nicht unnötig. Überprüfen Sie den Gesprächsverlauf, um zu vermeiden, dass frühere Fehler wiederholt werden.“

Als nächstes bitten Sie Claude 3.5, die Aufgabe während des Gesprächs in einzelne Schritte zu unterteilen und nach jeder Phase einen kleinen Test vorzuschlagen, um sicherzustellen, dass alles auf dem richtigen Weg ist.

Geben Sie Code nur dann an, wenn ein Beispiel benötigt oder ausdrücklich angefordert wird. Am besten wäre es, wenn Sie ohne Code antworten könnten.

Bei Bedarf sind jedoch weitere Erläuterungen erforderlich.

Der nächste Schritt ist die „Codeüberprüfung“ – bevor Sie Code schreiben oder vorschlagen, führen Sie eine umfassende Codeüberprüfung des vorhandenen Codes durch und beschreiben Sie zwischen den Tags, wie er funktioniert.


Nach Abschluss der Codeüberprüfung müssen Sie einen Änderungsplan zwischen Tags erstellen und zusätzliche Quelldateien oder Dokumentation anfordern, die möglicherweise relevant sind.

Befolgen Sie das DRY-Prinzip (Don't Repeat Yourself), um Codeduplizierung zu vermeiden und die Wartbarkeit und Flexibilität des Codes in Einklang zu bringen.

Und in diesem Schritt werden mögliche Kompromisse und Implementierungsoptionen vorgestellt sowie relevante Frameworks und Bibliotheken berücksichtigt und empfohlen. Wenn wir uns nicht auf einen Plan geeinigt haben, hören Sie bei diesem Schritt auf.

Nach der Vereinbarung wird Code zwischen Tags generiert.

Hier erinnerte der Reddit-Autor Claude 3.5 auch daran, worauf man bei der Ausgabe von Code achten sollte:

Achten Sie auf Variablennamen, Bezeichner und Zeichenfolgenliterale und stellen Sie sicher, dass sie genau aus der Originaldatei kopiert werden (z. B.::UPPERCASE::), um anzuzeigen, dass konventionell benannte Elemente in einigen Fällen aktuell bleiben Codierungsstile: Wenn Sie Codeblöcke mit für diese Sprache geeigneten Redewendungen generieren, geben Sie die Programmiersprache nach dem ersten Backtick an: zum Beispiel: „JavaScript, „Python“.

Abschließend ist eine Sicherheits- und Betriebsüberprüfung von PLANUNG und ERGEBNIS erforderlich, wobei besonderes Augenmerk auf Angelegenheiten gelegt werden muss, die Daten gefährden oder Schwachstellen hervorrufen könnten.

Führen Sie bei sensiblen Änderungen (z. B. Eingabeverarbeitung, Währungsberechnungen, Authentifizierung) eine gründliche Überprüfung durch und stellen Sie Ihre Analyse im Tag bereit.

Autorenanalyse

Als nächstes verwendet der Reddit-Autor in einem langen Erklärungsartikel ‍⬛, um auf „Aberglauben“ hinzuweisen und auszudrücken, wovon er überzeugt ist.


Diese Eingabeaufforderung ist ein Beispiel für eine geführte „Gedankenketten“-Eingabeaufforderung, die Claude mitteilt, welche Schritte in welcher Reihenfolge ausgeführt werden sollen, und sie als Systemeingabeaufforderung (der erste Satz von Anweisungen, die das Modell erhält) verwendet.

Die Verwendung von XML-Tags zur Trennung von Schritten wurde von Anthropic-Meta-Hinweisen inspiriert.

Der Autor glaubt, dass Claude besonders empfindlich auf XML-Tags reagiert, die möglicherweise mit dem Modelltraining zusammenhängen. Daher verarbeitet er HTML lieber alleine oder am Ende der Sitzung‍⬛.

Dateierweiterung: https://github.com/anthropics/anthropic-cookbook/blob/68028f4761c5dbf158b7bf3d43f2f45b44111200/misc/metaprompt.ipynb#

Die geführte Denkkette folgt den folgenden Schritten: Codeüberprüfung, Planung, Ausgabe, Sicherheitsüberprüfung.

1 Codeüberprüfung

Bringen Sie die strukturierte Codeanalyse in den Kontext, um die nachfolgende Planung zu unterstützen.

Der Zweck besteht darin, zu verhindern, dass LLM lokale Änderungen am Code vornimmt, ohne den größeren Kontext zu berücksichtigen. Die Autoren sind im Test überzeugt, dass dieser Ansatz wirksam ist.

2 Planung

Dieser Schritt erstellt einen allgemeinen Entwurfs- und Implementierungsplan, der vor der Codegenerierung überprüft werden kann.

Der „Stopp“ hier verhindert, dass der Kontext mit generiertem, unnötigem Code gefüllt wird, der nicht unseren Anforderungen entspricht oder den wir hin und her ändern müssen.

Es stellt in der Regel relevante und geeignete Optionen dar.

In dieser Phase können Sie sich die Details des Plans genauer ansehen, um ihn weiter zu verfeinern (erzählen Sie mir z. B. mehr über Schritt 3, können wir die Y-Implementierung wiederverwenden, zeigen Sie mir einen Codeausschnitt, was soll ich von der Bibliothek halten usw.). .).

3 Ausgang

Sobald die Pläne vereinbart sind, ist es Zeit, mit der Codegenerierungsphase fortzufahren.

Die Eingabeaufforderung zur Variablenbenennung ist darauf zurückzuführen, dass der Autor bei langen Sitzungen häufig auf das Problem fehlender oder halluzinierter Variablennamen im neu generierten Code stößt. Die aktuelle Verbesserung der Eingabeaufforderung scheint dieses Problem gelöst zu haben.

Irgendwann exportiert der Autor vielleicht den alten Dialog und führt eine statistische Analyse durch, aber im Moment bin ich mit der Funktionsweise dieses Ansatzes zufrieden.

Die Code-Fencing-Eingabeaufforderung wurde dadurch verursacht, dass der Autor zu einem Frontend wechselte, das keine korrekte Hervorhebung ableiten konnte, und bestätigte, dass dies der richtige Ansatz war.

4 Sicherheitsüberprüfung

Der Autor zieht es vor, eine Sicherheitsüberprüfung im Nachhinein durchzuführen und findet diesen Schritt sehr hilfreich.

Es bietet einen Rückblick aus „zweiten Augen“ und kann neue Verbesserungen vorschlagen.

Beantworten Sie die Fragen der Internetnutzer

Abschließend beantwortete der Reddit-Autor auch die Fragen der Internetnutzer.

Sollte ich diesen Tipp auf Claude.ai verwenden? / Wo soll das System zur Eingabe auffordern?

Wir kennen die offiziellen Systemaufforderungen für Sonnet 3.5 nicht genau. Es wäre auf jeden Fall hilfreich anzunehmen, dass Plinius, der zuvor Claudes offizielle Aufforderungen preisgegeben hat, Recht hat. Der Autor vermutet, dass die Systemaufforderungen von Anthropic möglicherweise automatisierte CoTs enthalten, dies ist jedoch möglicherweise nicht der Fall oder die Eingaben werden möglicherweise automatisch über Meta-Eingabeaufforderungen verarbeitet‍⬛.

Unabhängig davon erzielen Sie mit diesem Tipp gute Ergebnisse, es sei denn, Sie verwenden Artefakte.


Unter der Annahme, dass Plinius‘ Auszug über Artefakte korrekt ist, empfiehlt der Autor hiermit dringend, die Funktionalität von Artefakten auszuschalten, wenn nicht triviale oder nicht mit Artefakten in Zusammenhang stehende Codierungsaufgaben ausgeführt werden.

Wenn Sie ein Tool verwenden, mit dem Sie Systemaufforderungen direkt festlegen können, erinnert Sie der Autor daran, daran zu denken, den Temperaturparameter anzupassen.

Wir brauchen jetzt keine so komplizierten Eingabeaufforderungen mehr/Ich habe Sonnet mit viel Code gefüttert und es hat einfach funktioniert


Automatisierte CoR-/Standard-Eingabeaufforderungen können tatsächlich viele Probleme lösen, aber testen Sie dies anhand einer einfachen Eingabeaufforderung „Sie sind eine hilfreiche KI“.

Die Autoren geben an, solche Tests durchgeführt zu haben und dabei herausgefunden zu haben, dass einfache Eingabeaufforderungen bei der Bewältigung komplexer Probleme weniger effektiv waren.

Er erwähnte auch, dass frühe Tests die Sensibilität von Systemaufforderungen gezeigt hätten, d. h. unterschiedliche Aufforderungen könnten zu erheblich unterschiedlichen Ergebnissen führen, und dass in Zukunft weitere Batch-Tests in Betracht gezogen würden, um dies weiter zu überprüfen.

Er räumte ein, dass Sonnet 3.5 bei grundlegenden Aufgaben gute Leistungen erbracht habe, betonte jedoch, dass auch bei Hochleistungsmodellen eine angemessene Anleitung hilfreich sein könne.

Diese Aufforderung ist zu lang und führt dazu, dass die KI halluziniert/vergisst/die Kohärenz/den Fokus verliert


Die Autoren haben diesen Hinweis auf etwa 546 Token geschätzt, was eine akzeptable Länge für ein 200.000-Token-Modell ist.

Strukturierte Eingabeaufforderungen gewährleisten die hohe Qualität des Kontexts, tragen dazu bei, dass Gespräche kohärent bleiben und verringern das Risiko von KI-Halluzinationen.

Bisher sagen Modelle das nächste Token basierend auf dem gesamten Kontext voraus, sodass wiederholte, qualitativ hochwertige Konversationen, die nicht durch unnötiges hin und her von Code verunreinigt werden, länger dauern können, bevor Sie eine neue Sitzung starten müssen. Dies bedeutet, dass produktive Interaktionen innerhalb derselben Sitzung über längere Zeiträume stattfinden können.

Diese Eingabeaufforderung ist überkonstruiert

Der Autor sagte, dass es vielleicht so sei.

Die Menschen, die es nutzen, wurden in den Workflow integriert

Internetnutzer behaupteten, dass sich die Leistung des Modells nach der Verwendung tatsächlich verbessert habe.

„Wenn diese Eingabeaufforderung besser funktioniert, bedeutet das, dass die Arbeit des Anthropic-Teams bei der Kombination von CoT- oder ReAct-Systemeingabeaufforderungen mit den Grundfunktionen von LLM zu Ergebnissen geführt hat.“


Dies ist für Codierungsassistenten! Für eine solche Aufgabe ist es sinnvoll, eine Anleitung zu geben.


Einige Internetnutzer haben einige dieser Tipps bereits in ihren Arbeitsablauf integriert. Hier ist, was er in einem neuen Gespräch immer zuerst lädt.



Einige Internetnutzer sagten jedoch, dass diese Aufforderung zu kompliziert sei.


„Meiner Erfahrung nach besteht keine Notwendigkeit, solch umfassende Eingabeaufforderungen zu verwenden. Claude 3.5 Sonnet erledigt solche Dinge ziemlich automatisch und erfordert nur gelegentliche sofortige Klärung.“


Rollentipps, Zeitverschwendung

Simon Willison, der Entwickler des Django-Frameworks, sagte, dass die Aufforderungstechnik „Sie sind ein Experte auf dem Gebiet xxx“ seit Ende 2022 völlige Zeitverschwendung sei.

Die Anzahl der „Aberglauben“, die in den LLM-Tipps enthalten sind, ist atemberaubend!


Diese Schlussfolgerung stammt tatsächlich aus einer einjährigen Studie, die vom Learnprompting-Team und Co-Autoren von OpenAI und Microsoft durchgeführt wurde.

Papieradresse: https://arxiv.org/pdf/2406.06608

Für das Projekt analysierten sie mehr als 1.500 Aufsätze zu Eingabeaufforderungen, klassifizierten sie in 58 verschiedene Eingabeaufforderungstechniken und analysierten jede Eingabeaufforderung.


Untersuchungen haben ergeben, dass Rollenaufforderungen erschreckend ineffektiv sind.

Der Grund dafür ist, dass sie bei älteren Modellen scheinbar bessere Antworten/Schlussfolgerungen erhalten, indem sie auf einen besseren Parameterraum zugreifen. Neuere Modelle befinden sich jedoch möglicherweise bereits in diesem verbesserten Parameterraum.

Das wird für alle eine konstruktive Vermutung sein!

Als Learnprompting im Oktober 2022 seinen allerersten Leitfaden mit Tipps und Tricks vor ChatGPT veröffentlichte, war Rolleneingabe damals das heißeste Thema und der von allen empfohlene Kerntipp, um bessere ChatGPT-Ergebnisse zu erzielen.


Zugegebenermaßen entwickeln sich diese Modelle rasant weiter, und Techniken, die letztes Jahr funktionierten, funktionieren heute möglicherweise nicht mehr.

Und Tipps, die heute funktionieren, funktionieren im nächsten Jahr vielleicht nicht mehr.

Um dieses Problem zu klären, testete das Learnprompting-Team 2000 MMLU-Fragen mit etwa 12 verschiedenen Zeichenaufforderungen auf gpt-4-turbo.

Insbesondere eine Beispielaufforderung für die Erstellung eines „genialen“ Charakters – Sie sind ein in Harvard ausgebildeter Wissenschaftler ...

Und eine Erinnerung für den „Idioten“-Charakter: Du bist ein 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."

Wie in der folgenden Abbildung dargestellt, ist die Genauigkeit der Antworten auf verschiedene Rollenaufforderungen nicht so hoch wie die von Null-Stichproben-CoT, Zwei-Stichproben-CoT und anderen Strategien.

Es spielt keine Rolle, ob es sich um einen Mathe-Neuling, einen unvorsichtigen Studenten, eine sachkundige KI, einen Polizisten oder einen Ivy-League-Matheprofessor handelt.


Noch interessanter ist, dass GPT-4, bekannt als das „Genie“, den niedrigsten Rekord bei der Antwortgenauigkeit von 58,7 % gebrochen hat.

GPT-4, bekannt als „Idiot“, hat eine höhere Punktzahl als das „Genie“ GPT-4.


Eine weitere Studie eines Teams der University of Michigan veranschaulicht gut, wie sich unterschiedliche soziale Rollenmerkmale auf die Gesamtleistung des Modells auswirken.

Sie testeten 2457 MMLU-Probleme und stellten fest, dass die Charaktere mit der besten Leistung (rot) waren: Polizist, hilfreicher Assistent, Begleiter, Mentor, KI-Sprachmodell, Chatbot.

Papieradresse: https://arxiv.org/pdf/2311.10054

In Bezug auf die „abergläubische“ Erinnerung an große Modelle hat Willison eine anschauliche und interessante Metapher entwickelt:

Ich vergleiche diese Situation mit einem Hund, der in einem Busch einen Hamburger findet und dann in den nächsten Jahren jedes Mal, wenn er an diesem Busch vorbeikommt, nach einem Burger sucht. Wir müssen rationaler sein als Hunde.

Er stellte jedoch klar, dass es in manchen Fällen sinnvoll wäre, KI-Sprachmodellen spezifische Rollen zuzuweisen, betonte jedoch, dass dies auf fundiertem Denken und spezifischen Umständen basieren sollte.


Einige Internetnutzer sagten, wenn sie Schritt für Schritt darüber nachdenken, sei es immer noch ein ewiges Theorem.


Verweise:

https://www.reddit.com/r/ClaudeAI/comments/1dwra38/sonnet_35_for_coding_system_prompt/