Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Observação
Este documento refere-se ao portal do Microsoft Foundry (clássico ).
🔍 Exiba a documentação do Microsoft Foundry (novo) para saber mais sobre o novo portal.
Neste artigo, você aprenderá a criar os seguintes recursos do Microsoft Foundry usando o SDK do Azure Machine Learning e a 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 projeto do Foundry não usa um hub. Para obter mais informações, confira Tipos de projetos.
Pré-requisitos
- Uma conta do Azure com uma assinatura ativa. Se você não tiver uma, crie uma conta gratuita do Azure, que inclui uma assinatura de avaliação gratuita.
- Funções RBAC: você deve ter a função Colaborador ou Proprietário em sua assinatura ou grupo de recursos do Azure para criar um hub. Se você estiver criando uma conexão com recursos existentes, verifique se você também tem acesso de Colaborador a esses recursos.
- Para o SDK do Python: SDK do Python do Azure Machine Learning (v2.0 ou posterior), SDK do Python de Identidade do Azure e Python 3.8 ou posterior.
- Para a CLI do Azure: CLI do Azure e extensão do Azure Machine Learning.
- Se estiver se conectando a recursos existentes: a conta de Armazenamento do Azure ou o Azure Key Vault já deve existir na mesma assinatura (mesmo grupo de recursos ou em outro grupo de recursos ao qual você tem acesso).
Configure seu ambiente
Use as seguintes guias para selecionar se você está usando o SDK do Python ou a CLI do Azure:
Instalar pacotes. (Se estiver em uma célula de notebook, use
%pip installem vez disso.)pip install azure-ai-ml pip install azure-identityForneça os detalhes da sua assinatura:
# Enter details of your subscription subscription_id = "<SUBSCRIPTION_ID>" resource_group = "<RESOURCE_GROUP>"Controle a assinatura. Todo o código Python nesse 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)(Opcional) Se você tiver várias contas, adicione o ID do locatário do ID do Microsoft Entra que deseja usar no
DefaultAzureCredential. Localize sua ID de locatário do portal do Azure no Microsoft Entra ID, Identidades Externas.DefaultAzureCredential(interactive_browser_tenant_id="<TENANT_ID>")(Opcional) Se você estiver trabalhando nas regiões Azure Governamental – EUA ou Azure China 21Vianet, especifique a região na qual você quer se autenticar. Você pode especificar a região com
DefaultAzureCredential. O seguinte exemplo faz a autenticação na região Azure Governamental – EUA:from azure.identity import AzureAuthorityHosts DefaultAzureCredential(authority=AzureAuthorityHosts.AZURE_GOVERNMENT)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 do 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 o 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. O Azure provisiona automaticamente os recursos associados do Armazenamento do Azure e do Azure Key Vault.
Referências: Hub, MLClient.workspaces.begin_create
Criar uma conexão do Foundry
Depois de criar seu próprio recurso do Foundry ou recurso do Azure OpenAI no mesmo grupo de recursos, você pode conectá-lo ao seu hub. Você também pode conectar a Pesquisa de IA do Azure de qualquer grupo de recursos em sua mesma assinatura.
Inclua seu hub em sua
ml_clientconexã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 )
Use
ml_clientpara estabelecer a conexão com suas Ferramentas Foundry. Você pode encontrar pontos de extremidade no portal do 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 associados do Armazenamento do Azure e do Azure Key Vault. Se você quiser reutilizar os recursos existentes do Armazenamento do Azure ou do Azure Key Vault, 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 a 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 recurso para recursos existentes, visite o portal do Azure, navegue até a página visão geral do recurso e selecione o modo de exibição JSON. A ID do recurso é exibida no campo ID . Como alternativa, use a 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 o Azure Application Insights e o Registro de Contêiner do Azure
Para usar ambientes personalizados para o Fluxo de Prompt, você precisa configurar um Registro de Contêiner do Azure para seu hub. Para usar o Azure Application Insights para implantações do Prompt Flow, você precisa configurar um recurso do Azure Application Insights para o 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 do Azure, as opções do SDK/CLI do Azure ou os modelos de infraestrutura como código para atualizar o Azure Application Insights e o 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()