人間によるテキストから SQL への評価

Mar 20 2023
GPT-3.5 を使用した Text-to-SQL に関する前回の投稿で、既存のベンチマークの評価メトリクスの問題を指摘しました。ゴールデン (別名 .

GPT-3.5 を使用した Text-to-SQL に関する前回の投稿で、既存のベンチマークの評価メトリクスの問題を指摘しました。ベンチマークは、ゴールデン (別名ラベル付き) クエリと同じ厳密な実行結果が得られないため、完全に良好な SQL クエリを拒否します。この投稿では、Text-to-SQL のパフォーマンスをより適切に評価するために作成した新しいメトリクスについて説明します。

前回の投稿の例を次に示します。

-- (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;

前回の投稿の数値を要約すると、Spider ベンチマークの 96 問 (トレーニング セットから 86 問、開発セットから 10 問) で GPT-3.5 をテストしたところ、実行精度で 41.7%、完全一致で 38.5% のスコアを獲得したことがわかりました。正確さ。しかし、エラー ケースをさらに分析した結果、GPT-3.5 によって生成されたクエリのほとんどは人間の観点からは実際にはまったく問題ないことが明らかになりました。これは、Text-to-SQL の既存の評価指標が人間の好みを正確に測定していないという問題を浮き彫りにします。

ベンチマークの評価基準と実際の人間の好みとの間の不一致の問題は、研究コミュニティではよく知られています。たとえば、文書要約ベンチマークでは、標準の評価指標はROUGEです。これは、生成された要約とゴールデン サマリーの間で重複する単語フレーズのカウントに基づいています。このアプローチでは、ゴールデン サマリーとは異なる用語やフレーズで書かれた正しい要約を検出できません。それにもかかわらず、ROUGE スコアは最近の論文で依然として使用されています。

人間による評価は依然として ML 研究におけるゴールドスタンダードであり、自動メトリクスは新しいモデルの「単体テスト」です。新しいモデルの「ステージング環境」のような、中間的なものを用意することは可能でしょうか?

評価用 GPT-3.5

GPT-3.5 は人間の好みに合わせて微調整されており、効果的に機能させるには注意深く迅速なエンジニアリングが必要な GPT-3 よりも指示に従うことがはるかに優れています。このことから、GPT-3.5 を活用して、人間の好みに合わせた Text-to-SQL の評価指標を作成できないだろうかと考えました。段階的に見てみましょう。

まず、GPT-3.5 で何ができるかを検討する必要があります。

  • 構造化データをテキストに変換したり、その逆に変換したりできます。
  • プロンプトのコンテキストで直接提供される事実に基づいて推論できます。
  • 自然言語テキストでの入力質問。
  • SQL クエリを生成します。
  • SQL クエリを実行し、構造化データ (行など) を取得します。

以下の図は、この設計を示しています。

GPT-3.5 を使用して Text-to-SQL を評価します。実際のプロンプトはこのスクリプトにあります。

このように GPT-3.5 を使用することで、人間の好みに合わせた Text-to-SQL の評価指標を作成できます。

実験結果

私は、LlamaIndexオープンソース プロジェクトの一部として、「Answer Accuracy」と名付けたこの新しい指標を使用して Spider ベンチマークの評価を拡張しました。私が使用したコードはここにあります。

この新しい指標を使用して、同じ 96 の質問について生成された SQL クエリを評価しました。GPT-3.5 の全体的な回答精度は、text-davinci-00388.54% という驚異的な数字です。実際、前回のブログ投稿にリストされたエラー ケースを確認したところ、私が正しいと指摘したケースは実際にそのようにマークされており、1 つの真のエラー ケースが正しく捕捉されていることがわかりました。

この新しいメトリックをさらに検証するために、GPT-4 を含む他の GPT モデルからの出力でテストしました。回答精度のプロットは次のとおりです。

Spider ベンチマークからの 96 の質問に対する GPT モデル (ゼロショット) の回答精度

結果の回答精度は、code-davinci-00279.17%、text-davinci-00388.54%、gpt-3.5-turbo85.42%、gpt-489.58% となりました。予想通り、GPT-4 は他のモデルよりも優れたパフォーマンスを示しました。これは、これらのモデルの相対的なパフォーマンスについての実際の経験と一致しています。

対照的に、GPT モデルの実行精度と一致精度は、実際の経験と一致しません。以下は、GPT モデルで使用されるこれらのメトリクスを示すプロットです。

Spider ベンチマークからサンプリングされた 96 の質問に対する GPT モデルの実行精度と完全一致精度

gpt-4これらのメトリクスを Text-to-SQL のパフォーマンスの主な測定値として使用する場合、 はよりも強力ではないと考えられますcode-davinci-002。これらの結果は明らかに、これらのモデルを使用した実際の経験と一致しません。

主な意味

この Text-to-SQL 実験の主な影響は何ですか?

まず、既存の自動指標、つまり実行精度と完全一致精度が人間の好みとずれていることがわかりました。したがって、Text-to-SQL モデルを評価する主な方法としてこれらに依存すべきではありません。

第 2 に、人間による評価が依然としてゴールドスタンダードである一方、GPT-3.5 以降などの大規模言語モデル (LLM) は人間の好みを正確に近似できます。これは、Text-to-SQL モデルを評価し、人間による予想される評価結果を推定できるため、状況を大きく変える可能性があります。これは、予算の制限により人間による評価が不可能な場合に特に役立ちます。

第三に、ここが興味深いところですが、評価のために命令調整された LLM を使用することは、他の多くのタスクに一般化できる可能性があります。このアプローチは、出力が LLM によって直接推論できる単純なステートメントで構成されるタスクに特に役立ちます。そして、まさにこのトピックに関する「GPTScore」と呼ばれる研究論文があります。これは、コンテキスト内学習を使用して NLP タスクを評価するように GPT-3.5 をトレーニングします。

ノート

この投稿は、Text-to-SQL の評価についての会話を引き起こすことを目的としており、回答精度の指標が 100% 人によるものである、あるいは堅牢であると主張するものではありません。より良い評価に向けてさらに一歩前進したい場合は、喜んで協力させていただきます。