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アプリケーションの デバッグ・テスト・評価・監視を楽にするLangSmith
Search
西岡 賢一郎 (Kenichiro Nishioka)
February 23, 2024
Technology
0
290
LLMアプリケーションの デバッグ・テスト・評価・監視を楽にするLangSmith
機械学習の社会実装勉強会第32回 (
https://machine-learning-workshop.connpass.com/event/309555/
) の発表で使用した資料です。
西岡 賢一郎 (Kenichiro Nishioka)
February 23, 2024
Tweet
Share
More Decks by 西岡 賢一郎 (Kenichiro Nishioka)
See All by 西岡 賢一郎 (Kenichiro Nishioka)
LangGraph Templatesによる効率的なワークフロー構築
knishioka
0
64
AIエージェントの開発に特化した統合開発環境 LangGraph Studio
knishioka
0
100
LangGraphを用いたAIアプリケーションにおけるメモリ永続化の実践
knishioka
1
260
Text-to-SQLをLangSmithで評価
knishioka
0
160
効果的なLLM評価法 LangSmithの技術と実践
knishioka
1
320
LangGraphのノード・エッジ・ルーティングを深堀り
knishioka
1
450
LangGraphでマルチエージェントワークフローを構築
knishioka
0
350
LLMアプリケーションで使用するVector Databaseの比較
knishioka
0
2.1k
LangChainから学ぶプロンプトエンジニアリングテクニック
knishioka
0
290
Other Decks in Technology
See All in Technology
Terraform Stacks入門 #HashiTalks
msato
0
370
心が動くエンジニアリング ── 私が夢中になる理由
16bitidol
0
110
【Pycon mini 東海 2024】Google Colaboratoryで試すVLM
kazuhitotakahashi
2
600
なぜ今 AI Agent なのか _近藤憲児
kenjikondobai
4
1.4k
Adopting Jetpack Compose in Your Existing Project - GDG DevFest Bangkok 2024
akexorcist
0
120
Python(PYNQ)がテーマのAMD主催のFPGAコンテストに参加してきた
iotengineer22
0
570
Introduction to Works of ML Engineer in LY Corporation
lycorp_recruit_jp
0
160
あなたの知らない Function.prototype.toString() の世界
mizdra
PRO
4
1.1k
【Startup CTO of the Year 2024 / Audience Award】アセンド取締役CTO 丹羽健
niwatakeru
0
1.7k
rootlessコンテナのすゝめ - 研究室サーバーでもできる安全なコンテナ管理
kitsuya0828
3
390
型チェック 速度改善 奮闘記⌛
tocomi
1
190
TanStack Routerに移行するのかい しないのかい、どっちなんだい! / Are you going to migrate to TanStack Router or not? Which one is it?
kaminashi
0
650
Featured
See All Featured
We Have a Design System, Now What?
morganepeng
50
7.2k
The Cult of Friendly URLs
andyhume
78
6k
Typedesign – Prime Four
hannesfritz
40
2.4k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
42
9.2k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
How STYLIGHT went responsive
nonsquared
95
5.2k
4 Signs Your Business is Dying
shpigford
180
21k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
730
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
665
120k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
28
2k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
Transcript
LLMアプリケーションの デバッグ・テスト・評価・監視を楽にする LangSmith 2024/02/24 第32回勉強会
自己紹介 • 名前: 西岡 賢一郎 ◦ 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アプリケーションのデバッグ • LangSmith • デモ
LLMアプリケーションのデバッグ
LLMアプリケーションの課題 LLMアプリケーション開発においては、さまざまな問 題が発生する。これらの問題には以下が含まれる。 • モデル呼び出しの失敗: 原因としてはネットワー クエラー、API制限の超過、認証エラーなどがあ る。 • 出力のフォーマットエラー:
期待したフォーマッ トと異なる出力が生成されることがある。 • ネストされたモデルのエラー: 複数のモデルを組 み合わせる際に、どの段階で誤った出力が生じ たかの特定が困難である。 これらの問題への対処には、適切なデバッグ手法と ツールの利用が求められる。
LLMアプリケーションのデバッグが難しい理由 LLMアプリケーションのデバッグにおける困難は、以下の点に 集約される。 • 非決定性: LLMの応答は非決定的であり、同一の入力か ら異なる結果が生じうる。この性質は、予測可能性の低 下を招き、デバッグを複雑化する。 • 複雑なチェーンとエージェント:
複数のステップやコン ポーネントから成るチェーンやエージェントの使用は、 相互作用の複雑さを増す。これにより、エラーの特定が 難しくなる。 • パフォーマンス評価の難しさ: 正確性、レイテンシー、 トークン使用量など、多岐にわたる指標を考慮し、測定 及び最適化する必要がある。これらの複合的な要因は、 パフォーマンスの評価を困難にする。 • 共同デバッグの障壁: 特にローカル環境での作業におい て、チーム内でのデバッグ情報の共有が難しい。デバッ グ情報の不足は、協働を妨げる。 これらの課題は、LLMアプリケーション開発の効率と効果を低 下させ、解決策の模索を要する。
LLMアプリケーションのデバッグ方法 • LLMアプリケーションのデバッグ方法は、以下のス テップに基づいている。 ◦ ログの確認: エラーメッセージやAPI応答を通 じて問題を把握する。 ◦ 単体テストの実施:
各モデルの呼び出しを個別 にテストし、問題箇所を特定する。 ◦ 出力の検証: 期待されるフォーマットに従って 出力が生成されているか検証する。 ◦ 段階的デバッグの適用: ネストされた呼び出し を段階ごとにデバッグし、各ステップの出力 を確認する。 • デフォルト状態では、ログが不十分でデバッグが難 しいことがある。デバッグを効率化する方法は、外 部ツールの使用有無によって二つに分けられる。 ◦ 外部ツールを使用しない場合: LangChainの Verbose ModeやDebug Modeを活用する。 ◦ 外部ツールを使用する場合: LangSmithなどの ツールを利用する。
外部ツールを使用しないデバッグ 外部ツールを使用しないデバッグでは、 Debug ModeやVerbose Modeが利用される。 • Debug Modeの活用: set_debugや langchain.debug
= Trueを設定すること で、LangChainの各コンポーネント (チェーン、モデル、エージェント、 ツール、リトリーバ)が受け取った入力 と生成した出力を表示する。 • Verbose Modeの活用: set_verboseや langchain.verbose = Trueを設定する と、入力と出力が読みやすい形で出力さ れる。ただし、特定の生の出力(例: LLM呼び出しのトークン使用統計)のロ グは省略される。
LangSmith
LangSmithの概要 • LangSmithとは: LangChainによって開発されたツールで、信頼性の高い LLMアプリケーションの構築を支援する。 • 目的: プロンプト、チェーン、エージェントのパフォーマンスを向上させ、 Production環境での信頼性を確保する。 •
特徴: トレーシング機能がデフォルトで有効になっており、LLM、チェー ン、エージェントへの全呼び出しを自動でログに記録する。 • LangChainのCallbackと似ているが、LangChainのCallback一つのイベント に対して使用されるのに対し、LangSmithは環境変数を設定するだけですべ てのイベントログの収集が可能
LangSmithのデバッグ支援機能 • 入力と出力の可視化: LangSmithは、LLM呼び出し の正確な入力と出力を明確に表示し、デバッグを容 易にする。 • イベントシーケンスの追跡: 複雑なチェーンやエー ジェントの動作を可視化し、各ステップの入出力と
実行順序を明確にする。 • プロンプトの編集: Playground機能を使ってプロン プトを編集し、出力の変化を確認できる。
LangSmithの共同デバッグとデータセット管理 • 共同デバッグ: "Share"ボタンを用いて、デバッグ情 報を共有し、チーム内での協力を促進する。 • データセットの収集と管理: 不具合や期待外れの出力 をデータポイントとして収集し、"Add to
Dataset" 機能でデータセットに追加する。これにより、将来 のデバッグやテストが容易になる。 • モニタリングと評価: アプリケーションのモニタリン グを通じてパフォーマンスを追跡し、人間による評 価や自動評価メトリクスを用いて品質を保証する。
Playground機能で出力の調整 • ModelやらParameterをUI上で変更可能 • System, AI, Human, Chatなどに加えて、Toolや FunctionなどもUI上で与えることができる。 •
Token数の確認やAnnotationも可能。
Hubでプロンプトを取得 • LangChain Hubは、LangChainおよび一般的なLLM 用のプロンプトを発見、共有、バージョン管理する ためのツールである。 • プロンプトのインスピレーションを得たり、自分の プロンプトを世界と共有するのに適している。 •
現在はLangChainのプロンプトテンプレートをサ ポートしており、今後さらに多くのオブジェクトタ イプが追加される予定である。 • 残念ながら、日本語のプロンプトはない
デモ LangSmithの基本機能の紹介 • https://smith.langchain.com/ ◦ 2月中旬にGA版 (General Availability Version)がリリース •
LangChainとLangSmithとの連携 • LangSmith上でのログの確認方法 • ソースコード: https://github.com/knishioka/machine -learning-workshop/blob/main/langcha in/langsmith.ipynb