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
LLMを使ったサービス開発必須ライブリ 「LangChain」の基礎
Search
西岡 賢一郎 (Kenichiro Nishioka)
August 26, 2023
0
160
LLMを使ったサービス開発必須ライブリ 「LangChain」の基礎
機械学習の社会実装勉強会第26回 (
https://machine-learning-workshop.connpass.com/event/292961/
) の発表資料です。
西岡 賢一郎 (Kenichiro Nishioka)
August 26, 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
Featured
See All Featured
Documentation Writing (for coders)
carmenintech
65
4.4k
We Have a Design System, Now What?
morganepeng
50
7.2k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
33k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
246
1.3M
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
43
6.6k
Thoughts on Productivity
jonyablonski
67
4.3k
Done Done
chrislema
181
16k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
41
2.1k
Designing for humans not robots
tammielis
249
25k
The Pragmatic Product Professional
lauravandoore
31
6.3k
Automating Front-end Workflow
addyosmani
1365
200k
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