Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
LangChain Agentを使って自社ツールとChatGPTを連携
Search
西岡 賢一郎 (Kenichiro Nishioka)
September 29, 2023
Technology
0
520
LangChain Agentを使って自社ツールとChatGPTを連携
機械学習の社会実装勉強会第27回 (
https://machine-learning-workshop.connpass.com/event/296222/
) の発表資料です。
西岡 賢一郎 (Kenichiro Nishioka)
September 29, 2023
Tweet
Share
More Decks by 西岡 賢一郎 (Kenichiro Nishioka)
See All by 西岡 賢一郎 (Kenichiro Nishioka)
MLflow × LLM 生成AI時代の実験管理とリスク低減
knishioka
0
48
Conductor: Git Worktreeで実現する並列AIコーディング
knishioka
0
75
ローカルLLMでファインチューニング
knishioka
0
610
自作MCPサーバ入門
knishioka
0
32
成功と失敗の実像と生成AI時代の展望
knishioka
0
62
MCPが変えるAIとの協働
knishioka
1
210
LangFlowではじめるRAG・マルチエージェントシステム構築
knishioka
0
230
DeepSeekを使ったローカルLLM構築
knishioka
0
230
業務ツールをAIエージェントとつなぐ - Composio
knishioka
1
260
Other Decks in Technology
See All in Technology
新規案件の立ち上げ専門チームから見たAI駆動開発の始め方
shuyakinjo
0
650
Nstockの一人目エンジニアが 3年間かけて向き合ってきた セキュリティのこととこれから〜あれから半年〜
yo41sawada
0
180
なぜスクラムはこうなったのか?歴史が教えてくれたこと/Shall we explore the roots of Scrum
sanogemaru
1
400
カミナシ社の『ID管理基盤』製品内製 - その意思決定背景と2年間の進化 #AWSUnicornDay / Kaminashi ID - The Big Whys
kaminashi
3
730
Automating Web Accessibility Testing with AI Agents
maminami373
0
480
『FailNet~やらかし共有SNS~』エレベーターピッチ
yokomachi
1
200
まだ間に合う! StrandsとBedrock AgentCoreでAIエージェント構築に入門しよう
minorun365
PRO
11
750
iPhone Eye Tracking機能から学ぶやさしいアクセシビリティ
fujiyamaorange
0
270
おやつは300円まで!の最適化を模索してみた
techtekt
PRO
0
260
ヘブンバーンズレッドのレンダリングパイプライン刷新
gree_tech
PRO
0
450
5年目から始める Vue3 サイト改善 #frontendo
tacck
PRO
2
130
Grafana Meetup Japan Vol. 6
kaedemalu
1
200
Featured
See All Featured
The Pragmatic Product Professional
lauravandoore
36
6.8k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
36
2.5k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
126
53k
Embracing the Ebb and Flow
colly
87
4.8k
Into the Great Unknown - MozCon
thekraken
40
2k
jQuery: Nuts, Bolts and Bling
dougneiner
64
7.9k
The Language of Interfaces
destraynor
160
25k
Reflections from 52 weeks, 52 projects
jeffersonlam
351
21k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
358
30k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
Optimizing for Happiness
mojombo
379
70k
Bash Introduction
62gerente
614
210k
Transcript
LangChain Agentを使って 自社ツールとChatGPTを連携 ChatGPT単体の限界を越える 2023/09/30 第27回勉強会
自己紹介 • 名前: 西岡 賢一郎 ◦ Twitter: @ken_nishi ◦ note:
西岡賢一郎@研究者から経営者へ (https://note.com/kenichiro) ◦ YouTube: 【経営xデータサイエンスx開発】西岡 賢一郎のチャンネル (https://www.youtube.com/channel/UCpiskjqLv1AJg64jFCQIyBg) • 経歴 ◦ 東京大学で位置予測アルゴリズムを研究し博士 (学術) を取得 ◦ 東京大学の博士課程在学中にデータサイエンスをもとにしたサービスを提供する株式会社ト ライディアを設立 ◦ トライディアを別のIT会社に売却し、CTOとして3年半務め、2021年10月末にCTOを退職 ◦ CDPのスタートアップ (Sr. PdM)・株式会社データインフォームド (CEO)・株式会社ディース タッツ (CTO) ◦ 自社および他社のプロダクト開発チーム・データサイエンスチームの立ち上げ経験
本日のお話 • 結論 ◦ 自社ツールとChatGPTを連携させるときは、まずLangChain AngentのZero-shot ReActか OpenAI Functionsを利用する。 ◦
OpenAI Functionsのほうが、ChatGPTから良い答えが返ってきやすい。 ◦ 自社ツールとChatGPT連携のコツはいかに「ツールの説明」を伝えるか。 • 目次 ◦ ChatGPTの概要 ◦ LangChain Agent ◦ デモ
ChatGPTの概要
ChatGPT概要 • ChatGPTはビジネスでも多く活用されてきている ◦ ベネッセホールディングス: 社内AIチャット「Benesse GPT」をグループ社員1.5万人に向け に提供開始 ◦ 立命館大学:
大学の英語授業に機械翻訳とChatGPTを組み合わせたサービスを試験導入 • ChatGPTから良い回答をもらうためにはプロンプトが必要 ◦ プロンプトエンジニアリングと呼ばれる領域 ◦ プロンプトに入れるべき項目やプロンプトを複数回使いこなして良い回答を手に入れるテク ニックなどが登場してきている • プロンプトエンジニアリング ◦ プロンプトで抑える項目 ◦ Few-Shot Prompting
プロンプトで抑えるべき項目 • あいまいな質問ではなく、具体的かつ明確な質問にする。 例: 「日本の歴史において重要な出来事は何ですか?」ではなく、「日本の戦国時 代における重要な出来事について教えてください。」 • 状況やコンテキストを明示する。 例: 「二酸化炭素が温室効果にどのように影響するか説明してください。」
• どのような形式の回答を望むかを指定する。 「リスト形式で、健康的な生活習慣について5つ挙げてください。」 • 範囲を限定する 例: 「第二次世界大戦中の日本の経済についての主な特徴は何でしたか?」 • どの時点の情報や、どの人物の視点からの回答を求めているか示す。 例: 「2010年の日本経済を子供でもわかるように教えてください。」
Few-Shot Prompting • モデルに少数の例 (ショット) を示すことで、特定のタスクをどのように実行 するかを理解させる手法 • Few-Shot Promptingの例
◦ Prompt 例1: 文章: 「このレストランの料理は最高です!」 感情: ポジティブ 例2: 文章: 「この映画は本当に時間の無駄だった。」 感情: ネガティブ 例3: 文章: 「素晴らしい休日になりました!」 感情: ポジティブ テスト: 文章: 「そのサービスは非常に遅く、不満です。」 ◦ 出力 ▪ 感情: ネガティブ
Promptを工夫しても直面する限界 • Promptのテクニックはどんどん出てきているが、すべてをChatGPTにやら せることには無理がある • 新しいデータや自社独自のデータの取得など、そもそもChatGPTだけではで きないこともある
ChatGPTに限らずLLMの課題 • LLMの課題 (参考: MRKL Systems) ◦ 最新の情報にアクセスできない 最新の為替や株価など動的に変化していく情報にChatGPTが対応するのは不可能 ◦
独自の情報源にアクセスできない 企業のDBにある顧客名簿などの情報にアクセスできない ◦ 推論が不得意 簡単な算術でも計算を間違えることがある ◦ ファインチューニングによる汎用性の劣化 特定のタスクを解くためのファインチューニングすることで汎用性が失われることがある • LangChain Agentを使って、苦手なことは別のツールでやってしまおう!
LangChain Agent
LangChain Agentとは • 言語モデルを利用するアプリケー ションのためのフレームワークで あるLangChainの機能の一つ • 次にどんなアクションを取るかをLLMに 決めてもらい実行する •
実際にやっていること ◦ 「各ツールができること」と「質 問」をレスポンスのフォーマットを 指定してLLMに投げる。 ◦ 指定したフォーマットで帰ってきた レスポンスをパースして、次のアク ションを決める。
LangChain Agentのイメージ LLMが次のステップで使う適切なツールとツールへのInputを考えてくれる
Agent Type • Agent Type ◦ Zero-shot ReAct: ツールの説明のみにもとづいて、どのツールを使用するべきかを決定す る。ReActフレームワークを使用する最も汎用的なAgent。
◦ Structured input ReAct: 複数の入力を受けるツールを使用するAgent。 ◦ OpenAI Functions: OpenAIのFunction Callingを使用するAgent。 ◦ Conversational: 会話用に設計されたAgent。 ◦ Self-ask with search: self-askを利用して検索をするAgent。 ◦ ReAct document store: このエージェントは、docstoreと対話するためにReActフレーム ワークを使用します。 • 今回のでもではZero-shot ReActとOpenAI Functionsを利用
OpenAI Function Calling • 2023年6月リリース • LangChain Agentが担っていた「次のステップを決定するやり取り」を ChatGPTができるようにファインチューニングされている •
メリット ◦ ツール (関数) の挙動をより正確に伝えやすくなった ◦ ChatGPTが返してきた答えを頑張って正規表現を使って必要がなくなった。
デモ • LangChain Agentを使ってChatGPTと自社ツールを連携 ◦ Zero-shot ReActとOpenAI Functions ◦ ChatGPTにツールの説明を渡して、課題を解くために最適なツールを選択してもらう
• https://github.com/knishioka/machine-learning-workshop/tree/main/l angchain