Human-Aligned Text-to-SQL-Bewertung

Mar 20 2023
In meinem letzten Beitrag über Text-to-SQL mit GPT-3.5 habe ich auf das Problem mit der Bewertungsmetrik des bestehenden Benchmarks hingewiesen: Er lehnt völlig einwandfreie SQL-Abfragen ab, weil sie nicht das gleiche strikte Ausführungsergebnis wie Golden (auch bekannt als „Golden“) haben.

In meinem letzten Beitrag über Text-to-SQL mit GPT-3.5 habe ich auf das Problem mit der Bewertungsmetrik des bestehenden Benchmarks hingewiesen: Er lehnt einwandfreie SQL-Abfragen ab, weil sie nicht das gleiche strikte Ausführungsergebnis haben wie goldene Abfragen (auch bekannt als Labels). In diesem Beitrag diskutiere ich eine neue Metrik, die ich erstellt habe, um die Text-to-SQL-Leistung besser zu bewerten.

Hier ist ein Beispiel aus meinem letzten Beitrag:

-- (Hard) 
-- Question: Which grade has the most high schoolers?
-- pred:
SELECT grade, COUNT(*) AS num_highschoolers
FROM Highschooler
GROUP BY grade
ORDER BY num_highschoolers DESC
LIMIT 1;
-- gold:
SELECT grade
FROM Highschooler
GROUP BY grade
ORDER BY count(*) DESC
LIMIT 1;

Um die Zahlen aus meinem letzten Beitrag noch einmal zusammenzufassen: Ich habe GPT-3.5 anhand von 96 Fragen aus dem Spider-Benchmark getestet (86 aus dem Trainingssatz und 10 aus dem Entwicklungssatz) und festgestellt, dass es eine Ausführungsgenauigkeit von 41,7 % und eine exakte Übereinstimmung von 38,5 % erzielte Genauigkeit. Nach weiterer Analyse der Fehlerfälle wurde mir jedoch klar, dass die meisten von GPT-3.5 generierten Abfragen aus menschlicher Sicht eigentlich völlig in Ordnung waren. Dies verdeutlicht das Problem unserer bestehenden Bewertungsmetriken für Text-to-SQL, da diese die menschliche Präferenz nicht genau messen.

Dieses Problem der Nichtübereinstimmung zwischen Benchmark-Bewertungsmetriken und tatsächlichen menschlichen Präferenzen ist in der Forschungsgemeinschaft wohlbekannt. In Benchmarks zur Dokumentzusammenfassung ist beispielsweise die Standardbewertungsmetrik ROUGE , die auf der Zählung überlappender Wortphrasen zwischen einer generierten Zusammenfassung und einer goldenen Zusammenfassung basiert. Dieser Ansatz erkennt keine korrekten Zusammenfassungen, die in anderen Begriffen und Ausdrücken als die goldene Zusammenfassung verfasst sind. Trotzdem werden ROUGE-Scores immer noch in neueren Veröffentlichungen verwendet.

Die menschliche Bewertung bleibt der Goldstandard in der ML-Forschung und automatische Metriken sind die „Einheitentests“ für neue Modelle. Ist es möglich, etwas dazwischen zu haben, etwa eine „Staging-Umgebung“ für neue Modelle?

GPT-3.5 zur Evaluierung

GPT-3.5 wurde so optimiert, dass es sich an den menschlichen Vorlieben orientiert , sodass es Anweisungen viel besser befolgen kann als GPT-3, das eine sorgfältige, zeitnahe Entwicklung erfordert, um effektiv zu funktionieren. Das brachte mich zum Nachdenken: Können wir GPT-3.5 nutzen, um eine Bewertungsmetrik für Text-to-SQL zu erstellen, die den menschlichen Vorlieben entspricht? Lassen Sie es uns Schritt für Schritt aufschlüsseln:

Zunächst müssen wir überlegen, wozu GPT-3.5 in der Lage ist:

  • Es kann strukturierte Daten in Text umwandeln und umgekehrt.
  • Es kann auf der Grundlage von Fakten argumentieren, die direkt im Kontext der Eingabeaufforderung bereitgestellt werden.
  • Eine Eingabefrage in Text in natürlicher Sprache.
  • Generieren einer SQL-Abfrage.
  • Ausführen der SQL-Abfrage und Abrufen strukturierter Daten (z. B. Zeilen).

Das folgende Diagramm veranschaulicht dieses Design:

Bewerten Sie Text-to-SQL mit GPT-3.5. Die eigentlichen Eingabeaufforderungen finden Sie in diesem Skript.

Indem wir GPT-3.5 auf diese Weise verwenden, können wir eine Bewertungsmetrik für Text-to-SQL erstellen, die besser auf die menschlichen Vorlieben abgestimmt ist.

Experimentelle Ergebnisse

Ich habe die Auswertung des Spider-Benchmarks im Rahmen des Open-Source-Projekts LlamaIndex um diese neue Metrik erweitert, die ich Answer Accuracy nannte . Den von mir verwendeten Code finden Sie hier .

Mithilfe dieser neuen Metrik habe ich die generierten SQL-Abfragen derselben 96 Fragen ausgewertet. Die Gesamtantwortgenauigkeit für GPT-3.5 text-davinci-003beträgt beeindruckende 88,54 %. Tatsächlich habe ich bei der Durchsicht der in meinem letzten Blog-Beitrag aufgeführten Fehlerfälle festgestellt, dass die Fälle, die ich als korrekt bezeichnet hatte, tatsächlich als solche gekennzeichnet waren und der einzig wahre Fehlerfall korrekt erfasst wurde

Um diese neue Metrik weiter zu validieren, habe ich sie an Ausgaben anderer GPT-Modelle, einschließlich GPT-4, getestet. Hier ist eine Darstellung ihrer Antwortgenauigkeiten:

Antwortgenauigkeiten von GPT-Modellen (Zero-Shot) auf 96 Fragen aus dem Spider-Benchmark

Die resultierenden Antwortgenauigkeiten liegen code-davinci-002bei 79,17 %, text-davinci-003bei 88,54 %, gpt-3.5-turbobei 85,42 % und gpt-4bei 89,58 %. Wie erwartet übertraf GPT-4 die anderen Modelle, was mit unseren praktischen Erfahrungen mit der relativen Leistung dieser Modelle übereinstimmt.

Im Gegensatz dazu stimmen die Ausführungsgenauigkeiten und Übereinstimmungsgenauigkeiten von GPT-Modellen nicht mit unseren praktischen Erfahrungen überein. Hier ist ein Diagramm, das diese in GPT-Modellen verwendeten Metriken zeigt.

Ausführung und genaue Übereinstimmungsgenauigkeit von GPT-Modellen bei 96 Fragen aus dem Spider-Benchmark

Wenn wir diese Metriken als primäre Messung der Text-to-SQL-Leistung verwenden, würden wir davon ausgehen, dass gpt-4sie weniger aussagekräftig sind als code-davinci-002. Diese Ergebnisse stimmen eindeutig nicht mit unseren praktischen Erfahrungen mit diesen Modellen überein.

Wichtige Implikationen

Was sind die wichtigsten Implikationen dieses Text-to-SQL-Experiments?

Erstens haben wir festgestellt, dass die bestehenden automatischen Metriken, nämlich Ausführungsgenauigkeit und Genauigkeit der exakten Übereinstimmung, nicht mit den menschlichen Vorlieben übereinstimmen. Daher sollten sie nicht als primäre Methode zur Bewertung von Text-to-SQL-Modellen herangezogen werden.

Zweitens bleibt die Bewertung durch den Menschen zwar der Goldstandard, doch große Sprachmodelle (LLMs) wie GPT-3.5 und höher können die menschliche Präferenz genau annähern. Dies ist ein potenzieller Game-Changer, da sie es uns ermöglichen, Text-to-SQL-Modelle zu bewerten und das erwartete menschliche Bewertungsergebnis abzuschätzen. Dies ist besonders nützlich, wenn eine menschliche Bewertung aufgrund von Budgetbeschränkungen nicht möglich ist.

Drittens, und hier wird es interessant: Unser Einsatz von anweisungsgesteuerten LLMs zur Evaluierung könnte auf viele andere Aufgaben übertragen werden. Dieser Ansatz ist besonders nützlich für Aufgaben, deren Ausgabe aus einfachen Anweisungen besteht, die von LLMs direkt durchdacht werden können. Und zu diesem Thema gibt es eine Forschungsarbeit namens „GPTScore“, die GPT-3.5 trainiert, NLP-Aufgaben mithilfe von kontextbezogenem Lernen zu bewerten.

Notiz

Dieser Beitrag soll eine Diskussion über die Text-to-SQL-Bewertung anregen und nicht behaupten, dass die Antwortgenauigkeitsmetrik zu 100 % auf den Menschen abgestimmt oder sogar robust sei. Gerne arbeite ich mit Ihnen zusammen, wenn Sie einen Schritt weiter in Richtung einer besseren Bewertung gehen möchten.