Управление сеансом вычислений потока запросов в Студия машинного обучения Azure
Сеанс вычислений потока запросов предоставляет вычислительные ресурсы, необходимые для запуска приложения, включая образ Docker, содержащий все необходимые пакеты зависимостей. Эта надежная и масштабируемая среда позволяет потоку запросов эффективно выполнять свои задачи и функции для простого взаимодействия с пользователем.
Разрешения и роли для управления сеансами вычислений
Чтобы назначить роли, необходимо иметь owner
или Microsoft.Authorization/roleAssignments/write
разрешение на ресурс.
Для пользователей вычислительного сеанса назначьте AzureML Data Scientist
роль в рабочей области. Дополнительные сведения см. в статье "Управление доступом к рабочей области Машинное обучение Azure".
Назначение роли может занять несколько минут.
Запуск сеанса вычислений в студии
Прежде чем использовать Студия машинного обучения Azure для запуска сеанса вычислений, убедитесь, что:
- У вас есть
AzureML Data Scientist
роль в рабочей области. - Хранилище данных по умолчанию (обычно
workspaceblobstore
) в рабочей области — это тип BLOB-объектов. - Рабочий каталог (
workspaceworkingdirectory
) существует в рабочей области. - Если вы используете виртуальную сеть для потока запросов, вы понимаете рекомендации по изоляции сети в потоке запросов.
Запуск сеанса вычислений на странице потока
Один поток привязывается к одному вычислительному сеансу. Вы можете запустить сеанс вычислений на странице потока.
Выберите Пуск. Запустите вычислительный сеанс с помощью среды, определенной в
flow.dag.yaml
папке потока, она выполняется на виртуальной машине размером бессерверных вычислений, которые у вас достаточно квоты в рабочей области.Выберите " Начать с дополнительных параметров". В расширенных параметрах можно:
- Выберите тип вычислений. Вы можете выбрать между бессерверными вычислительными и вычислительными экземплярами.
При выборе бессерверных вычислений можно задать следующие параметры:
- Настройте размер виртуальной машины, используемой сеансом вычислений. Выберите серии D и более поздних версий виртуальных машин. Дополнительные сведения см. в разделе о поддерживаемых рядах и размерах виртуальных машин.
- Настройте время простоя, которое автоматически удаляет сеанс вычислений, если он не используется в течение некоторого времени.
- Задайте управляемое удостоверение, назначаемое пользователем. Сеанс вычислений использует это удостоверение для извлечения базового образа, проверки подлинности с помощью подключений и установки пакетов. Убедитесь, что управляемое удостоверение, назначаемое пользователем, имеет достаточно разрешений. Если это удостоверение не задано, мы используем удостоверение пользователя по умолчанию.
- Чтобы назначить управляемому удостоверению, назначенному пользователем рабочей области, можно использовать следующую команду CLI. Узнайте больше о создании и обновлении удостоверений, назначенных пользователем для рабочей области.
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, выполните следующие действия.
Назначение управляемого удостоверения рабочей области или вычислительному экземпляру.
Использование бессерверных вычислений в качестве сеанса вычислений необходимо назначить управляемому удостоверению, назначенному пользователем, рабочей области.
Создайте управляемое удостоверение, назначаемое пользователем, и добавьте это удостоверение в организацию Azure DevOps. Дополнительные сведения см. в разделе "Использование субъектов-служб" и управляемых удостоверений.
Примечание.
Если кнопка "Добавить пользователей" не отображается, у вас, вероятно, нет необходимых разрешений для выполнения этого действия.
Добавьте или обновите удостоверения, назначенные пользователем, в рабочую область.
Примечание.
Убедитесь, что управляемое удостоверение, назначаемое пользователем, в
Microsoft.KeyVault/vaults/read
связанном ключе рабочей области.
Используйте вычислительный экземпляр в качестве сеанса вычислений, необходимо назначить управляемое удостоверение, назначаемое пользователем, вычислительному экземпляру.
Добавьте
{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
Укажите управляемое удостоверение, назначаемое пользователем, в конфигурации сеанса вычислений.
Если вы используете бессерверные вычисления, укажите назначаемое пользователем управляемое удостоверение в начале с дополнительными параметрами , если вычислительный сеанс не запущен, или нажмите кнопку "Изменить параметры сеанса вычислений", если выполняется сеанс вычислений.
Если вы используете вычислительный экземпляр, он использует назначаемое пользователем управляемое удостоверение, назначенное вычислительному экземпляру.
Примечание.
Этот подход в основном посвящен быстрому тестированию на этапе разработки потока, если вы также хотите развернуть этот поток в качестве конечной точки, создайте этот частный веб-канал в образе и обновите базовый образ 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
разрешение на образ.
- Для вычислительного ресурса можно продолжать использовать существующий вычислительный экземпляр, если вы хотите вручную управлять жизненным циклом или попробовать бессерверные вычисления, жизненный цикл которого управляется системой.