Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
LLMを使ったサービス開発必須ライブリ 「LangChain」の基礎
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
西岡 賢一郎 (Kenichiro Nishioka)
August 26, 2023
270
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
LLMを使ったサービス開発必須ライブリ 「LangChain」の基礎
機械学習の社会実装勉強会第26回 (
https://machine-learning-workshop.connpass.com/event/292961/
) の発表資料です。
西岡 賢一郎 (Kenichiro Nishioka)
August 26, 2023
More Decks by 西岡 賢一郎 (Kenichiro Nishioka)
See All by 西岡 賢一郎 (Kenichiro Nishioka)
AIは「聞けば答える」から「任せると自分で進める」へ - JACTIMペナン地域部会・ペナン三水会講演
knishioka
0
120
AIエージェントを雇う前に決める5つのこと
knishioka
1
200
顧客に説明できる、 安全なAIの使い方 - 会計士・税理士向けAI活用勉強会 第2回
knishioka
0
120
ローカルLLM、実際どこまで使えるか
knishioka
0
100
会計士・税理士向け AI活用勉強会第1回
knishioka
0
140
権限は渡さない、操作だけ切り出す ― 自前MCPサーバー実践入門
knishioka
0
110
AIガバナンス実践 - 生成AIコネクタのデータ漏洩リスクと実務対策
knishioka
0
320
データサイエンスの現場から学ぶ 成功と失敗の実像と生成AI時代の展望
knishioka
0
130
ハーネスエンジニアリング入門
knishioka
0
950
Featured
See All Featured
Large-scale JavaScript Application Architecture
addyosmani
516
110k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
480
Un-Boring Meetings
codingconduct
0
460
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
270
Test your architecture with Archunit
thirion
2
2.4k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
Faster Mobile Websites
deanohume
310
32k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.2k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.6k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Transcript
LLMを使ったサービス開発必須ライブリ 「LangChain」の基礎 LLMとのめんどくさいやり取りを担うライブラリ 2023/08/26 第26回勉強会
自己紹介 • 名前: 西岡 賢一郎 ◦ 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) ◦ 自社および他社のプロダクト開発チーム・データサイエンスチームの立ち上げ経験
本日のお話 • サマリ ◦ LLMでサービス開発するときに便利なLangChainについて基本機能を紹介 ◦ LangChainは内部でプロンプトをうまく作ることで、長い文章を取り扱ったり、外部ツール 連携したり、LLMのレスポンスを元に次のアクションを自動的に決めたりできる。 • 目次
◦ LLMを社会実装するときの課題 ◦ LangChainとは ◦ デモ
LLMを社会実装するときの課題
LLMを取り巻く環境の変化 • ChatGPTを始めとしてLLMが革新的イノベーションを起こし始めている • Hugging Faceで利用可能な学習済みモデルが多数利用可能に ◦ LINE 36億パラメータの日本語言語モデル https://huggingface.co/line-corporation/japanese-large-lm-3.6b
◦ 松尾研 100億パラメータサイズ・日英2ヶ国語対応の大規模言語モデル“Weblab-10B” https://huggingface.co/matsuo-lab/weblab-10b • LLMをサービスに組み込む事例も出てきている 1から学習 学習済みモデルを利用
LLMを社会実装するときの課題 • Prompt Engineering: LLMが適切な答えを返してくれるPromptを考えるのが難しい。LLMのレス ポンスを利用してPromptを作る場合もある。 • 誤った情報の生成: LLMは確率的に言葉を生成しているため、文章の正確さを保証しているわけ ではない。これにより、検索用途としての使用が難しい。
• LLMの限界: 複雑な数式を解いたり、最新のデータを利用するなど、LLMが使用した学習 データに含まれない情報が必要な課題は、LLM単体では解決できない。 • Token数の制限: 長い文章を処理することができない。
LangChainとは
LangChainとは • 言語モデルを利用するアプリケーションのためのフレームワーク ◦ LangChainはLLMとチャットモデルをまとめて言語モデルとしている ◦ 今回は、LLMに関して紹介 • まず知っておきたいLangChain利点 ◦
テキストデータ以外の色々なデータソースを扱いやすくする ◦ LLMが苦手な作業を他のシステムと連携できるようにする ◦ 長文の取り扱いを可能にする • 他にもTemplate, Text Embedding, Cachingなど様々な便利機能を備える
LangChainの6つのモジュール • 大きく分けて6つのモジュールがある ◦ Model I/O: 任意の言語モデル (ChatGPTなど) とインターフェースをとるための基本的な構 築ブロックを提供
◦ Retrieval (Data connection): LLMにユーザ独自のデータを使えるようにする ◦ Chains: LLM同士または他のコンポーネントとLLMを連結するためのインターフェイス ◦ Agents: ユーザの問い合わせを解くための手段とその順番を LLM を使って自動的に決定して くれるような機能 ◦ Memory: 過去のやりとりに関する情報を保存する機能 ◦ Callbacks: LLMアプリケーションのイベントをフックさせる機能 • 6つの中でまずはLangChainを知る上で抑えておきたいModel I/OとChainと Agentを紹介
Model I/O • 主な機能 ◦ Prompt: 言語モデルの入力のテンプレート化や管理をする ◦ 言語モデル: 「テキスト文字列を入力とし、テキスト文字列を返すLLM」と「チャットメッ
セージのリストを受け取りチャットメージを返すChatModel」の二種類 ◦ アウトプットパーサー: 言語モデルからの出力から情報を抽出 • 少量のコードの修正で言語モデルの切り替えをできる
Chain • LLMを使ったサービス開発では、LLMと単発で独立させて利用するだけでは、すぐ にできることの限界がくる。 • 「LLMを連結させる」ことや「LLMと外部システムを連携させる」ことで、LLM単 体だけではできなかった様々なことができるようになる。 • LLMからのレスポンスを次のLLMや外部システムのインプットに埋め込んでくれ る。
• Tokenの限界を越える長文を小さく分割、LLMで要約して、最後に分割したものを まとめたりできる。
Agent • LangChainの便利さを代表する機能の一つ • 次にどんなアクションを取るかをLLMに決め てもらい実行する • 実際にやっていること ◦ 「各ツールができること」と「質問」
をレスポンスのフォーマットを指定し てLLMに投げる。 ◦ 指定したフォーマットで帰ってきたレ スポンスをパースして、次のアクショ ンを決める。
LangChainのシステム間連携 • システム間でデータのやり取りをするためには、あらかじめデータ形式を合わせる必要がある • 従来のシステムであったAPI設計書などの代わりとして、LLMでは「出力フォーマットをPrompt内 で指定」して、LLMからのレスポンスから必要な情報を抽出していく (正規表現などで無理やり抽 出したりする)
デモ • LangChainの基本的な挙動 ◦ Model ◦ Chain ◦ Agent •
https://github.com/knishioka/machine-learning-workshop/tree/main/l angchain