OpenAI SitemapAktualisiert

Fortschritte beim Programmieren in ressourcenarmen Programmiersprachen

Erfahren Sie, wie OpenAI ChatGPT in ressourcenarmen Programmiersprachen verbessert, mit neuen Auswertungen für Softwareentwicklung, SQLite und COBOL-Migration.

Bildquelle · OpenAI Sitemap

Unsere neuesten Modellfortschritte bringen stärkere Fähigkeiten zum Erstellen und Migrieren von Software in ressourcenarmen Programmiersprachen wie COBOL, Fortran und Visual Basic. Diese Sprachen haben weniger Code und Dokumentation, aus denen Modelle lernen können, als Sprachen wie Python und JavaScript, unterstützen jedoch kritische Infrastruktur und lebenswichtige Dienstleistungen auf der ganzen Welt. COBOL unterstützt⁠(opens in a new window) mehr als 40% der Online-Bankingsysteme, 80% der Kreditkartentransaktionen am Point of Sale und 95% der Geldautomatentransaktionen, während Fortran in der Wettervorhersage⁠(opens in a new window) und der Sicherheitsanalyse von Kernreaktoren⁠(opens in a new window)verwendet wird. Die Verbesserung der Fähigkeit von KI, in diesen Sprachen zu arbeiten, könnte Teams helfen, die Software zu warten und zu modernisieren, von der lebenswichtige Dienstleistungen abhängen.

Diese Arbeit wird durch Feedback von Entwicklern und Enterprise-Kunden geleitet, die uns mitgeteilt haben, dass Codierungsmodelle oft Schwierigkeiten mit diesen Sprachen haben. Die Wartung und Modernisierung dieser Software kann schwierig sein: Die Dokumentation ist möglicherweise unvollständig, die ursprünglichen Entwickler haben das Unternehmen möglicherweise verlassen, und wichtige Geschäftsregeln existieren möglicherweise nur im Code. Ob Teams Fehler beheben oder auf eine andere Sprache migrieren, sie müssen das Verhalten bewahren, von dem ihre Systeme abhängen.

Um Fortschritte zu messen, haben wir zwei Auswertungen entwickelt. MultiLangBench testet, ob ein Modell eine SQLite-kompatible Datenbank-Engine von Grund auf in 20 verschiedenen Programmiersprachen erstellen kann. Unsere COBOL-Migrationsauswertung testet, ob ein Modell bestehende Programme in eine andere Sprache migrieren kann, während deren Verhalten erhalten bleibt. Zusammen testen sie zwei komplementäre Fähigkeiten: das Erstellen neuer Software und das Bewahren der Funktionsweise bestehender Software.

Unsere neuesten Modelle zeigen erhebliche Verbesserungen in beiden Auswertungen und liefern deutlich höhere Genauigkeit bei geringeren Kosten.

Bei MultiLangBench erreicht GPT‑6 Astra eine durchschnittliche Testbestehensquote von 87.4% über 20 Programmiersprachen, gegenüber 26.8% bei GPT‑5.6 Sol, mit Verbesserungen in jeder getesteten Sprache. GPT‑6 Luna übertrifft ebenfalls GPT‑5.6 Sol und erreicht 40.3% bei etwa 78% niedrigeren geschätzten API-Kosten.

Bei unserer COBOL-Migrationsauswertung erreicht GPT‑6.1 Sol eine Genauigkeit von 86.6% bei geringem Reasoning-Aufwand, gegenüber nur 5.4% bei GPT‑5.6 Sol, bei 39% niedrigeren Kosten. Bei höherem Reasoning-Aufwand erreicht die Genauigkeit 97.9%, womit die Auswertung nahezu gesättigt ist.

Zusammen zeigen diese Ergebnisse, dass unsere Modelle deutlich besser im Umgang mit einer breiten Palette von Programmiersprachen werden und gleichzeitig kosteneffizienter werden.

1. SQLite von Grund auf erstellen (MultiLangBench)

MultiLangBench fordert ein Modell auf, eine SQLite-kompatible Datenbank-Engine in einer bestimmten Programmiersprache zu erstellen. Das Modell muss eine Codebasis organisieren, den Zustand verwalten, Fehler behandeln und neue Funktionen hinzufügen, während die bestehende Funktionalität erhalten bleibt.

Um Implementierungen über Sprachen hinweg zu vergleichen, verwenden wir Datenbankdateien als gemeinsame Schnittstelle. Das Kandidatenprogramm erhält eine Ausgangsdatenbank und eine SQL-Abfrage und erzeugt dann eine modifizierte Datenbank. Wir verwenden die Referenzimplementierung von SQLite, um zu prüfen, ob die resultierende Datenbank den erwarteten Inhalt hat. So können wir dieselben Tests anwenden, unabhängig davon, in welcher Sprache die Engine erstellt wurde.

Wir haben Tests aus der bestehenden Testsuite von SQLite an dieses Format angepasst. Die Auswertung misst, wie viel funktionsfähige Funktionalität ein Modell über eine längere Codierungssitzung erstellen kann, und berichtet sowohl die Testbestehensquote als auch die API-Kosten.

Bei maximalem Reasoning-Aufwand erreicht GPT‑6 Astra eine durchschnittliche Testbestehensquote von 87.4% über die 20 Sprachen, gegenüber 26.8% bei GPT‑5.6 Sol. Die Verbesserungen erstrecken sich auf jede getestete Sprache, darunter COBOL (10.9% auf 72.1%), OCaml (25.6% auf 85.8%), Fortran (21.4% auf 83.5%) und Visual Basic (27.5% auf 89.4%). Astra erzielt in 19 der 20 Sprachen mehr als 83%, wobei COBOL mit 72% am schwierigsten bleibt.

GPT‑6 Luna bietet eine kostengünstigere Option, die ebenfalls GPT‑5.6 Sol in jeder getesteten Sprache übertrifft. Bei maximalem Reasoning-Aufwand erreicht sie eine durchschnittliche Testbestehensquote von 40.3%. Zu den Zuwächsen gehören COBOL (10.9% auf 17.1%), OCaml (25.6% auf 34.1%), Fortran (21.4% auf 31.4%) und Visual Basic (27.5% auf 41.6%). Diese Verbesserungen gehen mit geschätzten durchschnittlichen API-Kosten von $0.77 pro Sample einher, gegenüber $3.48 bei GPT‑5.6 Sol, etwa 78% niedriger.

Durchschnittliche Testbestehensquote

Wir veröffentlichen das MultiLangBench-Auswertungssetup und die Testsuite auf GitHub⁠(opens in a new window)zusammen mit den Ergebnissen für jede Sprache. Entwickler können einsehen, was die Auswertung testet, die Leistung in den von ihnen verwendeten Sprachen überprüfen und Lücken identifizieren, die für ihre eigene Arbeit relevant sind.

2. Migration einer COBOL-Codebasis

Unsere zweite Auswertung fordert Modelle auf, COBOL-Programme nach C++, Java, Kotlin, Python oder Rust zu migrieren, während die Funktionsweise jedes Programms erhalten bleibt.

Eine erfolgreiche Migration erfordert das Verständnis sowohl der Geschäftslogik des Programms als auch des spezifischen Sprachverhaltens von COBOL. COBOL-Programme verarbeiten häufig Finanztransaktionen und Geschäftsdatensätze, bei denen Details wie Rundungsregeln und die Behandlung fehlender Datensätze geschäftliche Anforderungen widerspiegeln. COBOLs Festkommaarithmetik verwirft beispielsweise überschüssige Dezimalstellen, es sei denn, eine Rundung wird ausdrücklich angefordert. Eine Neufassung, die diese Werte stattdessen rundet, kann fehlerfrei laufen und dabei unterschiedliche finanzielle Ergebnisse liefern.

Um zu testen, ob diese Verhaltensweisen erhalten bleiben, evaluieren wir unsere Modelle anhand versteckter Tests, die eine byte-für-byte-Übereinstimmung der sichtbaren Ausgaben verlangen. Eine Migration gilt nur als erfolgreich, wenn alle Tests bestanden werden. Verhaltenswahrende Fähigkeiten wie diese sind für Teams nützlich, die ältere Systeme warten und modernisieren, auch wenn die Anwendung auf Produktionssoftware weiterhin eine Expertenprüfung und Tests gegen die Geschäftsregeln und Abhängigkeiten des Systems erfordert.

Bei dieser Evaluation erreicht GPT‑6.1 Sol eine Genauigkeit von 86.6% bei geringem Reasoning-Aufwand, verglichen mit 5.4% bei GPT‑5.6 Sol bei derselben Einstellung und nur 61% der API-Kosten. Bei höherem Reasoning-Aufwand erreicht die Genauigkeit 97.9%, wodurch die Evaluation nahe an die Sättigung heranführt. Diese Evaluationsergebnisse zeigen Fortschritte hin zu einer genaueren und erschwinglicheren Code-Migration für Teams, die die Software modernisieren, von der ihre Unternehmen abhängen.

Fortschritte bei Fähigkeiten für Unternehmenssoftware

Diese Evaluationen, zusammen mit direktem Feedback von Entwicklern und Unternehmenskunden, helfen uns zu erkennen, wo sich unsere Modelle verbessern und wo sie noch Defizite aufweisen.

Unser Ziel ist es, Modellen zu helfen, Software-Engineering-Fähigkeiten über mehr Sprachen hinweg anzuwenden: unbekannte Repositories zu verstehen, Änderungen zu planen, Build-Tools zu verwenden, Tests auszuführen und Fehler zu beheben.

Sie können unsere neuesten Modelle über die API bei Programmieraufgaben in den Sprachen ausprobieren, die Ihr Team verwendet. Ihr Feedback dazu, was funktioniert, wo die Modelle Schwierigkeiten haben und auf welche Sprachen oder Workflows wir uns als Nächstes konzentrieren sollten, hilft uns dabei zu gestalten, wie wir Modelle trainieren und evaluieren, um die Software, von der Sie abhängen, besser zu unterstützen.

Originalquelle

OpenAI Sitemap

Hinweise zum Inhalt

Originalveröffentlichung und Rechte liegen bei der Quelle.

Maschinelle Übersetzung · Original beachten