Wähle deine bevorzugte Option:
für Einzelnutzer
für Teams und Unternehmen

Von der ersten Idee bis zur voll integrierten KI-Lösung – strukturiert, sicher und mit messbarem Erfolg
Wir analysieren Ihre Geschäftsprozesse und identifizieren konkrete Use Cases mit dem höchsten ROI-Potenzial.
✓ Messbare KPIs definiert
Vollständige Datenschutz-Analyse und Implementierung sicherer Datenverarbeitungsprozesse nach EU-Standards.
✓ 100% DSGVO-konform
Maßgeschneiderte Auswahl der optimalen KI-Lösung – von Azure OpenAI bis zu Open-Source-Alternativen.
✓ Beste Lösung für Ihren Fall
Schneller Proof of Concept mit nahtloser Integration in Ihre bestehende IT-Infrastruktur und Workflows.
✓ Ergebnisse in 4-6 Wochen
Unternehmensweiter Rollout mit umfassenden Schulungen für maximale Akzeptanz und Produktivität.
✓ Ihr Team wird KI-fit
In der dynamischen Landschaft der Softwareentwicklung stehen Unternehmen zunehmend vor der Herausforderung, mit einer Vielzahl von Programmiersprachen und der Notwendigkeit effizienter Code-Übersetzung und -Dokumentation umzugehen. Ein neuer Forschungsansatz, der unter dem Namen "BatCoder" vorgestellt wurde, verspricht hier signifikante Fortschritte. Dieses Modell nutzt selbstüberwachtes, bidirektionales Lernen zwischen Code und dessen Dokumentation durch den Einsatz von Back-Translation. Dies ermöglicht eine robustere und effizientere Verarbeitung von Programmiersprachen, insbesondere in Szenarien, in denen parallele Daten knapp sind.
Die Wahl einer Programmiersprache (PL) in der Softwareentwicklung hängt oft von den spezifischen Anforderungen eines Projekts und der Verfügbarkeit von Bibliotheken und APIs ab. Die rasante Entwicklung neuerer und funktionsreicherer Sprachen führt häufig dazu, dass bestehende Legacy-Software in modernere PLs übersetzt werden muss. Während regelbasierte Übersetzungen theoretisch möglich sind, erfordern sie oft eine enorme Anzahl maßgeschneiderter Transformationsregeln und können zu schwer lesbarem Quellcode führen. Zudem ist die Abstimmung von Bibliotheken und APIs über verschiedene PLs hinweg eine komplexe Aufgabe.
Herkömmliche Methoden der neuronalen maschinellen Übersetzung (NMT) haben in der Vergangenheit bewiesen, dass sie Sprachausrichtungen lernen und Quellcode über Sprachen hinweg übersetzen können. Ein wesentliches Hindernis für überwachte Lernansätze in der NMT ist jedoch der Bedarf an großen parallelen Korpora. Für die Übersetzung von Java nach Python wären beispielsweise zahlreiche Programme, die dasselbe semantische Verhalten aufweisen, in beiden Sprachen erforderlich. Solche parallelen Datensätze sind in der Programmübersetzung selten.
Die Back-Translation (BT) ist eine bewährte Methode, um Ausrichtungen zwischen verschiedenen Sprachen zu lernen, insbesondere wenn wenig bis keine parallelen Daten vorhanden sind. Dabei wird ein Quell-zu-Ziel-Modell mit einem Ziel-zu-Quell-Modell gekoppelt, die parallel trainiert werden. Das Ziel-zu-Quell-Modell generiert "verrauschte" Quellen, während das Quell-zu-Ziel-Modell darauf trainiert wird, die Ziele zu rekonstruieren und umgekehrt.
Neuere Entwicklungen bei multilingualen, vortrainierten Sequenz-zu-Sequenz-Modellen (PSMs) für Programmiersprachen haben sich als sehr effektiv für eine Vielzahl von Software-Engineering-Aufgaben erwiesen. Das Training dieser Modelle mittels Back-Translation zur Erstellung von Programmiersprachen-Übersetzungssystemen ist daher naheliegend. Es zeigte sich jedoch, dass diese Modelle nicht direkt mittels Back-Translation weiter trainiert werden können, da sie während des Vortrainings lernen, Sequenzen in derselben Sprache wie die Eingabe auszugeben. Sie besitzen kaum Wissen über sprachübergreifende Generierung, da sie typischerweise darauf trainiert werden, Codesequenzen aus verrauschten Eingaben zu rekonstruieren.
Um diese Einschränkung zu überwinden, schlägt BatCoder einen alternativen Ansatz vor: die Durchführung der Back-Translation über Code-Summarization und -Generation. Hierbei wird eine dritte Sprache, in diesem Fall Englisch, als Brücke genutzt. Da eine große Menge monolingualer Code-Korpora mit Dokumentationen versehen ist, die den Zweck des Quellcodes beschreiben, wird ein Summarize-and-Generate (S&G)-Modell trainiert. Dieses Modell lernt, aus Code-Snippets natürlichsprachliche (NL) Zusammenfassungen zu generieren und umgekehrt, aus NL-Zusammenfassungen Code zu generieren.
Der Prozess läuft in zwei Schritten ab: Zuerst generiert das Modell aus dem Quellcode eine NL-Zusammenfassung. Anschließend wird aus dieser NL-Zusammenfassung Code in der Zielsprache generiert. Auch wenn die so generierten parallelen Sequenzen "verrauscht" sein können, ermöglichen sie es, PSMs im BT-basierten Training einzusetzen, um Programmiersprachen-Übersetzungen zu lernen. Dieser Ansatz, der als Summarize-and-Generate (S&G) bezeichnet wird, befähigt vortrainierte Modelle wie PLBART, sprachübergreifend zu generieren und anschließend durch Back-Translation weiter trainiert zu werden, um Programmiersprachen-Übersetzung zu lernen.
Das Training von BatCoder erfolgt in zwei sequenziellen Schritten:
1. Supervised Training (S&G): Zunächst wird ein Modell wie PLBART in einem überwachten Setting auf Code-Summarization und -Generation trainiert. Dabei lernt es, aus einem Code-Snippet eine natürlichsprachliche Zusammenfassung zu erstellen und aus einer Zusammenfassung Code zu generieren. Für dieses Training werden bimodale Daten, also Code- und Zusammenfassungspaare, verwendet, wie sie beispielsweise im CodeXGlue-Benchmark verfügbar sind.
2. Unsupervised Training (Back-Translation): Anschließend wird das so vortrainierte Modell in einem unüberwachten Setting mittels Back-Translation verfeinert. Hierbei werden monolinguale Daten genutzt. In den ersten Schritten des Back-Translation-Prozesses generiert das Modell eine NL-Zusammenfassung des Codes in der Zielsprache und anschließend Code in der Ausgangssprache aus der NL-Zusammenfassung. In späteren Schritten wird dann direkt Code von der Zielsprache in die Ausgangssprache übersetzt.
Die Architektur basiert auf Sequenz-zu-Sequenz-Modellen, die Quellcode-Sequenzen in einen gemeinsamen multilingualen Raum abbilden. Das Vortrainingsziel dieser Modelle ist typischerweise ein Denoising Autoencoding oder das Auffüllen von Lücken, bei dem die Modelle das ursprüngliche Code-Snippet rekonstruieren oder fehlende Token vorhersagen. Durch die Integration von S&G wird die Fähigkeit zur sprachübergreifenden Generierung erst ermöglicht.
Die Evaluierung von BatCoder erfolgte auf Datensätzen wie dem von Lachaux et al. (2020) vorgeschlagenen, der parallele Funktionen in Java, Python und C++ umfasst. Als Metriken wurden unter anderem BLEU (zur Messung der N-Gramm-Überschneidung), Exact Match (EM), CodeBLEU (das auch grammatikalische und logische Korrektheit berücksichtigt) und Computational Accuracy (CA) verwendet. Letzteres bewertet die funktionale Korrektheit, indem überprüft wird, ob übersetzter Code eine Reihe von Unit-Tests besteht.
Die Ergebnisse zeigten, dass reine Back-Translation ohne den S&G-Zwischenschritt bei der Codegenerierung über Sprachgrenzen hinweg versagte (0 % EM und 0 % CA). Im Gegensatz dazu erreichte PLBART, das mittels S&G für die Back-Translation trainiert wurde, CA-Werte von 40,4 % (Java nach Python) und 31,9 % (Python nach Java). Diese Leistung ist vergleichbar mit der von modernen Übersetzungssystemen wie TransCoder, das jedoch über eine deutlich größere Modellgröße verfügt (312M Parameter gegenüber 140M bei PLBART).
Ein weiterer wichtiger Befund war der Einfluss der Trainingsdaten. Die Verwendung von "In-Domain"-Daten, die aus Plattformen für Competitive Programming wie CodeNet stammen und thematisch auf Datenstrukturen und Algorithmen fokussieren, führte zu einer signifikanten Leistungssteigerung im Vergleich zu allgemeineren GitHub-Daten. Dies deutet darauf hin, dass die Qualität und Relevanz der Trainingsdaten entscheidend für die Übersetzungsleistung sind.
BatCoder stellt einen wichtigen Schritt in der Entwicklung robuster und autonomer Code-Übersetzungssysteme dar. Die Fähigkeit, bidirektionale Übersetzungen zwischen Code und Dokumentation zu lernen, ohne auf umfangreiche parallele Daten angewiesen zu sein, ist für Unternehmen von großem Wert. Dies hat weitreichende Implikationen für:
Die Forschung zeigt, dass der Einsatz von natürlichsprachlichen Erklärungen als Zwischenschritt (Explain-then-Translate) besonders effektiv sein kann, um die Programmierübersetzung zu verbessern, insbesondere in Zero-Shot-Szenarien. Dies deutet auf ein erhebliches Potenzial hin, die Effizienz und Genauigkeit in der Softwareentwicklung durch KI-gestützte Tools weiter zu steigern.
Trotz der vielversprechenden Ergebnisse gibt es weiterhin Herausforderungen. Die Skalierbarkeit der Methoden bei sehr großen Codebasen und die Integration weiterer Programmiersprachen sind wichtige Forschungsfelder. Zudem könnte die weitere Verfeinerung der Modelle durch den Einsatz von Transformer-basierten Architekturen und die Anpassung an spezifische Anwendungsfälle die Leistung noch weiter verbessern.
Insgesamt bietet BatCoder eine spannende Perspektive für die Zukunft der Softwareentwicklung und unterstreicht das Potenzial von selbstüberwachtem Lernen und Back-Translation zur Bewältigung komplexer Aufgaben in der Code-Verarbeitung. Für die B2B-Zielgruppe von Mindverse bedeuten diese Entwicklungen konkrete Chancen zur Optimierung von Entwicklungsprozessen und zur Steigerung der Produktivität.
Bibliography: - Ahmad, Wasi Uddin, et al. "Summarize and Generate to Back-translate: Unsupervised Translation of Programming Languages." Proceedings of the 17th Conference of the European Chapter of the Association for Computational Linguistics, Association for Computational Linguistics, 2023, pp. 1528–42. ACL Anthology, aclanthology.org/2023.eacl-main.112. - "Daily Papers - Hugging Face." Hugging Face, huggingface.co/papers. Accessed 18 June 2024. - "CodeRosetta: Pushing the Boundaries of Unsupervised Code Translation for Parallel Programming | PromptLayer." PromptLayer, www.promptlayer.com/research-papers/unlocking-parallel-programming-code-translation-with-coderosetta. Accessed 18 June 2024. - Tang, Zilu, et al. "Explain-then-Translate: An Analysis on Improving Program Translation with Self-generated Explanations." arXiv, 13 Nov. 2023, arxiv.org/abs/2311.07070. - Toyoda, Minori, et al. "[PDF] Learning Bidirectional Translation between Descriptions and ... - arXiv." arXiv, 24 Sept. 2022, arxiv.org/pdf/2203.04218. - Li, Bryan, et al. "[PDF] Multilingual Bidirectional Unsupervised Translation Through ... - ACL Anthology." ACL Anthology, 6 May 2023, aclanthology.org/2023.loresmt-1.2.pdf. - Ismail, M Shahbaz, et al. "Semantic code clone detection using hybrid intermediate ... - NIH." PLoS One, 20 Jan. 2026, pmc.ncbi.nlm.nih.gov/articles/PMC12818651/. - Elnaggar, Ahmed, et al. "[PDF] ProtTrans: Towards Cracking the Language of Life's Code Through ... - IEEE Xplore." IEEE Xplore, ieeexplore.ieee.org/ielaam/34/9893033/9477085-aam.pdf. Accessed 18 June 2024.Lernen Sie in nur 30 Minuten kennen, wie Ihr Team mit KI mehr erreichen kann – live und persönlich.
🚀 Demo jetzt buchen