Die Autoren eines neuen Papiers schlagen eine Möglichkeit vor, die Codegenerierung zu „verbessern“.
Codegenerierung ist eine immer wichtiger werdende Fähigkeit der künstlichen Intelligenz. Es generiert automatisch Computercode basierend auf Beschreibungen in natürlicher Sprache, indem es Modelle für maschinelles Lernen trainiert. Diese Technologie hat breite Anwendungsaussichten und kann Softwarespezifikationen in verwendbaren Code umwandeln, die Back-End-Entwicklung automatisieren und menschliche Programmierer dabei unterstützen, die Arbeitseffizienz zu verbessern.
Allerdings ist die Generierung von qualitativ hochwertigem Code für KI-Systeme im Vergleich zu Sprachaufgaben wie Übersetzung oder Zusammenfassung immer noch eine Herausforderung. Der Code muss genau der Syntax der Zielprogrammiersprache entsprechen, Randfälle und unerwartete Eingaben ordnungsgemäß verarbeiten und die vielen kleinen Details der Problembeschreibung genau behandeln. Selbst kleine Fehler, die in anderen Bereichen harmlos erscheinen, können die Funktionalität eines Programms vollständig beeinträchtigen und dazu führen, dass es nicht kompiliert oder ausgeführt werden kann.
Kürzlich haben Forscher von CodiumAI AlphaCodium vorgeschlagen, eine neue Methode, die die Codegenerierungsfähigkeiten großer Sprachmodelle wie GPT-4 erheblich verbessern kann. Ihr Punkt ist, dass die bloße Feinabstimmung des Wortlauts von Eingabeaufforderungen inhärente Einschränkungen bei der Lösung komplexer Codierungsprobleme mit sich bringt. Stattdessen entwarfen sie einen mehrstufigen Prozess, der sich auf das iterative Generieren, Ausführen und Debuggen von Code anhand von Testfällen konzentrierte, sodass das Modell aus der Praxis lernen konnte.
Bei Aufgaben in natürlicher Sprache bezieht sich Hint Engineering auf die sorgfältige Abstimmung des Wortlauts und der Struktur von Hinweisen, um das Modell so zu steuern, dass es die gewünschte Ausgabe erzeugt. Wenn Sie beispielsweise vor dem Eingabetext den Satz „Schreiben Sie eine kurze Zusammenfassung:“ hinzufügen, kann das Modell dazu führen, dass eine genauere Zusammenfassung generiert wird.
Prompt Engineering hat sich bei der Textgenerierung als sehr effektiv erwiesen, um das Verhalten großer Sprachmodelle zu steuern. Bei Codierungsproblemen haben Forscher jedoch herausgefunden, dass selbst mit umfangreichen rechtzeitigen Anpassungen nur geringe Fortschritte erzielt werden können. Diese Entdeckung regt zum Nachdenken an. Daher erfordert die Generierung von qualitativ hochwertigem Code noch andere Lösungen:
Diese strukturellen Anforderungen gehen über den Rahmen der Textgenerierung hinaus und können nicht fest in die Eingabeaufforderung codiert werden. Den Eingabeaufforderungen selbst fehlten die Programmierkenntnisse und das konkrete Feedback, die für das Modelllernen erforderlich sind.
Um diese Herausforderungen anzugehen, haben Forscher einen iterativen Prozess entwickelt, der speziell für Codegenerierungsprobleme strukturiert ist. Die wichtigste Neuerung besteht darin, die Ausführungsergebnisse des generierten Codes als Lernsignale zu nutzen, um direktes Feedback zu geben.
Der Prozess von AlphaCodium besteht aus zwei Hauptphasen:
Durch schrittweises Nachdenken über Probleme, Entwickeln von Lösungshypothesen, Erweitern der Testabdeckung und iteratives Generieren und Debuggen von Code lernen Modelle durch Erfahrung – genau die Fähigkeiten, die für eine qualitativ hochwertige Codegenerierung erforderlich sind.
Abbildung 1. Beispiel einer Eingabeaufforderung mit strukturierter Ausgabe (Phase „Mögliche Lösung generieren“)
Forscher fanden heraus, dass die Gestaltung von Prozessen mit klaren Schnittstellen und Zielen im Vergleich zu End-to-End-Modellen besser zu erreichen ist bessere Ergebnisse. Jede Phase konzentriert sich zunächst auf einfachere Teilaufgaben, um Wissen aufzubauen und Erkenntnisse zu gewinnen, die als Grundlage für nachgelagerte Phasen dienen. Vorgelagerte Phasen wie die Testgenerierung erfordern keine vollständige Lösung, sondern nur eine grundlegende Argumentation.
Die Forscher bewerteten AlphaCodium anhand des CodeContests-Benchmarks, der Hunderte von Codierungsproblemen aus kompetitiven Programmierwettbewerben enthält.
Abbildung 2. Problembeschreibung und Reflexion – ein Beispiel für eine typische CodeContests-Frage, Selbstreflexion über das Problem basierend auf künstlicher Intelligenz. Während die anfängliche Beschreibung lang und komplex ist, kann eine ordnungsgemäße Selbstreflexion das Problem klarer und kohärenter machen und zu verbesserten Codelösungen führen
Gegenüber dem GPT-4-Modell validiert AlphaCodium den Code im Vergleich zu einem stark optimierten Einzeltipp Die Generierungsgenauigkeit am Set wurde von 19 % auf 44 % erhöht. Dieser Vorteil gilt für verschiedene Modellgrößen und Testsätze und ist deutlich effektiver als ein separates Hinweisprojekt.
AlphaCodium ist außerdem deutlich leistungsfähiger als zuvor veröffentlichte Methoden wie AlphaCode und CodeChain und verbraucht gleichzeitig weniger Rechenressourcen. Durch die Vermeidung unnötiger Brute-Force-Generierung ist die Genauigkeit beispielsweise mit der von AlphaCode vergleichbar und erfordert gleichzeitig 10.000-mal weniger Modellabfragen.
Diese Ergebnisse zeigen, wie wertvoll es ist, KI-Systeme ganzheitlich anhand von Aufgabenstrukturen zu entwerfen, anstatt sie als Allzweck-Textgeneratoren zu behandeln. Durch die Integration der iterativen Codeausführung und des Debuggens richtet AlphaCodium den Trainingsprozess besser auf das Endziel aus, robusten, praktischen Code zu erstellen.
... komplexe Codierungsaufgaben. Konkrete Problemlösungserfahrung ist entscheidend.Iteratives Code-Debugging konzentriert die Modellverbesserung auf die tatsächlich auftretenden Fehler.
Originaltitel: „Flow Engineering“ verdoppelt die Genauigkeit der Codegenerierung (19 % gegenüber 44 %), Autor: Mike Young
Link: https://notes.aimodels.fyi/flow-engineering-intensify-for- Codegenerierung/.
Das obige ist der detaillierte Inhalt vonTraffic Engineering verdoppelt die Genauigkeit der Codegenerierung: von 19 % auf 44 %. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!