KI ist in der API-Studie immer noch nicht gut darin, sauberen Code zu generieren • The Register
Informatiker haben untersucht, wie große Sprachmodelle (LLMs) auf der Frage-und-Antwort-Seite StackOverflow Fragen zur Java-Codierung beantworten, und sind wie andere vor ihnen zu dem Ergebnis gekommen, dass die Ergebnisse unzureichend sind.
In einem Preprint-Artikel mit dem Titel „A Study on Robustness and Reliability of Large Language Model Code Generation“ beschreiben die Doktoranden Li Zhong und Zilong Wang, wie sie 1.208 Codierungsfragen von StackOverflow mit 24 gängigen Java-APIs gesammelt und dann die Antworten von vier ausgewertet haben verschiedene codefähige LLMs basierend auf ihrem API-Checker namens RobustAPI.
RobustAPI wurde entwickelt, um die Codezuverlässigkeit zu bewerten, die die Wissenschaftler als Widerstandsfähigkeit gegenüber Fehlern und unerwarteten Eingaben sowie als Toleranz gegenüber hohen Arbeitslasten definieren. Es wird davon ausgegangen, dass ein Abweichen von den API-Regeln Konsequenzen für den Code haben kann, der in Produktionsumgebungen ausgeführt wird.
Sie argumentieren, dass sich Codetests, egal ob von Menschen oder Maschinen geschrieben, nur auf die semantische Korrektheit konzentrieren und möglicherweise keine Testumgebung schaffen, in der unerwartete Eingaben überprüft werden können. Um dieses Problem anzugehen, verließen sie sich auf eine statische Analyse, um die Codestruktur zu untersuchen, ohne Tests durchzuführen, was ihrer Meinung nach eine vollständige Abdeckung gewährleistet. Der API-Prüfer durchläuft den abstrakten Syntaxbaum, um die Aufrufmethoden und Kontrollstrukturen aufzuzeichnen, um die Aufrufsequenz zu bestimmen, und prüft diese dann anhand der API-Nutzungsregeln.
Beispielsweise würde dieses Snippet gekennzeichnet werden, weil es den Code nicht in einen Try-Catch-Block einschließen konnte, um Fehler zu behandeln.
Die Wissenschaftler mit Sitz an der University of California in San Diego testeten GPT-3.5 und GPT-4 von OpenAI sowie zwei weitere offene Modelle, Meta's Llama 2 und Vicuna-1.5 von der Large Model Systems Organization. Und das taten sie mit drei verschiedenen Tests für ihre Fragen: Zero-Shot, bei dem in der Eingabeaufforderung kein Beispiel für die ordnungsgemäße API-Nutzung angegeben wurde; one-shot-irrelevant, wobei das bereitgestellte Beispiel für die Frage irrelevant ist; und One-Shot-relevant, wobei in der Eingabeaufforderung ein Beispiel für die korrekte API-Nutzung bereitgestellt wird.
Die Modelle zeigten für den Zero-Shot-Test insgesamt folgende API-Missbrauchsraten: GPT-3,5 (49,83 Prozent); GPT-4 (62,09 Prozent); Lama 2 (0,66 Prozent); und Vicuna-1,5 (16,97).
Das scheint darauf hinzudeuten, dass Llama 2 den Test mit einer Fehlerquote von weniger als einem Prozent bestanden hat. Aber das ist eine Fehlinterpretation der Ergebnisse – das Fehlen von Fehlern durch Llama ist darauf zurückzuführen, dass nicht viel Code vorgeschlagen wird.
„Den Bewertungsergebnissen zufolge leiden alle bewerteten Modelle unter API-Missbrauchsproblemen, selbst bei den hochmodernen kommerziellen Modellen wie GPT-3.5 und GPT-4“, beobachten Zhong und Wang. „In Zero-Shot-Einstellungen hat Llama die niedrigste API-Missbrauchsrate. Dies liegt jedoch teilweise daran, dass die meisten Llama-Antworten keinen Code enthalten.“
Widersprüchlich heißt es, GPT-4 habe eine höhere API-Missbrauchsrate als GPT-3.5, weil es, wie OpenAI behauptet habe, besser in der Lage sei, auf Eingabeaufforderungen mit Quellcode zu reagieren. Das Problem besteht darin, dass die Antworten von GPT-4 nicht unbedingt korrekt sind.
Für den One-Shot-Irrelevant-Test betrugen die Missbrauchswerte: GPT-3,5 (62,00 Prozent); GPT-4 (64,34 Prozent); Lama 2 (49,17 Prozent); und Vicuna-1,5 (48,51 Prozent).
„Die API-Missbrauchsrate von Llama steigt deutlich an, nachdem der irrelevante Schuss hinzugefügt wurde, da es mehr gültige Antworten gibt, die Codeausschnitte enthalten“, sagen die Forscher. „Insgesamt führt das Hinzufügen eines irrelevanten Schusses dazu, dass die großen Sprachmodelle gültigere Antworten generieren, was eine bessere Bewertung der Codezuverlässigkeit und -robustheit ermöglicht.“
Und wenn sie beim One-Shot-relevanten Test mit der richtigen API-Nutzung gefüttert wurden, schnitten die LLMs wie folgt ab: GPT-3,5 (31,13 Prozent); GPT-4 (49,17 Prozent); Lama 2 (47,02 Prozent); und Vicuna-1,5 (27,32). Das heißt, die Erläuterung der Fragenanforderungen führt zu weniger API-Missbrauch.
Insgesamt sind die Experten jedoch der Meinung, dass es noch viel zu tun gibt, da es nicht ausreicht, Code zu generieren. Der Code muss außerdem zuverlässig sein, was trotz der Affinität der Entwickler zu Chatbot-Code-Assistenten nach wie vor ein weithin bekanntes Problem ist.
„Dies deutet darauf hin, dass die Codegenerierungsfähigkeit großer Sprachmodelle heutzutage erheblich verbessert wird, während die Zuverlässigkeit und Robustheit des Codes in der realen Produktion zu einem unbemerkten Problem wird. Und der Raum für Verbesserungen bei diesem Problem ist riesig.“ ." ®
Senden Sie uns Neuigkeiten
1515Holen Sie sich unser15