← Nieuwste papers
🤖 machine learning

Context-Augmented Code Generation Using Programming Knowledge Graphs

Dit artikel stelt een Programming Knowledge Graph (PKG)-aanpak voor die codegeneratie verbetert door middel van fijnmazige semantische retrieval en re-ranking om hallucinaties te beperken en de nauwkeurigheid bij complexe problemen te verbeteren, waarbij significante prestatiewinsten worden behaald op de HumanEval- en MBPP-benchmarks.

Oorspronkelijke auteurs: Shahd Seddik, Fahd Seddik, Iman Saberi, Fatemeh Fard, Minh Hieu Huynh, Patanamon Thongtanunam

Gepubliceerd 2026-01-29
📖 5 min leestijd🧠 Diepgaand

Oorspronkelijke auteurs: Shahd Seddik, Fahd Seddik, Iman Saberi, Fatemeh Fard, Minh Hieu Huynh, Patanamon Thongtanunam

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 complex stuk software probeert te schrijven, zoals een robot die je de was sorteert. Je vraagt een zeer slimme, erudiete AI-assistent (een Large Language Model, of LLM) om de code voor je te schrijven.

Het probleem is dat deze AI weliswaar briljant is in grammatica en algemene logica, maar soms specifieke regels vergeet, zoals "meng geen rode sokken met witte shirts" of "deze specifieke knop van deze wasmachine is bijzonder". Het kan ook dingen verzinnen (hallucineren) omdat het te hard probeert zelfverzekerd over te komen.

Om dit op te lossen, gebruiken ontwikkelaars meestal een systeem genaamd RAG (Retrieval-Augmented Generation). Denk hierbij aan het geven van een bibliotheekpas aan de AI. Voordat de AI de code schrijft, zoekt hij in de bibliotheken naar relevante boeken om te zien hoe anderen soortgelijke problemen hebben opgelost.

Echter, het artikel stelt dat de huidige manier waarop deze "bibliotheek" wordt gebruikt, gebrekkig is. Het is alsof je de AI een hele encyclopedie overhandigt terwijl hij slechts één specifieke paragraaf nodig heeft. De AI raakt overweldigd, verward door irrelevante informatie, of afgeleid door boeken die op elkaar lijken maar eigenlijk over het verkeerde onderwerp gaan.

De Oplossing: De Programming Knowledge Graph (PKG)

De auteurs stellen een nieuwe manier voor om deze bibliotheek te organiseren, die zij een Programming Knowledge Graph (PKG) noemen.

De Analogie: De Georganiseerde Werkplaats versus de Stapel Rommel
Stel je voor dat de huidige bibliotheek een enorme, rommelige stapel papier op de vloer is. Je vraagt om een "schroevendraaier" en de AI pakt een handvol papiertjes die misschien het woord "schroevendraaier" bevatten. Sommige gaan over echte gereedschappen, maar andere gaan over "een lamp indraaien" (figuurlijk) of "het verpesten van een project". De AI raakt in de war.

De PKG is als een zeer georganiseerde werkplaats met gelabelde laden en een plattegrond.

  1. Code-Centrische PKG (De Gereedschapsladen): In plaats van code te behandelen als een plat blok tekst, breekt het systeem de code af in de natuurlijke onderdelen, zoals een boomstructuur. Het scheidt de volledige "functie" (het hele gereedschap) van de specifieke "blokken" (de individuele schroeven, tandwielen en handvatten).
    • Het Voordeel: Als je een specifiek tandwiel nodig hebt, kan het systeem alleen dat tandwiel eruit halen, en niet de hele gereedschapskist. Dit voorkomt dat de AI wordt afgeleid door irrelevante onderdelen van de code.
  2. Tekst-Centrische PKG (De Instructiehandleidingen): Voor tutorials en documentatie pakt het systeem niet zomaar een hele pagina. Het breekt de tekst af in een gestructureerde kaart (zoals een JSON-boom), waarbij de titel, de uitleg en de voorbeeldcode van elkaar worden gescheiden.
    • Het Voordeel: De AI kan de exacte "hoe-te"-stap vinden zonder de volledige geschiedenis van de handleiding te hoeven lezen.

De "Tree Pruning" Truc

Zelfs met een goede kaart kan het voorkomen dat de AI een tak van de boom grijpt die te groot is of dode bladeren heeft (irrelevante informatie). De auteurs gebruiken een techniek genaamd Tree Pruning (boom snoaien).

De Analogie: Stel je voor dat je een tuinman vraagt om een tak met een specifieke rode bloem. De tuinman vindt de juiste boom, maar brengt een enorme tak mee met groene bladeren en doorns. De Pruning-stap is als een slimme assistent die snel de groene bladeren en doorns wegknipt en je alleen de tak met de rode bloem overhandigt. Dit houdt het "bureau" van de AI schoon en gefocust.

De "Smaaktest" (Re-Ranking)

Soms, zelfs met de beste bibliotheek en pruning, kan de AI nog steeds een paar verschillende versies van de code schrijven, en sommige kunnen fout zijn.

De Analogie: Stel je voor dat de AI een chef-kok is die drie verschillende versies van een soep kookt op basis van jouw verzoek.

  • Versie 1: Gebruikt de informatie uit de bibliotheek, maar voegt te veel zout toe.
  • Versie 2: Negeert de bibliotheek, maar smaakt perfect.
  • Versie 3: Gebruikt de bibliotheek perfect.

De auteurs voegen een Re-Ranker toe. Dit is als een voedselcriticus die alle drie de kommen proeft en degene kiest die daadwerkelijk overeenkomt met jouw bestelling. Het onderzoek toonde aan dat deze "smaaktest" cruciaal is. Het stelt het systeem in staat om veel opties te genereren en vervolgens de beste te kiezen, waardoor het "slechte" advies dat de bibliotheek per ongeluk heeft geïntroduceerd, effectief wordt genegeerd.

Wat Hebben Ze Gevonden?

De onderzoekers hebben dit systeem getest op twee beroemde programmeertests (HumanEval en MBPP). Dit is wat er gebeurde:

  • Betere Nauwkeurigheid: Wanneer ze hun georganiseerde "werkplaats" (PKG) gebruikten in plaats van de "rommelige stapel papier", gaf de AI tot wel 20% vaker het juiste antwoord op standaardtests en 34% vaker op moeilijkere tests.
  • Minder Verwarring: De AI maakte minder fouten waarbij de verkeerde variabelen werden gebruikt of waarbij het controleren van voorwaarden werd vergeten.
  • De Keerzijde: Het was niet perfect voor elk type probleem. Bijvoorbeeld, bij het werken met complexe stringmanipulatie (zoals het herordenen van letters), maakte de extra informatie de AI soms meer in de war dan dat het hielp.
  • De Winnaar: De combinatie van de georganiseerde graaf (PKG) + pruning (het verwijderen van ruis) + re-ranking (het kiezen van het beste resultaat) was de krachtigste combinatie.

De Kern van het Verhaal

De conclusie van het artikel is dat het simpelweg geven van meer informatie aan een AI niet genoeg is; je moet het de juiste informatie in het juiste formaat geven.

Denk er zo over na: Als je een huis wilt bouen, wil je niet dat er een vrachtwagen vol willekeurige bakstenen, hout en spijkers op je oprit wordt gedumpt. Je wilt een blauwdruk (de graaf) die precies laat zien welke baksteen waar hoort, een opzichter die de kapotte exemplaren verwijdert (pruning), en een kwaliteitscontroleur die het beste ontwerp uit een aantal opties kiest (re-ranking).

Door deze gestructureerde "blauwdruk" voor code en tekst te bouwen, hebben de auteurs aangetoond dat we AI kunnen helpen om betere, betrouwbaardere software te schrijven zonder dat het in de ruis verdwaalt.

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 →