Быстрый старт по работе с AutoML (базовый)

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

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

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

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

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

Решим задачу прогнозирования годовой выручки ресторанов, предложенную компанией TAB Food Investments, которая управляет ресторанами Burger King в Турции и Китае (см. подробнее). Модель будем обучать на наборе данных, содержащих сведениях о ресторанах и будем прогнозировать выручку.

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

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

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

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

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

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

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

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

    • Выберите Тип модели AutoMLTabular.

    • Введите Название модели (например, myfirstautoml).

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

    • Загрузите скачанный на предыдущем шаге файл task_data.csv, выбрав его в поле Dataset и определите задачи обучения.

    • Выберите целевой признак «revenue». Становится доступным после загрузки Dataset. Этот признак выступает в роли прогнозируемой выручки.

    • Выберите задачу обучения типа «Регрессия» (нужно составить прогноз на основе выборки объектов с различными признаками. На выходе должно получиться вещественное число).

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

    • Выберите целевую метрику «mae» (средняя абсолютная ошибка).

  3. Не задавайте настройки во вкладке Расширенные настройки (Роли и расширенные параметры признаков) и базовые настройки для ресурсов задачи (количество GPU и максимальное время обучения).

  4. Нажмите Начать обучение для запуска обучения модели с указанными параметрами.

Прогресс обучения модели доступен на вкладке Environments → Задачи и окружения.

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

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

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

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

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

После того как текущий статус модели сменился на «Завершена», результат обучения — обученная модель — сохранится на 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"],
      "Open Date" : ["07/17/1999"],
      "City" : ["Д°stanbul"],
      "City Group" : ["Big Cities"],
      "Type" : ["IL"],
      "P1" : [4],
      "P2" : [5.0],
      "P3" : [4.0],
      "P4" : [4.0],
      "P5" :[2],
      "P6" :[2],
      "P7" :[5],
      "P8" :[4],
      "P9" :[5],
      "P10" :[5],
      "P11" :[5],
      "P12" :[5],
      "P13" :[5.0],
      "P14" :[1],
      "P15" :[2],
      "P16" :[2],
      "P17" :[1],
      "P18" :[4],
      "P19" :[5],
      "P20" :[4],
      "P21" :[1],
      "P22" :[3],
      "P23" :[3],
      "P24" :[1],
      "P25" :[1],
      "P26" :[1.0],
      "P27" :[4.0],
      "P28" :[2.0],
      "P29" :[3.0],
      "P30" :[5],
      "P31" :[3],
      "P32" :[4],
      "P33" :[5],
      "P34" :[5],
      "P35" :[4],
      "P36" :[3],
      "P37" :[4]
      }
     }
    ]
   }'

Дождитесь, когда придет ответ (время ожидания занимает 3-5 минут).

В ответ придет предсказание с определенным значением выручки. Предсказание будет иметь следующий вид:

{
 "predictions": [
     [
         4.573672294616699
     ]
 ]
}