Salesforce bringt mit CodeT5 eine Alternative zu OpenAIs Codex. Das KI-Modell soll beim Coden helfen, ist Open Source und soll sogar eine bessere Leistung bieten als Codex.
Im Juni 2021 kündigte OpenAI Codex an, ein GPT-3-ähnliches KI-Modell, das mit natürlicher Sprache und Code aus dutzenden Programmiersprachen trainiert wurde. Das erste Werkzeug, das auf Codex setzt, ist GitHubs Copilot-Assistent.
Durch die zahlreichen Trainingsdaten und großen Modelle versprechen OpenAI und Github „mehr als nur Autovervollständigung“: Codex kann komplette Codeblöcke schreiben oder Textanweisungen direkt in Code verwandeln. Diese und andere Fähigkeiten von Codex zeigte OpenAI im August.
Nun demonstriert Salesforce die Codex-Alternative CodeT5. Einen direkten Vergleich mit Codex liefert das Unternehmen zwar nicht, verspricht aber ein besseres Code-Verständnis. Möglich ist das durch einen komplexeren Trainingsprozess.
Salesforce nutzt Code-Struktur für das KI-Training
KI-Modelle wie Codex setzen laut der Forscher:innen auf Architekturen und Trainingsmethoden, die auch für Sprach-KIs eingesetzt werden. Diese eigneten sich zwar gut für die Verarbeitung natürlicher Sprache, ignorierten aber strukturelle Informationen in Programmiersprachen. Letztere seien für ein besseres Verständnis von Code aber besonders hilfreich.
Um diese strukturellen Informationen nutzen zu können, setzt CodeT5 daher auf einen modifizierten Trainingsprozess: Während etwa GPT-3 im KI-Training lediglich lernt, das nächste Wort in einem Abschnitt vorherzusagen, trainiert Salesforce CodeT5 in mehreren Aufgaben. Diese sollen zusammen das Code-Verständnis des KI-Modells stärken. Als Architektur für CodeT5 dient Googles T5-Transformer.
Für das Training verarbeitet CodeT5 Code-Zeilen und dazugehörige Kommentare. Ein Teil des Modells muss Code vervollständigen, in dem einige Passagen oder bestimmte Identifikatoren wie Variablen oder Funktionsnamen per Zufallsprinzip maskiert wurden. Ein anderer Teil des Modells lernt, Identifikatoren in den Code-Inputs zu erkennen. Abschließend lernt CodeT5, Code in Text und Text in Code umzuwandeln.
Laut der Forscher:innen ermöglicht das komplexere Training eine Spitzenleistung bei 14 Aufgaben im CodeXGLUE-Benchmark von Microsoft, einschließlich Text-zu-Code-Generierung und Code-zu-Code-Übersetzung. OpenAIs Codex ist nicht auf der Liste, ein Vergleich daher nicht möglich.
Salesforce bringt CodeT5 als Open-Source
CodeT5 wurde mit 8,35 Millionen Code-Beispielen mit zugehörigen Kommentaren trainiert. Die Daten stammen aus öffentlich zugänglichen Open-Source-Repositorys auf GitHub, davon die meisten aus dem CodeSearchNet-Datensatz, der Ruby, JavaScript, Go, Python, PHP, C und C# umfasst, ergänzt durch zwei C- und C#-Datensätze von BigQuery.
Die größte CodeT5-Version mit 220 Millionen Parametern benötigte 12 Tage für das Training auf einem Cluster mit 16 Nvidia A100 GPUs und 40 Gigabyte Speicher.
Zu Demonstrationszwecken haben die Forscher CodeT5 als einen KI-gestützten Programmierassistenten für Apex umgesetzt, die proprietäre Programmiersprache von Salesforce. Entwickler:innen können dort eine Beschreibung in natürlicher Sprache eingeben und daraus Funktionen generieren lassen.
„Code-KIs können Entwicklern dabei helfen, langwierige, sich wiederholende Arbeitsabläufe zu reduzieren, die Programmierqualität zu verbessern und die Produktivität der Softwareentwicklung insgesamt zu steigern“, heißt es in der Forschungsarbeit.
Salesforce CodeT5 ist Open-Source und auf GitHub zu finden.