Настройки машинного обучения в Elasticsearch
Для использования машинного обучения не требуется настройка параметров. Оно включено по умолчанию.
Машинное обучение использует инструкции SSE4.2 на машинах x86_64, поэтому оно работает только на машинах x86_64, процессоры которых поддерживают SSE4.2. (Это ограничение не распространяется на машины aarch64.) Если вы запускаете Elasticsearch на более старом оборудовании x86_64, вы должны отключить машинное обучение (установив 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.enabledне настроено одинаково на всех узлах вашего кластера, у вас могут возникнуть проблемы с неполнофункциональной работой машинного обучения.Не следует использовать функциональность машинного обучения из потоков данных ввода, если
xpack.ml.enabledустановлено в значениеfalseна любом узле. Прежде чем устанавливатьxpack.ml.enabledв значениеfalseна узле, подумайте, действительно ли вы хотите просто исключитьmlизnode.roles. Исключениеmlизnode.rolesостановит узел от выполнения задач машинного обучения и моделей NLP, но он по-прежнему будет знать о существовании функциональности машинного обучения. Установкаxpack.ml.enabledв значениеfalseдолжна использоваться в ситуациях, когда вы не можете использовать функциональность машинного обучения в вашем кластере из-за ограничений оборудования, как описано выше. -
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, если нет достаточного пространства подкачки для его размещения и вы не определили, что это подходящая конфигурация для специализированного случая. Максимальное значение настройки предназначено для специального случая, когда было определено, что использование пространства подкачки для задач машинного обучения приемлемо. Общей лучшей практикой является не использование подкачки на узлах Elasticsearch.
-
xpack.ml.max_model_memory_limit - (Динамический) Максимальное значение свойства
model_memory_limit, которое может быть установлено для любых задач машинного обучения в этом кластере. Если вы попытаетесь создать задачу со значением свойстваmodel_memory_limit, превышающим это значение, произойдет ошибка. Существующие задачи не затрагиваются при обновлении этого параметра. Если этот параметр равен0или не задан, максимального значенияmodel_memory_limitнет. Если нет узлов, удовлетворяющих требованиям памяти для задачи, отсутствие максимального ограничения на объем памяти означает возможность создания задач, которые не могут быть назначены ни одному из доступных узлов. Более подробную информацию о свойствеmodel_memory_limitсм. в Создание задач обнаружения аномалий или Создание задач аналитики фреймов данных. По умолчанию установлено значение0, еслиxpack.ml.use_auto_machine_memory_percentравноfalse. Еслиxpack.ml.use_auto_machine_memory_percentравноtrue, аxpack.ml.max_model_memory_limitне задано явно, оно будет по умолчанию равно наибольшему значениюmodel_memory_limit, которое могло быть назначено в кластере.
-
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.model_repository -
(Динамически) Расположение репозитория моделей машинного обучения, где доступны файлы артефактов моделей в случае установки модели в ограниченной или закрытой сети.
xpack.ml.model_repositoryможет быть строкой расположения файла или HTTP/HTTPS-сервером. Примеры значений:xpack.ml.model_repository: file://${path.home}/config/models/или
xpack.ml.model_repository: https://my-custom-backend
Если
xpack.ml.model_repository— расположение файла, оно должно указывать на подкаталог каталогаconfigElasticsearch. -
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. Если у вас есть очень маленькие узлы машинного обучения в кластере, не следует использовать этот параметр.
Если это значение равно
true, оно также влияет на значение по умолчанию дляxpack.ml.max_model_memory_limit. В этом случаеxpack.ml.max_model_memory_limitпо умолчанию устанавливается на наибольший размер, который можно назначить в текущем кластере.
© 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/ml-settings.html