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
ML Pipelineの開発と運用を OpenTelemetryで繋ぐ @ OpenTelem...
Search
Yoshimura Naoya
July 23, 2025
Technology
0
200
ML Pipelineの開発と運用を OpenTelemetryで繋ぐ @ OpenTelemetry Meetup 2025-07
Presentation at "OpenTelemetry Meetup 2025-07"
https://opentelemetry.connpass.com/event/360245/
Yoshimura Naoya
July 23, 2025
Tweet
Share
More Decks by Yoshimura Naoya
See All by Yoshimura Naoya
20250426 GDGoC 合同新歓 - GDGoC のススメ
getty708
0
130
回想録 ~ GDSC Osakaの立上げから引継ぎまで ~ @ GDGoC Japan Connect 2025
getty708
0
43
"OpenPack: A Large-scale Dataset for Recognizing Packaging Works in IoT-enabled Logistic Environments" (PerCom2024 - Presentation)
getty708
0
89
OpenPack Challenge 2022 - チュートリアル (日本語)
getty708
0
530
Other Decks in Technology
See All in Technology
PHPでResult型やってみよう
higaki_program
0
180
SRE with AI:実践から学ぶ、運用課題解決と未来への展望
yoshiiryo1
1
680
QAを早期に巻き込む”って どうやるの? モヤモヤから抜け出す実践知
moritamasami
2
170
Introduction to Bill One Development Engineer
sansan33
PRO
0
270
BEYOND THE RAG🚀 ~とりあえずRAG?を超えていけ! 本当に使えるAIエージェント&生成AIプロダクトを目指して~ / BEYOND-THE-RAG-Toward Practical-GenerativeAI-Products-AOAI-DevDay-2025
jnymyk
4
230
スプリントレビューを効果的にするために
miholovesq
9
1.6k
The Madness of Multiple Gemini CLIs Developing Simultaneously with Jujutsu
gunta
1
2.4k
大規模組織にAIエージェントを迅速に導入するためのセキュリティの勘所 / AI agents for large-scale organizations
i35_267
6
210
AIを使っていい感じにE2Eテストを書けるようになるまで / Trying to Write Good E2E Tests with AI
katawara
2
1.5k
Microsoft Fabric ガバナンス設計の一歩目を考える
ryomaru0825
1
250
Data Engineering Study#30 LT資料
tetsuroito
1
550
DATA+AI SummitとSnowflake Summit: ユーザから見た共通点と相違点 / DATA+AI Summit and Snowflake Summit
nttcom
0
190
Featured
See All Featured
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
30
2.2k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
BBQ
matthewcrist
89
9.7k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.6k
Embracing the Ebb and Flow
colly
86
4.8k
Git: the NoSQL Database
bkeepers
PRO
431
65k
Building an army of robots
kneath
306
45k
Code Reviewing Like a Champion
maltzj
524
40k
Become a Pro
speakerdeck
PRO
29
5.4k
The Cost Of JavaScript in 2023
addyosmani
51
8.6k
Building a Modern Day E-commerce SEO Strategy
aleyda
42
7.4k
Transcript
ML Pipelineの開発と運用を OpenTelemetryで繋ぐ 2025.07.22 Naoya - @ OpenTelemetry Meetup 2025-07
About Me Naoya Yoshimura (X: @Getty708) Machine Learning and MLOps
Engineer (Video Analytics) GDG Tokyo Organizer What I Like: Coffee ☕, Whisky 🥃 My Interests 機械学習, (行動認識技術) Software Engineering JCQA コーヒーインストラクター1級 実技
テクニカルな話はあまりしません ! シンプルな使い方で開発・運用のフローを改善する話です!
動画の解析パイプライン 特徴 • 多数のモデルが必要 • 1台 の GPU で処理 •
スループットが 認識性能 と運用コストに直結 [参考] Nvidia DeepStream の サンプル パイプライン (構成図) • (1) 車の検出 • (2) ナンバープレートの検出 (LPDNet) • (3) ナンバープレートの認識 (LPRNet) … README.md - NVIDIA-AI-IOT/deepstream_reference_apps GPU/ サーバー間のデータコピーの コストを無くし、Latencyを下げるため
今回想定する ML Pipeline (ダミー) • Classical な機械学習モデル (Not LLM) •
1 GPU で全てを実行 • モデルの開発とプロダクションのコードがほぼ同じ ML Pipeline INPUT IMAGE (B3HW) Model 1 Model 2 Model 3 OUTPUT
ML Pipelineの開発 & 運用 サイクル (MLOps) • MLOps = CI
+ CD + CT (Continuous Training) (機械学習モデルの構築 + 継続的な学習 が DevOpsに追加) パイプライン構築 モデルの最適化 モデルの構築 パイプライン & モデルの運用 https://ubuntu.com/blog/what-is-mlops Accuracy Latency & Throughput 各フェーズで 重要なメトリクス
課題 • 「モデル構築」と「開発・運用」フェーズで、使うツールが異なる。 https://ubuntu.com/blog/what-is-mlops Model Development Dev & Ops Latency
/ Throughput など 同じメトリクスを見ているのに、 個別に収集する必要が有 = 冗長
[補足] 実験管理ツール (Weights & Biases) • 機械学習の難しい点 ⇒ 再現性の担保 ◦
実行時のパラメータや環境によって結果が異なる。 ⇒ これらの要因を自動的に収集・保存してくれるツール ⇒ (例) Weight & Biases • 用途 ◦ 実行パラメータと評価結果をセットで管理 ⇒ モデルの改善 • 記録するデータの種類 ◦ Accuracy, Latency, etc … Weight & Biases • 問題点 ◦ 開始・終了があるプロセスの監視を想定 (運用時など、常時稼働 & 複数プロセスの 監視では比較的使いにくい。 )
[補足] モデルの最適化 & プロファイラ • ML Pipeline のボトルネック ⇒ モデルの推論時間
• 対策例 ◦ TensorRT への変換 (命令セットの最適化、 FP32→FP16へ量子化 , etc) ◦ 変換結果を プロファイラ (NVIDIA Nsight Systems) で確認 (GPU の挙動を可視化) • 記録するデータの種類 ◦ Latency GPUでの実行命令 • 課題 ◦ 最適化は、モデルの精度に影響有 ⇒ 再評価が必要 (W&Bに戻って Accuracy 記録) ◦ オーバーヘッド大 & 粒度が細かい ⇒ 長期的な監視には向かない ◦ 処理単位に手動でラベルを付与が必要 with nvtx.annotate("model_1", color="green"): output = model1(input)
課題 (再) 同じメトリクスを見ているのに、個別に収集する必要有 ⇒ これを許容できるか? ts_start = time.time() with nvtx.annotate("model_1",
color="green"): with tracer.start_as_current_span(“model_1”) output = model1(input) duration = time.time() - ts_start() wandb.log({“model1/duration”: duration}) モデル開発 & 評価 (W&B) プロファイル (nvtx) モニタリング (OTel) 冗長! 同時に使わない!
OpenTelemetry を活用した解決策 • 運用時に必要なテレメトリの収集を OpenTelemetry に集約 • OpenTelemetry のカスタム Exporter
を実装 ⇒ OTel のメトリクスを W&B にフォワード ⇒ Accuracy とともに記録可能
カスタム Exporterの実装 “WandbSpanmetricsExporter” 参考: Span Metrics Connector Spanの Durationを メトリクスとして記録するコネクター
(参考) 同じ Batchの情報を 同じ step に記録したい ⇒ Root Span にデータを保存 SpanExporterを継承して実装
Pipelineへの計装例 Root Span のマーカー付与 プロファイラと切り替えられる ようにエイリアスを使用 Model 1 Model 2
実行結果: テスト用動画 Model 1 Pipeline https://wandb.ai/getty708/otel-in-wandb/runs/7vw27ac3?nw=nwusergetty708 本来はこの下に 評価 (Accuracy) が来る。
Model 2 Model 3 注) 異なる sin波 時間かかるダミーモデルを使用
モデルの開発と運用で メトリクスの収集を共通かできた! で、本当にこれって嬉しいの?
メリット1: 開発フローが変わる (1) • これまでの開発 : 虫の目 ◦ 想定を決める ⇒
コンポーネントを一つ一つ作成&評価 (に視野が狭まりがち ) ◦ 全体動かせるまで時間かかる . • OTel を使った開発 : 鳥の目 ◦ パイプラインをデプロイ (ひとまず全体を実行 ) ⇒ リアルな環境でのテレメトリを見てトリアージ ⇒ インパクトの大きい問題から改善 サービスが動いていて、 どこにどのくらい問題があるか分かる というのは心理的にとても安心
メリット1: 開発フローが変わる (2) • Accuracy と Latency / Throughput はトレードオフ
◦ ⇒ 同じメトリクスで議論できる & 行き来がしやすい。 ◦ ⇒ モデルを開発している人の視点を、モニタリングに転用できる。 W&Bで常に同時に見れる!
メリット2: 実データからのフィードバックが円滑に • 事例 1-1: 検証用のデータセットと実環境が異なる . ◦ 検証データでは見たことがない値のメトリクスを発見 ⇒
データセットの想定に入っていない (e.g., 検出数の分布) ⇒ 評価方法やロジックにフィードバック • 事例 1-2: W&B と Prometheus の両方にメトリクスを送信 (荒技) ◦ 平均値を取るとわからなかった異常値が見つかる ! • 事例 2: モニタリング用のメトリクスがモデル・ロジックの改善に役に立つ ◦ e.g., 物体の検出数 ⇒ すでに運用のために実装されている! 異常値 ? 通常
メリット3: トレースの取得 • モデルの実行の様子が簡単に視覚的に確認できる! ◦ パイプラインの挙動の理解ができる。 ◦ プロファイラで可能だが、本番環境で実行するには重すぎる。 • モデルとモデルの間の
Queue での待ち時間 の確認 ◦ メトリクスとして取れていない ◦ トレースをみると、直感的に問題が分かる。 パイプラインが並行処理の 実行時に、特に役に立つ! post-process 長い?
まとめ • 試行: ML Pipeline の開発に OpenTelemetry を導入 ◦ 運用時に使用するメトリクスは、
OpenTelemetry の収集に統一 ◦ そのための カスタム Exporter を実装 ◦ ⇒ 冗長性の低減 & 同じメトリクスが各ツールで確認可能 • 結果: 開発フローが変化 ◦ 鳥の目で全体最適に集中できる。 ◦ 実データからのフィードバックがより簡単になった。 ◦ モデル開発者の視点を、そのまま運用に活かせる。 ◦ トレースは、パイプラインの挙動の理解においてとても有用 開発と運用を OTelが繋げた! (と言ってもいいのでは? )
余談: LLM の開発における OpenTelemetry • OpenLIT (link) ◦ OpenTelemetry ネイティブな
GenAI システムの監視ツール (コスト, Token数, Trace) • 各社ツールも OpenTelemetry をサポート ◦ Gemini CLI (link), ADK (link), LangFuse,