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

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

Avatar for CyberAgent CyberAgent
May 27, 2025
130

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

Avatar for CyberAgent

CyberAgent

May 27, 2025
Tweet

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」「実行結果」「フィードバック」などから 継続的な評価を行う