Turbulenz: Systematische und automatisierte Prüfung instruktionsverfeineter großer Sprachmodelle für Code

Wir stellen eine Methode zur systematischen Bewertung der Korrektheit und Robustheit instruktionsverfeinerter großer Sprachmodelle (LLMs) für die Codegenerierung vor, die auf einem neuen Benchmark namens Turbulence basiert. Turbulence besteht aus einer großen Menge an natürlichsprachlichen Frage-Vorlagen, wobei jede Vorlage ein Programmierproblem darstellt und parametrisiert ist, sodass sie in zahlreichen unterschiedlichen Formulierungen gestellt werden kann. Zu jeder Frage-Vorlage gehört ein zugehöriges Test-Orakel, das beurteilt, ob eine vom LLM zurückgegebene Code-Lösung korrekt ist. Dadurch ist es möglich, einem LLM aus einer einzigen Frage-Vorlage eine Nachbarschaft sehr ähnlicher Programmieraufgaben zu stellen und die Korrektheit der jeweiligen Antwort für jede Aufgabe zu bewerten. Dies ermöglicht es, Lücken in den Fähigkeiten eines LLMs zur Codegenerierung aufzudecken, einschließlich Anomalien, bei denen das LLM fast alle Fragen innerhalb einer Nachbarschaft korrekt löst, aber für bestimmte Parameterinstanzen versagt. Wir präsentieren Experimente mit fünf LLMs von OpenAI, Cohere und Meta, jeweils in zwei Temperaturkonfigurationen. Unsere Ergebnisse zeigen, dass Turbulence auf vielfältige Weise in der Lage ist, Lücken im Schlussfolgerungsvermögen von LLMs aufzudecken. Dies geht über die bloße Feststellung hinaus, dass LLMs gelegentlich falschen Code erzeugen (was ohnehin nicht überraschend ist): Indem unsere Methode systematisch Fälle identifiziert, in denen LLMs bestimmte Aufgaben innerhalb einer Nachbarschaft lösen können, aber nicht in der Lage sind, die Generalisierung auf die gesamte Nachbarschaft zu erreichen, ist sie besonders effektiv bei der Aufdeckung von Robustheitsproblemen. Wir liefern Daten und Beispiele, die Aufschluss darüber geben, welche Arten von Fehlern LLMs begehen, wenn sie fehlerhafte Codeergebnisse liefern.