Spec-Zone.ru › Elasticsearch 8
›Руководство по Elasticsearch [8.17] ›REST API ›API обученных моделей машинного обучения

API получения статистики по обученным моделям

Справочник по новым API

Для получения самых последних данных об API обратитесь к 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API