Автор:Лукаш Цмеловски, доктор философии, Трент Грей-Дональд

Сегодня мы запустим эксперимент IBM AutoAI из Microsoft Azure Machine Learning Studio, а затем развернем его в службе Azure Kubernetes (AKS). Прочтите статью, чтобы узнать о кросс-облачных технологиях и окончательных результатах.

Проведение эксперимента IBM Watson AutoAI

Для запуска эксперимента IBM Watson AutoAI мы использовали Microsoft Azure Machine Learning Studio и среду ноутбука.

Мы начинаем с обновления пакетов среды выполнения до версий, соответствующих AutoAI. Необходимо установить и обновить следующие пакеты (команда pip):

pip install ibm-watson-machine-learning
pip install snapml
pip install scikit-learn==1.0.2
pip install xgboost==1.5.1
pip install lightgbm==3.3.1
pip install gensim==4.1.2

Теперь среда выполнения нашего ноутбука готова к запуску эксперимента AutoAI и поиску лучшей модели классификации для варианта использования немецкий кредитный риск. Используйте этот пример блокнота (подготовлен для IBM Watson Studio) для настройки экземпляра IBM Watson Machine Learning и API Python (учетные данные, пространство и авторизация). Далее давайте определим оптимизатор AutoAI и модели обучения.

Определение оптимизатора и соответствующий вызов

Подобно API scikit-learn, вызов fit запускает процесс поиска и обучения. Вычисления происходят в сервисе IBM Watson Machine Learning (перейдите здесь, чтобы получить экземпляр). Ход выполнения отображается в записной книжке на Microsoft Azure.

Таблица лидеров каналов

Список лучших моделей, найденных IBM Watson Studio AutoAI, ранжирован по показателю оптимизации roc_auc. Оценки (показатели) рассчитываются как для набора данных поезда (перекрестная проверка с 3-кратным повторением), так и для наборов данных удержания.

Получить лучшую модель

Метод get_pipeline загружает и загружает консервированную модель с помощью пакета joblib. Модель представляет собой конвейерную модель scikit-learn с пользовательским преобразованием, доступным в пакете autoai-libs. Вы также можете отобразить матрицу путаницы или важность функции, используя метод get_pipeline_details.

Получить исходный код модели (определение конвейера)

AutoAI обеспечивает полную прозрачность конвейера — вы можете предварительно просмотреть определение конвейера (исходный код), вызвав метод pretty_print.

Получить прогнозы

Модель можно использовать в любой среде — нет зависимости от IBM Cloud. Как и при использовании обычной конвейерной модели scikit-learn, вызовите метод predict, чтобы получить прогнозы. Модель работает с массивами numpy.

Как мы видим, вызов AutoAI API в Microsoft Azure ничем не отличается от вызова в IBM Cloud.

Развертывание веб-службы в службе Azure Kubernetes (AKS)

В этом разделе мы опишем все шаги, необходимые для развертывания лучшей модели IBM Watson AutoAI в службе Microsoft Azure Kubernetes. Как вы увидите ниже, помимо определения дополнительных зависимостей Python (раздел Создание среды) нет ничего особенного (остальные шаги являются стандартными шагами развертывания AKS).

Во-первых, нам нужно получить рабочее пространство и зарегистрировать модель AutoAI.

Чтобы зарегистрировать модель, best_pipeline (лучшая модель AutoAI) обрабатывается с помощью пакета joblib. Затем мы используем метод register() из модуля azureml.core.model, чтобы зарегистрировать модель для развертывания веб-службы. Используя модули Environment и CondaDependencies, мы определяем среду развертывания, которая будет использоваться для обслуживания модели AutoAI. Список

После создания среды нам нужно написать обслуживающий скрипт, состоящий из двух функций init и run.. Функция init загружает модель с помощью пакета joblib. run преобразует полезные данные json в массив numpy и передает его в загруженную модель, чтобы получить прогнозы.

На следующем шаге нам нужно создать кластер AKS. Необходимо указать InferenceConfig, связывающий наш скрипт обслуживания и имя кластера.

Наконец, наш кластер AKS готов. Используя метод Model.deploy, мы можем создать веб-сервис (сервис AKS).

Операция службы AKS завершена, статус службы — Исправен. Давайте протестируем нашу развернутую модель, используя метод run, предлагаемый объектом aks_service. Сервис также можно протестировать с помощью графического интерфейса и вкладки Test (как показано на снимке экрана ниже). Тест проходит.

Теперь мы можем использовать нашу развернутую модель AutoAI через http-запросы из любого приложения. Для запроса требуются url , api_key (можно скопировать с вкладки Использовать) и полезная нагрузка с новыми образцами.

Как видите, вывести модель AutoAI в Azure Kubernetes Service очень просто. Наслаждайтесь подсчетом очков!