Heim  >  Artikel  >  Technologie-Peripheriegeräte  >  Traffic Engineering verdoppelt die Genauigkeit der Codegenerierung: von 19 % auf 44 %

Traffic Engineering verdoppelt die Genauigkeit der Codegenerierung: von 19 % auf 44 %

WBOY
WBOYnach vorne
2024-02-05 09:15:09725Durchsuche

Die Autoren eines neuen Papiers schlagen eine Möglichkeit vor, die Codegenerierung zu „verbessern“.

Traffic Engineering verdoppelt die Genauigkeit der Codegenerierung: von 19 % auf 44 %

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.

Einschränkungen des Hint Engineering

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:

  • Genaue Übereinstimmung mit der Syntax der Zielprogrammiersprache
  • Behandeln Sie Eckfälle und unerwartete Eingaben elegant
  • Behandeln Sie alle im Problem beschriebenen kleinen Details Anweisung und Anforderungen
  • stellen sicher, dass der Code für alle gültigen Eingaben korrekt kompiliert und ausgeführt wird

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.

AlphaCodium Iterative Process

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:

Vorverarbeitung

  • Das Modell paraphrasiert die Problembeschreibung in Aufzählungszeichen, um wichtige Details zu extrahieren.
  • Erklären Sie die beabsichtigte Logik hinter jeder Beispieleingabe/-ausgabe.
  • Stellen Sie zwei oder drei Lösungen in natürlicher Sprache bereit.
  • Generieren Sie zusätzliche verschiedene Testfälle für die Codeabdeckung.

Code-Iteration

  • Modell generiert erste Codelösungen.
  • Führen Sie den Code wiederholt gegen den öffentlichen Testfall aus und beheben Sie auftretende Fehler.
  • Machen Sie dasselbe für die vom Modell generierten Testfälle.
  • Zusätzliche Testfälle werden zur wachsenden Suite von „Testankern“ hinzugefügt, um Regressionen zu verhindern.

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.

Traffic Engineering verdoppelt die Genauigkeit der Codegenerierung: von 19 % auf 44 %

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.

Experimentelle Ergebnisse

Die Forscher bewerteten AlphaCodium anhand des CodeContests-Benchmarks, der Hunderte von Codierungsproblemen aus kompetitiven Programmierwettbewerben enthält.

Traffic Engineering verdoppelt die Genauigkeit der Codegenerierung: von 19 % auf 44 %

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.

Testbasierte Entwicklungsspezifikationen können eine Grundlage für das Modelltraining bieten. Der Test stellt eine explizite Fitnessfunktion bereit.

Iteratives Code-Debugging konzentriert die Modellverbesserung auf die tatsächlich auftretenden Fehler.
  • Die Erweiterung der Testabdeckung hebt unsichtbare Generalisierungslücken in Hinweisen hervor.
  • Eine sanfte Entscheidungsfindung mit doppelter Überprüfung reduziert Anfälligkeit und Voreingenommenheit.
  • AlphaCodium bietet ein vielversprechendes neues Paradigma für die Codegenerierung basierend auf Best Practices der Softwareentwicklung. Es bleiben offene Forschungsfragen hinsichtlich der Generalisierbarkeit und des Rechenaufwands. Aber die hier vorgestellten Prinzipien (Lernen aus Erfahrung, testgetriebene Entwicklung, modulares Denken und iteratives Debuggen) scheinen eine solide Grundlage für die Verbesserung der Codierungsfunktionen für KI zu bieten.
  • Papierlink: https://arxiv.org/pdf/2401.08500.pdf.
  • Codebasis:
https://github.com/Codium-ai/AlphaCodium.

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:51cto.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen