EGREFINE:テキストからSQLへのスキーマ精錬のための実行に基づく最適化フレームワーク

arXiv cs.CL / 2026/5/4

💬 オピニオンIdeas & Deep AnalysisModels & Research

要点

  • 本論文は、Text-to-SQLの精度を向上させるために、生成後のエラー修正だけでなく、曖昧・不統一な列名などのデータベース・スキーマ名を精錬するEGREFINEを提案している。
  • スキーマ精錬を、データベースビューを用いてクエリ同値性を保ちつつ下流のText-to-SQL実行精度を最大化する制約付き最適化問題として定式化している。
  • EGRefineは、(1)曖昧な列のスクリーニング、(2)文脈に基づく候補名生成、(3)実行に基づくフィードバックによる検証、(4)非破壊的なSQLビューへのマテリアライズ、という4段階のパイプラインで構成される。
  • 保証として、検証フェーズの保守的な選択則により列単位の非劣化を、ビューによるマテリアライズによりデータベース単位のクエリ同値性をそれぞれ担保している。
  • 実験では、可能な場合にスキーマ名ノイズによって失われた精度を回復し、タスクが現状のText-to-SQL能力を超える場合には適切に“見送る”ことを示し、さらに複数のモデル系統へも転移して「refine-once, serve-many」を実現している; コードとデータは公開されている。

Abstract

テキストからSQL(Text-to-SQL)は、非専門家が自然言語でデータベースを問い合わせることを可能にしますが、現実のスキーマはしばしば、曖昧・省略された・あるいは一貫性のない命名規則に悩まされ、その結果モデル精度が低下します。既存の手法はスキーマを固定とみなし、エラーを下流で扱うことで対処しています。本論文では、スキーマ洗練(refinement)を制約付き最適化問題として定式化します。すなわち、データベースのビュー(database views)によってクエリ同値性を保ちつつ、下流のText-to-SQL実行精度を最大化するようなリネーミング(renaming)関数を見つけます。本問題の計算困難性を分析することで、列(column)ごとの貪欲分解(column-wise greedy decomposition)が動機づけられます。そしてそれをEGRefineとして実装します。EGRefineは4フェーズのパイプラインであり、曖昧な列をふるい分けし、文脈に応じた候補名を生成し、実行に基づくフィードバックによってそれらを検証し、非破壊的なSQLビューとして結果を具現化します。このパイプラインには2つの構造的性質があります。すなわち、検証フェーズにおける保守的な選択規則によって保証される「列ローカルの非劣化(column-local non-degradation)」と、ビューに基づく具現化フェーズによって保証される「データベースレベルでのクエリ同値性(database-level query equivalence)」です。これらにより、列レベルでは構成によって洗練結果が安全に保たれ、列間およびプロンプトレベルの相互作用は、解析的にではなく実験的に扱われます。制御されたスキーマ劣化、実世界、エンタープライズのベンチマークにおいて、EGRefineは適用可能な場合にスキーマ命名ノイズによって失われた精度を回復し、基盤となるタスクが現在のText-to-SQL能力を超える場合には正しく「差し控え(abstain)」します。さらに、洗練されたスキーマはモデルファミリー間で転移できるため、「一度だけ洗練して、多数のモデルで提供する(refine-once, serve-many-models)」運用が可能になります。コードとデータは https://github.com/ai-jiaqian/EGRefine で公開されています。