Verbesserung der KI bei der Lösung von Problemen bei Codierungswettbewerben

Verbesserung der KI bei der Lösung von Problemen bei Codierungswettbewerben

Interview Die Fähigkeit kommerzieller großer Sprachmodelle, konkurrierende Programmierprobleme zu lösen, kann durch sorgfältige Steuerung ihrer Prozesse durch cleveres Prompt Engineering erheblich gesteigert werden.

Um dies zu demonstrieren, hat Codium AI mit Sitz in Israel AlphaCodium entwickelt und freigegeben die Software diesen Monat auf GitHub. AlphaCodium ist per se kein großes Sprachmodell. Stattdessen handelt es sich um eine Methode, die die Problemlösungsfähigkeiten generativer KI-Tools wie GPT-4 verbessert, indem sie das verwendet, was CEO Itamar Friedman „Flow Engineering“ nennt.

Zunächst wird dem zugrunde liegenden großen Sprachmodell eine Programmierfrage zugeführt und es wird gebeten, das Problem zu beschreiben und zusammenzufassen. Diese Informationen geben dann Hinweise darauf, wie mit der Lösung des Problems begonnen werden sollte. AlphaCodium definiert Dinge, wie z. B. die Ein- und Ausgänge, wenn eine Lösung entwickelt wird. All dies wird in natürlicher Sprache angegeben.

Das Modell beginnt dann mit der Generierung von Code, der den gerade beschriebenen Spezifikationen entspricht. Bei Programmierwettbewerben, bei denen die Teilnehmer aufgefordert werden, den Spezifikationen entsprechend zu programmieren, werden in der Regel Tests durchgeführt, die zeigen, was ein Skript für eine bestimmte Eingabe ausgeben soll. AlphaCodium generiert weitere dieser Testfälle und durchläuft dann mögliche Lösungen, um zu überprüfen, ob der Code wie erwartet funktioniert.

Wenn es nicht gelingt, mit den in einem der Tests definierten Ausgaben übereinzustimmen, generiert das Modell unterschiedliche Lösungen, bis alle Tests bestanden werden oder das Modell fehlschlägt. Fehler können auftreten, wenn der Code nicht kompiliert werden kann oder einfach falsch ist.

Im folgenden Diagramm können Sie die verschiedenen Schritte im Flow-Engineering-Prozess sehen. Es gliedert sich größtenteils in eine Vorverarbeitungsphase, in der das System das Problem in natürlicher Sprache analysiert, und eine Code-Iterationsphase, in der es mögliche Lösungen anhand öffentlicher und KI-generierter Tests durchführt.

Alphacodium

Alle umfassenden Schritte, die AlphaCodium bei der Generierung von Code zur Lösung von Problemen unterstützen

„Wir nehmen das Problem nicht, gehen zum Modell und sagen ihm: ‚Hey, generieren Sie bitte die endgültige Lösung‘“, sagte Friedman Das Register. „Wir bitten das Modell, dieses Problem in Stichpunkten neu zu definieren.“ Durch die Vereinfachung und Aufteilung in Blöcke kann das Modell später leichter Code für verschiedene Teile eines Algorithmus generieren.

Flow Engineering ist im Wesentlichen ein Verfahren, das den Problemlösungsprozess des Modells steuert, indem es ihn in wohldefinierte Schritte aufteilt. Die Aufforderung, „den generierten Code in kleine Unterfunktionen mit aussagekräftigen Namen und Funktionen zu unterteilen“, führe zu weniger Fehlern und mache den Code einfacher zu testen und zu beheben.

„Wir haben grundsätzlich 95 Prozent unserer Zeit mit der Strömungstechnik verbracht und nur 5 Prozent mit der Prompt-Engineering, und wir haben die Prompts für jeden [Schritt] nicht geändert“, fügte Friedman hinzu.

Ingenieure von Codium testeten die Leistung ihres Modells anhand von Hunderten von Problemen, die in den Verifizierungs- und Testteilen des CodeForces-Datensatzes verwendet wurden, der vor zwei Jahren von Google DeepMind zusammengestellt wurde. Sie behaupten, dass AlphaCodium Codierungsprobleme besser lösen konnte als die Modelle AlphaCode und AlphaCode2 von Google DeepMind.

In Ergebnissen, die in einem arXiv gemeldet wurden Krepppapier [PDF], AlphaCodium konnte 44 Prozent der Fragen richtig beantworten, verglichen mit 24 Prozent von AlphaCode, und generierte für 107 Validierungsprobleme nur fünf Lösungen im Vergleich zu den zehn ausgewählten Lösungen von AlphaCode. Interessanterweise verringerte sich der Abstand bei 165 Testproblemen, wobei AlphaCodium 29 Prozent löste, verglichen mit 28 Prozent von AlphaCode.

AlphaCode wählt aus Zehntausenden oder Hunderttausenden möglichen Skripten, die es generiert, die zehn vielversprechendsten Lösungen aus – was die Ausführung rechenintensiv macht.

„Wir haben uns viel stärker auf den gesamten Testablauf konzentriert“, sagte Friedman. „Für [Google] haben sie so viel an der Generation gearbeitet. Sie versuchen, Hunderte anderer Optionen zu generieren, und wir generieren nur sehr wenige Lösungen, testen sie aber sehr gründlich, um die Verbesserung des Codes voranzutreiben.“

AlphaCodium sei ein kleines bisschen besser als das neueste AlphaCode2-Modell von Google DeepMind, das 10,000-mal effizienter sei als sein Vorgänger AlphaCode, fügte er hinzu.

alphacodium_2

Wie AlphaCodium in Bezug auf Genauigkeit und Effizienz im Vergleich zu anderen hochmodernen Modellen abschneidet

Friedman sagte, er sei zuversichtlich, dass die Leistung von AlphaCodium nicht auf Datenlecks zurückzuführen sei, da das zugrunde liegende Modell auf dieselben Probleme trainiert und getestet wurde. Die GPT-4-Version, die AlphaCodium antreibt, wurde auf Texten trainiert, die bis September 2021 aus dem Internet stammten, während die Probleme, mit denen das System getestet wurde, aus dem oben genannten CodeForces-Datensatz übernommen wurden, der viel später veröffentlicht wurde.

Ein besserer Vergleich von Äpfeln zu Äpfeln, der den Flow-Engineering-Prozess bewertet, untersucht jedoch die Fähigkeit von GPT-4, dieselben Fragen mit und ohne Anwendung von AlphaCodium zu lösen. Das einfache alte GPT-4 konnte nur 19 bzw. 12 Prozent der Probleme in den Validierungs- und Testsätzen richtig beantworten, verglichen mit 44 bzw. 29 Prozent bei der AlphaCodium-basierten Variante.

Kurz gesagt scheint es effektiver zu sein, eine sorgfältige Pipeline zu implementieren, die zusätzliche Daten generiert, um die Codegenerierung zu steuern und den Testprozess zu verbessern, als zu versuchen, ein großes Sprachmodell von Grund auf zu trainieren.

Codium hat kürzlich ein neues Tool zur Unterstützung von Python-Entwicklern veröffentlicht, die jetzt AlphaCodium aufrufen können, um ein Codierungsproblem in ihrer IDE direkt zu lösen. Du kannst damit spielen Hier. ®

Zeitstempel:

Mehr von Das Register