← Nieuwste papers
🤖 AI

Beyond Code Pairs: Dialogue-Based Data Generation for LLM Code Translation

Dit artikel introduceert een geautomatiseerde, op dialoog gebaseerde datasetgeneratiepijplijn die gebruikmaakt van een dual-LLM Questioner-Solver-ontwerp met compiler- en runtime-feedback om geverifieerde codetranslaties en redeneerdialoog te creëren, wat de functionele correctheid van LLM's in minder ondersteunde domeinen zoals Fortran en CUDA aanzienlijk verbetert.

Oorspronkelijke auteurs: Le Chen, Nuo Xu, Winson Chen, Bin Lei, Pei-Hung Lin, Dunzhi Zhou, Rajeev Thakur, Caiwen Ding, Ali Jannesari, Chunhua Liao

Gepubliceerd 2026-06-05
📖 4 min leestijd☕ Koffiepauze-leesvoer

Oorspronkelijke auteurs: Le Chen, Nuo Xu, Winson Chen, Bin Lei, Pei-Hung Lin, Dunzhi Zhou, Rajeev Thakur, Caiwen Ding, Ali Jannesari, Chunhua Liao

Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer

Stel je voor dat je een briljante maar onervaren leerling probeert te leren hoe je een complex recept moet vertalen van een oude, obscure taal (zoals Fortran) naar een moderne taal (zoals C++ of CUDA).

Het Probleem: De "Black Box"-vertaling
Traditioneel, wanneer we AI leren om code te vertalen, laten we de "Broncode" en de "Doelcode" naast elkaar zien. Het is alsof je de leerling een lijst met ingrediënten en het uiteindelijke gerecht geeft, maar ze nooit het kookproces laat zien. Ze kunnen misschien het juiste gerecht raden, maar als ze een fout maken, weten ze niet waarom of hoe ze het moeten oplossen. Ze produceren dan slechts een resultaat dat er goed uitziet, maar dat misschien mislukt wanneer je het daadwerkelijk probeert te eten (de code uitvoert).

De Oplossing: De "Vraagger" en de "Oplosser"
Dit paper introduceert een nieuwe manier om AI te trainen, genaamd Beyond Code Pairs. In plaats van alleen het begin en het einde te laten zien, hebben ze een systeem gecreëerd dat het volledige gesprek en de strijd van het vertalingsproces vastlegt.

Denk aan een keuken met twee duidelijke rollen:

  1. De Vraagger (De Criticus van de Chef): Deze AI schrijft de code niet. In plaats daarvan fungeert hij als een strenge chef-kok. Hij bekijkt de huidige staat, controleert op fouten (zoals een compilerfout of een runtime crash) en stelt specifieke vragen: "Waarom crashte dit?" of "Heb je de geheugenlimieten gecontroleerd?" Hij gebruikt realtime feedback van de computer om het proces te sturen.
  2. De Oplosser (De Leerling): Deze AI doet het eigenlijke schrijfwerk. Hij probeert de code te vertalen, schrijft unit tests (zoals smaaktesten) en probeert de fouten te herstellen die de Vraagger aanwijst.

Het Proces: Een Dialoog, Geen Monoloog
Het paper beschrijft een pipeline waarbij deze twee AI's in een dialoog met meerdere beurten met elkaar praten:

  • Stap 1: De Vraagger vraagt de Oplosser om een test te schrijven voor de originele code.
  • Stap 2: De Oplosser schrijft de test. De Vraagger controleert of deze slaagt. Zo niet, dan discussiëren en verfijnen ze de test totdat deze werkt.
  • Stap 3: De Vraagger vraagt om de vertaling. De Oplosser schrijft de nieuwe code.
  • Stap 4: De Vraagger voert de nieuwe code uit. Als deze crasht, zegt de Vraagger: "Je bent vergeten deze specifieke fout af te handelen!" De Oplosser herstelt de fout vervolgens.
  • Stap 5: Ze herhalen dit totdat de code compileert, draait en alle tests doorstaat.

De magie is dat de onderzoekers elke enkele beurt van dit gesprek hebben opgeslagen. Ze hebben niet alleen de uiteindelijke code opgeslagen; ze hebben de fouten, de vragen, de compiler-foutmeldingen en de correcties opgeslagen.

De Resultaten: Kleine Modellen, Grote Winsten
De onderzoekers gebruikten deze methode om duizenden van deze "gesprekken" te genereren voor het vertalen van Fortran naar C++ en C++ naar CUDA (een taal voor grafische kaarten).

Wanneer ze kleinere, open-source AI-modellen (zoals een model met 7 miljard parameters) trainden op deze gesprekken, waren de resultaten verbazingwekkend:

  • Functionele Correctheid: De modellen schreven niet alleen code die er goed uitzag; ze schreven code die daadwerkelijk werkte. Bij de moeilijke taak om C++ naar CUDA te vertalen, steeg het succespercentage van het doorstaan van tests van 12,5% naar 68,8%.
  • De Reuzen Verslaan: Een klein, open-source model dat getraind is op deze "dialoog"-data, presteerde beter dan enorme, dure, propriëtaire systemen (zoals Google's Gemini of Meta's Llama 4) op belangrijke metrieken zoals het laten compileren en draaien van de code zonder te crashen.

De Belangrijkste Les
Het paper betoogt dat om AI te leren complexe taken zoals code-vertaling uit te voeren, je ze niet alleen het antwoord moet laten zien. Je moet ze ook de strijd, de vragen en de correcties laten zien. Door te trainen op deze "gesprekken" in plaats van op statische paren code, kunnen zelfs kleinere, goedkopere AI-modellen leren om door fouten te redeneren en hoogwaardige, functionele software te produceren.

Kortom: Leer de AI niet alleen het antwoord; leer het hoe het moet denken, discussiëren en zijn eigen fouten te herstellen.

Verdrinkt u in papers in uw vakgebied?

Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.

Probeer Digest →