Быстрый старт по работе с AutoML (продвинутый)

Продвинутый быстрый старт предполагает обучение модели AutoML на ваших данных через графический интерфейс платформы, с использованием кода.

В быстром старте рассмотрены три типа моделей AutoML:

  • Tabular AutoML — табличные данные.

  • NLP — обработка естественных языков.

  • Time series — временные ряды.

Задача многоклассовой классификации (см. подробнее). Позволяет определить к какому классу относятся данные.

Модель обучалась на наборе данных — кратких обезличенных сведениях из электронной торговли, а параметром для предсказания выбран столбец target в качестве которой могут выступать возрастная группа, лояльность, регион и т.д.

Для выполнения задачи:

Загрузите файлы в бакет пользователя на S3

Файлы для скачивания и последующей загрузки в бакет пользователя на S3:

Загрузите скачанные файлы в бакет пользователя на S3. Рекомендуем использовать для загрузки Файловый менеджер. Cм. Обзор хранилища (Файловый менеджер).

Создайте и запустите задачу AutoML автоматического обучения модели

Выполните следующие действия:

  1. Нажмите на вкладку Задачи AutoML из главного меню для перехода на страницу сервиса.

  2. Нажмите кнопку Новый AutoML. В открывшемся диалоговом окне:

    • Выберите тип модели AutoML — Tabular.

    • Введите Имя модели (например, myautoml).

    • Выберите бакет S3. Для этого укажите нужный бакет/данные для обучения из списка или укажите параметры подключения вручную.

    • Загрузите Dataset.

    • Выберите целевой признак «target» (становится доступным после загрузки dataset).

    • Выберите задачу обучения типа «Многоклассовая классификация».

    • Укажите путь сохранения модели на вкладке Расширенные настройки.

    • Выберите целевую метрику «auc».

    • Укажите Роли и расширенные параметры признаков (id — выберите Drop, feature_0, …, feature_74 — выберите Numeric).

  3. Не меняйте базовые настройки для ресурсов задачи.

  4. Нажмите Начать обучение. При выполнении задачи обучения можно просматривать ее логи. Для просмотра логов кликните по карточке задачи. Логи отображаются в интерактивном режиме и сохраняются в течение непродолжительного времени после завершения обучения. Логи можно копировать в текстовом формате для последующего сохранения в файл.

    Прогресс обучения модели доступен на вкладке Environments → Задачи и окружения. Если текущий статус задачи сменился на «Завершена», сериализованная модель сохранилась на s3 по пути, указанному в поле Расположение модели.

Статус модели можно отслеживать с помощью цветового индикатора:

  • Красный индикатор — ошибка.

  • Синий — в очереди.

  • Желтый — выполняется обучение или задача остановлена.

  • Зеленый — обучение успешно завершено.

После того как текущий статус модели сменился на «Завершена», результат обучения — обученная модель — сохранится на S3 по пути, указанному в поле Расположение модели. Обученная модель имеет расширение pkl.

Подсказка

Чтобы остановить задачу AutoML:

  1. Перейдите на вкладку Задачи и окружения.

  2. Найдите задачу которую необходимо остановить на вкладке Задачи и окружения.

  3. Из Кнопка с тремя вертикальными точками выбрать команду остановить.

Соберите Docker-образ с обученной моделью в модуле Deployments

Для получения предсказаний от модели необходимо:

  1. Собрать Docker-образ с обученной моделью.

  2. Запустить деплой обученной модели.

  3. Обратиться к обученной модели за предсказанием.

Собрать Docker-образ можно двумя способами:

Автоматическая сборка

Ручная сборка

Соберите Docker-образ автоматически. Для этого из меню Кнопка с тремя вертикальными точками в карточке AutoML выберите команду Создать образ. См. подробнее в разделе Автоматическая сборка Docker-образа.

Соберите Docker-образ с обученной моделью вручную:

  • Перейдите на вкладку Deployments → Образы.

  • Нажмите кнопку Создать новый образ. Откроется диалог Создать новый образ.

  • Выберите Базовый образ → Указать вручную и укажите образ, имеющий в имени префикс laml-autofit. Образы, используемые на платформе ML Space.

  • Задайте необходимые настройки в открывшемся окне. См. Создание деплоя.

  • Далее нажмите Создать образ и дождитесь сборки образа (пребывание в статусе «В процессе сборки» приблизительно - 5-10 минут).

После окончания сборки на перейдите на вкладку Deployments → Деплои.

  1. Заполните имя деплоя — my_test_deploy

  2. Выберите требуемые ресурсы и конфигурацию.

  3. Выберите Docker-образ, который создали выше. Образ будет иметь префикс «automl-img-».

  4. Нажмите Создать деплой.

Посмотреть результат сборки можно с помощью карточки деплоя. Развернутый деплой с моделью будет иметь статус «Запущен».

Отправьте HTTP-запрос к модели в модуле Deployments

Для обращения к развернутой модели посредством HTTP-запроса выполняйте действия в точном соответствии с инструкцией Отправка HTTP-запросов к модулю Deployments.

Пример HTTP-запроса и ответа модели, развернутой в модуле Deployments

Для получения предсказания от модели, развернутой в модуле Deployments, отправьте HTTP-запрос вида:

curl --location --request POST 'https://api.aicloud.sbercloud.ru/public/v2/inference/v1/predict/{name}/{predict}/' \
--header 'Content-Type: application/json' \
--header 'authorization: <your access token>' \
--header 'x-api-key: <your GWAPI key>' \
--header 'x-workspace-id:  <your x-workspace-id>' \
--data-raw '{
"instances":
[
 {
   "records":
  {
      "Id" : ["0"],
      "feature_0" : ["0"],
      "feature_1" : ["0"],
      "feature_2" : ["1"],
      "feature_3" : ["0"],
      "feature_4" : ["0"],
      "feature_5" : ["1"],
      "feature_6" : ["0"],
      "feature_7" : ["0"],
      "feature_8" : ["0"],
      "feature_9" : ["0"],
      "feature_10" : ["0"],
      "feature_11" : ["0"],
      "feature_12" : ["0"],
      "feature_13" : ["2"],
      "feature_14" : ["0"],
      "feature_15" : ["0"],
      "feature_16" : ["1"],
      "feature_17" : ["0"],
      "feature_18" : ["1"],
      "feature_19" : ["8"],
      "feature_20" : ["4"],
      "feature_21" : ["0"],
      "feature_22" : ["0"],
      "feature_23" : ["0"],
      "feature_24" : ["0"],
      "feature_25" : ["2"],
      "feature_26" : ["1"],
      "feature_27" : ["0"],
      "feature_28" : ["0"],
      "feature_29" : ["0"],
      "feature_30" : ["1"],
      "feature_31" : ["0"],
      "feature_32" : ["6"],
      "feature_33" : ["0"],
      "feature_34" : ["2"],
      "feature_35" : ["0"],
      "feature_36" : ["0"],
      "feature_37" : ["0"],
      "feature_38" : ["3"],
      "feature_39" : ["1"],
      "feature_40" : ["0"],
      "feature_41" : ["2"],
      "feature_42" : ["3"],
      "feature_43" : ["9"],
      "feature_44" : ["0"],
      "feature_45" : ["2"],
      "feature_46" : ["1"],
      "feature_47" : ["0"],
      "feature_48" : ["0"],
      "feature_49" : ["0"],
      "feature_50" : ["2"],
      "feature_51" : ["11"],
      "feature_52" : ["0"],
      "feature_53" : ["0"],
      "feature_54" : ["2"],
      "feature_55" : ["0"],
      "feature_56" : ["2"],
      "feature_57" : ["0"],
      "feature_58" : ["1"],
      "feature_59" : ["1"],
      "feature_60" : ["0"],
      "feature_61" : ["1"],
      "feature_62" : ["0"],
      "feature_63" : ["0"],
      "feature_64" : ["1"],
      "feature_65" : ["0"],
      "feature_66" : ["0"],
      "feature_67" : ["0"],
      "feature_68" : ["0"],
      "feature_69" : ["0"],
      "feature_70": ["0"],
      "feature_71": ["0"],
      "feature_72": ["0"],
      "feature_73": ["0"],
      "feature_74": ["0"]
     }
       }
      ]
     }'

В ответ придет предсказание показывающее отношение данных к определенному классу.

Получение предсказаний с использованием pkl модели через Jupyter Notebook

  1. Загрузить файл Kaggle_inference.ipynb в бакет S3.

  2. Выполнить в Jupyter Notebook блоки кода 1-7 (Kaggle_inference.ipynb, в файле к каждому блок кода есть пояснение).

  3. Результаты работы модели сохраняются в файле, который указан в блоке кода в Jupyter Notebook (по умолчанию — submission.csv).

  4. Выполнить блоки 8-11 (в результате которых будут получены данные для авторизации).

  5. Выполнить блок 12. В результате отправки предсказания к модели получаются значения «target».

Значением «target» является вероятность того, к какому столбцу относится запрашиваемый (прогнозируемый) параметр.

Формат ответа:

{"predictions":[[0.11638661473989487,0.34883493185043335,0.1585141122341156,0.1049746721982956,0.07506230473518372,0.10326133668422699,0.05113428831100464,0.02464454621076584,0.017187178134918213]]}​