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.
Описание
Вы можете получить информацию об использовании нескольких обученных моделей или развертываний обученных моделей в одном запросе API, используя список идентификаторов моделей, идентификаторов развертываний или выражение с подстановкой.
Параметры пути
-
<model_id_or_deployment_id> - (Необязательный, строка) Уникальный идентификатор модели или развертывания. Если у модели есть несколько развертываний, и идентификатор одного из развертываний совпадает с идентификатором модели, то приоритет отдаётся идентификатору модели; результаты возвращаются для всех развертываний модели.
Параметры запроса
-
allow_no_match -
(Необязательный, Булево) Указывает, что делать при запросе:
- Содержит подстановки, и нет моделей, которые им соответствуют.
- Содержит строку
_allили нет идентификаторов, и нет совпадений. - Содержит подстановки и есть только частичные совпадения.
Значение по умолчанию —
true, которое возвращает пустой массив, когда нет совпадений, и подмножество результатов, когда есть частичные совпадения. Если этот параметр равенfalse, запрос возвращает код состояния404, когда нет совпадений или есть только частичные совпадения. -
from - (Необязательный, целое число) Пропускает указанное количество моделей. Значение по умолчанию —
0. -
size - (Необязательный, целое число) Указывает максимальное количество моделей для получения. Значение по умолчанию —
100.
Ответ тела
-
count - (целое число) Общее количество статистических данных обученной модели, соответствующих запрошенным шаблонам идентификаторов. Может быть больше, чем количество элементов в массиве
trained_model_stats, так как размер массива ограничен переданным параметромsize. -
trained_model_stats -
(массив) Массив статистических данных обученной модели, отсортированный по значению
model_idв порядке возрастания.Свойства статистических данных обученной модели
-
deployment_stats -
(список) Коллекция статистических данных развертывания, если одно из предоставленных значений
model_idразвернутоСвойства статистических данных развертывания
-
allocation_status -
(объект) Подробный статус распределения с учётом конфигурации развертывания.
Свойства статистических данных распределения
-
allocation_count - (целое число) Текущее количество узлов, на которых размещена модель.
-
cache_size - (байтовое значение) Размер кэша вывода (в памяти за пределами кучи JVM) на узел для модели.
-
state -
(строка) Подробное состояние распределения, связанное с узлами.
-
starting: Попытки распределения выполняются, но на данный момент ни один узел не имеет размещённой модели. -
started: По крайней мере, один узел имеет размещённую модель. -
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 - (двойное значение) Среднее время выполнения каждого вызова вывода на этом узле в течение последней минуты.
-
error_count - (целое число) Количество ошибок при оценке обученной модели.
-
inference_cache_hit_count - (целое число) Общее количество вызовов вывода, выполненных на этом узле для этой модели, которые были получены из кэша вывода.
-
inference_cache_hit_count_last_minute - (целое число) Количество вызовов вывода, выполненных на этом узле для этой модели в течение последней минуты, которые были получены из кэша вывода.
-
inference_count - (целое число) Общее количество вызовов вывода, выполненных на этом узле для этой модели.
-
last_access - (длинное целое число) Отметка времени эпохи последнего вызова вывода для модели на этом узле.
-
node -
(объект) Информация, относящаяся к узлу.
Свойства узла
-
attributes - (объект) Список атрибутов узла, таких как настройки
ml.machine_memoryилиml.max_open_jobs. -
ephemeral_id - (строка) Временный идентификатор узла.
-
id - (строка) Уникальный идентификатор узла.
-
name - (строка) Название узла.
-
transport_address - (строка) Хост и порт, на которых принимаются транспортные HTTP-соединения.
-
-
number_of_allocations - (целое число) Количество распределений, назначенных этому узлу.
-
number_of_pending_requests - (целое число) Количество запросов вывода, ожидающих обработки.
-
peak_throughput_per_minute - (целое число) Максимальное количество обработанных запросов за 1 минуту.
-
routing_state -
(объект) Текущее состояние маршрутизации и причина текущего состояния маршрутизации для этого распределения.
Свойства 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в API Развертывание обученной модели. -
timeout_count - (целое число) Количество запросов вывода, которые истекли, прежде чем были обработаны.
-
throughput_last_minute - (целое число) Количество обработанных запросов за последнюю минуту.
-
-
number_of_allocations - (целое число) Запрошенное количество распределений для развертывания обученной модели.
-
peak_throughput_per_minute - (целое число) Максимальное количество обработанных запросов за 1 минуту для всех узлов в развертывании. Вычисляется как сумма значений
peak_throughput_per_minuteкаждого узла. -
priority - (строка) Приоритет развертывания.
-
rejected_execution_count - (целое число) Сумма
rejected_execution_countдля всех узлов в развертывании. Отдельные узлы отклоняют запрос вывода, если очередь вывода заполнена. Размер очереди контролируется настройкойqueue_capacityв API Развертывание обученной модели. -
reason - (строка) Причина текущего состояния развертывания. Обычно заполняется только тогда, когда модель не развернута на узле.
-
start_time - (длинное целое число) Отметка времени эпохи начала развертывания.
-
state -
(строка) Общее состояние развертывания. Значения могут быть:
-
starting: Развертывание недавно начато, но ещё не пригодно к использованию, так как модель не размещена ни на одном узле. -
started: Развертывание пригодно к использованию, так как по крайней мере один узел имеет размещённую модель. -
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 - (единицы времени) Время последнего обновления статистики.
-
-
ingest - (объект) Коллекция данных о загрузке для модели по всем узлам. Значения являются суммой статистических данных по отдельным узлам. Формат соответствует разделу
ingestв статистике узлов. -
model_id - (строка) Уникальный идентификатор обученной модели.
-
model_size_stats -
(объект) Коллекция полей статистики размера модели.
Свойства статистики размера модели
-
model_size_bytes - (целое число) Размер модели в байтах. Этот параметр применяется только к моделям PyTorch.
-
required_native_memory_bytes - (целое число) Объем памяти, необходимый для загрузки модели в байтах.
-
-
pipeline_count - (целое число) Количество конвейеров загрузки, которые в настоящее время ссылаются на модель.
-
Коды ответов
-
404(Отсутствующие ресурсы) - Если
allow_no_matchявляетсяfalse, этот код указывает на то, что нет ресурсов, соответствующих запросу, или только частичные совпадения с запросом.
Примеры
Следующий пример получает информацию об использовании всех обученных моделей:
resp = client.ml.get_trained_models_stats() print(resp)
response = client.ml.get_trained_models_stats puts response
const response = await client.ml.getTrainedModelsStats(); console.log(response);
GET _ml/trained_models/_stats
API возвращает следующие результаты:
{
"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
}
}
}
]
}
}
}
}
]
}
© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/get-trained-models-stats.html