Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применяется только к:Портал Foundry (классический). Эта статья недоступна для нового портала Foundry.
Дополнительные сведения о новом портале.
Примечание
Содержание в новой документации Microsoft Foundry может открываться по ссылкам в этой статье вместо документации Foundry (классической версии), которую вы просматриваете сейчас.
В этой статье вы узнаете, как создать следующие ресурсы Microsoft Foundry с помощью пакета SDK Машинное обучение Azure и Azure CLI (с расширением машинного обучения):
- Центр Foundry
- Подключение к Foundry
Примечание
Концентратор используется только для проекта, основанного на хабе. Проект Foundry не использует концентратор. Дополнительные сведения см. в разделе "Типы проектов".
Необходимые условия
- Учетная запись Azure с активной подпиской. Если у вас нет, создайте учетную запись free Azure, которая включает бесплатную пробную подписку.
- роли RBAC: чтобы создать хаб, необходимо иметь роль Contributor или Owner в вашей подписке или группе ресурсов Azure. Если вы создаете подключение к существующим ресурсам, убедитесь, что у вас есть доступ участника к этим ресурсам.
- Для Python SDK: SDK Машинное обучение Azure для Python (версии 2.0 или позднее), Azure Identity SDK для Python и Python 3.8 или более поздней версии.
- For Azure CLI: Azure CLI и расширение Машинное обучение Azure.
- При подключении к существующим ресурсам: учетная запись служба хранилища Azure или Azure Key Vault уже должна существовать в той же подписке (той же группе ресурсов или в другой группе ресурсов, к которым у вас есть доступ).
Настройка среды
Используйте следующие вкладки, чтобы выбрать, используете ли вы пакет SDK Python или Azure CLI:
Установите пакеты. (Если в ячейке записной книжки, используйте
%pip installвместо этого.)pip install azure-ai-ml pip install azure-identityУкажите сведения о подписке:
# Enter details of your subscription subscription_id = "<SUBSCRIPTION_ID>" resource_group = "<RESOURCE_GROUP>"Получите дескриптор подписки. Весь код Python в этой статье использует
ml_client:# get a handle to the subscription from azure.ai.ml import MLClient from azure.identity import DefaultAzureCredential ml_client = MLClient(DefaultAzureCredential(), subscription_id, resource_group)(Необязательно) Если у вас несколько учетных записей, добавьте идентификатор клиента Microsoft Entra ID, который вы хотите использовать в
DefaultAzureCredential. Найдите идентификатор клиента на портале Azure в разделе Microsoft Entra ID, внешние удостоверения.DefaultAzureCredential(interactive_browser_tenant_id="<TENANT_ID>")(Необязательно) Если вы работаете в Azure для государственных организаций - US или Azure для Китая (21Vianet), укажите регион, в который требуется пройти проверку подлинности. Можно указать регион с помощью
DefaultAzureCredential. В следующем примере выполняется проверка подлинности в регионе США Azure для государственных организаций:from azure.identity import AzureAuthorityHosts DefaultAzureCredential(authority=AzureAuthorityHosts.AZURE_GOVERNMENT)Проверьте подключение.
for hub in ml_client.workspaces.list(): print(f" - {hub.name}")
Если вы получили ошибку проверки подлинности, убедитесь, что учетные данные Azure настроены (выполните az login или настройте учетные данные с помощью пакета SDK для удостоверений Azure). Если вы получили ошибку разрешения, убедитесь, что у вас есть роль участника в подписке или группе ресурсов.
Ссылки: MLClient, DefaultAzureCredential
Создание концентратора Foundry и подключения Microsoft Foundry
Используйте следующие примеры для создания нового концентратора. Замените примеры строковых значений собственными значениями:
from azure.ai.ml.entities import Hub
my_hub_name = "myexamplehub"
my_location = "East US"
my_display_name = "My Example Hub"
# Construct a basic hub
my_hub = Hub(
name=my_hub_name,
location=my_location,
display_name=my_display_name
)
# Create the hub and wait for completion
created_hub = ml_client.workspaces.begin_create(my_hub).result()
print(f"Created hub: {created_hub.name}")
Этот код создает новый концентратор с указанным именем, расположением и отображаемым именем. Azure автоматически подготавливает связанные ресурсы служба хранилища Azure и Azure Key Vault.
Создание подключения к Foundry
Создав собственный ресурс Foundry или ресурс Azure OpenAI в той же группе ресурсов, вы можете подключить его к центру. Вы также можете подключить Поиск с использованием ИИ Azure из любой группы ресурсов в одной подписке.
Добавьте ваш хаб в
ml_clientподключение.Введите сведения о подписке. Введите
<AML_WORKSPACE_NAME>имя концентратора:# Enter details of your AML workspace subscription_id = "<SUBSCRIPTION_ID>" resource_group = "<RESOURCE_GROUP>" workspace = "<AML_WORKSPACE_NAME>"Получите дескриптор в концентратор:
# get a handle to the workspace from azure.ai.ml import MLClient from azure.identity import DefaultAzureCredential ml_client = MLClient( DefaultAzureCredential(), subscription_id, resource_group, workspace )
Используйте
ml_client, чтобы создать подключение к средствам Foundry. Конечные точки можно найти в портале Azure в разделе Управление ресурсами > Ключи и конечные точки. Для ресурса Foundry используйте конечную точку AI Services. Для Поиск с использованием ИИ Azure используйте URL-адрес конечной точки.from azure.ai.ml.entities import AzureAIServicesConnection # Construct a connection to Azure AI Services my_connection_name = "my-ai-services-connection" # Any name you want aiservices_resource_name = "<your-resource-name>" # From Azure portal my_endpoint = "<your-endpoint>" # From Azure portal my_api_keys = None # Leave blank to use Azure Entra ID (AAD) authentication my_ai_services_resource_id = f"/subscriptions/{subscription_id}/resourceGroups/{resource_group}/providers/Microsoft.CognitiveServices/accounts/{aiservices_resource_name}" my_connection = AzureAIServicesConnection( name=my_connection_name, endpoint=my_endpoint, api_key=my_api_keys, ai_services_resource_id=my_ai_services_resource_id ) # Create the connection ml_client.connections.create_or_update(my_connection) print(f"Created connection: {my_connection.name}")
Создайте хаб с существующими зависимыми ресурсами
По умолчанию концентратор автоматически создает связанные служба хранилища Azure и Azure Key Vault ресурсы. Если вы хотите повторно использовать существующие служба хранилища Azure или Azure Key Vault ресурсы, их можно указать во время создания концентратора. В следующих примерах замените значения заполнителей собственными идентификаторами ресурсов:
Совет
Идентификатор ресурса учетной записи хранения и хранилища ключей можно получить на портале Azure, перейдя в обзор ресурса и выбрав представление JSON. Идентификатор ресурса находится в поле идентификатора . Вы также можете использовать Azure CLI для получения идентификатора ресурса. Например, используйте az storage account show --name {my_storage_account_name} --query "id" и az keyvault show --name {my_key_vault_name} --query "id".
from azure.ai.ml.entities import Hub
my_hub_name = "myexamplehub"
my_location = "East US"
my_display_name = "My Example Hub"
my_resource_group = "myresourcegroupname"
my_storage_account_id = "/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account-name>"
my_key_vault_id = "/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.KeyVault/vaults/<key-vault-name>"
# Construct a hub with existing dependency resources
my_hub = Hub(
name=my_hub_name,
location=my_location,
display_name=my_display_name,
resource_group=my_resource_group,
storage_account_id=my_storage_account_id,
key_vault_id=my_key_vault_id
)
# Create the hub
created_hub = ml_client.workspaces.begin_create(my_hub).result()
print(f"Created hub with existing resources: {created_hub.name}")
Чтобы найти идентификаторы существующих ресурсов, откройте портал Azure, перейдите на страницу обзора ресурса и выберите режим JSON. Идентификатор ресурса отображается в поле id. Кроме того, используйте Azure CLI:
# Get Storage account resource ID
az storage account show --name <storage-account-name> --resource-group <resource-group> --query "id"
# Get Key Vault resource ID
az keyvault show --name <key-vault-name> --resource-group <resource-group> --query "id"
Ссылки: Hub
Обновление приложение Azure Insights и Реестр контейнеров Azure
Чтобы использовать пользовательские среды для Prompt Flow, необходимо настроить Реестр контейнеров Azure для центра. Чтобы использовать приложение Azure Insights для развертываний Prompt Flow, необходимо настроить ресурс приложение Azure Insights для вашей центральной службы. Обновление подключенных к рабочей области Реестр контейнеров Azure или ресурсов Application Insights может привести к разрыву происхождения предыдущих заданий, развернутых конечных точек вывода или возможности повторного выполнения более ранних заданий в рабочей области. После сопоставления с центром Foundry ресурсы Реестр контейнеров Azure и Application Insights не могут быть отсоединены (задано значение NULL).
Вы можете использовать портал Azure, параметры Azure SDK/CLI или шаблоны инфраструктуры в виде кода для обновления как приложение Azure Insights, так и Реестр контейнеров Azure для концентратора.
from azure.ai.ml.entities import Hub
my_app_insights = "{APPLICATION_INSIGHTS_ARM_ID}"
my_container_registry = "{CONTAINER_REGISTRY_ARM_ID}"
# construct a hub with Application Insights and Container Registry
my_hub = Hub(name="myexamplehub",
location="East US",
application_insights=my_app_insights,
container_registry=my_container_registry)
# update_dependent_resources is used to give consent to update the workspace dependent resources.
updated_hub = ml_client.workspaces.begin_update(workspace=my_hub, update_dependent_resources=True).result()
print(f"Hub updated: {updated_hub.name}")
Этот скрипт обновляет существующий концентратор с указанными ресурсами Application Insights и реестра контейнеров. Параметр update_dependent_resources=True подтверждает обновление.
Справочник: Hub, MLClient.workspaces.begin_update()