Настройки машинного обучения в Elasticsearch
Для использования машинного обучения вам не нужно настраивать никакие параметры. Оно включено по умолчанию.
Машинное обучение использует инструкции SSE4.2, поэтому оно работает только на машинах, процессоры которых поддерживают SSE4.2. Если вы запускаете Elasticsearch на старом оборудовании, вам необходимо отключить машинное обучение (установив xpack.ml.enabled на false).
Общие настройки машинного обучения
-
node.roles: [ ml ] -
(Статический) Установите
node.roles, содержащийml, чтобы определить узел как узел машинного обучения. Если вы хотите запускать задачи машинного обучения, в вашем кластере должен быть хотя бы один узел машинного обучения.Если вы установили
node.roles, вы должны явно указать все необходимые роли для узла. Для получения дополнительной информации см. Узел.- На выделенных координационных узлах или выделенных узлах мастера не устанавливайте роль
ml. - Сильно рекомендуется, чтобы выделенные узлы машинного обучения также имели роль
remote_cluster_client; в противном случае межкластерный поиск завершится ошибкой при использовании в задачах машинного обучения или каналах данных. См. Узел, способный к удаленному доступу.
- На выделенных координационных узлах или выделенных узлах мастера не устанавливайте роль
-
xpack.ml.enabled -
(Статический) Значение по умолчанию (
true) включает API машинного обучения на узле.Если вы хотите использовать функции машинного обучения в своем кластере, рекомендуется использовать значение по умолчанию для этого параметра на всех узлах.
Если установлено значение
false, API машинного обучения отключены на узле. Например, узел не может открывать задачи, запускать каналы данных, получать запросы на транспортную (внутреннюю) связь или запросы от клиентов (включая Kibana) связанные с API машинного обучения. -
xpack.ml.inference_model.cache_size - (Статический) Максимальный размер кэша инференции, разрешенный. Кэш инференции существует в куче JVM на каждом узле инжеста. Кэш обеспечивает более быстрые времена обработки для процессора
inference. Значение может быть статическим значением в байтах (например,2gb) или процентом от общей выделенной кучи. По умолчанию установлено значение40%. См. также Настройки защитного механизма машинного обучения.
-
xpack.ml.inference_model.time_to_live - (Статический) Время жизни (TTL) обученных моделей в кэше моделей инференции. TTL вычисляется с момента последнего доступа. Пользователи кэша (например, процессор инференции или агрегатор инференции) помещают модель в кэш при первом использовании и сбрасывают TTL при каждом использовании. Если к кэшированной модели не было доступа в течение срока действия TTL, она помечается для удаления из кэша. Если документ обрабатывается позже, модель снова загружается в кэш. Чтобы обновить эту настройку в Elasticsearch Service, см. Добавление настроек пользователя Elasticsearch. По умолчанию установлено значение
5m. -
xpack.ml.max_inference_processors - (Динамический) Общее количество процессоров типа
inference, разрешенных во всех каналах данных. После достижения предела добавление процессора типаinferenceв канал данных запрещено. По умолчанию установлено значение50. -
xpack.ml.max_machine_memory_percent -
(Динамический) Максимальный процент памяти машины, который машинное обучение может использовать для выполнения аналитических процессов. Эти процессы отделены от JVM Elasticsearch. Предел основан на общей памяти машины, а не на текущей свободной памяти. Задачи не назначаются узлу, если это приведет к превышению расчетного использования памяти задачами машинного обучения. Когда функция привилегий оператора включена, это значение можно обновить только пользователям с привилегиями оператора. Минимальное значение равно
5, максимальное —200. По умолчанию установлено значение30.Не устанавливайте этот параметр значением, превышающим объем памяти, оставшийся после запуска JVM Elasticsearch, если у вас нет достаточно места в подкачке (swap) для его размещения и вы не определили, что это приемлемая конфигурация для специализированного случая использования. Максимальное значение настройки предназначено для специального случая, когда было определено, что использование подкачки для задач машинного обучения приемлемо. Общей рекомендуемой практикой является отсутствие использования подкачки на узлах Elasticsearch.
-
xpack.ml.max_model_memory_limit - (Динамический) Максимальное значение свойства
model_memory_limit, которое можно установить для любых задач машинного обучения в этом кластере. Если вы попытаетесь создать задачу со значением свойстваmodel_memory_limit, превышающим это значение, произойдет ошибка. Существующие задачи не затрагиваются при обновлении этого параметра. Если это значение равно0или не задано, максимальное значениеmodel_memory_limitотсутствует. Если нет узлов, соответствующих требованиям памяти для задачи, отсутствие максимального предела памяти означает, что можно создать задачи, которые не могут быть назначены ни одному доступному узлу. Для получения дополнительной информации о свойствеmodel_memory_limit, см. Создание задач обнаружения аномалий или Создание задач аналитики на основе фреймов данных. По умолчанию установлено значение0.
-
xpack.ml.max_open_jobs - (Динамический) Максимальное количество задач, которые могут одновременно выполняться на узле. В этом контексте задачи включают как задачи обнаружения аномалий, так и задачи аналитики на основе фреймов данных. Максимальное количество задач также ограничено использованием памяти. Таким образом, если расчетное использование памяти задачами будет выше разрешенного, на узле будет выполняться меньше задач. До версии 7.1 этот параметр был статическим параметром на узел. В версии 7.1 он стал динамическим параметром кластера. В результате изменения его значения после запуска узла используются только после того, как каждый узел в кластере будет работать под версией 7.1 или выше. Минимальное значение равно
1, максимальное —512. По умолчанию установлено значение512. -
xpack.ml.nightly_maintenance_requests_per_second - (Динамический) Скорость, с которой задача еженедельного обслуживания удаляет истекшие моментальные снимки моделей и результаты. Этот параметр является прокси-сервером для параметра
requests_per_second, используемого в запросах удаления по образцу, и управляет ограничением скорости. При включении функции привилегий оператора это значение можно обновить только пользователям с привилегиями оператора. Допустимые значения должны быть больше0.0или равны-1.0, где-1.0означает использование значения по умолчанию. По умолчанию установлено значение-1.0. -
xpack.ml.node_concurrent_job_allocations - (Динамический) Максимальное количество задач, которые могут находиться в состоянии
openingодновременно на каждом узле. Как правило, задачи проводят небольшое количество времени в этом состоянии, прежде чем перейти в состояниеopen. Задачи, которым необходимо восстановить большие модели при открытии, проводят больше времени в состоянииopening. При включении функции привилегий оператора это значение можно обновить только пользователям с привилегиями оператора. По умолчанию установлено значение2.
Дополнительные настройки машинного обучения
Эти настройки предназначены для продвинутых случаев использования; значения по умолчанию, как правило, достаточны:
-
xpack.ml.enable_config_migration - (Динамически) Зарезервировано. При включенной функции привилегий оператора, это значение может быть обновлено только пользователями-операторами.
-
xpack.ml.max_anomaly_records - (Динамически) Максимальное количество записей, выводящихся на каждый бакет. По умолчанию равно
500. -
xpack.ml.max_lazy_ml_nodes -
(Динамически) Количество лениво развернутых узлов машинного обучения. Полезно в ситуациях, когда узлы машинного обучения не требуются до запуска первого задания машинного обучения. Если текущее количество узлов машинного обучения больше или равно этому значению, предполагается, что нет доступных ленивых узлов, так как требуемое количество узлов уже зарезервировано. Если задание запущено, и это значение больше нуля, а нет узлов, которые могут принять задание, задание остается в состоянии
OPENING, пока новый узел машинного обучения не будет добавлен в кластер, и задание не будет назначено на этот узел. При включенной функции привилегий оператора, это значение может быть обновлено только пользователями-операторами. По умолчанию равно0.Это значение предполагает, что какой-то внешний процесс способен добавлять узлы машинного обучения в кластер. Это значение полезно только в сочетании с таким внешним процессом.
-
xpack.ml.max_ml_node_size - (Динамически) Максимальный размер узла для узлов машинного обучения в развертывании, поддерживающем автоматическое масштабирование кластера. Если вы зададите максимальный возможный размер будущих узлов машинного обучения, когда задание машинного обучения назначается ленивому узлу, он может проверить (и быстро отклонить) возможность масштабирования, чтобы учесть размер задания. При включенной функции привилегий оператора, это значение может быть обновлено только пользователями-операторами. По умолчанию равно
0b, что означает, что предполагается, что автоматическое масштабирование кластера может добавлять узлы произвольно большого размера в кластер. -
xpack.ml.persist_results_max_retries - (Динамически) Максимальное количество попыток повторной обработки запросов массового индексирования, которые завершились сбоем при обработке результатов машинного обучения. Если предел достигнут, задание машинного обучения прекращает обработку данных, и его статус устанавливается в
failed. При включенной функции привилегий оператора, это значение может быть обновлено только пользователями-операторами. Минимальное значение равно0; максимальное значение равно50. По умолчанию равно20. -
xpack.ml.process_connect_timeout - (Динамически) Время ожидания подключения для процессов машинного обучения, работающих отдельно от JVM Elasticsearch. При запуске таких процессов они должны подключиться к JVM Elasticsearch. Если процесс не подключится в течение указанного периода, процесс считается завершившимся сбоем. При включенной функции привилегий оператора, это значение может быть обновлено только пользователями-операторами. Минимальное значение равно
5s. По умолчанию равно10s. -
xpack.ml.use_auto_machine_memory_percent -
(Динамически) Если это значение равно
true, значение параметраxpack.ml.max_machine_memory_percentигнорируется. Вместо этого, автоматически рассчитывается максимальный процент оперативной памяти, который может использоваться для выполнения процессов аналитики машинного обучения, учитывая общий размер узла и размер JVM на узле. При включенной функции привилегий оператора, это значение может быть обновлено только пользователями-операторами. Значение по умолчанию —false.- Если у вас нет выделенных узлов машинного обучения (то есть, узел имеет несколько ролей), не включайте это значение. Его расчеты предполагают, что анализ машинного обучения — это основная задача узла.
- Расчет предполагает, что выделенные узлы машинного обучения имеют как минимум
256MBпамяти, зарезервированной вне JVM. Если у вас есть маленькие узлы машинного обучения в вашем кластере, не используйте это значение.
Настройки разрыва цепи машинного обучения
-
breaker.model_inference.limit - (Динамически) Предел для разрыва цепи обученной модели. Это значение определяется как процент кучи JVM. По умолчанию равно
50%. Если родительский разрыв цепи установлен на значение меньше50%, это значение используется как значение по умолчанию вместо него. -
breaker.model_inference.overhead - (Динамически) Константа, на которую умножаются все оценки обученных моделей для определения окончательной оценки. См. Настройки разрыва цепи. По умолчанию равно
1. -
breaker.model_inference.type - (Статично) Базовый тип разрыва цепи. Есть два допустимых варианта:
noopиmemory.noopозначает, что разрыв цепи не предотвращает чрезмерное использование памяти.memoryозначает, что разрыв цепи отслеживает память, используемую обученными моделями, и может потенциально прервать и предотвратитьOutOfMemoryошибки. Значение по умолчанию —memory.
© 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/7.17/ml-settings.html