Upgrade to Pro — share decks privately, control downloads, hide ads and more …

生成AIで実現するText-to-SQL入門

Avatar for satoshihirose satoshihirose
June 25, 2025
490

 生成AIで実現するText-to-SQL入門

Avatar for satoshihirose

satoshihirose

June 25, 2025
Tweet

Transcript

  1. 2 自己紹介 廣瀬智史 / Satoshi Hirose 株式会社primeNumber, Staff Product Manager

    • SWE -> Technical Support -> Data Eng -> Product Manager(いまここ) • COMETAというデータカタログ領域の 製品を作っています • X: @satoshihirose
  2. 5 • Text-to-SQL? ◦ 自然言語の質問を自動でSQLに変 換する技術 • 右の図の質問例 ◦ 「史上最も試合数の多い5つのリー

    グの名前と、そのリーグで何試合 行われたかを教えてください」 • 何が嬉しい? ◦ SQLを書く時間短縮し業務効率化 ◦ SQLが書けなくてもセルフサーブ な分析で意思決定が高速化 ◦ アナリストの問い合わせ対応業務 が減り、攻めの業務に時間を使え るようになる Text-to-SQL? Hong, Z., Yuan, Z., Zhang, Q., Chen, H., Dong, J., Huang, F., & Huang, X. (2024). Next-Generation Database Interfaces: A Survey of LLM-based Text-to-SQL. arXiv preprint arXiv:2406.08426.
  3. 6 [現状] データ製品ベンダーにおけるText-to-SQLの取り組み • 各社データ利用者向けのAIエージェン トを提供し始めており、その一部と してText-to-SQLが実現されている • DWHベンダー ◦

    Genie(Databricks) ◦ Cortex(Snowflake) • BIベンダー ◦ Tableau Agent(Tableau) ◦ Spotter(Thoughtspot) • Data Catalogベンダー ◦ CLAIRE(Informatica) ◦ ALLIE AI(Alation)
  4. 7 [現状] 国内IT企業におけるText-to-SQLの取り組み • Mercari • Ubie • Cookpad •

    etc… メルカリにおけるデータアナリティクス AI エージェント「Socrates」と ADK 活用事例
  5. 8 Text-to-SQLの簡単な歴史 • ルールベース ◦ 手作業で作成されたルールとヒューリスティックを使用して自然言語 の質問を SQL にマッピングする手法 •

    ディープラーニングベース ◦ ディープニューラルネットワーク、Seq2Seqモデル、LSTMなどのエン コーダーデコーダー構造により自然言語入力からSQLクエリを生成する 手法が登場 • PLMベース ◦ 標準的なText-to-SQL向けのデータセットでfine-tuneされたBERTや RoBERTaなどPLMが生まれる • LLMベース ◦ GPTの登場などでさらに流暢なSQLの生成が可能になる 旧 新 Hong, Z., Yuan, Z., Zhang, Q., Chen, H., Dong, J., Huang, F., & Huang, X. (2024). Next-Generation Database Interfaces: A Survey of LLM-based Text-to-SQL. arXiv preprint arXiv:2406.08426.
  6. 9 Text-to-SQLの簡単な歴史 Li, B., Luo, Y., Chai, C., Li, G.,

    & Tang, N. (2024). The Dawn of Natural Language to SQL: Are We Fully Ready? arXiv preprint arXiv:2406.01265
  7. 10 Text-to-SQLの難しさ • 自然言語の複雑さと曖昧さ ◦ 本質的に自然言語は曖昧で、与えられたユーザーの質問に対して複数の表現が 考えられる。文脈とドメイン知識を組み込む必要がある。 • スキーマの理解と表現 ◦

    テーブル名、列名、テーブル間の関係性など、データベーススキーマを包括的 に理解している必要があるが、スキーマ構造は複雑でドメインによって大きく 異なる。 • 稀で複雑なSQL操作 ◦ 一部SQLにはネストされたサブクエリ、外部結合、ウィンドウ関数など、稀で 複雑な操作や構文が含まれる。これらの操作はトレーニングデータでは頻度が 低いため、正確な生成が困難。 • クロスドメインでの一般化 ◦ 特定のドメインでトレーニングされたモデルは、語彙、データベーススキーマ 構造、質問パターンのばらつきにより、他のドメインの質問に対して良好なパ フォーマンスを発揮できない場合がある。 Hong, Z., Yuan, Z., Zhang, Q., Chen, H., Dong, J., Huang, F., & Huang, X. (2024). Next-Generation Database Interfaces: A Survey of LLM-based Text-to-SQL. arXiv preprint arXiv:2406.08426.
  8. 11 LLMベースのText-to-SQLはAgenticなRAGシステムになっていく • 処理を分解すると ◦ 質問の理解 ◦ スキーマの理解 ◦ SQLの生成

    • 個別のプロセスに分解してマ ルチエージェント的に動作で きる ◦ 例: スキーマリンク、 SQL生成、SQL改良 • LLMベースのText-to-SQLが複 雑なスキーマに対応するには RAGシステムが必要
  9. 12 LLMベースのText-to-SQLの課題 • ハルシネーション ◦ LLMにはハルシネーションがあり、無関係な列を選択したり、ありえないフィ ルタ条件を出力する可能性がある。 • トークン長の限界 ◦

    複雑なデータベースを扱う場合、対応するスキーマを入力するときにLLMを呼 び出すトークン・コストが大幅に増加し、特にコンテキスト長が短いOSSモデ ルの実装では、モデルの最大トークン長を超える可能性がある • 評価の難しさ ◦ LLMの出力は確率的で再現性が低く、また正解SQLが一通りではないため自動 評価指標の設計も難しい。各社とも社内の具体的なユースケースに沿ったゴー ルデンセットを作り、人間の評価も交えつつ継続的に運用する必要がある。
  10. 13 • フォローアップの質問 ◦ ユーザーの質問に曖昧な 点があったら聞き返し、 追加の情報を取得する • 検証と反復的改良 ◦

    生成結果の検証による実 行エラーの解消など反復 的に生成するSQLを改良 する LLMベースのText-to-SQLのアーキテクチャ事例と工夫 Google Cloud, AI を使って優れた SQL を作成する: Text-to-SQL 手法の説明
  11. 15 • 探索空間・スキーマ情報の削減 ◦ 質問内容やユーザー属性に より、スキーマ探索空間や スキーマ情報をフィルタ し、入力トークンを削減 • ドメイン知識の注入

    ◦ カスタムインストラクショ ンとして、ドメイン知識を 注入 LLMベースのText-to-SQLのアーキテクチャ事例と工夫 QueryGPT – Natural Language to SQL Using Generative AI
  12. 20 日本語のデータセットはほぼない Hong, Z., Yuan, Z., Zhang, Q., Chen, H.,

    Dong, J., Huang, F., & Huang, X. (2024). Next-Generation Database Interfaces: A Survey of LLM-based Text-to-SQL. arXiv preprint arXiv:2406.08426.
  13. 21 多言語対応データセット MultiSpider MultiSpider: Towards Benchmarking Multilingual Text-to-SQL Semantic Parsing

    • Spiderの 全 テーブル+質問を7言語に翻訳 したマルチリンガル版。英・独・仏・西・ 中・越・日に対応 ◦ DBの値は翻訳していないので、値に 言及する質問は除いている • 日本語は精度が高くない(LLMベースでは なくPLMベース) ◦ 英語と異なり、質問とスキーマが マッチしない ▪ 説明などのメタデータの必要性
  14. 23 • https://speakerdeck.com/masatoto/sheng-cheng-aiwoyong-itatext-to-sqlnozui-qian-xian • https://speakerdeck.com/yoshidashingo/text-to-sql • https://www.uber.com/en-IN/blog/query-gpt/ • https://www.linkedin.com/blog/engineering/ai/practical-text-to-sql-for-data-analytics •

    https://medium.com/pinterest-engineering/how-we-built-text-to-sql-at-pinterest-30bad30dabff • https://techlife.cookpad.com/entry/2025/06/19/111539 • https://speakerdeck.com/na0/merukariniokerudetaanariteikusu-ai-eziento-socrates-to-adk-huo -yong-shi-li • https://speakerdeck.com/gotalab555/text-to-sqlnoping-jia-detasetutowozuo-tutezui-xin-llmmod erunoxing-neng-ping-jia-wositemita • https://note.com/okiyuki/n/na526aeabd4b6 • https://zenn.dev/ubie_dev/articles/64cf285988ebe8#TextToSQL • https://cloud.google.com/blog/ja/products/databases/techniques-for-improving-text-to-sql • https://arxiv.org/abs/2406.08426 • https://arxiv.org/html/2406.01265v1 • https://www.ptechpartners.com/2025/05/20/talking-to-your-data-literally-getting-the-most-fro m-natural-language-querying/ 参考情報