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
480
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)
LangGraph Templatesによる効率的なワークフロー構築
knishioka
0
91
AIエージェントの開発に特化した統合開発環境 LangGraph Studio
knishioka
0
130
LangGraphを用いたAIアプリケーションにおけるメモリ永続化の実践
knishioka
1
350
Text-to-SQLをLangSmithで評価
knishioka
0
190
効果的なLLM評価法 LangSmithの技術と実践
knishioka
1
350
LangGraphのノード・エッジ・ルーティングを深堀り
knishioka
1
520
LangGraphでマルチエージェントワークフローを構築
knishioka
0
380
LLMアプリケーションで使用するVector Databaseの比較
knishioka
0
2.4k
LLMアプリケーションの デバッグ・テスト・評価・監視を楽にするLangSmith
knishioka
0
310
Other Decks in Technology
See All in Technology
DevOps視点でAWS re:invent2024の新サービス・アプデを振り返ってみた
oshanqq
0
180
2024年にチャレンジしたことを振り返るぞ
mitchan
0
140
NilAway による静的解析で「10 億ドル」を節約する #kyotogo / Kyoto Go 56th
ytaka23
3
380
オプトインカメラ:UWB測位を応用したオプトイン型のカメラ計測
matthewlujp
0
170
Oracle Cloudの生成AIサービスって実際どこまで使えるの? エンジニア目線で試してみた
minorun365
PRO
4
280
継続的にアウトカムを生み出し ビジネスにつなげる、 戦略と運営に対するタイミーのQUEST(探求)
zigorou
0
540
複雑性の高いオブジェクト編集に向き合う: プラガブルなReactフォーム設計
righttouch
PRO
0
110
re:Invent をおうちで楽しんでみた ~CloudWatch のオブザーバビリティ機能がスゴい!/ Enjoyed AWS re:Invent from Home and CloudWatch Observability Feature is Amazing!
yuj1osm
0
120
ずっと昔に Star をつけたはずの思い出せない GitHub リポジトリを見つけたい!
rokuosan
0
150
GitHub Copilot のテクニック集/GitHub Copilot Techniques
rayuron
36
13k
LINEスキマニにおけるフロントエンド開発
lycorptech_jp
PRO
0
330
マイクロサービスにおける容易なトランザクション管理に向けて
scalar
0
130
Featured
See All Featured
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Building a Scalable Design System with Sketch
lauravandoore
460
33k
Facilitating Awesome Meetings
lara
50
6.1k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Being A Developer After 40
akosma
87
590k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.3k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
28
4.4k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
17
2.3k
Designing on Purpose - Digital PM Summit 2013
jponch
116
7k
Building Adaptive Systems
keathley
38
2.3k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
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