Поделиться через


Управление сеансом вычислений потока запросов в Студия машинного обучения Azure

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

Разрешения и роли для управления сеансами вычислений

Чтобы назначить роли, необходимо иметь owner или Microsoft.Authorization/roleAssignments/write разрешение на ресурс.

Для пользователей вычислительного сеанса назначьте AzureML Data Scientist роль в рабочей области. Дополнительные сведения см. в статье "Управление доступом к рабочей области Машинное обучение Azure".

Назначение роли может занять несколько минут.

Запуск сеанса вычислений в студии

Прежде чем использовать Студия машинного обучения Azure для запуска сеанса вычислений, убедитесь, что:

  • У вас есть AzureML Data Scientist роль в рабочей области.
  • Хранилище данных по умолчанию (обычно workspaceblobstore) в рабочей области — это тип BLOB-объектов.
  • Рабочий каталог (workspaceworkingdirectory) существует в рабочей области.
  • Если вы используете виртуальную сеть для потока запросов, вы понимаете рекомендации по изоляции сети в потоке запросов.

Запуск сеанса вычислений на странице потока

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

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

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

  • Выберите " Начать с дополнительных параметров". В расширенных параметрах можно:

    • Выберите тип вычислений. Вы можете выбрать между бессерверными вычислительными и вычислительными экземплярами.
      • При выборе бессерверных вычислений можно задать следующие параметры:

        • Настройте размер виртуальной машины, используемой сеансом вычислений. Выберите серии D и более поздних версий виртуальных машин. Дополнительные сведения см. в разделе о поддерживаемых рядах и размерах виртуальных машин.
        • Настройте время простоя, которое автоматически удаляет сеанс вычислений, если он не используется в течение некоторого времени.
        • Задайте управляемое удостоверение, назначаемое пользователем. Сеанс вычислений использует это удостоверение для извлечения базового образа, проверки подлинности с помощью подключений и установки пакетов. Убедитесь, что управляемое удостоверение, назначаемое пользователем, имеет достаточно разрешений. Если это удостоверение не задано, мы используем удостоверение пользователя по умолчанию.

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

        az ml workspace update -f workspace_update_with_multiple_UAIs.yml --subscription <subscription ID> --resource-group <resource group name> --name <workspace name>
        

        Где содержимое workspace_update_with_multiple_UAIs.yml выглядит следующим образом:

        identity:
           type: system_assigned, user_assigned
           user_assigned_identities:
            '/subscriptions/<subscription_id>/resourcegroups/<resource_group_name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<uai_name>': {}
            '<UAI resource ID 2>': {}
        

        Совет

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

        Ресурс Разрешение
        Рабочая область службы "Машинное обучение Azure" Участник
        Хранилище Azure Участник (плоскость управления) + Участник данных BLOB-объектов хранилища и участник привилегированных данных хранилища (плоскость данных, использование черновика потока в общей папке и данных в BLOB-объекте)
        Azure Key Vault (при использовании модели разрешений политик доступа) Участник и все разрешения политики доступа, кроме операций очистки , это режим по умолчанию для связанного Azure Key Vault.
        Azure Key Vault (при использовании модели разрешений RBAC) Участник (плоскость управления) + администратор Key Vault (плоскость данных)
        Реестр контейнеров Azure Участник
        Azure Application Insights Участник

        Примечание.

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

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

        • Так как он выполняется в существующем вычислительном экземпляре, размер виртуальной машины исправлен и не может измениться на стороне сеанса.

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

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

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

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

Использование вычислительного сеанса для отправки потока в CLI/SDK

Кроме студии, можно также указать сеанс вычислений в CLI/SDK при отправке потока.

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

$schema: https://azuremlschemas.azureedge.net/promptflow/latest/Run.schema.json
flow: <path_to_flow>
data: <path_to_flow>/data.jsonl

# specify identity used by serverless compute.
# default value
# identity:
#   type: user_identity 

# use workspace first UAI
# identity:
#   type: managed
  
# use specified client_id's UAI
# identity:
#   type: managed
#   client_id: xxx

column_mapping:
  url: ${data.url}

# define cloud resource

resources:
  instance_type: <instance_type> # serverless compute type
  # compute: <compute_instance_name> # use compute instance as compute type

Отправьте этот запуск с помощью ИНТЕРФЕЙСА командной строки:

pfazure run create --file run.yml

Примечание.

Завершение простоя составляет один час, если вы используете CLI/SDK для отправки запуска потока. Вы можете перейти на страницу вычислений, чтобы освободить вычислительные ресурсы.

Ссылки на файлы за пределами папки потока

Иногда может потребоваться ссылаться на requirements.txt файл, который находится за пределами папки потока. Например, у вас может быть сложный проект, включающий несколько потоков, и они используют один и тот же requirements.txt файл. Для этого можно добавить это поле additional_includes в поле flow.dag.yaml. Значение этого поля — это список относительного пути к файлу или папке к папке потока. Например, если requirements.txt находится в родительской папке папки потока, можно добавить ../requirements.txt в additional_includes поле.

inputs:
  question:
    type: string
outputs:
  output:
    type: string
    reference: ${answer_the_question_with_context.output}
environment:
  python_requirements_txt: requirements.txt
additional_includes:
  - ../requirements.txt
...

Файл requirements.txt копируется в папку потока и используется для запуска сеанса вычислений.

Обновление сеанса вычислений на странице потока студии

На странице потока можно использовать следующие параметры для управления сеансом вычислений:

  • Изменение параметров сеанса вычислений, изменение параметров вычислений, таких как размер виртуальной машины и управляемое удостоверение, назначаемое пользователем для бессерверных вычислений, если вы используете вычислительный экземпляр, можно изменить для использования другого экземпляра. Вы также можете изменить
  • также может изменить управляемое удостоверение, назначаемое пользователем, для бессерверных вычислений. При изменении размера виртуальной машины сеанс вычислений сбрасывается с новым размером виртуальной машины. Если
  • Установите пакеты из requirements.txt Открыть requirements.txt в пользовательском интерфейсе потока запросов, вы можете добавить в него пакеты.
  • Просмотр установленных пакетов показывает пакеты , установленные в сеансе вычислений. Он включает пакеты, устанавливаемые на базовый образ и пакеты, указанные requirements.txt в файле в папке потока.
  • Сброс вычислительного сеанса удаляет текущий вычислительный сеанс и создает новый с той же средой. Если возникла проблема с конфликтом пакетов, можно попробовать этот параметр.
  • Остановка сеанса вычислений удаляет текущий вычислительный сеанс. Если в базовом вычислении нет активного сеанса вычислений, то бессерверный вычислительный ресурс также будет удален.

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

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

  • Сохраните и установите триггеры pip install -r requirements.txt в папке потока. Процесс может занять несколько минут в зависимости от установленных пакетов.
  • Сохранение только сохраняет requirements.txt файл. Вы можете установить пакеты позже.

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

Примечание.

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

Не закрепляйте версию promptflow и promptflow-tools в requirements.txt, так как мы уже включили их в базовый образ сеанса.

requirements.txt не поддерживает локальные файлы колесика. Создайте их в образе и обновите настроенный базовый образ flow.dag.yaml. Узнайте больше о том, как создать пользовательский базовый образ.

Добавление пакетов в частный веб-канал в Azure DevOps

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

  1. Назначение управляемого удостоверения рабочей области или вычислительному экземпляру.

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

      1. Создайте управляемое удостоверение, назначаемое пользователем, и добавьте это удостоверение в организацию Azure DevOps. Дополнительные сведения см. в разделе "Использование субъектов-служб" и управляемых удостоверений.

        Примечание.

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

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

        Примечание.

        Убедитесь, что управляемое удостоверение, назначаемое пользователем, в Microsoft.KeyVault/vaults/read связанном ключе рабочей области.

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

  2. Добавьте {private} в URL-адрес частного веб-канала. Например, если вы хотите установить test_package из test_feed Azure DevOps, добавьте -i https://{private}@{test_feed_url_in_azure_devops} в requirements.txt:

    -i https://{private}@{test_feed_url_in_azure_devops}
    test_package
    
  3. Укажите управляемое удостоверение, назначаемое пользователем, в конфигурации сеанса вычислений.

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

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

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

Примечание.

Этот подход в основном посвящен быстрому тестированию на этапе разработки потока, если вы также хотите развернуть этот поток в качестве конечной точки, создайте этот частный веб-канал в образе и обновите базовый образ flow.dag.yaml. Дополнительные сведения о создании пользовательского базового образа

Изменение базового образа для сеанса вычислений

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

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

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

  • Вы также можете указать новый базовый образ environment в flow.dag.yaml файле в папке потока.

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

    environment:
        image: <your-custom-image>
        python_requirements_txt: requirements.txt
    

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

Управление бессерверным экземпляром, используемым сеансом вычислений

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

Снимок экрана: список бессерверных экземпляров.

Вы также можете получить доступ к потокам и запускаться на вычислительных ресурсах под вкладкой "Активные потоки" и "Запуски ". При удалении экземпляра влияет на поток и выполняется на нем.

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

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

  • Один пользователь может иметь несколько вычислительных ресурсов (бессерверный или вычислительный экземпляр). Из-за различных потребностей один пользователь может иметь несколько вычислительных ресурсов. Например, у одного пользователя может быть несколько вычислительных ресурсов с разным размером виртуальной машины или другим управляемым удостоверением, назначенным пользователем.
  • Один вычислительный ресурс может использоваться только одним пользователем. Вычислительный ресурс используется в качестве частного поля разработки одного пользователя. Несколько пользователей не могут совместно использовать одни и те же вычислительные ресурсы.
  • Один вычислительный ресурс может размещать несколько сеансов вычислений. Сеанс вычислений — это контейнер, работающий на базовом вычислительном ресурсе. Например, для разработки потока запросов не требуется слишком много вычислительных ресурсов, поэтому один вычислительный ресурс может размещать несколько сеансов вычислений одного пользователя.
  • Один сеанс вычислений принадлежит только одному вычислительному ресурсу за раз. Но вы можете удалить или остановить сеанс вычислений и перераспределить его на другой вычислительный ресурс.
  • Один поток может иметь только один сеанс вычислений. Каждый поток является автономным и определяет базовый образ и обязательные пакеты Python в папке потока для сеанса вычислений.

Переключение среды выполнения на вычислительный сеанс

Вычислительные сеансы имеют следующие преимущества по сравнению со средой выполнения вычислительных экземпляров:

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

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

  • requirements.txt Подготовьте файл в папке потока. Убедитесь, что вы не закрепляете версию promptflow и promptflow-tools в requirements.txt, так как мы уже включили их в базовый образ. Сеанс вычислений устанавливает пакеты в requirements.txt файле при запуске.
  • При создании пользовательской среды для создания среды выполнения вычислительного экземпляра можно получить изображение на странице сведений о среде и указать его в flow.dag.yaml файле в папке потока. Дополнительные сведения см. в разделе "Изменение базового образа для сеанса вычислений". Убедитесь, что у вас или связанного пользователя, назначенного управляемому удостоверению в рабочей области, есть acr pull разрешение на образ.

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

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

Следующие шаги