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
280
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
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
LangChainから学ぶプロンプトエンジニアリングテクニック
knishioka
0
270
Other Decks in Technology
See All in Technology
Fargateを使った研修の話
takesection
0
120
プロダクト成長に対応するプラットフォーム戦略:Authleteによる共通認証基盤の移行事例 / Building an authentication platform using Authlete and AWS
kakehashi
1
150
ABEMA のコンテンツ制作を最適化!生成 AI x クラウド映像編集システム / abema-ai-editor
cyberagentdevelopers
PRO
1
180
Commitment vs Harrisonism - Keynote for Scrum Niseko 2024
miholovesq
6
1.1k
「視座」の上げ方が成人発達理論にわかりやすくまとまってた / think_ perspective_hidden_dimensions
shuzon
2
4.8k
Aurora_BlueGreenDeploymentsやってみた
tsukasa_ishimaru
1
130
ガチ勢によるPipeCD運用大全〜滑らかなCI/CDを添えて〜 / ai-pipecd-encyclopedia
cyberagentdevelopers
PRO
3
210
プロダクトチームへのSystem Risk Records導入・運用事例の紹介/Introduction and Case Studies on Implementing and Operating System Risk Records for Product Teams
taddy_919
1
170
新卒1年目が挑む!生成AI × マルチエージェントで実現する次世代オンボーディング / operation-ai-onboarding
cyberagentdevelopers
PRO
1
170
APIテスト自動化の勘所
yokawasa
7
4.2k
生成AIの強みと弱みを理解して、生成AIがもたらすパワーをプロダクトの価値へ繋げるために実践したこと / advance-ai-generating
cyberagentdevelopers
PRO
1
180
新卒1年目が向き合う生成AI事業の開発を加速させる技術選定 / ai-web-launcher
cyberagentdevelopers
PRO
7
1.5k
Featured
See All Featured
The Invisible Side of Design
smashingmag
297
50k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
26
2.1k
Faster Mobile Websites
deanohume
304
30k
Thoughts on Productivity
jonyablonski
67
4.3k
How to train your dragon (web standard)
notwaldorf
88
5.7k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
6.9k
Agile that works and the tools we love
rasmusluckow
327
21k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.2k
RailsConf 2023
tenderlove
29
880
How GitHub (no longer) Works
holman
311
140k
A Tale of Four Properties
chriscoyier
156
23k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.5k
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