Развертывание потока в качестве управляемой сетевой конечной точки для вывода в режиме реального времени

После сборки потока и его правильного тестирования может потребоваться развернуть его как конечную точку, чтобы можно было вызвать конечную точку для вывода в режиме реального времени.

В этой статье вы узнаете, как развернуть поток как управляемую конечную точку в сети для вывода в режиме реального времени. Ниже приведены действия, которые вы выполните:

Внимание

Элементы, обозначенные в этой статье как (предварительная версия), сейчас предлагаются в общедоступной предварительной версии. Предварительная версия предоставляется без соглашения об уровне обслуживания и не рекомендована для производственных рабочих нагрузок. Некоторые функции могут не поддерживаться или их возможности могут быть ограничены. Дополнительные сведения см. в статье Дополнительные условия использования Предварительных версий Microsoft Azure.

Необходимые компоненты

  • Узнайте , как создать и проверить поток в потоке запроса.

  • Базовое понимание концепции управляемых сетевых конечных точек. Управляемые сетевые конечные точки работают с мощными компьютерами ЦП и GPU в Azure в масштабируемом режиме, который освобождает вас от затрат на настройку и управление базовой инфраструктурой развертывания. Дополнительные сведения об управляемых сетевых конечных точках см. в статье "Конечные точки Online" и развертывания для вывода в режиме реального времени.

  • Управление доступом на основе ролей Azure (Azure RBAC) используется для предоставления доступа к операциям в Машинном обучении Azure. Чтобы развернуть конечную точку в потоке запросов, учетная запись пользователя должна быть назначена специалисту по обработке данных AzureML или роли с дополнительными привилегиями для рабочей области Машинное обучение Azure.

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

Создание потока и подготовка к развертыванию

Если вы уже выполнили руководство по началу работы, вы уже проверили поток должным образом, отправив пакетный запуск и оценивая результаты.

Если вы не выполнили учебник, необходимо создать поток. Тестирование потока правильно с помощью пакетного запуска и оценки перед развертыванием рекомендуется.

Мы будем использовать пример веб-классификации потока, чтобы показать, как развернуть поток. Этот пример потока является стандартным потоком. Развертывание потоков чата аналогично. Поток оценки не поддерживает развертывание.

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

При развертывании потока запроса в управляемой сетевой конечной точке в пользовательском интерфейсе развертывание будет использовать среду, созданную на основе последнего образа потока запроса и зависимостей, указанных в requirements.txt потоке. Вы можете указать дополнительные пакеты, необходимые в requirements.txt. В корневой папке папки потока можно найти requirements.txt .

Снимок экрана: текст требований к потоку.

Если вы используете среду клиента для создания среды выполнения вычислительных экземпляров, на странице сведений о среде можно найти изображение на странице сведений о среде Студия машинного обучения Azure. Дополнительные сведения см. в статье "Настройка среды с помощью контекста Docker для среды выполнения".

Снимок экрана: страница сведений о имени изображения на странице сведений о среде.

Затем необходимо также указать изображение environment в папке flow.dag.yaml потока.

Снимок экрана: настройка среды для автоматической среды выполнения на странице потока.

Примечание.

Если вы используете частные веб-каналы в Azure devops, необходимо сначала создать образ с частными веб-каналами и выбрать настраиваемую среду для развертывания в пользовательском интерфейсе.

Создание сетевого развертывания

Теперь, когда вы создали поток и правильно проверили его, пришло время создать конечную точку в Интернете для вывода в режиме реального времени.

Поток запросов поддерживает развертывание конечных точек из потока или пакетного запуска. Рекомендуется протестировать поток перед развертыванием.

На странице разработки потока или на странице сведений о выполнении выберите "Развернуть".

Страница разработки потока:

Снимок экрана: веб-классификация на странице разработки потока.

Страница сведений о выполнении:

Снимок экрана: веб-классификация на странице сведений о выполнении.

Мастер настройки конечной точки выполняется и включает следующие действия.

Основные параметры

Снимок экрана: мастер развертывания на странице конечной точки.

Этот шаг позволяет настроить основные параметры развертывания.

Свойство Description
Конечная точка Можно выбрать, следует ли развертывать новую конечную точку или обновлять существующую конечную точку.
Если выбрать "Создать", необходимо указать имя конечной точки.
Deployment name (Имя развертывания) — В той же конечной точке имя развертывания должно быть уникальным.
— Если выбрать существующую конечную точку и ввести существующее имя развертывания, то это развертывание будет перезаписан новыми конфигурациями.
Виртуальная машина Размер виртуальной машины, используемый для развертывания. Список поддерживаемых размеров см. в списке SKU управляемых сетевых конечных точек.
Число экземпляров Число экземпляров, которые будут использоваться для развертывания. Укажите значение ожидаемой рабочей нагрузки. Для обеспечения высокой доступности рекомендуется задать значение не менее 3. Мы резервируем дополнительные 20 % для выполнения обновлений. Дополнительные сведения см. в разделе квоты управляемых сетевых конечных точек
Сбор данных вывода Если этот параметр включен, входные и выходные данные потока будут автоматически собираться в Машинное обучение Azure ресурсе данных и могут использоваться для последующего мониторинга. Дополнительные сведения см. в статье о мониторинге созданных приложений искусственного интеллекта.
Диагностика Application Insights Если этот параметр включен, системные метрики во время вывода (например, количество маркеров, задержка потока, запрос потока и т. д.) будут собираться в Аналитика приложения рабочей области по умолчанию. Дополнительные сведения см. в разделе "Поток запросов", обслуживающий метрики.

После завершения базовых параметров можно напрямую просмотреть и создать , чтобы завершить создание, или щелкнуть "Далее " для настройки дополнительных параметров.

Дополнительные параметры — конечная точка

Для конечной точки можно указать следующие параметры.

Снимок экрана: параметры конечной точки мастера развертывания.

Тип аутентификации

Способ проверки подлинности для конечной точки. Проверка подлинности на основе ключей предоставляет первичный и вторичный ключ, срок действия которого не истекает. Машинное обучение Azure аутентификация на основе маркеров предоставляет маркер, который периодически обновляется автоматически. Дополнительные сведения о проверке подлинности см. в статье Проверка подлинности подключенной конечной точки.

Тип удостоверения

Конечная точка должна получить доступ к ресурсам Azure, таким как Реестр контейнеров Azure или подключения рабочей области для вывода. Разрешение конечной точки на доступ к ресурсам Azure можно разрешить, предоставив ему разрешение на управляемое удостоверение.

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

Назначаемое системой

Вы увидите, есть ли параметр принудительного доступа к секретам подключения (предварительная версия). Если поток использует подключения, конечная точка должна получить доступ к подключениям для выполнения вывода. Этот параметр включен по умолчанию, конечная точка будет предоставлена Машинное обучение Azure роль читателя секретов Подключение ion, чтобы получить доступ к подключениям автоматически, если у вас есть разрешение на читатель секретов подключений. Если этот параметр отключен, необходимо предоставить эту роль назначаемого системой удостоверения вручную или попросить справку от администратора. Узнайте больше о том, как предоставить разрешение на удостоверение конечной точки.

Назначаемое пользователем

При создании развертывания Azure пытается извлечь образ контейнера пользователя из рабочей области Реестр контейнеров Azure (ACR) и подключить модель пользователя и артефакты кода в контейнер пользователя из учетной записи хранения рабочей области.

Если вы создали связанную конечную точку с назначенным пользователем удостоверение, удостоверение, назначаемое пользователем, необходимо предоставить следующие роли перед созданием развертывания. В противном случае создание развертывания завершится ошибкой.

Область Роль Роль
Рабочая область машинного обучения Azure Роль чтения секретов при подключении рабочей области машинного обучения Azure role ИЛИ настраиваемая роль с Microsoft.MachineLearningServices/workspaces/connections/listsecrets/action Получение подключений к рабочей области
Реестр контейнеров рабочей области Извлечение ACR Извлечение образа контейнера
Хранилище рабочей области по умолчанию Читатель данных больших двоичных объектов хранилища Загрузка модели из хранилища
(Дополнительно) Рабочая область машинного обучения Azure Средство записи метрик рабочей области После развертывания конечной точки, если вы хотите отслеживать связанные с конечной точкой метрики, такие как загруженность ЦП, графического процессора, диска или памяти, необходимо предоставить данное разрешение удостоверению.

Подробные инструкции по предоставлению разрешений удостоверению конечной точки в предоставлении разрешений конечной точке.

Дополнительные параметры — развертывание

На этом шаге, кроме тегов, можно также указать среду, используемую развертыванием.

Снимок экрана: среда развертывания.

Использование среды текущего определения потока

По умолчанию развертывание будет использовать среду, созданную на основе базового образа, указанного в flow.dag.yaml и зависимостях, указанных в разделе requirements.txt.

  • Базовый образ можно указать в flow.dag.yamlRaw file mode потоке. Если не указано изображение, базовый образ по умолчанию — это последний базовый образ потока запроса.

    Снимок экрана: указание базового образа в необработанном yaml-файле потока.

  • В корневой папке папки потока можно найти requirements.txt и добавить в нее зависимости.

    Снимок экрана: текст требований к потоку.

Использование настраиваемой среды

Вы также можете создать настраиваемую среду и использовать ее для развертывания.

Примечание.

Настраиваемая среда должна соответствовать следующим требованиям:

  • Образ docker должен быть создан на основе базового образа потока запроса. mcr.microsoft.com/azureml/promptflow/promptflow-runtime-stable:<newest_version> Здесь можно найти последнюю версию.
  • Определение среды должно содержать 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

Дополнительные параметры — выходные данные и Подключение ions

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

Можно также указать подключения, используемые конечной точкой при выполнении вывода. По умолчанию они наследуются от потока.

После настройки и просмотра всех описанных выше действий можно выбрать "Рецензирование и создать ", чтобы завершить создание.

Примечание.

Ожидается, что создание конечной точки занимает около 15 минут, так как она содержит несколько этапов, включая создание конечной точки, регистрацию модели, создание развертывания и т. д.

Ход создания развертывания можно понять с помощью уведомления, начинаемого с развертывания потока запроса. Снимок экрана: уведомление о развертывании.

Предоставление разрешений конечной точке

Внимание

Предоставление разрешений (добавление назначения ролей) разрешено только роли Владелец для определенных ресурсов Azure. Возможно, вам потребуется обратиться за помощью к ИТ-администратору. Перед созданием развертывания рекомендуется предоставить роли назначенному пользователем удостоверению. Это занимает более 15 минут, чтобы предоставленные разрешения вступают в силу.

Все разрешения можно предоставить в пользовательском интерфейсе портал Azure, выполнив действия.

  1. Перейдите на страницу обзора рабочей области Машинное обучение Azure в портал Azure.

  2. Выберите элемент управления доступом и выберите "Добавить назначение ролей". Снимок экрана: элемент управления доступом с выделенным выделенным добавлением назначения ролей.

  3. Выберите средство чтения секретов Машинное обучение Azure рабочей области Подключение ion, перейдите к разделу "Далее".

    Примечание.

    Машинное обучение Azure средство чтения секретов Подключение рабочей области — это встроенная роль, которая имеет разрешение на получение подключений к рабочей области.

    Если вы хотите использовать настраиваемую роль, убедитесь, что настроенная роль имеет разрешение "Microsoft.Machine Обучение Services/workspaces/connections/listsecrets/action". Узнайте больше о создании пользовательских ролей.

  4. Выберите управляемое удостоверение и выберите участников.

    Для удостоверения, назначаемого системой, выберите конечную точку машинного обучения в разделе управляемого удостоверения, назначаемого системой, и выполните поиск по имени конечной точки.

    Для удостоверения, назначаемого пользователем, выберите управляемое удостоверение, назначаемое пользователем, и выполните поиск по имени удостоверения.

  5. Для назначаемого пользователем удостоверения также необходимо предоставить разрешения реестру контейнеров рабочей области и учетной записи хранения. Реестр контейнеров и учетная запись хранения можно найти на странице обзора рабочей области портал Azure.

    Снимок экрана: страница обзора с выделенным хранилищем и реестром контейнеров.

    Перейдите на страницу обзора реестра контейнеров рабочей области, выберите элемент "Управление доступом" и выберите " Добавить назначение ролей" и назначьте запрос ACR |Извлечение образа контейнера в удостоверение конечной точки.

    Перейдите на страницу обзора хранилища по умолчанию рабочей области, выберите элемент "Управление доступом" и выберите "Добавить назначение ролей" и назначьте служба хранилища средству чтения данных BLOB-объектов для удостоверения конечной точки.

  6. (необязательно) Для удостоверения, назначаемого пользователем, если вы хотите отслеживать связанные с конечной точкой метрики, такие как ЦП/GPU, использование диска или памяти, необходимо предоставить роль записи метрик рабочей области удостоверению.

Проверка состояния конечной точки

После завершения работы мастера развертывания будут уведомления. После успешного создания конечной точки и развертывания можно выбрать пункт "Развернуть сведения " на странице сведений о конечной точке.

Вы также можете напрямую перейти на страницу конечных точек в студии и проверка состояние развернутой конечной точки.

Снимок экрана: страница сведений о конечной точке с успешным развертыванием.

Тестирование конечной точки с образцами данных

На странице сведений о конечной точке перейдите на вкладку "Тест ".

Вы можете ввести значения и нажать кнопку "Тест".

Результат теста показан следующим образом:

Снимок экрана: страница сведений о конечной точке на вкладке теста.

Тестирование конечной точки, развернутой из потока чата

Для конечных точек, развернутых из потока чата, его можно протестировать в иммерсивном окне чата.

Снимок экрана: конечная точка, развернутая из потока чата.

Он chat_input был установлен во время разработки потока чата. В поле ввода можно ввести chat_input сообщение. Панель входных данных справа позволяет указать значения для других входных данных, кроме входных chat_inputданных. Узнайте больше о том, как разработать поток чата.

Использование конечной точки

На странице сведений о конечной точке перейдите на вкладку "Использование ". Вы можете найти конечную точку REST и ключ или токен для использования конечной точки. Существует также пример кода для использования конечной точки на разных языках.

Обратите внимание, что необходимо заполнить значения данных в соответствии с входными данными потока. Рассмотрим пример потока, используемого в этой статье веб-классификации , как пример, необходимо указать data = {"url": "<the_url_to_be_classified>"} и заполнить ключ или маркер в примере кода потребления.

Снимок экрана: страница сведений о конечной точке с кодом потребления.

Просмотр метрик конечных точек

Просмотр общих метрик управляемых сетевых конечных точек с помощью Azure Monitor (необязательно)

Вы можете просмотреть различные метрики (номера запросов, задержку запроса, сетевые байты, загрузку ЦП/GPU/диск/память и многое другое) для сетевой конечной точки и ее развертываний, следуя ссылкам со страницы сведений конечной точки в студии. После этих ссылок перейдите на страницу точных метрик в портал Azure конечной точки или развертывания.

Примечание.

Если вы указываете удостоверение, назначаемое пользователем для конечной точки, убедитесь, что вы назначили записьметрик рабочей области Машинное обучение Azure рабочей области назначенному пользователем удостоверению. В противном случае конечная точка не сможет регистрировать метрики.

Снимок экрана: страница сведений о конечной точке с выделенными метриками представления.

Дополнительные сведения о том, как просматривать метрики сетевых конечных точек, см. в разделе "Мониторинг сетевых конечных точек".

Просмотр конечных точек потока запроса для определенных метрик (необязательно)

Если вы включите приложение Аналитика диагностика в мастере развертывания пользовательского интерфейса или задайте app_insights_enabled=true в определении развертывания с помощью кода, то в Аналитика рабочей области будут выполняться следующие конечные точки потока запросов, собранные в Аналитика приложения рабочей области по умолчанию.

Имя метрик Тип Измерения Description
token_consumption людей Irisys -Потока
-Узла
- llm_engine
- token_type: prompt_tokens: маркеры входных данных API LLM; completion_tokens: маркеры ответа API LLM; total_tokens = prompt_tokens + completion tokens
Метрики потребления маркеров openai
flow_latency histogram flow,response_code,streaming,response_type стоимость выполнения запроса, response_type означает, является ли он полным/firstbyte/lastbyte
flow_request людей Irisys flow,response_code,exception,streaming количество запросов потока
node_latency histogram flow,node,run_status Затраты на выполнение узла
node_request людей Irisys flow,node,exception,run_status Число выполнения узла
rpc_latency histogram flow,node,api_call стоимость rpc
rpc_request людей Irisys flow,node,api_call,exception число rpc
flow_streaming_response_duration histogram flow стоимость отправки потоковой передачи ответа, от отправки первого байта до отправки последнего байта

Приложение по умолчанию рабочей области можно найти на странице рабочей области Аналитика в портал Azure.

Снимок экрана: Аналитика приложения рабочей области по умолчанию.

Откройте приложение Аналитика, а затем выберите "Использование" и "Предполагаемые затраты" в области навигации слева. Выберите пользовательские метрики (предварительная версия) и выберите "С измерениями" и сохраните изменения.

Снимок экрана: включение многомерных метрик.

Выберите вкладку "Метрики" в области навигации слева. Выберите стандартные метрики потока запросов из пространства имен метрик, и вы можете просмотреть метрики из раскрывающегося списка метрик с различными методами агрегирования.

Снимок экрана: метрики конечных точек потока запросов.

Устранение неполадок с конечными точками, развернутыми из потока запросов

Отсутствие авторизации для выполнения действия "Microsoft.Machine Обучение Service/workspaces/datastores/read"

Если поток содержит средство поиска индекса, после развертывания потока конечная точка должна получить доступ к хранилищу данных рабочей области для чтения yaml-файла MLIndex или папки FAISS, содержащей блоки и внедрения. Таким образом, необходимо вручную предоставить удостоверению конечной точки разрешение на это.

Вы можете предоставить удостоверение конечной точки AzureML Специалист по обработке и анализу данных в рабочей области область или пользовательскую роль, содержащую действие "Machine Обучение Service/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 для развертывания. Дополнительные сведения о среде, указанной в определении потока.

    Снимок экрана: страница сведений о пользовательской среде.

    Снимок экрана: указание базового образа в необработанном yaml-файле потока.

  • Эту ошибку можно исправить, добавив 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 минут.

Next Steps