Развертывание потока в качестве управляемой сетевой конечной точки для вывода в режиме реального времени
После сборки потока и его правильного тестирования может потребоваться развернуть его как конечную точку, чтобы можно было вызвать конечную точку для вывода в режиме реального времени.
В этой статье вы узнаете, как развернуть поток как управляемую конечную точку в сети для вывода в режиме реального времени. Ниже приведены действия, которые вы выполните:
- Тестирование потока и подготовка к развертыванию
- Создание сетевого развертывания
- Предоставление разрешений конечной точке
- Тестирование конечной точки
- Использование конечной точки
Внимание
Элементы, обозначенные в этой статье как (предварительная версия), сейчас предлагаются в общедоступной предварительной версии. Предварительная версия предоставляется без соглашения об уровне обслуживания и не рекомендована для производственных рабочих нагрузок. Некоторые функции могут не поддерживаться или их возможности могут быть ограничены. Дополнительные сведения см. в статье Дополнительные условия использования Предварительных версий Microsoft Azure.
Необходимые компоненты
Узнайте , как создать и проверить поток в потоке запроса.
Базовое понимание концепции управляемых сетевых конечных точек. Управляемые сетевые конечные точки работают с мощными компьютерами ЦП и GPU в Azure в масштабируемом режиме, который освобождает вас от затрат на настройку и управление базовой инфраструктурой развертывания. Дополнительные сведения об управляемых сетевых конечных точках см. в статье "Конечные точки Online" и развертывания для вывода в режиме реального времени.
Управление доступом на основе ролей Azure (Azure RBAC) используется для предоставления доступа к операциям в Машинном обучении Azure. Чтобы развернуть конечную точку в потоке запросов, учетная запись пользователя должна быть назначена специалисту по обработке данных AzureML или роли с дополнительными привилегиями для рабочей области Машинное обучение Azure.
У вас есть базовое понимание управляемых удостоверений. Узнайте больше об управляемых удостоверениях.
Примечание.
Управляемая конечная точка в Сети поддерживает только управляемую виртуальную сеть. Если рабочая область находится в пользовательской виртуальной сети, необходимо попробовать другие варианты развертывания, такие как развертывание в интернет-конечной точке Kubernetes с помощью интерфейса командной строки или пакета SDK, или развернуть на других платформах, таких как Docker.
Создание потока и подготовка к развертыванию
Если вы уже выполнили руководство по началу работы, вы уже проверили поток должным образом, отправив пакетный запуск и оценивая результаты.
Если вы не выполнили учебник, необходимо создать поток. Тестирование потока правильно с помощью пакетного запуска и оценки перед развертыванием рекомендуется.
Мы будем использовать пример веб-классификации потока, чтобы показать, как развернуть поток. Этот пример потока является стандартным потоком. Развертывание потоков чата аналогично. Поток оценки не поддерживает развертывание.
Определение среды, используемой развертыванием
При развертывании потока запроса в управляемой сетевой конечной точке в пользовательском интерфейсе развертывание будет использовать среду, созданную на основе последнего образа потока запроса и зависимостей, указанных в requirements.txt
потоке. Вы можете указать дополнительные пакеты, необходимые в requirements.txt
. В корневой папке папки потока можно найти requirements.txt
.
Примечание.
Если вы используете частные веб-каналы в Azure devops, необходимо сначала создать образ с частными веб-каналами и выбрать настраиваемую среду для развертывания в пользовательском интерфейсе.
Создание сетевого развертывания
Теперь, когда вы создали поток и правильно проверили его, пришло время создать конечную точку в Интернете для вывода в режиме реального времени.
Поток запросов поддерживает развертывание конечных точек из потока или пакетного запуска. Рекомендуется протестировать поток перед развертыванием.
На странице разработки потока или на странице сведений о выполнении выберите "Развернуть".
Страница разработки потока:
Страница сведений о выполнении:
Мастер настройки конечной точки выполняется и включает следующие действия.
Основные параметры
Этот шаг позволяет настроить основные параметры развертывания.
Свойство | Description |
---|---|
Конечная точка | Можно выбрать, следует ли развертывать новую конечную точку или обновлять существующую конечную точку. Если выбрать "Создать", необходимо указать имя конечной точки. |
Deployment name (Имя развертывания) | — В той же конечной точке имя развертывания должно быть уникальным. — Если выбрать существующую конечную точку и ввести существующее имя развертывания, то это развертывание будет перезаписан новыми конфигурациями. |
Виртуальная машина | Размер виртуальной машины, используемый для развертывания. Список поддерживаемых размеров см. в списке SKU управляемых сетевых конечных точек. |
Число экземпляров | Число экземпляров, которые будут использоваться для развертывания. Укажите значение ожидаемой рабочей нагрузки. Для обеспечения высокой доступности рекомендуется задать значение не менее 3. Мы резервируем дополнительные 20 % для выполнения обновлений. Дополнительные сведения см. в разделе квоты управляемых сетевых конечных точек |
Сбор данных вывода | Если этот параметр включен, входные и выходные данные потока будут автоматически собираться в Машинное обучение Azure ресурсе данных и могут использоваться для последующего мониторинга. Дополнительные сведения см. в статье о мониторинге созданных приложений искусственного интеллекта. |
После завершения базовых параметров можно напрямую просмотреть и создать , чтобы завершить создание, или щелкнуть "Далее " для настройки дополнительных параметров.
Дополнительные параметры — конечная точка
Для конечной точки можно указать следующие параметры.
Тип аутентификации
Способ проверки подлинности для конечной точки. Проверка подлинности на основе ключей предоставляет первичный и вторичный ключ, срок действия которого не истекает. Машинное обучение Azure аутентификация на основе маркеров предоставляет маркер, который периодически обновляется автоматически. Дополнительные сведения о проверке подлинности см. в статье Проверка подлинности подключенной конечной точки.
Тип удостоверения
Конечная точка должна получить доступ к ресурсам Azure, таким как Реестр контейнеров Azure или подключения рабочей области для вывода. Разрешение конечной точки на доступ к ресурсам Azure можно разрешить, предоставив ему разрешение на управляемое удостоверение.
Назначаемое системой удостоверение будет автоматически создано после создания конечной точки, а назначаемое пользователем удостоверение создается пользователем. Узнайте больше об управляемых удостоверениях.
Назначаемое системой
Вы увидите, есть ли параметр принудительного доступа к секретам подключения (предварительная версия). Если поток использует подключения, конечная точка должна получить доступ к подключениям для выполнения вывода. Параметр включен по умолчанию, конечная точка будет предоставлена Машинное обучение Azure роль средства чтения секретов подключения рабочей области для автоматического доступа к подключениям, если у вас есть разрешение на средство чтения секретов подключений. Если этот параметр отключен, необходимо предоставить эту роль назначаемого системой удостоверения вручную или попросить справку от администратора. Узнайте больше о том, как предоставить разрешение на удостоверение конечной точки.
Назначаемое пользователем
При создании развертывания Azure пытается извлечь образ контейнера пользователя из рабочей области Реестр контейнеров Azure (ACR) и подключить модель пользователя и артефакты кода в контейнер пользователя из учетной записи хранения рабочей области.
Если вы создали связанную конечную точку с назначенным пользователем удостоверение, удостоверение, назначаемое пользователем, необходимо предоставить следующие роли перед созданием развертывания. В противном случае создание развертывания завершится ошибкой.
Область | Роль | Роль |
---|---|---|
Рабочая область машинного обучения Azure | Роль чтения секретов при подключении рабочей области машинного обучения Azure role ИЛИ настраиваемая роль с Microsoft.MachineLearningServices/workspaces/connections/listsecrets/action | Получение подключений к рабочей области |
Реестр контейнеров рабочей области | Извлечение ACR | Извлечение образа контейнера |
Хранилище рабочей области по умолчанию | Читатель данных больших двоичных объектов хранилища | Загрузка модели из хранилища |
(Дополнительно) Рабочая область машинного обучения Azure | Средство записи метрик рабочей области | После развертывания конечной точки, если вы хотите отслеживать связанные с конечной точкой метрики, такие как загруженность ЦП, графического процессора, диска или памяти, необходимо предоставить данное разрешение удостоверению. |
Подробные инструкции по предоставлению разрешений удостоверению конечной точки в предоставлении разрешений конечной точке.
Внимание
Если в потоке используются подключения проверки подлинности на основе идентификатора Microsoft Entra, независимо от того, используется назначаемое системой удостоверение или удостоверение, назначаемое пользователем, всегда необходимо предоставить управляемому удостоверению соответствующие роли соответствующих ресурсов, чтобы он смог выполнять вызовы API к этому ресурсу. Например, если подключение Azure OpenAI использует проверку подлинности на основе идентификатора Microsoft Entra, необходимо предоставить конечную точку управляемому удостоверению Cognitive Services OpenAI User или Cognitive Services Участника OpenAI соответствующих ресурсов Azure OpenAI .
Дополнительные параметры — развертывание
На этом шаге, кроме тегов, можно также указать среду, используемую развертыванием.
Использование среды текущего определения потока
По умолчанию развертывание будет использовать среду, созданную на основе базового образа, указанного в flow.dag.yaml
и зависимостях, указанных в разделе requirements.txt
.
Базовый образ можно указать в
flow.dag.yaml
Raw file mode
потоке. Если не указано изображение, базовый образ по умолчанию — это последний базовый образ потока запроса.В корневой папке папки потока можно найти
requirements.txt
и добавить в нее зависимости.
Использование настраиваемой среды
Вы также можете создать настраиваемую среду и использовать ее для развертывания.
Примечание.
Настраиваемая среда должна соответствовать следующим требованиям:
Ниже приведен пример настраиваемого определения среды.
$schema: https://azuremlschemas.azureedge.net/latest/environment.schema.json
name: pf-customized-test
build:
path: ./image_build
dockerfile_path: Dockerfile
description: promptflow customized runtime
inference_config:
liveness_route:
port: 8080
path: /health
readiness_route:
port: 8080
path: /health
scoring_route:
port: 8080
path: /score
Включение трассировки путем включения application Insights диагностика (предварительная версия)
Если включить эту функцию, данные трассировки и системные метрики во время вывода (например, количество маркеров, задержка потока, запрос потока и т. д.) будут собираться в связанную рабочую область Application Insights. Дополнительные сведения см. в статье "Запросы на обслуживание данных трассировки и метрик".
Если вы хотите указать другой Application Insights, отличный от связанной рабочей области, можно настроить с помощью ИНТЕРФЕЙСА командной строки.
Дополнительные параметры — выходные данные и подключения
На этом шаге можно просмотреть все выходные данные потока и указать, какие выходные данные будут включены в ответ развернутой конечной точки. По умолчанию выбраны все выходные данные потока.
Можно также указать подключения, используемые конечной точкой при выполнении вывода. По умолчанию они наследуются от потока.
После настройки и просмотра всех описанных выше действий можно выбрать "Рецензирование и создать ", чтобы завершить создание.
Примечание.
Ожидается, что создание конечной точки занимает около 15 минут, так как она содержит несколько этапов, включая создание конечной точки, регистрацию модели, создание развертывания и т. д.
Ход создания развертывания можно понять с помощью уведомления, начинаемого с развертывания потока запроса.
Предоставление разрешений конечной точке
Внимание
Предоставление разрешений (добавление назначения ролей) разрешено только роли Владелец для определенных ресурсов Azure. Возможно, вам потребуется обратиться за помощью к ИТ-администратору. Перед созданием развертывания рекомендуется предоставить роли назначенному пользователем удостоверению. Это занимает более 15 минут, чтобы предоставленные разрешения вступают в силу.
Все разрешения можно предоставить в пользовательском интерфейсе портал Azure, выполнив действия.
Перейдите на страницу обзора рабочей области Машинное обучение Azure в портал Azure.
Выберите элемент управления доступом и выберите "Добавить назначение ролей".
Выберите средство чтения секретов подключения к рабочей области Машинное обучение Azure, перейдите к разделу "Далее".
Примечание.
Машинное обучение Azure средство чтения секретов подключения к рабочей области — это встроенная роль, которая имеет разрешение на получение подключений к рабочей области.
Если вы хотите использовать настраиваемую роль, убедитесь, что настраиваемая роль имеет разрешение "Microsoft.MachineLearningServices/workspaces/connections/listsecrets/action". Узнайте больше о создании пользовательских ролей.
Выберите управляемое удостоверение и выберите участников.
Для удостоверения, назначаемого системой, выберите конечную точку машинного обучения в разделе управляемого удостоверения, назначаемого системой, и выполните поиск по имени конечной точки.
Для удостоверения, назначаемого пользователем, выберите управляемое удостоверение, назначаемое пользователем, и выполните поиск по имени удостоверения.
Для назначаемого пользователем удостоверения также необходимо предоставить разрешения реестру контейнеров рабочей области и учетной записи хранения. Реестр контейнеров и учетная запись хранения можно найти на странице обзора рабочей области портал Azure.
Перейдите на страницу обзора реестра контейнеров рабочей области, выберите элемент "Управление доступом" и выберите " Добавить назначение ролей" и назначьте запрос ACR |Извлечение образа контейнера в удостоверение конечной точки.
Перейдите на страницу обзора хранилища по умолчанию рабочей области, выберите элемент "Управление доступом" и выберите "Добавить назначение роли" и назначьте читателю данных BLOB-объектов хранилища удостоверение конечной точки.
(необязательно) Для удостоверения, назначаемого пользователем, если вы хотите отслеживать связанные с конечной точкой метрики, такие как ЦП/GPU, использование диска или памяти, необходимо предоставить роль записи метрик рабочей области удостоверению.
Проверка состояния конечной точки
После завершения работы мастера развертывания будут уведомления. После успешного создания конечной точки и развертывания можно выбрать пункт "Развернуть сведения " на странице сведений о конечной точке.
Вы также можете напрямую перейти на страницу конечных точек в студии и проверить состояние развернутой конечной точки.
Тестирование конечной точки с образцами данных
На странице сведений о конечной точке перейдите на вкладку "Тест ".
Вы можете ввести значения и нажать кнопку "Тест".
Результат теста показан следующим образом:
Тестирование конечной точки, развернутой из потока чата
Для конечных точек, развернутых из потока чата, его можно протестировать в иммерсивном окне чата.
Он chat_input
был установлен во время разработки потока чата. В поле ввода можно ввести chat_input
сообщение. Панель входных данных справа позволяет указать значения для других входных данных, кроме входных chat_input
данных. Узнайте больше о том, как разработать поток чата.
Использование конечной точки
На странице сведений о конечной точке перейдите на вкладку "Использование ". Вы можете найти конечную точку REST и ключ или токен для использования конечной точки. Существует также пример кода для использования конечной точки на разных языках.
Обратите внимание, что необходимо заполнить значения данных в соответствии с входными данными потока. Рассмотрим пример потока, используемого в этой статье веб-классификации , как пример, необходимо указать data = {"url": "<the_url_to_be_classified>"}
и заполнить ключ или маркер в примере кода потребления.
Мониторинг конечных точек
Просмотр общих метрик управляемых сетевых конечных точек с помощью Azure Monitor (необязательно)
Вы можете просмотреть различные метрики (номера запросов, задержку запроса, сетевые байты, загрузку ЦП/GPU/диск/память и многое другое) для сетевой конечной точки и ее развертываний, следуя ссылкам со страницы сведений конечной точки в студии. После этих ссылок перейдите на страницу точных метрик в портал Azure конечной точки или развертывания.
Примечание.
Если вы указываете удостоверение, назначаемое пользователем для конечной точки, убедитесь, что вы назначили запись метрик рабочей области Машинное обучение Azure рабочей области назначенному пользователем удостоверению. В противном случае конечная точка не сможет регистрировать метрики.
Дополнительные сведения о том, как просматривать метрики сетевых конечных точек, см. в разделе "Мониторинг сетевых конечных точек".
Просмотр конечных точек потока запросов, определенных метрик и данных трассировки (необязательно)
Если в мастере развертывания пользовательского интерфейса включена диагностика Application Insights, данные трассировки и метрики запроса будут собираться в связанную рабочую область Application Insights. Дополнительные сведения о включении трассировки для развертывания.
Устранение неполадок с конечными точками, развернутыми из потока запросов
Отсутствие авторизации для выполнения действия "Microsoft.MachineLearningService/workspaces/datastores/read"
Если поток содержит средство поиска индекса, после развертывания потока конечная точка должна получить доступ к хранилищу данных рабочей области для чтения yaml-файла MLIndex или папки FAISS, содержащей блоки и внедрения. Таким образом, необходимо вручную предоставить удостоверению конечной точки разрешение на это.
Вы можете предоставить удостоверение конечной точки AzureML Специалист по обработке и анализу данных в области рабочей области или пользовательскую роль, содержащую действие MachineLearningService/workspace/datastore/reader.
Ошибка MissingDriverProgram
Если вы развертываете поток с пользовательской средой и сталкиваетесь со следующей ошибкой, это может быть вызвано тем, что вы не указали inference_config
в определении пользовательской среды.
'error':
{
'code': 'BadRequest',
'message': 'The request is invalid.',
'details':
{'code': 'MissingDriverProgram',
'message': 'Could not find driver program in the request.',
'details': [],
'additionalInfo': []
}
}
Существует 2 способа исправить эту ошибку.
(Рекомендуется) Вы можете найти URI образа контейнера на странице сведений о пользовательской среде и задать его в качестве базового образа потока в файле flow.dag.yaml. При развертывании потока в пользовательском интерфейсе вы просто выбираете среду use current flow definition, а серверная служба создаст настраиваемую среду на основе этого базового образа и
requirement.txt
для развертывания. Дополнительные сведения о среде, указанной в определении потока.Эту ошибку можно исправить, добавив
inference_config
в определение пользовательской среды. Узнайте больше об использовании настраиваемой среды.Ниже приведен пример настраиваемого определения среды.
$schema: https://azuremlschemas.azureedge.net/latest/environment.schema.json
name: pf-customized-test
build:
path: ./image_build
dockerfile_path: Dockerfile
description: promptflow customized runtime
inference_config:
liveness_route:
port: 8080
path: /health
readiness_route:
port: 8080
path: /health
scoring_route:
port: 8080
path: /score
Слишком долгое время ответа модели
Иногда вы можете заметить, что развертывание занимает слишком много времени для реагирования. Существует несколько потенциальных факторов для этого.
- Модель недостаточно мощна (например, используйте gpt над текстом ada)
- Запрос индекса не оптимизирован и занимает слишком много времени
- Поток имеет много шагов для обработки
Рекомендуется оптимизировать конечную точку с приведенными выше рекомендациями, чтобы повысить производительность модели.
Не удалось получить схему развертывания
После развертывания конечной точки и хотите проверить ее на вкладке "Тест" на странице сведений о конечной точке, если на вкладке "Тест" отображается схема развертывания, как показано ниже, можно попробовать следующие 2 метода, чтобы устранить эту проблему:
- Убедитесь, что вы предоставили правильное разрешение для удостоверения конечной точки. Узнайте больше о том, как предоставить разрешение для удостоверения конечной точки.
Доступ запрещен для перечисления секрета рабочей области
Если вы столкнулись с ошибкой, например "Доступ отказано в списке секретов рабочей области", проверьте, предоставили ли вам правильное разрешение на удостоверение конечной точки. Узнайте больше о том, как предоставить разрешение для удостоверения конечной точки.
Очистка ресурсов
Если вы не собираетесь использовать конечную точку после завершения работы с этим руководством, удалите конечную точку.
Примечание.
Полное удаление может занять около 20 минут.