Перейти к основному содержимому
Версия: 6.1

Обучение и применение через SML (команды train и predict)

Для обучения и применения модели из языка запросов SML используются команды train и predict. Если заданы кластерные настройки sme.ml.*, команды отправляют запросы в sm-ml-service: train вызывает операцию /fit, а predict — операцию /apply.

Перед выполнением команд задайте кластерные настройки Smart Monitor в _cluster/settings:

sme.ml.enabled      = true
sme.ml.service_url = https://<sm-ml-service-host>/
sme.ml.service_port = 30000
sme.ml.timeout = 300000
sme.ml.user = sm_ml_user

Пароль пользователя sme.ml.user сохраните в keystore Smart Monitor в параметре sm.core.ml.password. Порядок настройки описан в разделе Настройки SM-ML.

Если настройки sme.ml.* не заданы, команды train и predict работают во встроенном режиме. Перед выполнением примеров зарегистрируйте и разверните алгоритм tutorial-demo в экземпляре sm-ml-service, указанном в настройках sme.ml.*.

Обучение — команда train

Откройте страницу Поиск (/app/general/search) и выполните следующий запрос. Конвейер формирует обучающую выборку со столбцами x и y и передает ее в команду train:

| makeresults count=6
| streamstats count as i
| eval x = tonumber(i)
| eval y = tonumber(i) * 2 + 1
| table x, y
| train "tutorial-demo" model_id="tutorial-demo-sml" fields="x,y"
  • model_id — имя модели, которое передается в поле model_name SM-ML
  • fields — поля конвейера, включаемые в CSV-файл обучающей выборки
  • остальные параметры, кроме model_id, fields и overwrite, — параметры, передаваемые в поле params алгоритма

После завершения обучения возвращается одна строка со значениями status=succeeded, trained_rows=6 и model_id=tutorial-demo-sml.

SML train — модель обучена

Обученная модель отображается на экране Модели со статусом Готова, как и при обучении через API.

Применение — команда predict

Выполните следующий запрос. Конвейер формирует входные строки со столбцом x и применяет модель, указанную в параметре model_id:

| makeresults count=3
| streamstats count as i
| eval x = tonumber(i) * 10
| table x
| predict "tutorial-demo" model_id="tutorial-demo-sml" fields="x"

Результат содержит предсказания в столбце prediction. В приведенном примере модель определила зависимость y = 2·x + 1:

xpredictionstatus
1021.0…succeeded
2041.0…succeeded
3061.0…succeeded

SML predict — предсказания модели

В команде predict укажите то же значение model_id, которое использовалось в команде train. Поиск готовой модели по имени выполняет sm-ml-service.