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
350
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)
MCPが変えるAIとの協働
knishioka
0
23
LangFlowではじめるRAG・マルチエージェントシステム構築
knishioka
0
88
DeepSeekを使ったローカルLLM構築
knishioka
0
160
業務ツールをAIエージェントとつなぐ - Composio
knishioka
0
210
LangGraphを使ったHuman in the loop
knishioka
0
250
AIシステムの品質と成功率を向上させるReflection
knishioka
0
46
LangGraph Templatesによる効率的なワークフロー構築
knishioka
0
150
AIエージェントの開発に特化した統合開発環境 LangGraph Studio
knishioka
0
190
LangGraphを用いたAIアプリケーションにおけるメモリ永続化の実践
knishioka
1
530
Other Decks in Technology
See All in Technology
更新系と状態
uhyo
7
1.7k
watsonx.data上のベクトル・データベース Milvusを見てみよう/20250418-milvus-dojo
mayumihirano
0
120
ガバクラのAWS長期継続割引 ~次の4/1に慌てないために~
hamijay_cloud
1
280
AWSのマルチアカウント管理 ベストプラクティス最新版 2025 / Multi-Account management on AWS best practice 2025
ohmura
4
310
バクラクの認証基盤の成長と現在地 / bakuraku-authn-platform
convto
1
620
Notion x ポストモーテムで広げる組織の学び / Notion x Postmortem
isaoshimizu
1
120
より良い開発者体験を実現するために~開発初心者が感じた生成AIの可能性~
masakiokuda
0
200
ここはMCPの夜明けまえ
nwiizo
28
10k
Terraform Cloudで始めるおひとりさまOrganizationsのすゝめ
handy
2
180
アジャイル脅威モデリング#1(脅威モデリングナイト#8)
masakane55
3
230
LangfuseでAIエージェントの 可観測性を高めよう!/Enhancing AI Agent Observability with Langfuse!
jnymyk
1
240
Road to Go Gem #rubykaigi
sue445
0
840
Featured
See All Featured
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
670
Art, The Web, and Tiny UX
lynnandtonic
298
20k
Gamification - CAS2011
davidbonilla
81
5.2k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
60k
Done Done
chrislema
183
16k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Docker and Python
trallard
44
3.3k
Statistics for Hackers
jakevdp
798
220k
Optimizing for Happiness
mojombo
377
70k
KATA
mclloyd
29
14k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
45
9.5k
The Invisible Side of Design
smashingmag
299
50k
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