← Neueste Arbeiten
🤖 machine learning

Context-Augmented Code Generation Using Programming Knowledge Graphs

Dieses Paper schlägt einen Programming Knowledge Graph (PKG)-Ansatz vor, der die Codegenerierung durch die Ermöglichung von feingranularer semantischer Abfrage und Re-Ranking verbessert, um Halluzinationen zu mildern und die Genauigkeit bei komplexen Problemen zu steigern, wobei signifikante Leistungssteigerungen bei den HumanEval- und MBPP-Benchmarks erzielt werden.

Ursprüngliche Autoren: Shahd Seddik, Fahd Seddik, Iman Saberi, Fatemeh Fard, Minh Hieu Huynh, Patanamon Thongtanunam

Veröffentlicht 2026-01-29
📖 5 Min. Lesezeit🧠 Tiefgang

Ursprüngliche Autoren: Shahd Seddik, Fahd Seddik, Iman Saberi, Fatemeh Fard, Minh Hieu Huynh, Patanamon Thongtanunam

Originalarbeit lizenziert unter CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dies ist eine KI-generierte Erklärung des untenstehenden Papers. Sie wurde nicht von den Autoren verfasst oder gebilligt. Für technische Genauigkeit konsultieren Sie das Originalpaper. Vollständigen Haftungsausschluss lesen

Stellen Sie sich vor, Sie versuchen, eine komplexe Software zu schreiben, wie zum Beispiel einen Roboter, der Ihre Wäsche sortiert. Sie bitten einen sehr intelligenten, belesenen KI-Assistenten (ein Large Language Model, oder LLM), den Code für Sie zu schreiben.

Das Problem ist, dass diese KI zwar brillant in Grammatik und allgemeiner Logik ist, aber manchmal spezifische Regeln vergisst, wie zum Beispiel „mische keine roten Socken mit weißen Hemden“ oder „diese spezielle Waschmaschine benötigt einen speziigen Knopf“. Sie erfindet auch Dinge dazu (halluziniert), weil sie versucht, besonders selbstbewusst zu klingen.

Um dies zu beheben, verwenden Entwickler normalerweise ein System namens RAG (Retrieval-Augmented Generation). Betrachten Sie dies als das Ausstellen eines Bibliotheksausweises für die KI. Bevor die KI den Code schreibt, schlägt sie in einer Bibliothek nach relevanten Büchern nach, um zu sehen, wie andere ähnliche Probleme gelöst haben.

Die Autoren argumentieren jedoch, dass die aktuelle Art und Weise, wie man diese „Bibliothek“ nutzt, fehlerhaft ist. Es ist, als würde man der KI eine ganze Enzyklopädie in die Hand drücken, obwohl sie nur einen ganz bestimmten Absatz benötigt. Die KI wird überfordert, verwirrt durch irrelevante Informationen oder abgelenkt von Büchern, die zwar ähnlich aussehen, aber eigentlich ein ganz anderes Thema behandeln.

Die Lösung: Der Programming Knowledge Graph (PKG)

Die Autoren schlagen eine neue Art vor, diese Bibliothek zu organisieren, die sie einen Programming Knowledge Graph (PKG) nennen.

Die Analogie: Die organisierte Werkstatt vs. der Haufen Unrat
Stellen Sie sich vor, die aktuelle Bibliothek ist ein riesiger, unordentlicher Papierstapel auf dem Boden. Sie fragen nach einem „Schraubendreher“ und die KI greift nach einer Handvoll Papiere, in denen das Wort „Schraubendreher“ vorkommen könnte. Einige betreffen tatsächliche Werkzeuge, andere aber auch „das Einschrauben einer Glühbirne“ (metaphorisch) oder „sich bei einem Projekt verfahren“ (im Englischen „screwing up“). Die KI wird verwirrt.

Der PKG ist wie eine hochgradig organisierte Werkstatt mit beschrifteten Schubladen und einem Plan.

  1. Code-Zentrierter PKG (Die Werkzeugschubladen): Anstatt Code als flachen Textblock zu behandeln, zerlegt das System ihn in seine natürlichen Bestandteile, wie einen Baum. Es trennt das gesamte „Funktions-Konstrukt“ (das ganze Werkzeug) von den spezifischen „Blöcken“ (den einzelnen Schrauben, Zahnrädern und Griffen).
    • Der Vorteil: Wenn Sie ein bestimmtes Zahnrad benötigen, kann das System genau dieses Zahnrad herausziehen und nicht den gesamten Werkzeugkasten. Dies verhindert, dass die KI durch irrelevante Teile des Codes abgelenkt wird.
  2. Text-Zentrierter PKG (Die Bedienungsanleitungen): Für Tutorials und Dokumentationen greift das System nicht einfach eine ganze Seite. Es zerlegt den Text in eine strukturierte Map (wie einen JSON-Baum) und trennt Titel, Erklärung und Beispielcode voneinander.
    • Der Vorteil: Die KI kann den exakten „Wie-man-es-macht“-Schritt finden, ohne die gesamte Geschichte der Bedienungsanleitung lesen zu müssen.

Der „Baumschnitt“-Trick (Tree Pruning)

Selbst mit einer guten Karte kann es vorkommen, dass die KI einen Ast des Baumes greift, der zu groß ist oder tote Blätter (irrelevante Informationen) trägt. Die Autoren nutzen eine Technik namens Tree Pruning (Baumschnitt).

Die Analogie: Stellen Sie sich vor, Sie bitten einen Gärtner um einen Zweig mit einer bestimmten roten Blume. Der Gärtner findet den richtigen Baum, bringt Ihnen aber einen riesigen Ast mit grünen Blättern und Dornen zurück. Der Pruning-Schritt ist wie ein kluger Assistent, der die grünen Blätter und Dornen schnell abschneidet und Ihnen nur den Zweig mit der roten Blume überreicht. Dies hält den „Schreibtisch“ der KI sauber und fokussiert.

Der „Geschmackstest“ (Re-Ranking)

Manchmal, selbst mit der besten Bibliothek und dem Baumschnitt, erstellt die KI vielleicht immer noch ein paar verschiedene Versionen des Codes, und einige davon könnten falsch sein.

Die Analogie: Stellen Sie sich vor, die KI ist ein Koch, der drei verschiedene Versionen einer Suppe nach Ihren Wünschen zubereitet:

  • Version 1: Nutzt die Bibliotheksinfos, hat aber zu viel Salz hinzugefügt.
  • Version 2: Ignoriert die Bibliothek, schmeckt aber perfekt.
  • Version 3: Nutzt die Bibliothek perfekt.

Die Autoren fügen einen Re-Ranker hinzu. Dies ist wie ein Food-Kritiker, der alle drei Schüsseln probiert und diejenige auswählt, die tatsächlich Ihrer Bestellung entspricht. Die Autoren fanden heraus, dass dieser „Geschmackstest“ entscheidend ist. Er ermöglicht es dem System, viele Optionen zu generieren und dann die beste auszuwählen, wodurch der „schlechte“ Rat, den die Bibliothek versehentlich eingeführt haben könnte, effektiv ignoriert wird.

Was haben sie herausgefunden?

Die Forscher testeten dieses System auf zwei berühmten Coding-Tests (HumanEval und MBPP). Das passierte:

  • Bessere Genauigkeit: Wenn sie ihre organisierte „Werkstatt“ (PKG) statt des unordentlichen „Papierstapels“ verwendeten, lieferte die KI bei Standardtests bis zu 20 % häufiger die richtige Antwort und bei schwierigeren Tests sogar 34 % häufiger.
  • Weniger Verwirrung: Die KI machte weniger Fehler, bei denen sie falsche Variablennamen verwendete oder das Überprüfen von Bedingungen vergaß.
  • Der Haken: Es war nicht für jede Art von Problem perfekt. Zum Beispiel bei komplexen String-Manipulationen (wie dem Umstellen von Buchstaben) verwirrte die zusätzliche Information die KI manchmal mehr, als sie half.
  • Der Gewinner: Die Kombination aus dem organisierten Graphen (PKG) + Pruning (Rauschunterdrückung) + Re-Ranking (Auswahl des besten Ergebnisses) war die leistungsstärkste Kombination.

Das Fazendum

Die Arbeit kommt zu dem Schluss, dass es nicht ausreicht, einer KI einfach nur mehr Informationen zu geben; man muss ihr die richtigen Informationen im richtigen Format geben.

Denken Sie an Folgendes: Wenn Sie ein Haus bauen wollen, möchten Sie keinen Lastwagen voller zufälliger Ziegel, Holz und Nägel, der auf Ihre Einfahrt gekippt wird. Sie wollen einen Bauplan (den Graphen), der Ihnen genau zeigt, welcher Ziegel wohin gehört, einen Bauleiter, der die kaputten Teile entfernt (Pruning), und einen Qualitätskontrolleur, der aus mehreren Optionen das beste Design auswählt (Re-Ranking).

Durch die Erstellung dieser strukturierten „Blaupause“ für Code und Text zeigten die Autoren, dass wir einer KI helfen können, bessere, zuverlässigere Software zu schreiben, ohne dass sie sich im Rauschen verliert.

Ertrinken Sie in Arbeiten in Ihrem Fachgebiet?

Erhalten Sie tägliche Digests der neuesten Arbeiten passend zu Ihren Forschungsbegriffen — mit technischen Zusammenfassungen, in Ihrer Sprache.

Digest testen →