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

SQL Agentによるタップルのデータ利活用促進

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest. →
Avatar for CyberAgent CyberAgent PRO
May 27, 2025
1.8k

SQL Agentによるタップルのデータ利活用促進

Avatar for CyberAgent

CyberAgent PRO

May 27, 2025

More Decks by CyberAgent

Transcript

  1. 目次 1. サービス紹介 2. 今日話すこと/ 話さないこと 3. SQL Agentとは? 4.

    理想状態と検証で得た課題 5. タップルでのSQL Agentへのアプローチ 6. 今後の展望
  2. 2. 今日話すこと/ 話さないこと 【話すこと】 • SQL Agentを導入するまでの過程 • アーキテクチャ •

    実装時の工夫ポイント 【話さないこと】 • タップルでの利用クエリ・質問内容
  3. 他社事例 他社でも独自実装やサービス化、研究が行われている領域 Uber/ QueryGPT • RAGを活用 • 担当領域ごとに参照データを分類 • 対象テーブルをユーザーが修正可能

    • 不要なカラムをコンテキストから除外 • 継続的な出力評価 LinkedIn/ SQL Bot • LangChain & LangGraphで実装 • ナレッジグラフを活用 • 選択時にテーブルの「人気」を表示 • ユーザーがカスタムプロンプトを定 義可能
  4. 関連研究 Google Cloud や Stanford Universityの研究者による論文 「CHASE-SQL: Multi-Path Reasoning and

    Preference Optimized Candidate Selection in Text-to-SQL」 • 「Divide and Conquer CoT」「Query Plan CoT」、 「Online Synthetic Example Generation」の3つのアプローチでSQLを生成 • 構文エラーなどの実行結果を利用して、自動的にクエリを修正 • 生成された複数のSQL候補から、最適なものを選択
  5. 検証でのTry&Error まずは、Snowflakeの機能やSaaS導入での実現を検証した 【検証したツール】 • Snowflake Cortex Analyst • Snowflake Cortex

    Copilot • WrenAI → 期待している品質を実現するツールを選定することが出来なかった • 複数のテーブルのJOINが含まれる、複雑なクエリの品質が低い ◦ 精度向上のために、利用想定される全てのリレーションを定義必要がある • Variant型カラムがサポートされていない(2025-05-20現在・参考)
  6. 検証や既存事例から得られた知見 【アーキテクチャ】 • マルチモデル/ Reflection/ RAGなどを活用して品質向上 【メタデータ】 • テーブル・カラムの説明、SQLサンプルを記述 •

    質問の意図を理解しSQLに変換するために、ビジネス特有の知識が必要 • Long Contextなモデルが重要(機能によってはContext長の制限が厳しい) 【テーブル・カラムの選択・JOIN】 • 参照可能なテーブル・カラム数が大規模 → 誤った選択が増加 • Variant型(JSON)の処理難易度が高い
  7. 独自構築のメリット 柔軟性と拡張性の実現 • LLMを柔軟に選択可能 ◦ 複数のモデルベンダーから選択・複合して利用できる ▪ 日本語対応を確実にできる ▪ Long

    Contextなモデルも利用可能 ◦ モデルリリースに追従して、品質の向上が狙える • 生成フローをカスタマイズ可能 ◦ Reflectionやフォローアップの処理を独自実装できる ◦ 最新手法を随時取り込むことができる • 出力形式もカスタマイズできる ◦ SQLの他にも、各サブクエリの説明なども出力可能 • ドメイン知識をモデルへと柔軟に注入できる • WebアプリケーションやSlack Botなど、様々な方法で提供可能
  8. 開発・導入したSQL Agent • チャットから Snowflake SQL を生成/ 実行 ◦ 作成方針やサブクエリの説明も同時に出力

    ◦ 作成クエリに対して追加の質問も可能 • Difyのチャットフローで構築 • タップル独自の用語やビジネス知識をLLMコンテキストに注入
  9. アーキテクチャ • Workflow Agentとして実装 • Dify上に構築 ◦ 実装スピードを重視(WebUI + ローコード)

    • LLMの責務を分ける ◦ 必要なテーブル・カラム・サンプルクエリを選択するモデル ◦ SQLの候補を生成する複数のモデル ◦ 生成クエリをレビュー・修正するモデル ◦ 候補を比較、選択するモデル
  10. 今後の展望 • データサイエンス機能 ◦ 実行結果からシンプルな分析を行い、インサイトを提案する機能 • SQLの品質の向上 ◦ エラー発生や数値ミスを低減していく •

    対象テーブルの拡充 ◦ Coding Agentの活用でAgent用マートテーブルを充実させていく • 評価 ◦ 収集した「質問」「生成SQL」「実行結果」「フィードバック」などから 継続的な評価を行う