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
510
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
LLMアプリケーションの デバッグ・テスト・評価・監視を楽にするLangSmith
機械学習の社会実装勉強会第32回 (
https://machine-learning-workshop.connpass.com/event/309555/
) の発表で使用した資料です。
西岡 賢一郎 (Kenichiro Nishioka)
February 23, 2024
More Decks by 西岡 賢一郎 (Kenichiro Nishioka)
See All by 西岡 賢一郎 (Kenichiro Nishioka)
AIエージェントを雇う前に決める5つのこと
knishioka
1
160
顧客に説明できる、 安全なAIの使い方 - 会計士・税理士向けAI活用勉強会 第2回
knishioka
0
110
ローカルLLM、実際どこまで使えるか
knishioka
0
54
会計士・税理士向け AI活用勉強会第1回
knishioka
0
110
権限は渡さない、操作だけ切り出す ― 自前MCPサーバー実践入門
knishioka
0
100
AIガバナンス実践 - 生成AIコネクタのデータ漏洩リスクと実務対策
knishioka
0
280
データサイエンスの現場から学ぶ 成功と失敗の実像と生成AI時代の展望
knishioka
0
110
ハーネスエンジニアリング入門
knishioka
0
780
OpenClawでPM業務を自動化
knishioka
2
700
Other Decks in Technology
See All in Technology
Bet AI Day 2026丨AIによって本質に戻るシステムリスク管理
layerx
PRO
0
1k
Autonomous AI Databaseサービス・アップデート(FY27)/ adb-service-update-jp-fy27
oracle4engineer
PRO
0
110
WAF 運用改善の承認サイクル/SRE_BizReach_MIXI_1
visional_engineering_and_design
0
110
動画配信アプリでの Engage SDK 導入 — TVer Android が Play ストアにコンテンツを届けるまで
techtver
PRO
0
120
Bet AI Day 2026丨Agentは、「金融」という巨大産業の何を変えられるのか
layerx
PRO
0
900
Microsoft 365 Copilot chat -tekoälypalvelun tietosuojaongelmat
hponka
0
310
PdMをやめて、 "プロダクトビルダー"という 働き方に変えました / PdM to Product Builder
shikichee
2
720
grill-me(grilling):AI駆動開発を超助けてくれるSkill / grill me
mathbullet
0
110
Redmine 7.0で私が開発した新機能の狙いと背景
vividtone
1
110
AIとペアプロを始める。人とのペアプロをやめる。ペアプロの良さを改めて知る。もっと好きになった。 / Rediscovering Pair Programming
honyanya
1
250
コスト最適化の「めんどくさい」を AWS FinOps Agent でチョット楽にする
classmethod_kaz
0
230
「重なり」は迎える側がつくる ― 人もAIエージェントも歓迎するプロダクトエンジニアリング ―
go0517go
PRO
0
250
Featured
See All Featured
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
430
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
320
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Crafting Experiences
bethany
1
290
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1k
Navigating Weather and Climate Data
rabernat
0
510
Speed Design
sergeychernyshev
33
2.1k
The SEO identity crisis: Don't let AI make you average
varn
0
550
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
510
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