アーカイブ / LLM
SQLの誤りを句ごとに推定し、実行結果から学習するEXPO-SQL
EXPO-SQL
EXPO-SQLの原論文から掲載した図です。細部はクリックして拡大できます。
原論文の図の説明を読む
Figure 2: The overall framework of EXPO-SQL. Predicted queries are classified into three cases based on execution results and correctness. For each case, erroneous clauses are detected to assign clause-level rewards: correct results have no erroneous clauses (Section 3.2.1 ), incorrect results use difference type detection through incremental execution (Section 3.2.2 ), and execution errors employ error messages and clause-level tracing (Section 3.2.3 ).
概要
- 自然文の質問と表・列の定義からSQLを生成し、その実行結果を学習に使う。
- 誤答では句を順に加えた際の結果の差、実行エラーではエラー文と参照関係から誤りの句を推定する。
- 著者らの報告では、7BモデルのBIRD開発セットの実行正解率は71.3%で、同じ基礎モデルを使うArctic-SQL-R1は68.9%だった。
補足:編集した模式図で仕組みを確認する
VISUAL EXPLAINER
図でつかむ、EXPO-SQLの仕組み
- 01質問と表定義
- 02SQL生成
- 03実行結果を分類
- 04誤り句の推定
- 05句別報酬で更新
原論文の説明をもとにした模式図です。処理の細部は省略しています。
研究の背景
EXPO-SQLは、自然文の質問とデータベースの表・列の定義からSQLを作る方法である。SQLは、使う表や列、絞り込み条件などを指定してデータを取り出す問い合わせ言語を指す。SQLの一部が誤るだけでも、結果が変わったり実行できなくなったりする。
実行結果を利用する従来の強化学習では、一つのSQLに含まれるすべての句へ同じ評価を与えることがある。句とはSELECTやWHEREなど、SQL内で異なる役割を持つ部分をいう。この評価方法では、直すべき句と維持したい句を学習時に区別しにくい。
手法
質問と表・列の定義を入力してSQLを生成し、学習時にデータベースで実行する。結果を正解の結果表と照合し、正答なら全句に正の報酬を与える。実行できるが誤答なら、列数、行の欠落、値の違いなど、結果表の差を10種類に分類する。
誤答の場合は句を論理的な実行順に加え、追加前後の結果の差が最終的な誤答の差と対応する句を探す。例えばWHERE句を加えた際の行の欠落を調べる。実行エラーならエラー文中の表名や列名を手掛かりに、先行する句の参照関係をたどる。推定した句ごとの報酬を、その句内の単語や記号に割り当てて生成モデルを更新する。
新規性
著者らの提案は、SQL全体の実行結果を一つの報酬にせず、誤りの原因と推定した句に応じて報酬を割り当てることにある。正答、実行可能な誤答、実行エラーで判定方法を切り替える。
誤答には結果表の差を10種類に分けて句の追加前後を調べ、実行エラーにはエラー文と句間の参照関係を使う。どの句が誤ったかは実行結果からの推定であり、正解SQLとの文字列一致による判定ではない。
従来手法との違い
比較対象には、正解SQLで学習する教師あり微調整、質問文に例を添える方法、実行結果を報酬にする従来の強化学習がある。強化学習とは、生成結果への評価を使ってモデルを更新する方法を指す。
著者らが指摘する従来の問題は、誤った句と正しい句に同じ問い合わせ単位の報酬を与える点である。EXPO-SQLは句内の単語や記号にその句の報酬を配る。ただし表の比較手法には基礎モデルや設定が異なるものもあり、全手法に対する優位性を同一条件の比較とは読めない。
実験結果
著者らは、自然文とSQLの組5,000件からなるSynSQL-Complex-5kで学習し、学習データから独立したSpiderとBIRDを、追加例を与えない条件で評価したと報告する。指標は実行正解率で、生成SQLと正解SQLの実行結果が一致する割合である。
Qwen2.5-Coder-7Bを使ったEXPO-SQLは、Spider開発セット88.5%、テストセット89.1%、BIRD開発セット71.3%だった。BIRD開発セットでは同じ基礎モデルのArctic-SQL-R1の68.9%を2.4ポイント上回る。誤答と実行エラーの両方で句別報酬を一律の報酬に替えると、71.3%から68.5%になったと著者らは報告する。
応用の可能性
編集上の応用案 · 論文が実証した用途とは区別しています。
編集上の応用案:販売部門の月別返品件数を調べるSQL生成器に適用する。担当者の質問と、利用対象の表・列の定義を入力し、確認用のSQLと実行結果表を出力する。担当者がSQLと集計結果を確認してから業務に使う流れを想定する。
適用には、その業務の質問、正解SQL、正解の実行結果、照会できるデータベースが必要となる。句の正誤を人が点検するなら、その確認記録も用意する。センサーは使わず、社内の表名や結合関係に合わせて学習例を整える。この用途での改善は論文の数値からは確定できない。
応用先の候補からNauhに相談できます。
導入時の検証
導入時の検証案 · 対象データでの再評価が必要です。
導入時の検証案:一つの業務データベースについて、質問、正解SQL、正解の実行結果、表・列の定義を収集し、学習用と評価用に分ける。センサーは不要である。表名と結合関係に合わせて学習例を整え、生成SQLを検証用データベースで実行する。
同じ質問群と学習条件で、問い合わせ全体に一律の報酬を与える方法を基準に、句別報酬を使う方法と比べる。学習に使わない質問の実行正解率と実行エラー率を記録し、誤りと推定された句が人の確認と一致する割合も測る。結合や絞り込みを含む質問は個別に確認する。
限界と課題
編集上の検証事項:句を追加した前後の結果の差が、その句の誤りを適切に示すかを対象データで確かめる必要がある。複数のSQLが同じ結果を返す場合や、エラー文が指す箇所と根本原因が違う場合には、人による句の確認も重要になる。
確認できた本文の範囲では、入れ子の問い合わせなど複雑な構造の扱いと学習・推論条件の詳細は付録への案内にとどまる。また、14BモデルのBIRD開発セットの値は表2が73.0%、表8が72.9%で食い違うため、その値を使った比較は保留する。著者が明示した限界として、これらの検証事項を扱っているわけではない。
出典
元のタイトル・要旨を確認する(英語)
EXPO-SQL: Execution-based Clause-level Policy Optimization for Text-to-SQL
Text-to-SQL enables users to query databases using natural language by generating executable SQL queries. Recent methods have increasingly adopted Large Language Models based reinforcement learning (RL) to leverage execution feedback for training. However, existing RL methods assign uniform query-level rewards to all clauses in a SQL query, treating correct and incorrect clauses equally. This coarse-grained reward design leads to insufficient learning signals for correct SQL generation. To address this issue, we propose EXPO-SQL (EXecution-based clause-level Policy Optimization for Text-to-SQL) which provides fine-grained supervision through clause-level rewards. To assign clause-level rewards, our method identifies erroneous clauses by analyzing execution results, including error messages and clause-wise incremental execution. Experiments on widely-used Text-to-SQL benchmarks demonstrate that EXPO-SQL significantly outperforms existing supervised fine-tuning, prompting, and RL-based methods through fine-grained clause-level learning. Our code is available at https://github. com/jhn25/EXPO-SQL.
論文本体の取得範囲に基づく解説。AIが作成した未校閲の記事です。性能の数値は著者の評価条件に依存します。応用例と検証計画は編集上の提案です。解説更新:2026-10-01




