Руководство. Развертывание модели машинного обучения с помощью конструктора
В одной из этих руководств вы обучили модель линейной регрессии, которая прогнозирует цены на автомобиль. В этой второй части вы используете конструктор Машинное обучение Azure для развертывания модели, чтобы другие могли использовать ее.
Примечание.
Конструктор поддерживает два типа компонентов: классические предварительно созданные компоненты (версии 1) и пользовательские компоненты (версия 2). Эти два типа компонентов несовместимы.
Классические предварительно созданные компоненты предоставляют предварительно созданные компоненты главным образом для обработки данных и традиционных задач машинного обучения, таких как регрессия и классификация. Этот тип компонента по-прежнему поддерживается, но новые компоненты не будут добавлены.
Пользовательские компоненты позволяют упаковывать собственный код в качестве компонента. Они поддерживают совместное использование компонентов между рабочими областями и простой разработки в интерфейсах Машинное обучение Studio, CLI версии 2 и ПАКЕТА SDK версии 2.
Для новых проектов рекомендуется использовать пользовательские компоненты, совместимые с Машинное обучение Azure версии 2 и сохраняющие новые обновления.
Эта статья относится к классическим предварительно созданным компонентам и несовместима с CLI версии 2 и пакетом SDK версии 2.
Изучив это руководство, вы:
- Создание конвейера вывода в режиме реального времени.
- Создание кластера вывода.
- Развертывание конечной точки в режиме реального времени.
- Тестирование конечной точки в режиме реального времени.
Необходимые компоненты
Изучите первую часть учебника, чтобы узнать, как обучать и оценивать модель машинного обучения в конструкторе.
Внимание
Если графические элементы, упомянутые в этом документе, например кнопки в студии или конструкторе, не отображаются, возможно, у вас нет правильного уровня разрешений для рабочей области. Обратитесь к администратору подписки Azure, чтобы убедиться, что вам предоставлен правильный уровень доступа. Дополнительные сведения см. в статье Управление доступом к рабочей области Машинного обучения Azure.
Создание конвейера вывода в реальном времени
Чтобы развернуть конвейер, сначала преобразуйте обучающий конвейер в конвейер вывода в режиме реального времени. При этом удаляются обучающие компоненты и добавляются входные и выходные данные веб-службы для обработки запросов.
Примечание.
Функция создания конвейера вывода поддерживает обучающие конвейеры , содержащие только встроенные компоненты конструктора и имеющие компонент, например Train Model , который выводит обученную модель.
Создание конвейера вывода в реальном времени
Выберите конвейеры на боковой панели навигации, а затем откройте созданное задание конвейера. На странице сведений над холстом конвейера выберите многоточие ... а затем нажмите кнопку "Создать конвейер вывода в>режиме реального времени".
Теперь новый конвейер выглядит следующим образом:
При нажатии кнопки Create inference pipeline (Создать конвейер вывода) произойдет несколько вещей:
- Обученная модель будет сохранена в виде компонента Dataset (Набор данных) в палитре компонентов. Его можно найти в разделе My Datasets (Мои наборы данных).
- Удаляются такие обучающие компоненты, как Train Model (Обучение модели) и Split Data (Разделение данных).
- Сохраненная обученная модель добавляется обратно в конвейер.
- Добавляются компоненты Web Service Input (Входные данные веб-службы) и Web Service Output (Выходные данные веб-службы). В этих компонентах показано, откуда пользовательские данные поступают в конвейер и куда они возвращаются.
Примечание.
По умолчанию входные данные веб-службы ожидают ту же схему данных, что и выходные данные компонента, которые подключаются к тому же нижнему порту. В этом примере данные о ценах веб-службы и цены на автомобили (необработанные) подключаются к одному и тому же нижнему компоненту, поэтому входные данные веб-службы ожидают ту же схему данных, что и данные о ценах на автомобили (необработанные) и столбец
price
целевой переменной включен в схему. Однако при оценке данных вы не будете знать целевые значения переменной. В этом случае можно удалить целевой столбец переменной в конвейере вывода с помощью компонента Select Column in Dataset . Убедитесь, что выходные данные компонента Select Columns in Dataset (Выбор столбцов в наборе данных), удаляющего столбец целевой переменной, подключены к тому же порту, что и выходные данные компонента Web Service Intput (Входные данные веб-службы).Выберите "Настроить" и "Отправить" и используйте тот же целевой объект вычислений и эксперимент, который использовался в одной части.
Если это первое задание, может потребоваться до 20 минут для завершения работы конвейера. В параметрах вычислений по умолчанию минимальный размер узла равен 0. Это означает, что конструктор должен выделить ресурсы после простоя. Повторяющиеся задания конвейера занимают меньше времени, так как вычислительные ресурсы уже выделены. Кроме того, конструктор использует кэшированные результаты для каждого компонента, чтобы повысить эффективность.
Перейдите к сведениям о задании конвейера вывода в режиме реального времени, выбрав сведения о задании в левой области.
На странице сведений о задании нажмите Deploy (Развернуть).
Создание кластера вывода
Для развертывания модели можно выбрать любой кластер Службы Azure Kubernetes (AKS) в открывшемся диалоговом окне. Если у вас нет кластера AKS, создайте его, сделав следующее.
Перейдите на страницу вычислений, выбрав "Вычисления" в диалоговом окне.
На ленте навигации выберите Kubernetes Clusters>+ New.
В области кластера вывода настройте новую службу Kubernetes.
Введите aks-compute в поле Имя вычислений.
Выберите ближайший регион, доступный для модуля Регион.
Нажмите кнопку создания.
Примечание.
Создание службы AKS занимает около 15 минут. Состояние подготовки можно проверить на странице Inference Clusters (Кластеры вывода).
Развертывание конечной точки для прогнозирования в реальном времени
После завершения подготовки службы AKS вернитесь к конвейеру вывода в режиме реального времени, чтобы завершить развертывание.
Выберите Развернуть над холстом.
Выберите Deploy new real-time endpoint (Развертывание новой конечной точки для прогнозирования в реальном времени).
Выберите созданный кластер AKS.
Вы также можете изменить дополнительный параметр для конечной точки в режиме реального времени.
Расширенный параметр Description Включить сбор данных и диагностику Application Insights Позволяет приложение Azure Insights собирать данные из развернутых конечных точек.
По умолчанию: false.Время ожидания оценки Принудительное время ожидания вызовов оценки веб-службы (в миллисекундах).
По умолчанию: 60000.Автоматическое масштабирование включено Разрешает автомасштабирование для веб-службы.
По умолчанию: true.Минимум реплик Минимальное число используемых контейнеров при автомасштабировании этой веб-службы.
По умолчанию: 1.Максимум реплик Максимальное число используемых контейнеров при автомасштабировании этой веб-службы.
По умолчанию: 10.Целевое использование Целевое использование (в процентах), которое автомасштабировщик должен попытаться сохранить для этой веб-службы.
По умолчанию: 70.Период обновления Частота попыток автомасштабирования этой веб-службы (в секундах).
По умолчанию: 1.Резервная мощность ЦП Количество ядер ЦП, выделяемых для этой веб-службы.
По умолчанию: 0.1.Резервная мощность памяти Объем памяти (в ГБ), выделяемой для этой веб-службы.
По умолчанию: 0.5.Выберите Развернуть.
После завершения развертывания появится уведомление из центра уведомлений об успешном выполнении. Это может занять несколько минут.
Совет
Вы также можете развернуть в экземпляре контейнеров Azure, если выбрать экземпляр контейнера Azure для типа вычислений в режиме реального времени. Экземпляр контейнера Azure используется для тестирования или разработки. Используйте экземпляр контейнера Azure для низкомасштабных рабочих нагрузок на основе ЦП, требующих менее 48 ГБ ОЗУ.
Тестирование конечной точки для прогнозирования в реальном времени
После развертывания вы можете просмотреть конечную точку для прогнозирования в реальном времени. Для этого перейдите к странице Конечные точки.
На странице Конечные точки выберите развернутую конечную точку.
На вкладке Сведения можно просмотреть дополнительную информацию, такую как URI REST, определение Swagger, сведения о состоянии и теги.
На вкладке Использование можно найти пример кода использования, ключи безопасности и задать методы аутентификации.
На вкладке Журналы развертывания можно найти подробные журналы с данными о развертывании конечной точки для прогнозирования в реальном времени.
Чтобы проверить конечную точку, перейдите на вкладку "Тест ". Здесь можно ввести тестовые данные и выбрать "Проверить выходные данные" конечной точки.
Изменение конечной точки для прогнозирования в реальном времени
Вы можете изменить подключенную конечную точку на новую модель, обученную в конструкторе. На странице сведений о подключенной конечной точке найдите предыдущее задание конвейера обучения и задание конвейера вывода.
Вы можете найти и изменить проект конвейера обучения на домашней странице конструктора.
Вы также можете открыть ссылку задания конвейера обучения, а затем скопировать ее в новый черновик конвейера, чтобы продолжить редактирование.
После отправки измененного конвейера обучения перейдите на страницу сведений о задании.
По завершении задания щелкните правой кнопкой мыши Train Model (Обучение модели) и выберите Register data (Зарегистрировать данные).
Введите имя и выберите тип File (Файл).
После успешной регистрации набора данных откройте черновик конвейера вывода или скопируйте предыдущее задание конвейера вывода в новый черновик. В черновике конвейера вывода замените предыдущую обученную модель, показанную как узел MD-XXXX, который подключен к компоненту Score Model (Оценка модели), на зарегистрированный набор данных.
Если вам необходимо изменить часть предварительной обработки данных в конвейере обучения и вы хотите внести такое же изменение в конвейере вывода, процесс будет таким же, как описано выше.
Вам нужно только зарегистрировать выход преобразования компонента преобразования в качестве набора данных.
Затем вручную замените компонент TD в конвейере вывода зарегистрированным набором данных.
После замены конвейера вывода на недавно обученную модель или преобразование вам нужно отправить его. После завершения задания разверните его в существующей сетевой конечной точке, развернутой ранее.
Ограничения
Из-за ограничения доступа к хранилищу данных, если конвейер вывода содержит компоненты импорта данных или экспорта данных, они автоматически удаляются при развертывании в конечной точке реального времени.
Если у вас есть наборы данных в конвейере вывода в режиме реального времени и хотите развернуть его в конечной точке реального времени, в настоящее время этот поток поддерживает только наборы данных, зарегистрированные в хранилище данных BLOB-объектов . Если вы хотите использовать наборы данных из других хранилищ данных типа, можно использовать select Column для подключения к исходному набору данных с параметрами выбора всех столбцов, зарегистрировать выходные данные select Column в качестве набора данных, а затем заменить исходный набор данных в конвейере вывода в режиме реального времени с помощью этого вновь зарегистрированного набора данных.
Если граф вывода содержит компонент Ввод данных вручную , который не подключен к тому же порту, что и компонент ввода веб-службы, компонент ВВОД данных вручную не выполняется во время обработки вызовов HTTP. Обходной путь — зарегистрировать выходные данные этого компонента Ввод данных вручную в качестве набора данных, а затем в черновике конвейера вывода замените компонент ВВОД данных вручную зарегистрированным набором данных.
Очистка ресурсов
Внимание
Созданные ресурсы можно использовать в качестве необходимых компонентов для других учебников и статей с практическими рекомендациями по Машинному обучению Azure.
Удаление всех ресурсов
Если вы не планируете использовать созданные ресурсы, удалите всю группу ресурсов, чтобы с вас не взималась плата.
На портале Azure слева выберите Группы ресурсов.
В списке выберите созданную группу ресурсов.
Выберите команду Удалить группу ресурсов.
При удалении группы ресурсов будут также удалены все ресурсы, созданные в конструкторе.
Удаление отдельных ресурсов
В конструкторе, в котором вы создали эксперимент, удалите отдельные ресурсы, выбрав их и нажав кнопку Удалить.
Созданный вами целевой объект вычислений автоматически масштабируется до нуля узлов, когда он не используется. Это действие предпринимается для снижения расходов. Чтобы удалить целевой объект вычислений, сделайте следующее:
Вы можете отменить регистрацию наборов данных в рабочей области. Для этого выберите каждый набор данных и щелкните Отменить регистрацию.
Чтобы удалить набор данных, перейдите к учетной записи хранения на портале Azure или в приложении "Обозреватель службы хранилища Azure", а затем вручную удалите эти ресурсы.
Связанный контент
В этом руководстве вы узнали, как создавать, развертывать и использовать модель машинного обучения в конструкторе. Дополнительные сведения об использовании конструктора см. в следующих статьях: