Ultralytics YOLO27:

モニタリング#

Ultralytics Platformでは、デプロイ済みエンドポイントのモニタリングを利用できます。エンドポイントへのリクエスト、レイテンシ、エラー、ログを追跡できます。最新のランタイムで稼働するReady状態の専用エンドポイントでは、リアルタイムの予測統計情報や一時的なサンプルも確認でき、データセットに保存できます。

Ultralytics Platformのデプロイメントタブ:世界地図と概要カード

デプロイメントタブ#

プロフィールのDeploymentsタブは、すべてのデプロイメントのモニタリングダッシュボードとして機能します。世界地図、概要メトリクス、デプロイメント管理を1つの画面にまとめています。デプロイメントの作成と管理については、専用エンドポイントをご覧ください。

概要カード#

ページ上部の4つのサマリーカードには、次の情報が表示されます。

Ultralytics PlatformのDeploymentsタブにある4つの概要カード

指標説明
アクティブなデプロイメント現在Ready状態のエンドポイント
HTTPリクエスト数(24時間)予測、モニタリング、ヘルスチェックのリクエストを含む、全エンドポイントのHTTPリクエスト数
HTTPエラー率(24時間)リクエスト数で重み付けした、ステータスが4xxまたは5xxのレスポンスの割合
HTTP P95レイテンシ(24時間)時間ごとの95パーセンタイルレイテンシを、リクエスト数で重み付けして平均した値

中央値ではなくP95レイテンシを表示します。ヘルスチェックは数ミリ秒で完了するため、中央値では実際の推論レイテンシの状況が把握しにくくなるためです。

エラー率アラート

エラー率が5%を超えると、エラー率カードが赤くハイライトされます。エラーを診断するには、個々のデプロイメントのLogsタブを確認してください。

世界地図#

インタラクティブな世界地図には、次の情報が表示されます。

  • 利用可能な42のすべてのリージョンを示すリージョンピン
  • Ready状態のデプロイメントがあるリージョンを示す緑色のピン
  • デプロイメントが進行中のリージョンを示すアニメーション付きの青色のピン
  • デプロイメントの状態とレイテンシに応じて変化するピンのサイズ

任意のリージョンをクリックすると、New Deploymentダイアログが開きます。小さな画面では地図は非表示になります。

デプロイ済みリージョンを表示するUltralytics PlatformのDeploymentsタブの世界地図

デプロイメント一覧#

概要カードの下にあるデプロイメント一覧には、プロジェクト全体のすべてのエンドポイントが表示されます。表示モードの切り替えで、次の表示を選択できます。

表示説明
カードステータス、サイズ、メトリクス、距離、デプロイ日を表示するカード
コンパクト主要なメトリクスを表示する小型カードのグリッド(1~4列)
テーブルCPU、メモリ、HTTPメトリクス、距離などの列を並べ替えられるDataTable
リアルタイム更新

タブは自動更新され、デプロイメントの状態が変化している間(creating、deploying、stopping)は更新頻度が上がります。各カードと行からデプロイメントページに移動できます。

デプロイメントごとのメトリクス#

各デプロイメントページでは、Overview、Monitoring、Predict、Logsの各タブの上にリアルタイムメトリクスが表示されます。

メトリクスカード#

指標説明
HTTPリクエスト数(24時間)予測、モニタリング、ヘルスチェックのリクエストを含むリクエスト数
HTTPエラー率(24時間)4xxおよび5xxレスポンスの割合
HTTP P95レイテンシ(24時間)15分間のP95レイテンシの95パーセンタイル

各カードにはスパークラインが表示され、1分ごとに更新されます。また、デプロイ済みモデルへのリンクを含むカードが隣に表示されます。メトリクスはReady状態のデプロイメントでのみ収集されます。Deploymentsタブでは、直近20件のデプロイメントについてメトリクスを取得します。

ヘルスチェック#

稼働中のデプロイメントのOverviewタブにあるEndpointカードには、ヘルスチェックのインジケーターが表示されます。

インジケーター意味
緑色のハート正常 — レスポンスのレイテンシを表示
赤色のハート異常 — エラーメッセージを表示
回転アイコンヘルスチェック実行中

異常な状態ではヘルスチェックが自動的に再試行され、エンドポイントが応答すると停止します。デプロイメントページを開くとヘルスチェックが実行され、再確認ボタンをクリックするともう一度実行されます。この機能を使えば、トラフィックを送信する前にスケール・トゥ・ゼロのエンドポイントをウォームアップすることもできます。

レイテンシを表示する、正常なヘルスチェック状態のUltralytics Platformデプロイメントカード

コールドスタートへの対応

Platformはヘルスチェックの待ち時間を延長し、一時的な接続エラーを再試行するため、スケール・トゥ・ゼロのエンドポイントが起動する時間を確保できます。最初のヘルスチェックが応答するまでは、バッジにStartingと表示され、PredictタブとMonitoringタブにはEndpoint is startingと表示されます。エンドポイントが応答すると自動的に更新されます。チェックに失敗すると、バッジにNot respondingと表示され、該当するタブにRetryが表示されます。

Monitoringタブ#

Ready状態の専用エンドポイントのデプロイメントページを開き、モニタリングタブを選択します。予測タブまたはエンドポイントAPIから画像を送信するか、バックグラウンドカメラを稼働させると、一時的なサンプルと予測統計が表示されます。最初の画像が処理されるまでは、タブに処理された画像はありませんと表示されます。

エンドポイントの利用条件

モニタリングは、Freeプランのデフォルトサイズのエンドポイントを含む、すべてのReady状態の専用エンドポイントで利用できます。既存のエンドポイントにはランタイムの各リリースが自動で適用されないため、古いエンドポイントではランタイムを更新するまでMonitoring unavailableと表示される場合があります。

一時的なサンプルと統計情報を表示するUltralytics Platformのデプロイメントモニタリング

一時データ

モニタリングは軽量かつ一時的な機能です。チャート、予測統計情報、サンプル画像は、サービングインスタンスのメモリ内にのみ保存されます。エンドポイントのシャットダウン、停止、再起動、再デプロイ、リソース変更、モデルの差し替えによって、これらのデータが失われることがあります。エンドポイントを再起動しても履歴は復元されません。エンドポイントを変更する前に、必要なサンプルをデータセットに保存し、取り込みが完了するまでお待ちください。

一時的なサンプル#

ギャラリーには、予測オーバーレイ付きの最近処理された画像が表示されます。画像を開くと全画面ビューアーで予測を確認でき、表示コントロールでオーバーレイを調整できます。ギャラリーには最初に最大12件のサンプルが表示され、Show allをクリックするとすべて表示されます。

  • キャプチャ: 最近処理された画像は、一時的なサンプルとして最大1秒に1枚表示されます。キャプチャはベストエフォートで行われ、サンプルのエンコードを推論が待つことはありません。
  • 容量: 圧縮画像、予測メタデータ、関連アセットで共有するメモリ予算は100 MiBで、画像は最大100枚までです。インターフェースでは、この予算を100 MBと表示します。
  • 置き換え: どちらかの上限に達すると、古いサンプルが置き換えられます。表示中のサンプルが利用できなくなる場合があります。
  • 保存: 一時的なサンプルはエンドポイントのメモリ内に保持されます。データセットへの保存には、通常のワークスペースのストレージ容量と処理上限が適用されます。

予測ビューアーを表示するUltralytics Platformのデプロイメントモニタリング

サンプルをデータセットに保存#

コンテンツ編集権限を持つワークスペースメンバーは、エンドポイントのワークスペース内にあるデータセットにサンプルを保存できます。

  1. チェックボックスを使って個別のサンプルを選択するか、Select allをクリックします。
  2. Save to datasetをクリックします。
  3. デプロイ済みモデルと同じタスクを持つ既存のデータセットを選択します。接続されたソースを使用するデータセットは対象外です。利用可能なデータセットがない場合は、先に互換性のあるデータセットを作成してください。
  4. 選択した画像数が表示されるSaveボタンをクリックし、データセットを開いて処理状況を確認します。

選択した画像と予測は、標準的なデータセットのアップロードおよび取り込みワークフローを通じてコピーされます。通常のクォータ、クラスマッピング、重複処理が適用されます。保存後も一時的なサンプルはギャラリーに残ります。データセットへの取り込みが正常に完了した画像は、エンドポイントの再起動や削除後も保持されます。トレーニングに使用する前に、予測ラベルを確認してください。各保存画像にはカスタムメタデータとしてdeploymentId、deploymentName、deploymentRegion、deploymentRegionNameが記録され、データセット検索の対象になります。名前は保存時点のものが記録され、重複としてスキップされた画像は既存のメタデータを保持します。

サンプルのデータセットへの保存を示すUltralytics Platformのデプロイメントモニタリング

一時的なサンプルを削除するには、画像にマウスカーソルを合わせてゴミ箱コントロールを使うか、サンプルを選択して一括削除ボタンをクリックし、Deleteを確定します。サンプルを削除しても、集計済みの予測統計情報や、すでにデータセットに保存した画像は変更されません。

予測統計情報#

統計情報は、ギャラリーとは独立して処理済み画像を集計します。サンプルを削除または置き換えても、そのサンプルの集計値は差し引かれません。サマリーには、選択した期間の画像数、予測数、予測のない画像数が表示されます。深度モデルでは画像数が表示されます。

日付ピッカーの初期設定は過去30日間で、最大365日間の範囲を指定できます。選択した日付にはUTCの境界が適用され、チャートのタイムスタンプはローカル時刻で表示されます。過去3日間までの範囲全体が直近72時間に含まれる場合、時間単位の履歴が使われます。それ以外の範囲では日単位の履歴が使われます。日付範囲は統計情報に適用されますが、ギャラリーには現在の一時的なサンプルが引き続き表示されます。

履歴は72時間分の時間単位バケットと365日分の日単位バケットに制限され、現在のインスタンスの起動後に限り利用できます。選択した期間に処理済み画像がない場合は、No images processed in this periodと表示されます。

利用可能なチャートは、タスクと収集された予測データによって異なります。

グラフ表示内容
時系列の予測数処理済み画像数と予測数の合計。深度モデルでは時系列の画像数を表示
推論時間ネットワークとリクエストのオーバーヘッドを除いた、モデル推論時間の平均値(ミリ秒)
上位クラスクラスごとの予測数
画像あたりの予測数予測のない画像と最後の100+区分を含む分布。分類タスクと深度タスクでは非表示
予測信頼度信頼度スコアが利用できる場合の、信頼度の分布と平均値
時系列の信頼度各時間バケットの平均予測信頼度
予測の寸法ボックスの寸法が利用できる場合の、入力画像に対する予測の幅と高さ
予測位置位置データが利用できる場合の、予測の空間ヒートマップ

予測統計情報を示すUltralytics Platformのデプロイメントモニタリング

信頼度と空間統計情報を示すUltralytics Platformのデプロイメントモニタリング

統計情報の解釈

信頼度はモデルの確信度を示すものであり、正確さを示すものではありません。精度を評価する際は、例を確認し、レビュー済みのラベルと比較してください。Inference Timeはモデルの実行時間を測定しますが、デプロイのP95 Latencyにはリクエスト処理時間が含まれ、ヘルスチェックなど推論以外のトラフィックも反映される場合があります。

モニタリングは、パネルが開いていて表示されている間は自動的に更新され、パネルが画面外にある場合やブラウザーのタブが非表示の場合は一時停止します。デプロイのPredictタブから推論が正常に実行された場合も、統計情報が更新されます。

ログ#

各デプロイページには、最近のログエントリを表示するためのLogsタブがあります。

Ultralytics Platformのデプロイカードにある、重大度フィルター付きログタブ

ログエントリ#

各ログエントリには、次の情報が表示されます。

項目説明
重大度色分けされたバー(下記参照)
タイムスタンプリクエスト時刻(ローカル形式)
メッセージログの内容
HTTP情報ステータスコードとレイテンシ(該当する場合)

各エントリには、重大度を示す色分けされたバーが付いています。

レベル色説明
DEBUG灰色デバッグメッセージ
INFO青色通常のリクエスト
WARNING琥珀色重大ではない問題
ERROR赤色失敗したリクエスト
CRITICAL赤色重大な障害

APIでは、ログのすべての重大度をカンマ区切りのフィルターとして指定できます。DEBUG、INFO、NOTICE、WARNING、ERROR、CRITICAL、ALERT、EMERGENCY。

UIには最新の20件が表示され、空のエントリは非表示になります。APIはリクエストあたり50件(最大200件)をデフォルトで返し、さらに過去のログを取得するためのnextPageTokenを返します。

デバッグのワークフロー

エラーを調査する場合は、まずエラーをクリックしてERRORとWARNINGのエントリに絞り込み、タイムスタンプとHTTPステータスコードを確認します。ログをクリップボードにコピーして、チームと共有してください。

コード例#

各デプロイのPredictタブにあるDocs結果タブには、エンドポイントURLと、ワークスペース所有者の場合はデプロイに紐付けられたAPIキーが入力済みの、すぐに使えるAPIコードが表示されます。コピーして実行できます。所有者以外には、YOUR_API_KEYプレースホルダーが表示されます。

import requests

# デプロイエンドポイント
url = "https://YOUR_DEPLOYMENT_URL.run.app/predict"

# デプロイAPIキーを含むヘッダー
headers = {"Authorization": "Bearer YOUR_API_KEY"}

# 推論パラメーター
data = {"conf": 0.25, "iou": 0.7, "imgsz": 640}

# 推論する画像を送信
with open("image.jpg", "rb") as f:
    response = requests.post(url, headers=headers, data=data, files={"file": f})

print(response.json())
自動入力される認証情報

デプロイのPredictタブにあるDocsの例では、エンドポイントURLと、ワークスペース所有者の場合はデプロイの紐付けられたAPIキーがあらかじめ入力されています。キーの生成方法については、APIキーをご覧ください。

デプロイ済みモデルの推論#

各デプロイページのPredictタブには、インラインのPredictパネルがあります。これはモデルのPredictタブと同じインターフェースですが、共有サービスではなくデプロイのエンドポイントを通じて推論を実行します。ブラウザーからデプロイ済みエンドポイントを直接テストする際に便利です。パラメーターの詳細とレスポンス形式については、推論をご覧ください。

APIエンドポイント#

各デプロイには、所有者とデプロイ名を使ってアクセスし、各ルートにはAPIキーが必要です。認証の詳細については、APIリファレンスをご覧ください。

デプロイのメトリクス#

GET /api/deployments/{owner}/{deployment}/metrics?range=24h

Python SDK: client.deployments.metrics(owner, deployment, range="24h")

デプロイのメトリクス全体を返します。総リクエスト数、エラー数とエラー率、平均、P50、P95、P99のレイテンシを含むsummaryブロックと、リクエスト数、エラー数、P50およびP95のレイテンシ、CPUとメモリの使用率、インスタンス数を含むtimeSeries配列が含まれます。

パラメーター種類説明
range文字列期間: 1h、6h、24h、7d、または30d(デフォルトは24h)
sparklineブール値全ペイロードの代わりに、ダッシュボードの簡易サマリーを返します
view文字列overviewは、リクエスト数、エラー数、P95レイテンシのメトリクスのみを返します

sparkline=trueを指定すると、簡易サマリーが返されます。過去24時間の時間ごとのリクエスト数(リクエストがない時間は省略)、総リクエスト数、エラー率、および時間ごとのP95レイテンシの平均であるavgLatencyMsが含まれます。view=overviewを指定すると、summaryにはtotalRequests、errorRate、p95LatencyMsが入り、timeSeriesにはrequests、errors、latencyP95が入ります。デプロイページの統計カードではこのビューが使用され、自動的に更新されます。

デプロイのログ#

GET /api/deployments/{owner}/{deployment}/logs?limit=50&severity=ERROR,WARNING

Python SDK: client.deployments.logs(owner, deployment, limit=50, severity="ERROR,WARNING")

オプションの重大度フィルターとページネーションを指定して、最近のログエントリを返します。

パラメーター種類説明
limit整数返すエントリの最大数(デフォルト: 50、最大: 200)
severity文字列重大度フィルター(カンマ区切り)
pageToken文字列前回のレスポンスから取得したページネーショントークン

デプロイのヘルス#

GET /api/deployments/{owner}/{deployment}/health

Python SDK: client.deployments.health(owner, deployment)

デプロイにPingを送信し、測定した往復レイテンシとともにヘルスステータスを返します。

{
    "healthy": true,
    "status": 200,
    "latencyMs": 142
}

エンドポイントにまったく到達できなかった場合、異常を示すレスポンスではstatusが省略され、errorメッセージが追加されます。

ダッシュボードの概要

Deploymentsタブに表示される集計値は、単一のRESTエンドポイントでは取得できません。GET /api/deployments/{owner}(client.deployments.list(owner))から返される各デプロイについて、メトリクスルートを呼び出すことで同じ集計値を取得できます。

パフォーマンスの最適化#

モニタリングデータを活用して、デプロイを最適化しましょう。

レイテンシが高すぎる場合は、次の点を確認してください。

  1. モデルのサイズが適切か確認する
  2. より近いリージョンを検討する
  3. 各リクエストで送信する画像サイズを確認する
レイテンシの短縮

より小さいimgsz値を試し、モデルのレイテンシと精度を比較してください。呼び出し元に近いリージョンにデプロイすると、ネットワークレイテンシを短縮できます。

よくある質問#

  • 予測統計と一時的な例は、上記のバケットとギャラリーの上限内で、サービングインスタンスの存続期間中のみ保持されます。停止、再起動、再デプロイ、サイズ変更、またはモデルの置き換えによって、データが消去される場合があります。データセットに正常に保存された例のみ、エンドポイントとは独立して保持されます。

    運用メトリクスとログには、それぞれ異なる履歴期間があります。メトリクスAPIでは、1時間から30日までの期間を選択できます。期間が長くなるほどサンプリング間隔は粗くなり、1時間では1分単位、30日では4時間単位になります。デプロイのLogsタブには最新の20件のログエントリが表示されます。ログAPIでは、リクエストあたり最大200件を取得でき、ページネーションにも対応しています。

    メトリクスとログはデプロイが存在する間のみ保持されるため、デプロイを削除すると履歴にもアクセスできなくなります。エンドポイントを削除する前に、必要なデータをエクスポートしてください。

  • はい。プロフィールのDeploymentsタブにはすべてのエンドポイントが表示され、集計概要カードも確認できます。テーブルビューでは、デプロイ間のパフォーマンスを比較できます。

  • いいえ。メトリクスとヘルスチェックは、Ready状態のデプロイについてのみ収集されます。停止中のエンドポイントでは、デプロイページと履歴期間は維持されますが、再度起動するまでリアルタイムの数値は表示されません。

コメント