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
460
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
46
AIエージェントの開発に特化した統合開発環境 LangGraph Studio
knishioka
0
83
LangGraphを用いたAIアプリケーションにおけるメモリ永続化の実践
knishioka
0
200
Text-to-SQLをLangSmithで評価
knishioka
0
150
効果的なLLM評価法 LangSmithの技術と実践
knishioka
1
310
LangGraphのノード・エッジ・ルーティングを深堀り
knishioka
0
400
LangGraphでマルチエージェントワークフローを構築
knishioka
0
340
LLMアプリケーションで使用するVector Databaseの比較
knishioka
0
1.9k
LLMアプリケーションの デバッグ・テスト・評価・監視を楽にするLangSmith
knishioka
0
280
Other Decks in Technology
See All in Technology
よくわからんサービスについての問い合わせが来たときの強い味方 Amazon Q について
kazzpapa3
0
220
Commitment vs Harrisonism - Keynote for Scrum Niseko 2024
miholovesq
6
1.1k
日経電子版におけるリアルタイムレコメンドシステム開発の事例紹介/nikkei-realtime-recommender-system
yng87
1
510
プロダクト成長に対応するプラットフォーム戦略:Authleteによる共通認証基盤の移行事例 / Building an authentication platform using Authlete and AWS
kakehashi
1
150
バクラクにおける可観測性向上の取り組み
yuu26
3
420
生成AIと知識グラフの相互利用に基づく文書解析
koujikozaki
1
140
Figma Dev Modeで進化するデザインとエンジニアリングの協働 / figma-with-engineering
cyberagentdevelopers
PRO
1
430
VPC間の接続方法を整理してみた #自治体クラウド勉強会
non97
1
850
初心者に Vue.js を 教えるには
tsukuha
5
390
Aurora_BlueGreenDeploymentsやってみた
tsukasa_ishimaru
1
130
わたしとトラックポイント / TrackPoint tips
masahirokawahara
1
240
【若手エンジニア応援LT会】AWSで繋がり、共に成長! ~コミュニティ活動と新人教育への挑戦~
kazushi_ohata
0
180
Featured
See All Featured
The Invisible Side of Design
smashingmag
297
50k
It's Worth the Effort
3n
183
27k
Being A Developer After 40
akosma
86
590k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
Testing 201, or: Great Expectations
jmmastey
38
7k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
33k
Designing the Hi-DPI Web
ddemaree
280
34k
Mobile First: as difficult as doing things right
swwweet
222
8.9k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
KATA
mclloyd
29
13k
GitHub's CSS Performance
jonrohan
1030
460k
10 Git Anti Patterns You Should be Aware of
lemiorhan
654
59k
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