Создание концентратора с помощью пакета SDK Машинное обучение Azure и CLI (классической версии)

Применяется только к:Портал Foundry (классический). Эта статья недоступна для нового портала Foundry. Дополнительные сведения о новом портале.

Примечание

Содержание в новой документации Microsoft Foundry может открываться по ссылкам в этой статье вместо документации Foundry (классической версии), которую вы просматриваете сейчас.

В этой статье вы узнаете, как создать следующие ресурсы Microsoft Foundry с помощью пакета SDK Машинное обучение Azure и Azure CLI (с расширением машинного обучения):

  • Центр Foundry
  • Подключение к Foundry

Примечание

Концентратор используется только для проекта, основанного на хабе. Проект Foundry не использует концентратор. Дополнительные сведения см. в разделе "Типы проектов".

Необходимые условия

Настройка среды

Используйте следующие вкладки, чтобы выбрать, используете ли вы пакет SDK Python или Azure CLI:

  1. Установите пакеты. (Если в ячейке записной книжки, используйте %pip install вместо этого.)

    pip install azure-ai-ml
    pip install azure-identity
    
  2. Укажите сведения о подписке:

    # Enter details of your subscription
    subscription_id = "<SUBSCRIPTION_ID>"
    resource_group = "<RESOURCE_GROUP>"
  3. Получите дескриптор подписки. Весь код 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)
  4. (Необязательно) Если у вас несколько учетных записей, добавьте идентификатор клиента Microsoft Entra ID, который вы хотите использовать в DefaultAzureCredential. Найдите идентификатор клиента на портале Azure в разделе Microsoft Entra ID, внешние удостоверения.

    DefaultAzureCredential(interactive_browser_tenant_id="<TENANT_ID>")
    
  5. (Необязательно) Если вы работаете в Azure для государственных организаций - US или Azure для Китая (21Vianet), укажите регион, в который требуется пройти проверку подлинности. Можно указать регион с помощью DefaultAzureCredential. В следующем примере выполняется проверка подлинности в регионе США Azure для государственных организаций:

    from azure.identity import AzureAuthorityHosts
    DefaultAzureCredential(authority=AzureAuthorityHosts.AZURE_GOVERNMENT)
    
  6. Проверьте подключение.

    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.

Ссылки: HubMLClient.workspaces.begin_create

Создание подключения к Foundry

Создав собственный ресурс Foundry или ресурс Azure OpenAI в той же группе ресурсов, вы можете подключить его к центру. Вы также можете подключить Поиск с использованием ИИ Azure из любой группы ресурсов в одной подписке.

  1. Добавьте ваш хаб в 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
      )
  2. Используйте 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}")
    

    Ссылки: AzureAIServicesConnection, MLClient.connections

Создайте хаб с существующими зависимыми ресурсами

По умолчанию концентратор автоматически создает связанные служба хранилища 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()