Slide 1

Slide 1 text

LangChainで データ分析エージェントを作ってみる 2024/09/29 機械学習の社会実装勉強会 第39回 熊懐 葵

Slide 2

Slide 2 text

目次 • 背景: 商圏分析 • データ分析エージェント • イメージ • 実装(LangChain > Pandas Dataframe) • 性能調査(サンプルデータ・実データ) • 処理プロセスの調査

Slide 3

Slide 3 text

背景: 商圏分析 商圏分析 • 商圏: 特定の店舗が顧客に影響を及ぼすエリア(コンビニ…半径500m以内→徒歩10分) • 商圏の人の属性や人流・競合の立地などから、新店舗の立地選定やマーケティング戦略に活用 既存サービスの課題 • 使用料金の高さ・機能の複雑さ モチベーション • 使いやすい商圏分析ツールを作れないか • LLMを用いたデータ分析エージェントを作りたい

Slide 4

Slide 4 text

既存サービスの例: MarketAnalyzer https://www.giken.co.jp/products/marketanalyzer/case/ より 多機能→複雑

Slide 5

Slide 5 text

データ分析エージェントのイメージ 駅別乗降客数データ + 「人がよく乗降する駅は?」 実行結果から回答を出力「〇〇駅で△人です」 コード類やソフトの複雑な操作などせずに データ分析をすることができる 質問とデータから、適切な データ分析プログラムを生成 ↓ プログラムを実行 ユーザー エージェント

Slide 6

Slide 6 text

LangChainライブラリを用いて実装した 実行例

Slide 7

Slide 7 text

データ分析エージェントの実装 • OpenAI API Key • LangChain v0.3 create_pandas_dataframe_agent 必要なもの • データ読み込み • エージェント作成 • エージェント実行 処理内容 ▼ データの読み込み・エージェント作成 (公式) < エージェントが自動で コードを生成しデータを操作する ので、扱いには注意

Slide 8

Slide 8 text

データ分析エージェントの実装 • OpenAI API Key • LangChain v0.3 create_pandas_dataframe_agent 必要なもの • データ読み込み • エージェント作成 • エージェント実行 処理内容 ▼ エージェント実行 終了と打つと会話が終了 会話履歴を保存

Slide 9

Slide 9 text

性能調査: サンプルデータ ▼ 従業員データ(Chat GPTが生成) ▼ 実行結果1 ID 名前 年齢 部門 給料

Slide 10

Slide 10 text

性能調査: サンプルデータ ※0.6895282023 ▼ 実行結果2 ▼ 従業員データ(Chat GPTが生成) ID 名前 年齢 部門 給料

Slide 11

Slide 11 text

性能調査: 実データ ▼ 大分県の中心部の駅乗降客数データ 国土数値情報ダウンロードサイト https://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-S12-v3_1.html 駅名、駅コード、運営会社、路線名、 2011~2022年の乗降客数(年度別) …その他(35カラム)

Slide 12

Slide 12 text

性能調査: 実データ データ通りの回答ではある ▼ 実行結果 国土数値情報ダウンロードサイト https://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-S12-v3_1.html ▼ データ(一部表示)

Slide 13

Slide 13 text

性能調査: 実データ ▼ 実行結果 国土数値情報ダウンロードサイト https://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-S12-v3_1.html ▼ データ(一部表示) ←増加量(スプレッドシートで検算)

Slide 14

Slide 14 text

v0.3(9月中旬~)で性能が向上している? ▼ LangChain v0.2での実行結果 元データと異なる数値 v0.3 ではマルチモーダル機能が強化される予定らしい 図の出力機能などでもっと便利になりそう

Slide 15

Slide 15 text

処理プロセスの調査 ▼ verbose=Trueにする

Slide 16

Slide 16 text

処理プロセスの調査 ▼ 実行結果 分析に必要なコードを生成し、実行している →数値部分が決定的な出力になる

Slide 17

Slide 17 text

まとめ 背景 • 商圏分析ツールの高価さ・使いにくさ • LLMを用いて、安価で使いやすいデータ分析ツールは作れないか 今回 • LangChain Toolkitsのcreate_pandas_dataframe_agentを使用 • 基本的なデータ分析の性能を確認 今後 • 性能の限界→是非試してみてください!(※性能向上も速い) • マルチモーダル性能の強化に期待