Compartilhar via


Criar um hub usando o SDK e a CLI do Azure Machine Learning (clássico)

Aplica-se somente a:Portal Foundry (clássico). Este artigo não está disponível para o novo portal do Foundry. Saiba mais sobre o novo portal.

Observação

Links neste artigo podem abrir conteúdo na nova documentação do Microsoft Foundry em vez da documentação da Foundry (clássica) que você está exibindo agora.

Neste artigo, você aprenderá a criar os seguintes recursos Microsoft Foundry usando o SDK Azure Machine Learning e CLI do Azure (com extensão de machine learning):

  • Um hub do Foundry
  • Uma conexão de fábrica

Observação

Um hub é usado apenas para um projeto baseado em hub. Um Foundry project não usa um hub. Para obter mais informações, confira Tipos de projetos.

Pré-requisitos

Configure seu ambiente

Use as seguintes guias para selecionar se você está usando o SDK Python ou CLI do Azure:

  1. Instalar pacotes. (Se estiver em uma célula de notebook, use %pip install em vez disso.)

    pip install azure-ai-ml
    pip install azure-identity
    
  2. Forneça os detalhes da sua assinatura:

    # Enter details of your subscription
    subscription_id = "<SUBSCRIPTION_ID>"
    resource_group = "<RESOURCE_GROUP>"
  3. Controle a assinatura. Todo o código Python neste artigo usa 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. (Opcional) Se você tiver várias contas, adicione o ID do locatário do Microsoft Entra ID que deseja usar no DefaultAzureCredential. Localize sua ID de locatário no portal Azure em Microsoft Entra ID, Identidades Externas.

    DefaultAzureCredential(interactive_browser_tenant_id="<TENANT_ID>")
    
  5. (Opcional) Se você estiver trabalhando nas regiões Azure Governamental - US ou Azure China 21Vianet, especifique a região na qual você deseja autenticar. Você pode especificar a região com DefaultAzureCredential. O exemplo a seguir autentica-se na região Azure Governamental - EUA:

    from azure.identity import AzureAuthorityHosts
    DefaultAzureCredential(authority=AzureAuthorityHosts.AZURE_GOVERNMENT)
    
  6. Verifique a conexão.

    for hub in ml_client.workspaces.list():
        print(f"  - {hub.name}")
    

Se você receber um erro de autenticação, verifique se suas credenciais de Azure estão configuradas (execute az login ou configure suas credenciais por meio do SDK de Identidade do Azure). Se você receber um erro de permissão, verifique se você tem a função Colaborador na assinatura ou no grupo de recursos.

Referências: MLClient, DefaultAzureCredential

Criar o hub Foundry e a conexão com a Microsoft Foundry

Use os exemplos a seguir para criar um novo hub. Substitua os valores de cadeia de caracteres de exemplo por seus próprios valores:

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}")

Esse código cria um novo hub com o nome, o local e o nome de exibição especificados. Azure provisiona automaticamente recursos Armazenamento do Azure e Azure Key Vault associados.

Referências: Hub, MLClient.workspaces.begin_create

Criar uma conexão do Foundry

Depois de criar seu próprio recurso Foundry ou Azure recurso OpenAI no mesmo grupo de recursos, você pode conectá-lo ao seu hub. Você também pode conectar Pesquisa de IA do Azure  a partir de qualquer grupo de recursos na mesma assinatura.

  1. Inclua seu hub em sua ml_client conexão:

    • Insira os detalhes da assinatura. Para <AML_WORKSPACE_NAME>, insira o nome do hub:

      # Enter details of your AML workspace
      subscription_id = "<SUBSCRIPTION_ID>"
      resource_group = "<RESOURCE_GROUP>"
      workspace = "<AML_WORKSPACE_NAME>"
    • Obtenha um identificador para o hub:

      # 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. Use ml_client para estabelecer a conexão com suas Ferramentas Foundry. Você pode encontrar pontos de extremidade no portal Azure em Gerenciamento de Recursos > Chaves e pontos de extremidade. Para um recurso da Fábrica, use o ponto de extremidade Serviços de IA. Na Pesquisa de IA do Azure, use a URL do ponto de extremidade específico.

    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}")
    

    Referências: AzureAIServicesConnection, MLClient.connections

Criar um hub com recursos de dependência existentes

Por padrão, um hub cria automaticamente recursos Armazenamento do Azure e Azure Key Vault associados. Se você quiser reutilizar recursos de Armazenamento do Azure ou Azure Key Vault existentes, poderá especificá-los durante a criação do hub. Nos exemplos a seguir, substitua os valores de espaço reservado pelos seus próprios IDs de recursos:

Dica

Você pode recuperar a ID do recurso da conta de armazenamento e do cofre de chaves no portal do Azure acessando a visão geral do recurso e selecionando Exibição JSON. A ID do recurso está localizada no campo id. Você também pode usar o CLI do Azure para recuperar a ID do recurso. Por exemplo, use az storage account show --name {my_storage_account_name} --query "id" e 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}")

Para encontrar IDs de recursos para recursos existentes, visite o portal Azure, navegue até a página Overview do recurso e selecione exibiçãoJSON. A ID do recurso é exibida no campo ID . Como alternativa, use CLI do Azure:

# 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"

Referências: Hub

Atualizar Aplicativo Azure Insights e Registro de Contêiner do Azure

Para usar ambientes personalizados no Prompt Flow, é necessário configurar um Registro de Contêiner do Azure para seu hub. Para usar o Aplicativo Azure Insights para implantações de Prompt Flow, você precisa configurar um recurso do Aplicativo Azure Insights para seu hub. A atualização dos recursos do Registro de Contêineres do Azure ou do Application Insights conectados ao workspace pode interromper a linhagem de trabalhos anteriores, os pontos de extremidade de inferência implantados ou sua capacidade de executar novamente trabalhos anteriores no workspace. Após a associação com um hub do Foundry, os recursos do Registro de Contêiner do Azure e do Application Insights não podem ser desassociados (definido como nulo).

Você pode usar o portal Azure, as opções de SDK do Azure/CLI ou os modelos de infraestrutura como código para atualizar Aplicativo Azure Insights e Registro de Contêiner do Azure para o hub.

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}")

Esse script atualiza um hub existente com os recursos especificados do Application Insights e do Registro de Contêiner. O update_dependent_resources=True parâmetro confirma a atualização.

Referência: Hub, MLClient.workspaces.begin_update()