← Neueste Arbeiten
💻 computer science

Task Abstention for Large Language Models in Code Generation

Dieser Artikel schlägt eine theoretisch fundierte, verteilungsfreie Methode vor, mit der Large Language Models von Codegenerierungsaufgaben, die wahrscheinlich zu Halluzinationen führen, absehen, indem sie die Generierungskonsistenz anhand von Codeausführungsergebnissen bewerten, wodurch sicherere und robustere automatisierte Codierung ohne Abhängigkeit von externen Testfällen ermöglicht wird.

Ursprüngliche Autoren: Yanke Zhou, Yuhao Tan, Senrong Xu, Zenan Li, Yuan Yao, Taolue Chen, Xiaoxing Ma

Veröffentlicht 2026-05-19
📖 5 Min. Lesezeit🧠 Tiefgang

Ursprüngliche Autoren: Yanke Zhou, Yuhao Tan, Senrong Xu, Zenan Li, Yuan Yao, Taolue Chen, Xiaoxing Ma

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

Das Kernproblem: Der „übermütige Koch"

Stellen Sie sich vor, Sie stellen einen brillanten, aber übermütigen Koch (das Large Language Model oder LLM) ein, um ein komplexes Gericht nach einer vagen Rezeptbeschreibung zu kochen. Manchmal ist der Koch fantastisch und zaubert ein perfektes Mahl. Doch oft wird der Koch selbstbewusst und kreiert ein Gericht, das aussieht, als wäre es köstlich, aber schrecklich schmeckt oder sogar giftig ist (dies wird als „Halluzination" bezeichnet).

Derzeit finden die meisten Sicherheitsprüfungen nach dem Kochen des Gerichts statt. Sie probieren das Essen, um zu sehen, ob es gut ist. Wenn es schlecht ist, werfen sie es weg. Aber bis dahin hat der Koch bereits Zeit und Zutaten verschwendet, und Sie wurden mit einer schlechten Mahlzeit bedient.

Dieses Papier stellt eine andere Frage: Können wir dem Koch beibringen, zu sagen: „Ich weiß nicht, wie man das kocht," bevor er überhaupt anfängt, Gemüse zu schneiden?

Dies nennt man Task Abstention (Aufgabenverzicht). Es geht darum zu wissen, wann man eine Aufgabe ablehnen muss, um einen Fehler zu vermeiden.

Die Lösung: CODEREFUSER

Die Autoren haben ein System namens CODEREFUSER entwickelt. Stellen Sie sich dies als einen „Sicherheitsmanager" für den Koch vor. Dieser Manager schaut nicht nur auf das Rezept; er führt eine Simulation durch, um zu sehen, ob der Koch wahrscheinlich Erfolg haben wird, bevor er grünes Licht gibt.

Hier ist, wie der Sicherheitsmanager funktioniert, aufgeteilt in drei einfache Schritte:

1. Der „Probelauf" (Kalibrierungsphase)

Bevor der Sicherheitsmanager Entscheidungen treffen kann, muss er die Grenzen des Kochs lernen.

  • Die Analogie: Stellen Sie sich vor, der Manager gibt dem Koch 100 Übungsrezepte. Für jedes davon versucht der Koch, es 64 Mal zu kochen.
  • Die Wendung: Der Manager schaut sich nicht nur das fertige Gericht an. Er bittet den Koch auch, einen „Geschmackstest" (Testfälle) für jedes Rezept zu erfinden.
  • Das Problem: Manchmal ist der Koch so schlecht darin, Geschmackstests zu erfinden, dass der Test selbst defekt ist (z. B. wenn nach einer negativen Anzahl von Eiern gefragt wird).
  • Die Lösung (Sample-Test Dual Filtering): Der Manager verwendet einen cleveren Trick namens Sample-Test Dual Filtering. Er betrachtet die 64 Versuche des Kochs. Wenn der „Geschmackstest" des Kochs zu 64 verschiedenen, chaotischen Ergebnissen führt (einige explodieren, andere stürzen ab), erkennt der Manager: „Hey, dieser Test ist kaputt, nicht der Koch!" Er verwirft den schlechten Test und behält die guten. Dies stellt sicher, dass der Manager nicht durch die eigene Verwirrung des Kochs getäuscht wird.

2. Die Regeln festlegen (Die „Risikotoleranz")

Sobald der Manager geübt hat, legt er die Regeln für die reale Welt fest.

  • Das Ziel: Der Manager möchte sicherstellen, dass, wenn er sagt „Fang an zu kochen", die Wahrscheinlichkeit sehr hoch ist, dass der Koch Erfolg haben wird.
  • Die Mathematik (vereinfacht): Der Manager verwendet eine statistische Methode namens „Multiple Hypothesis Testing" (Multiple Hypothesentests). Stellen Sie sich vor, der Manager hat eine Liste von 1.000 verschiedenen „Stopp-Schildern" (Schwellenwerten). Er testet sie alle gegen die Übungsdaten, um die spezifischen Schilder zu finden, die garantieren, dass der Koch nicht öfter als etwa 20 % der Zeit scheitert.
  • Das Ergebnis: Der Manager erstellt ein strenges Regelbuch: „Wenn das Selbstvertrauen des Kochs unter X liegt oder wenn die Testergebnisse zu chaotisch sind, STOPP."

3. Der echte Auftrag (Testphase)

Jetzt bestellt ein echter Kunde ein Gericht.

  • Der Koch versucht, es ein paar Mal zu kochen (generiert Code-Beispiele).
  • Der Koch erfindet einen neuen Geschmackstest für dieses spezifische Gericht.
  • Der Sicherheitsmanager führt erneut das Sample-Test Dual Filtering durch, um etwaige defekte Tests zu bereinigen.
  • Der Manager prüft das Regelbuch.
    • Szenario A: Die Versuche des Kochs sind alle konsistent und bestehen die Tests. Der Manager sagt: „Zugeben: Mach weiter, du kannst das kochen."
    • Szenario B: Die Versuche des Kochs sind völlig durcheinander, oder die Tests sind zu verwirrend. Der Manager sagt: „Verzicht: Es tut mir leid, ich kann dich das nicht kochen lassen. Es ist zu riskant."

Warum dies besser ist als andere Methoden

Das Papier vergleicht ihre Methode mit anderen Wegen, Fehler zu erkennen:

  • Statische Methoden (Die „Grammatik-Polizei"): Diese Methoden lesen den Code nur, um zu sehen, ob er richtig aussieht, wie eine Rechtschreibprüfung. Das Papier zeigt, dass dies für Code nutzlos ist, weil ein Satz perfekt geschrieben sein kann, aber trotzdem keinen Sinn ergibt (z. B. „Die blaue Farbe fraß die Zahl").
  • Alte Ausführungsmethoden: Diese versuchen, den Code auszuführen, bereinigen aber nicht die schlechten Tests. Sie werden oft durch die eigenen schlechten Testfragen des Kochs verwirrt und verweigern dem Koch die Erlaubnis zum Kochen, selbst wenn er Erfolg gehabt hätte.

Das Ergebnis: CODEREFUSER ist viel besser darin zu wissen, wann man „Ich weiß es nicht" sagen muss. In Tests verbesserte es die Fähigkeit, gefährliche Aufgaben zu erkennen, um etwa 26 % im Vergleich zu den besten bestehenden Methoden.

Das Fazit

Dieses Papier stellt eine Möglichkeit vor, AI-Coder sicherer zu machen. Anstatt darauf zu warten, dass die AI einen Fehler macht und ihn dann zu beheben, agiert dieses System wie ein intelligenter Vorgesetzter, der weiß, wann die AI überfordert ist. Es zwingt die AI, „Ich weiß es nicht" zu sagen, bevor sie Code generiert, und verhindert so die Erstellung von defekter oder gefährlicher Software.

Kernaussage: Es ist besser für eine AI, zuzugeben, dass sie eine Aufgabe nicht bewältigen kann, als sie selbstbewusst falsch zu erledigen. CODEREFUSER lehrt die AI, wie sie diese Anerkennung sicher und zuverlässig ausspricht.

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 →