Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Guide [8.17] ›Настроить Elasticsearch ›Настройка Elasticsearch

Настройки машинного обучения в 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 logo cloud
(Статический) Время жизни (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 — расположение файла, оно должно указывать на подкаталог каталога config Elasticsearch.

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

Spec-Zone.ru

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