トレーニング済みモデルの統計API

トレーニング済みモデルの使用情報を取得します。

リクエスト

GET _ml/trained_models/_stats

GET _ml/trained_models/_all/_stats

GET _ml/trained_models/<model_id_or_deployment_id>/_stats

GET _ml/trained_models/<model_id_or_deployment_id>,<model_id_2_or_deployment_id_2>/_stats

GET _ml/trained_models/<model_id_pattern*_or_deployment_id_pattern*>,<model_id_2_or_deployment_id_2>/_stats

前提条件

monitor_ml クラスター権限が必要です。この権限は machine_learning_user ビルトインロールに含まれています。

説明

カンマ区切りのモデルID、デプロイメントID、またはワイルドカード式を使用して、単一のAPIリクエストで複数のトレーニング済みモデルまたはトレーニング済みモデルのデプロイメントの使用情報を取得できます。

パスパラメータ

  • <model_id_or_deployment_id>
  • (オプション、文字列)モデルまたはデプロイメントの一意の識別子。モデルに複数のデプロイメントがある場合、デプロイメントのIDの1つがモデルIDと一致する場合、モデルIDが優先されます。結果はモデルのすべてのデプロイメントに対して返されます。

クエリパラメータ

  • allow_no_match
  • (オプション、ブール値)リクエスト時の動作を指定します:
    • ワイルドカード式を含み、一致するモデルがない場合。
    • _all 文字列を含むか、識別子がない場合で、一致がない場合。
    • ワイルドカード式を含み、部分一致のみがある場合。
      デフォルト値は true で、一致がない場合は空の配列を返し、部分一致がある場合は結果のサブセットを返します。このパラメータが false の場合、リクエストは一致がない場合または部分一致のみの場合に 404 ステータスコードを返します。
  • from
  • (オプション、整数)指定された数のモデルをスキップします。デフォルト値は 0 です。
  • size
  • (オプション、整数)取得するモデルの最大数を指定します。デフォルト値は 100 です。

レスポンスボディ

  • count
  • (整数)リクエストされたIDパターンに一致するトレーニング済みモデルの統計の合計数。trained_model_stats 配列のアイテム数よりも多くなる可能性があります。配列のサイズは提供された size パラメータによって制限されています。
  • trained_model_stats
  • (配列)トレーニング済みモデルの統計の配列で、model_id 値で昇順にソートされています。
    トレーニング済みモデル統計のプロパティ
    • deployment_stats
    • (リスト)提供された model_id 値のいずれかがデプロイされている場合のデプロイメント統計のコレクション
      デプロイメント統計のプロパティ
      • allocation_status
      • (オブジェクト)デプロイメント構成に基づく詳細な割り当て状況。
        割り当て状況のプロパティ
      • allocation_count
      • (整数)モデルが割り当てられている現在のノード数。
      • cache_size
      • ([バイト値](b10cb0563daae284.md#byte-units))モデルの各ノードに対する推論キャッシュサイズ(JVMヒープ外のメモリ)。
      • state
      • (文字列)ノードに関連する詳細な割り当て状態。
        • starting: 割り当てが試みられていますが、現在モデルが割り当てられているノードはありません。
        • started: 少なくとも1つのノードにモデルが割り当てられています。
        • fully_allocated: デプロイメントは完全に割り当てられており、target_allocation_count を満たしています。
      • target_allocation_count
      • (整数)モデル割り当てのための希望ノード数。
      • deployment_id
      • モデルのデプロイメントの一意の識別子。
      • error_count
      • (整数)デプロイメント内のすべてのノードの error_count の合計。
      • inference_count
      • (整数)デプロイメント内のすべてのノードの inference_count の合計。
      • model_id
      • (文字列)トレーニング済みモデルの一意の識別子。
      • nodes
      • (オブジェクトの配列)現在モデルが割り当てられている各ノードのデプロイメント統計。
        ノード統計のプロパティ
      • average_inference_time_ms
      • (ダブル)このノードでの各推論呼び出しが完了するまでの平均時間。平均はデプロイメントのライフタイムにわたって計算されます。
      • average_inference_time_ms_excluding_cache_hits
      • (ダブル)キャッシュからの応答がない場合を除く、トレーニング済みモデルの推論を実行するための平均時間。キャッシュヒットを除外することで、この値はモデルを評価するのにかかる平均時間の正確な測定値になります。
      • average_inference_time_ms_last_minute
      • (ダブル)このノードでの各推論呼び出しが完了するまでの平均時間(過去1分間)。
      • error_count
      • (整数)トレーニング済みモデルを評価する際のエラー数。
      • inference_cache_hit_count
      • (整数)このモデルに対してこのノードで行われた推論呼び出しの合計数(推論キャッシュから提供されたもの)。
      • inference_cache_hit_count_last_minute
      • (整数)このモデルに対してこのノードで行われた推論呼び出しのうち、過去1分間に推論キャッシュから提供されたものの数。
      • inference_count
      • (整数)このモデルに対してこのノードで行われた推論呼び出しの合計数。
      • last_access
      • (ロング)このノードでのモデルの最後の推論呼び出しのエポックタイムスタンプ。
      • node
      • (オブジェクト)ノードに関する情報。
        ノードのプロパティ
        • attributes
        • (オブジェクト)ml.machine_memoryml.max_open_jobs 設定などのノード属性をリストします。
        • ephemeral_id
        • (文字列)ノードのエフェメラルID。
        • id
        • (文字列)ノードの一意の識別子。
        • name
        • (文字列)ノード名。
        • transport_address
        • (文字列)トランスポートHTTP接続が受け入れられるホストとポート。
      • number_of_allocations
      • (整数)このノードに割り当てられた割り当ての数。
      • number_of_pending_requests
      • (整数)処理待ちの推論リクエストの数。
      • peak_throughput_per_minute
      • (整数)1分間に処理されたリクエストのピーク数。
      • routing_state
      • (オブジェクト)この割り当ての現在のルーティング状態とその理由。
        ルーティング状態のプロパティ
        • reason
        • (文字列)現在の状態の理由。通常、routing_statefailed の場合にのみ設定されます。
        • routing_state
        • (文字列)現在のルーティング状態。
        • starting: モデルがこのモデルに割り当てようとしており、推論呼び出しはまだ受け入れられていません。
        • started: モデルが割り当てられ、推論リクエストを受け入れる準備ができています。
        • stopping: モデルがこのノードからデアロケートされています。
        • stopped: モデルがこのノードから完全にデアロケートされています。
        • failed: 割り当ての試行が失敗しました。reason フィールドを参照して、潜在的な原因を確認してください。
      • rejected_execution_count
      • (整数)キューが満杯のために処理されなかった推論リクエストの数。
      • start_time
      • (ロング)割り当てが開始されたときのエポックタイムスタンプ。
      • threads_per_allocation
      • (整数)推論中の各割り当てのスレッド数。この値はノードのハードウェアスレッド数によって制限されるため、threads_per_allocation 値と異なる場合があります。
      • timeout_count
      • (整数)処理される前にタイムアウトした推論リクエストの数。
      • throughput_last_minute
      • (整数)過去1分間に処理されたリクエストの数。
      • number_of_allocations
      • (整数)トレーニング済みモデルデプロイメントのために要求された割り当ての数。
      • peak_throughput_per_minute
      • (整数)デプロイメント内のすべてのノードに対して1分間に処理されたリクエストのピーク数。この値は各ノードの peak_throughput_per_minute 値の合計として計算されます。
      • priority
      • (文字列)デプロイメントの優先度。
      • rejected_execution_count
      • (整数)デプロイメント内のすべてのノードの rejected_execution_count の合計。個々のノードは、推論キューが満杯の場合、推論リクエストを拒否します。キューサイズは、トレーニング済みモデルデプロイメントの開始 APIの queue_capacity 設定によって制御されます。
      • reason
      • (文字列)現在のデプロイメント状態の理由。通常、モデルがノードにデプロイされていない場合にのみ設定されます。
      • start_time
      • (ロング)デプロイメントが開始されたときのエポックタイムスタンプ。
      • state
      • (文字列)デプロイメントの全体的な状態。値は次のようになります:
      • starting: デプロイメントは最近開始されましたが、モデルがノードに割り当てられていないため、まだ使用できません。
      • started: デプロイメントは使用可能で、少なくとも1つのノードにモデルが割り当てられています。
      • stopping: デプロイメントは停止の準備をしており、関連するノードからモデルをデアロケートします。
      • threads_per_allocation
      • (整数)推論プロセスで使用される各割り当てのスレッド数。
      • timeout_count
      • (整数)デプロイメント内のすべてのノードの timeout_count の合計。
      • queue_capacity
      • (整数)新しいリクエストが拒否される前にキューに入る可能性のある推論リクエストの数。
    • inference_stats
    • (オブジェクト)推論統計フィールドのコレクション。
      推論統計のプロパティ
      • missing_all_fields_count
      • (整数)モデルのすべてのトレーニング機能が欠落している推論呼び出しの数。
      • inference_count
      • (整数)モデルが推論のために呼び出された合計回数。これはすべての推論コンテキスト、すべてのパイプラインを含みます。
      • cache_miss_count
      • (整数)推論のためにモデルが読み込まれ、キャッシュから取得されなかった回数。この数が inference_count に近い場合、キャッシュが適切に使用されていないことを示します。これは、キャッシュサイズまたはそのTTL(生存時間)を増やすことで解決できます。適切な設定については、一般的な機械学習設定を参照してください。
      • failure_count
      • (整数)モデルを推論に使用する際の失敗の数。
      • timestamp
      • ([時間単位](b10cb0563daae284.md#time-units))統計が最後に更新された時間。
    • ingest
    • (オブジェクト)すべてのノードにわたるモデルの取り込み統計のコレクション。値は個々のノード統計の合計です。形式は、ノード統計ingest セクションに一致します。
    • model_id
    • (文字列)トレーニング済みモデルの一意の識別子。
    • model_size_stats
    • (オブジェクト)モデルサイズ統計フィールドのコレクション。
      モデルサイズ統計のプロパティ
      • model_size_bytes
      • (整数)モデルのサイズ(バイト単位)。
      • required_native_memory_bytes
      • (整数)モデルを読み込むために必要なメモリ量(バイト単位)。
    • pipeline_count
    • (整数)現在モデルを参照している取り込みパイプラインの数。

レスポンスコード

  • 404 (リソースが不足しています)
  • allow_no_matchfalse の場合、このコードはリクエストに一致するリソースがないか、リクエストに対して部分一致のみがあることを示します。

以下の例は、すべてのトレーニング済みモデルの使用情報を取得します:

Python

  1. resp = client.ml.get_trained_models_stats()
  2. print(resp)

Ruby

  1. response = client.ml.get_trained_models_stats
  2. puts response

Js

  1. const response = await client.ml.getTrainedModelsStats();
  2. console.log(response);

コンソール

  1. GET _ml/trained_models/_stats

APIは次の結果を返します:

コンソール-結果

  1. {
  2. "count": 2,
  3. "trained_model_stats": [
  4. {
  5. "model_id": "flight-delay-prediction-1574775339910",
  6. "pipeline_count": 0,
  7. "inference_stats": {
  8. "failure_count": 0,
  9. "inference_count": 4,
  10. "cache_miss_count": 3,
  11. "missing_all_fields_count": 0,
  12. "timestamp": 1592399986979
  13. }
  14. },
  15. {
  16. "model_id": "regression-job-one-1574775307356",
  17. "pipeline_count": 1,
  18. "inference_stats": {
  19. "failure_count": 0,
  20. "inference_count": 178,
  21. "cache_miss_count": 3,
  22. "missing_all_fields_count": 0,
  23. "timestamp": 1592399986979
  24. },
  25. "ingest": {
  26. "total": {
  27. "count": 178,
  28. "time_in_millis": 8,
  29. "current": 0,
  30. "failed": 0
  31. },
  32. "pipelines": {
  33. "flight-delay": {
  34. "count": 178,
  35. "time_in_millis": 8,
  36. "current": 0,
  37. "failed": 0,
  38. "processors": [
  39. {
  40. "inference": {
  41. "type": "inference",
  42. "stats": {
  43. "count": 178,
  44. "time_in_millis": 7,
  45. "current": 0,
  46. "failed": 0
  47. }
  48. }
  49. }
  50. ]
  51. }
  52. }
  53. }
  54. }
  55. ]
  56. }