830 Views
March 13, 25
スライド概要
株式会社 Fusic で機械学習エンジニアをしています。自然言語処理に興味があります。
CONFIDENTIAL 今日から始める LLMOps ~Langfuse を添えて~ LLM Meetup Fukuoka 2025.03.12 瓦祐希 @kawara_y ©Fusic Co., Ltd. 0
はじめに 自己紹介 株式会社 Fusic 事業本部 先進技術部門 機械学習チーム 瓦 祐希 Yuki Kawara • 博士(情報科学) • 2024 Japan AWS Jr. Champions • 甲賀忍者検定初級 • ビール検定三級 @kawara_y ©Fusic Co., Ltd. 1
ところでみなさん LLM を活用してますか? @kawara_y ©Fusic Co., Ltd. 2
LLM アプリケーションの開発、運用どうしてますか? プロンプト エンジニアリング セキュリティ LLM アプリ 生成文の 評価 @kawara_y ログ管理 ©Fusic Co., Ltd. 3
というわけで、今日のお話は LLMOps FMOps/LLMOps:生成系 AI の運用と MLOps との違い より引用 • LLMOps ⊂ FMOps(基盤モデルの運用) • ざっくり言うとテキスト系のモデルを使ったアプリケーションの DevOps @kawara_y ©Fusic Co., Ltd. 4
LLM を使ったアプリのつらいところ 開発時のデバッグが大変 特にエージェントは複数回入出力があり、LLM の出力に依存する部分も 多く動作が追いづらい。 ユーザーがどう使用しているかが分からない 実際のログを見ないと(読まないと)ユーザーがどういう入力をしている のか分からない。 生成したテキストの品質が分からない 定量的な評価が難しく、ユーザーの役に立っているかが確認しづらい。 @kawara_y ©Fusic Co., Ltd. 5
LLM を使ったアプリのつらいところ 開発時のデバッグが大変 特にエージェントは複数回入出力があり、LLM の出力に依存する部分も その問題、LLMOps で楽にしましょう 多く動作が追いづらい。 ユーザーがどう使用しているかが分からない 実際のログを見ないと(読まないと)ユーザーがどういう入力をしている のか分からない。 生成したテキストの品質が分からない 定量的な評価が難しく、ユーザーの役に立っているかが確認しづらい。 @kawara_y ©Fusic Co., Ltd. 6
LLMOps 用のツール LangSmith … LangChain 系ツールの一つ。LangChain との連携が容易だが、 他のライブラリとの連携も可能。 Langtrace … OpenTelemetry を活用したトレース。Vector DB との統合も 簡単に出来る。 Langfuse … OSS として公開されていたり SaaS としても提供されている。 @kawara_y ©Fusic Co., Ltd. 7
LLMOps 用のツール LangSmith … LangChain 系ツールの一つ。LangChain との連携が容易だが、 他のライブラリとの連携も可能。 Langtrace 使いたい機能やホスト環境でどれを使うべきかは変わるが、 … OpenTelemetry を活用したトレース。Vector DB との統合も 簡単に出来る。 今日は個人的にハマっている Langfuse を紹介 Langfuse … OSS として公開されていたり SaaS としても提供されている。 @kawara_y ©Fusic Co., Ltd. 8
LLMOps ツールで出来ること データ管理 • 人間によって作成されたデータの管理 • プロンプトのバージョン管理 監視 • アプリケーションがどれくらい呼び出されたのか • 入出力の履歴(=トレース)の遷移はどうだったか 評価の記録 • 生成したテキストの良さ(良い/悪いの二値分類、数値によるスコア付けなど) @kawara_y ©Fusic Co., Ltd. 9
Langfuse って? … オープンソースの LLM エンジニアリングプラットフォーム @kawara_y ©Fusic Co., Ltd. 10
Langfuse オススメポイント • OSS で、セルフホストが出来る(ローカルでも AWS でも OK) • SaaS としても提供されているので一旦試してみるまでがとても簡単 • LangChain やそれ以外のフレームワークとも統合が簡単に出来る → ベンダーに依存しないので拡張しやすい @kawara_y ©Fusic Co., Ltd. 11
Langfuse のダッシュボード あ @kawara_y ©Fusic Co., Ltd. 12
Langfuse による最低限のトレース @kawara_y ©Fusic Co., Ltd. 13
Langfuse による最低限のトレース • obserse デコレータを一行追加するだけでその関数の入出力を記録する ことが出来る @kawara_y ©Fusic Co., Ltd. 14
LangGraph と Langfuse の連携 • LangGraph は invoke 関数で 呼び出すことが可能 • invoke 呼び出し時に Langfuse の コールバックを渡すだけで トレースを記録してくれる @kawara_y ©Fusic Co., Ltd. 15
LangGraph と Langfuse の連携 • LangGraph は invoke 関数で 呼び出すことが可能 • invoke 呼び出し時に Langfuse の コールバックを渡すだけで トレースを記録してくれる デバッグがとても楽に出来る。 @kawara_y ©Fusic Co., Ltd. 16
Langfuse でのプロンプト管理 • コードと分離した環境で プロンプトを管理できる。 コードが簡潔になる、 プロンプトが再利用できる。 • 例えばプロンプトを変えた 場合のユーザーの反応を、 スコアと合わせることで 簡単に A/B テストできる。 @kawara_y ©Fusic Co., Ltd. 17
Langfuse での評価 • 外部での評価結果 or Langfuse 上で 評価することで入出力のペアに 対してスコアを付けられる。 (カテゴリでも数値でも) • 定期的にスコアを付けることで ダッシュボードで生成文の 評価の推移の監視もできる。 @kawara_y ©Fusic Co., Ltd. 18
Take-home Message • “LLMOps” という考え方があり、LLMOps を行うためのツールの 一つに Langfuse がある。 • Langfuse を使うことで、LLM への入出力の可視化が簡単に出来る。 → デバッグが簡単、開発の速度が上がる。 • LLM を使ったアプリに必要な機能が一通り揃っているので、 Langfuse に限らずどれかを使ってみるのがオススメ! @kawara_y ©Fusic Co., Ltd. 19
Thank You ご清聴いただきありがとうございました! We are Hiring! https://recruit.fusic.co.jp/ @kawara_y ©Fusic Co., Ltd. 21