見出し画像

AIエージェントによるデータ分析|「SQL Bot」の実践例(Linkedin)

どういうAIエージェント?

自然言語をSQLに変換し、社員が自然言語で質問すると自動的にSQLクエリを生成・修正できるエージェント。
LangChain, LangGraphがベースとなっている。

このアカウントでは、AIエージェントの事例や実装方法を整理していますので、興味がある方はXもフォローいただけると役立ちます。

概要

テック企業において、ビジネス部門がデータチームに「このデータが欲しい」「このクエリを書いてほしい」と依頼する状況はよくある話です。
しかし、データ専門家が単純なクエリ作成やテーブル探しに時間を取られると、戦略的な分析や高度な知見の創出へリソースを割けなくなってしまいます。
そんな課題を解決すべく、LinkedInでは社内のデータサイエンスプラットフォーム「DARWIN」にAIを統合した「SQL Bot」を開発し、社員が自然言語で質問すると自動的にSQLクエリを生成・修正できる仕組みを実装しました。ここでは、AIを活用したText-to-SQLの事例として、LinkedInがどのように大規模データウェアハウスから適切なテーブルを見つけ、クエリ生成まで行う仕組みを構築したかをご紹介します。


1. SQL Botの概要と導入背景

  • 自然言語からのクエリ生成
    社員が「昨日のCTRの平均は?」などと自然言語で聞くと、SQL Botが該当テーブルを探し出し、適切なSQLクエリを自動作成。

  • AI×検索の組み合わせ
    LangChainやLangGraphといったフレームワークを土台に、複数のエージェントを駆使してユーザー質問をSQLに変換。

  • 大規模データウェアハウスへの対応
    LinkedInの内部には数百万ものテーブルが存在。その膨大なデータから、正しい情報を持つテーブルを探し当てる必要がある。

もともと多くのテック企業では、データ活用のボトルネックとして「必要なテーブルが見つからない」「SQLが書けない」という非効率が存在しました。LinkedInは、これをAIによるText-to-SQLで解消し、データ分析の民主化を進めています。


2. 実現の鍵:高品質なメタデータとパーソナライズ検索

(1) テーブルメタデータの充実

  • データセット認定(Certification)
    ドメイン専門家が重要テーブルを特定し、必須の説明文や項目の意味を明確化。

  • AI生成の注釈を追加
    既存ドキュメントやSlackの議論などから補足説明を作成し、検索精度を向上。

  • メタデータ管理の自動化
    LinkedIn内で頻繁に利用され、かつ新たに人気が出たテーブルを自動で検知・登録し、逆に非推奨となったテーブルは除外。

(2) 組織構造を用いたパーソナライズ

  • 「CTR」と言っても、部署によって意味合いが異なる(メール通知のCTR、広告のCTR、検索UIのCTRなど)。

  • ユーザーの所属部署やグループの利用実績を元に、初期候補のテーブルを絞り込む。

  • エンベディング検索(EBR)に加えて、ユーザー×テーブルのアクセス履歴を独自の手法で解析し、検索結果に優先度を付与。

こうした工夫により、大量のテーブルの中からユーザーが本当に欲しいデータに最短でたどり着ける仕組みを構築しています。


3. LLMを活用したランキング・クエリ作成・自己修正


アーキテクチャー図

(1) ナレッジグラフとLLMの組み合わせ

  • テーブル選定
    エンベディング検索(EBR)でトップ20ほどのテーブルをまず抽出し、その後LLMによる再ランキングをかけて最終的に7テーブル程度に絞る。

  • フィールド選定
    テーブルに含まれるカラム(フィールド)の説明や人気度などもLLMで評価・ランク付け。

さらに、成功したクエリログや内部Wikiのサンプルコードなどを取り込み、クエリ生成の精度を上げています。

(2) 段階的なクエリ作成と自己修正

  • 計画(Plan)→実行(Generate)→検証(Validate)→修正(Self-correction) のステップを繰り返す。

  • テーブル・カラムが見つからない場合は、LLMが新たにテーブルを探すなどの追加アクションを実行。

  • EXPLAINステートメントを使ったシンタックスエラー検出など、実データを触る前にクエリを検証して自動修正。


4. UX設計:DARWINへの統合とガイド付きチャット


アウトプット例

(1) 「Fix with AI」で気軽にリカバリー

  • 失敗したクエリがあると、DARWINの画面に「Fix with AI」ボタンを表示。

  • これを押すだけでSQL Botがエラーを解析し、修正版のクエリを返す。

  • 80%ものセッションがこの「Fix with AI」機能経由で利用されており、開発コストの割にリターンが大きい。

(2) ガイド付きフローとリッチUI

  • ステップごとの確認
    「テーブル選択→フィールド選択→クエリ生成」とユーザーと対話しながら段階的に進められる。

  • リッチなテーブル表示
    テーブルが「認定済み」か「人気度が高い」かなどのタグが表示され、DataHubへのリンクもある。

  • アクセス権限のチェック
    実行前にユーザーの所属グループを確認し、クエリがアクセス拒否されるのを防止。


5. 自律的なカスタマイズを可能にする機能

SQL Botの性能向上や業務特化に対応するため、ユーザー自身が以下の3つのレバーで調整できるようにしています。

  1. データセットのカスタマイズ
    メールグループやユーザーIDを指定し、「この製品領域ではこれらのテーブルを主に使う」と定義。

  2. カスタム指示文
    ユーザーがSQL Botに追加で教えたい知識や、動作のルールをテキストで指定。

  3. サンプルクエリの登録
    「認定」マークを付けたノートブックをアップロードし、学習用のサンプルとして再利用。


6. ベンチマークと改善サイクル

(1) 専用ベンチマークの構築

  • 約130の代表的な質問に対し、正解となるテーブル・フィールドを複数パターン用意。

  • テーブル・フィールドのリコール率ハルシネーション率クエリ実行の正確性などを計測。

  • SQL Botが複数の有効解を生む可能性を考慮し、定期的に専門家が回答セットを更新。

(2) LLM評価の活用

  • 人手評価だけでなく、LLMに回答をチェックさせる仕組み(LLM-as-a-judge)も導入。

  • LLMと人間の評価を突き合わせることで、新たな正解パターンの発見や改善ポイントの明確化を行う。


7. 今後の展望と学び

  • 更なる高速化・体験向上
    レスポンス時間の短縮や、ユーザーが文中でクエリを直接修正できる仕組みなどを検討中。

  • 文脈を可視化する機能
    「SQL Botがどういうテーブル情報を使ってクエリを作成したのか」をユーザーが把握しやすくする。

  • 継続的なドメイン知識のアップデート
    製品領域ごとの“チャンピオン”を設定し、テーブルの登録・更新を定期的に行う。

LinkedInの事例からわかるのは、単純にText-to-SQLを導入するだけではなく、メタデータの整備・パーソナライズ・UI/UXの工夫などが不可欠という点です。特に「Fix with AI」という小さな機能が大きなROIを生んだ事例は、導入初期の「痛点」を見極めてAIを組み込むことの重要性を示しています。


まとめ

LinkedInが開発した「SQL Bot」は、大量のテーブルが存在する複雑なエンタープライズ環境でも自然言語からのクエリ生成を実現し、社員が自分の力でデータにアクセスできる体験を提供しています。その裏には、

  • 高品質なメタデータとパーソナライズされた検索

  • LangChain/LangGraphを活用した複数エージェント構成

  • ガイド付きUXや「Fix with AI」に代表される利便性の追求

  • ベンチマーク・LLM評価を併用した継続的な改善

といった仕組みがあることが大きなポイントです。
「テーブルが見つからない」「SQLが難しい」というハードルをAIが取り払い、ビジネス成果に直結するスピード感あるデータ分析を実現している本事例は、企業のデータ活用や社内DXの一つのモデルケースといえるでしょう。

このアカウントでは、AIエージェントの事例や実装方法を整理していますので、興味がある方はXもフォローいただけると役立ちます。

参考情報


いいなと思ったら応援しよう!