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
490
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)
DeepSeekを使ったローカルLLM構築
knishioka
0
40
業務ツールをAIエージェントとつなぐ - Composio
knishioka
0
140
LangGraphを使ったHuman in the loop
knishioka
0
160
AIシステムの品質と成功率を向上させるReflection
knishioka
0
30
LangGraph Templatesによる効率的なワークフロー構築
knishioka
0
120
AIエージェントの開発に特化した統合開発環境 LangGraph Studio
knishioka
0
160
LangGraphを用いたAIアプリケーションにおけるメモリ永続化の実践
knishioka
1
440
Text-to-SQLをLangSmithで評価
knishioka
0
200
効果的なLLM評価法 LangSmithの技術と実践
knishioka
1
410
Other Decks in Technology
See All in Technology
ハッキングの世界に迫る~攻撃者の思考で考えるセキュリティ~
nomizone
13
5.2k
Classmethod AI Talks(CATs) #16 司会進行スライド(2025.02.12) / classmethod-ai-talks-aka-cats_moderator-slides_vol16_2025-02-12
shinyaa31
0
110
2024.02.19 W&B AIエージェントLT会 / AIエージェントが業務を代行するための計画と実行 / Algomatic 宮脇
smiyawaki0820
14
3.5k
AndroidXR 開発ツールごとの できることできないこと
donabe3
0
130
2/18/25: Java meets AI: Build LLM-Powered Apps with LangChain4j
edeandrea
PRO
0
120
エンジニアが加速させるプロダクトディスカバリー 〜最速で価値ある機能を見つける方法〜 / product discovery accelerated by engineers
rince
4
370
JEDAI Meetup! Databricks AI/BI概要
databricksjapan
0
110
N=1から解き明かすAWS ソリューションアーキテクトの魅力
kiiwami
0
130
クラウドサービス事業者におけるOSS
tagomoris
2
840
「海外登壇」という 選択肢を与えるために 〜Gophers EX
logica0419
0
710
SA Night #2 FinatextのSA思想/SA Night #2 Finatext session
satoshiimai
1
140
Moved to https://speakerdeck.com/toshihue/presales-engineer-career-bridging-tech-biz-ja
toshihue
2
750
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.2k
Thoughts on Productivity
jonyablonski
69
4.5k
GraphQLとの向き合い方2022年版
quramy
44
13k
Side Projects
sachag
452
42k
BBQ
matthewcrist
87
9.5k
RailsConf 2023
tenderlove
29
1k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
45
9.4k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
21
2.5k
The Cult of Friendly URLs
andyhume
78
6.2k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
27
1.6k
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