Автор:Лукаш Цмеловски, доктор философии, Трент Грей-Дональд
Сегодня мы запустим эксперимент 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 очень просто. Наслаждайтесь подсчетом очков!