トレーニング済みモデルの統計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_memory
やml.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_state
がfailed
の場合にのみ設定されます。 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_match
がfalse
の場合、このコードはリクエストに一致するリソースがないか、リクエストに対して部分一致のみがあることを示します。
例
以下の例は、すべてのトレーニング済みモデルの使用情報を取得します:
Python
resp = client.ml.get_trained_models_stats()
print(resp)
Ruby
response = client.ml.get_trained_models_stats
puts response
Js
const response = await client.ml.getTrainedModelsStats();
console.log(response);
コンソール
GET _ml/trained_models/_stats
コンソール-結果
{
"count": 2,
"trained_model_stats": [
{
"model_id": "flight-delay-prediction-1574775339910",
"pipeline_count": 0,
"inference_stats": {
"failure_count": 0,
"inference_count": 4,
"cache_miss_count": 3,
"missing_all_fields_count": 0,
"timestamp": 1592399986979
}
},
{
"model_id": "regression-job-one-1574775307356",
"pipeline_count": 1,
"inference_stats": {
"failure_count": 0,
"inference_count": 178,
"cache_miss_count": 3,
"missing_all_fields_count": 0,
"timestamp": 1592399986979
},
"ingest": {
"total": {
"count": 178,
"time_in_millis": 8,
"current": 0,
"failed": 0
},
"pipelines": {
"flight-delay": {
"count": 178,
"time_in_millis": 8,
"current": 0,
"failed": 0,
"processors": [
{
"inference": {
"type": "inference",
"stats": {
"count": 178,
"time_in_millis": 7,
"current": 0,
"failed": 0
}
}
}
]
}
}
}
}
]
}