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
380
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)
ローカルLLMでファインチューニング
knishioka
0
150
自作MCPサーバ入門
knishioka
0
11
成功と失敗の実像と生成AI時代の展望
knishioka
0
48
MCPが変えるAIとの協働
knishioka
1
180
LangFlowではじめるRAG・マルチエージェントシステム構築
knishioka
0
150
DeepSeekを使ったローカルLLM構築
knishioka
0
190
業務ツールをAIエージェントとつなぐ - Composio
knishioka
1
230
LangGraphを使ったHuman in the loop
knishioka
0
290
AIシステムの品質と成功率を向上させるReflection
knishioka
0
54
Other Decks in Technology
See All in Technology
Node-RED × MCP 勉強会 vol.1
1ftseabass
PRO
0
150
25分で解説する「最小権限の原則」を実現するための AWS「ポリシー」大全 / 20250625-aws-summit-aws-policy
opelab
9
1.2k
~宇宙最速~2025年AWS Summit レポート
satodesu
1
1.9k
Lambda Web Adapterについて自分なりに理解してみた
smt7174
4
120
生成AI活用の組織格差を解消する 〜ビジネス職のCursor導入が開発効率に与えた好循環〜 / Closing the Organizational Gap in AI Adoption
upamune
5
3.7k
“社内”だけで完結していた私が、AWS Community Builder になるまで
nagisa53
1
400
Кто отправит outbox? Валентин Удальцов, автор канала Пых
lamodatech
0
350
GeminiとNotebookLMによる金融実務の業務革新
abenben
0
230
Javaで作る RAGを活用した Q&Aアプリケーション
recruitengineers
PRO
1
120
OpenHands🤲にContributeしてみた
kotauchisunsun
1
460
セキュリティの民主化は何故必要なのか_AWS WAF 運用の 10 の苦悩から学ぶ
yoh
1
170
生まれ変わった AWS Security Hub (Preview) を紹介 #reInforce_osaka / reInforce New Security Hub
masahirokawahara
0
110
Featured
See All Featured
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
17
940
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
RailsConf 2023
tenderlove
30
1.1k
Designing for Performance
lara
609
69k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.5k
Reflections from 52 weeks, 52 projects
jeffersonlam
351
20k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
A Modern Web Designer's Workflow
chriscoyier
694
190k
Git: the NoSQL Database
bkeepers
PRO
430
65k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
How to train your dragon (web standard)
notwaldorf
94
6.1k
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