Executar modelos do Azure Machine Learning a partir do Fabric, usando pontos de extremidade em lote (visualização)
APLICA-SE A:Azure CLI ml extension v2 (current)Python SDK azure-ai-ml v2 (current)
Neste artigo, você aprenderá a consumir implantações em lote do Azure Machine Learning do Microsoft Fabric. Embora o fluxo de trabalho use modelos que são implantados em pontos de extremidade em lote, ele também oferece suporte ao uso de implantações de pipeline em lote da Malha.
Importante
Esta funcionalidade está atualmente em pré-visualização pública. Esta versão de pré-visualização é fornecida sem um contrato de nível de serviço e não a recomendamos para cargas de trabalho de produção. Algumas funcionalidades poderão não ser suportadas ou poderão ter capacidades limitadas.
Para obter mais informações, veja Termos Suplementares de Utilização para Pré-visualizações do Microsoft Azure.
Pré-requisitos
- Obtenha uma assinatura do Microsoft Fabric. Ou inscreva-se para uma avaliação gratuita do Microsoft Fabric.
- Entre no Microsoft Fabric.
- Uma subscrição do Azure. Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar. Experimente a versão gratuita ou paga do Azure Machine Learning.
- Uma área de trabalho do Azure Machine Learning. Se você não tiver um, use as etapas em Como gerenciar espaços de trabalho para criar um.
- Verifique se você tem as seguintes permissões no espaço de trabalho:
- Criar/gerenciar pontos de extremidade em lote e implantações: use funções Proprietário, colaborador ou função personalizada permitindo
Microsoft.MachineLearningServices/workspaces/batchEndpoints/*
. - Criar implantações ARM no grupo de recursos do espaço de trabalho: use funções Proprietário, colaborador ou função personalizada permitindo
Microsoft.Resources/deployments/write
no grupo de recursos onde o espaço de trabalho é implantado.
- Criar/gerenciar pontos de extremidade em lote e implantações: use funções Proprietário, colaborador ou função personalizada permitindo
- Verifique se você tem as seguintes permissões no espaço de trabalho:
- Um modelo implantado em um ponto de extremidade em lote. Se você não tiver um, use as etapas em Implantar modelos para pontuação em pontos de extremidade em lote para criar um.
- Baixe o conjunto de dados de exemplo heart-unlabeled.csv a ser usado para pontuação.
Arquitetura
O Azure Machine Learning não pode acessar diretamente os dados armazenados no OneLake do Fabric. No entanto, você pode usar a capacidade do OneLake para criar atalhos dentro de um Lakehouse para ler e gravar dados armazenados no Azure Data Lake Gen2. Como o Azure Machine Learning dá suporte ao armazenamento do Azure Data Lake Gen2, essa configuração permite que você use o Fabric e o Azure Machine Learning juntos. A arquitetura de dados é a seguinte:
Configurar o acesso aos dados
Para permitir que o Fabric e o Azure Machine Learning leiam e gravem os mesmos dados sem precisar copiá-los, você pode aproveitar os atalhos do OneLake e os armazenamentos de dados do Azure Machine Learning. Ao apontar um atalho do OneLake e um armazenamento de dados para a mesma conta de armazenamento, você pode garantir que o Fabric e o Azure Machine Learning leiam e gravem nos mesmos dados subjacentes.
Nesta seção, você cria ou identifica uma conta de armazenamento a ser usada para armazenar as informações que o ponto de extremidade em lote consumirá e que os usuários do Fabric verão no OneLake. O Fabric suporta apenas contas de armazenamento com nomes hierárquicos habilitados, como o Azure Data Lake Gen2.
Criar um atalho do OneLake para a conta de armazenamento
Abra a experiência Synapse Data Engineering no Fabric.
No painel do lado esquerdo, selecione seu espaço de trabalho Malha para abri-lo.
Abra a casa do lago que você usará para configurar a conexão. Se você ainda não tem uma lakehouse, vá para a experiência de Engenharia de Dados para criar uma lakehouse. Neste exemplo, você usa uma casa de lago chamada trusted.
Na barra de navegação do lado esquerdo, abra mais opções para Arquivos e selecione Novo atalho para abrir o assistente.
Selecione a opção Azure Data Lake Storage Gen2 .
Na seção Configurações de conexão , cole a URL associada à conta de armazenamento do Azure Data Lake Gen2.
Na seção Credenciais de conexão:
- Em Conexão, selecione Criar nova conexão.
- Para Nome da conexão, mantenha o valor preenchido padrão.
- Em Tipo de autenticação, selecione Conta organizacional para usar as credenciais do usuário conectado via OAuth 2.0.
- Selecione Entrar para entrar.
Selecione Seguinte.
Configure o caminho para o atalho, relativo à conta de armazenamento, se necessário. Use essa configuração para configurar a pasta para a qual o atalho apontará.
Configure o Nome do atalho. Este nome será um caminho dentro da casa do lago. Neste exemplo, nomeie os conjuntos de dados de atalho.
Guarde as alterações.
Criar um armazenamento de dados que aponte para a conta de armazenamento
Abra o estúdio do Azure Machine Learning.
Vá para seu espaço de trabalho do Azure Machine Learning.
Vá para a seção Dados .
Selecione a guia Datastores .
Selecione Criar.
Configure o armazenamento de dados da seguinte maneira:
Em Nome do Datastore, digite trusted_blob.
Para Tipo de armazenamento de dados, selecione Armazenamento de Blob do Azure.
Gorjeta
Por que você deve configurar o Armazenamento de Blobs do Azure em vez do Azure Data Lake Gen2? Os pontos de extremidade em lote só podem gravar previsões em contas de Armazenamento de Blob. No entanto, cada conta de armazenamento do Azure Data Lake Gen2 também é uma conta de armazenamento de blob; portanto, eles podem ser usados de forma intercambiável.
Selecione a conta de armazenamento no assistente, usando a ID da assinatura, a conta de armazenamento e o contêiner de Blob (sistema de arquivos).
Selecione Criar.
Certifique-se de que a computação em que o ponto de extremidade em lote está sendo executado tenha permissão para montar os dados nessa conta de armazenamento. Embora o acesso ainda seja concedido pela identidade que invoca o ponto de extremidade, a computação em que o ponto de extremidade em lote é executado precisa ter permissão para montar a conta de armazenamento fornecida. Para obter mais informações, consulte Acessando serviços de armazenamento.
Carregar conjunto de dados de exemplo
Carregue alguns dados de exemplo para o ponto de extremidade usar como entrada:
Vá para o espaço de trabalho do Fabric.
Selecione a casa do lago onde você criou o atalho.
Vá para o atalho de conjuntos de dados.
Crie uma pasta para armazenar o conjunto de dados de exemplo que você deseja pontuar. Nomeie a pasta uci-heart-unlabeled.
Use a opção Obter dados e selecione Carregar arquivos para carregar o conjunto de dados de exemplo heart-unlabeled.csv.
Carregue o conjunto de dados de exemplo.
O arquivo de exemplo está pronto para ser consumido. Anote o caminho para o local onde você o salvou.
Criar um pipeline de malha para inferência em lote
Nesta seção, você cria um pipeline de inferência de malha para lote em seu espaço de trabalho de malha existente e invoca pontos de extremidade em lote.
Retorne à experiência de Engenharia de Dados (se você já navegou para fora dela), usando o ícone do seletor de experiência no canto inferior esquerdo da sua página inicial.
Abra o espaço de trabalho do Fabric.
Na seção Novo da página inicial, selecione Pipeline de dados.
Nomeie o pipeline e selecione Criar.
Selecione a guia Atividades na barra de ferramentas na tela do designer.
Selecione mais opções no final da guia e selecione Azure Machine Learning.
Vá para a guia Configurações e configure a atividade da seguinte maneira:
Selecione Novo ao lado de Conexão do Azure Machine Learning para criar uma nova conexão com o espaço de trabalho do Azure Machine Learning que contém sua implantação.
Na seção Configurações de conexão do assistente de criação, especifique os valores da ID da assinatura, Nome do grupo de recursos e Nome do espaço de trabalho, onde seu ponto de extremidade está implantado.
Na seção Credenciais de conexão, selecione Conta organizacional como o valor para o Tipo de autenticação para sua conexão. A conta organizacional usa as credenciais do usuário conectado. Como alternativa, você pode usar a entidade de serviço. Nas configurações de produção, recomendamos que você use uma entidade de serviço. Independentemente do tipo de autenticação, verifique se a identidade associada à conexão tem os direitos para chamar o ponto de extremidade em lote que você implantou.
Salve a conexão. Depois que a conexão é selecionada, o Fabric preenche automaticamente os pontos de extremidade em lote disponíveis no espaço de trabalho selecionado.
Para Ponto de extremidade de lote, selecione o ponto de extremidade de lote que você deseja chamar. Neste exemplo, selecione classificador de coração-....
A seção Implantação em lote é preenchida automaticamente com as implantações disponíveis no ponto de extremidade.
Para Implantação em lote, selecione uma implantação específica na lista, se necessário. Se você não selecionar uma implantação, o Fabric invocará a implantação Padrão sob o ponto de extremidade, permitindo que o criador do ponto de extremidade em lote decida qual implantação será chamada. Na maioria dos cenários, convém manter esse comportamento padrão.
Configurar entradas e saídas para o ponto de extremidade em lote
Nesta seção, você configura entradas e saídas do ponto de extremidade em lote. As entradas para pontos de extremidade em lote fornecem dados e parâmetros necessários para executar o processo. O pipeline em lote do Azure Machine Learning no Fabric dá suporte a implantações de modelo e implantações de pipeline. O número e o tipo de entradas fornecidas dependem do tipo de implantação. Neste exemplo, você usa uma implantação de modelo que requer exatamente uma entrada e produz uma saída.
Para obter mais informações sobre entradas e saídas de pontos finais em lote, consulte Noções básicas sobre entradas e saídas em pontos de extremidade em lote.
Configurar a seção de entrada
Configure a seção Entradas de trabalho da seguinte maneira:
Expanda a seção Entradas de trabalho.
Selecione Novo para adicionar uma nova entrada ao seu ponto de extremidade.
Nomeie a entrada
input_data
. Como você está usando uma implantação de modelo, pode usar qualquer nome. Para implantações de pipeline, no entanto, você precisa indicar o nome exato da entrada que seu modelo está esperando.Selecione o menu suspenso ao lado da entrada que você acabou de adicionar para abrir a propriedade da entrada (campo nome e valor).
Digite
JobInputType
o campo Nome para indicar o tipo de entrada que você está criando.Insira
UriFolder
o campo Valor para indicar que a entrada é um caminho de pasta. Outros valores suportados para este campo são UriFile (um caminho de arquivo) ou Literal (qualquer valor literal como string ou inteiro). Você precisa usar o tipo certo que sua implantação espera.Selecione o sinal de adição ao lado da propriedade para adicionar outra propriedade para essa entrada.
Insira
Uri
o campo Nome para indicar o caminho para os dados.Insira
azureml://datastores/trusted_blob/datasets/uci-heart-unlabeled
, o caminho para localizar os dados, no campo Valor . Aqui, você usa um caminho que leva à conta de armazenamento vinculada ao OneLake no Fabric e ao Azure Machine Learning. azureml://datastores/trusted_blob/datasets/uci-heart-unlabeled é o caminho para arquivos CSV com os dados de entrada esperados para o modelo que é implantado no ponto de extremidade em lote. Você também pode usar um caminho direto para a conta de armazenamento, comohttps://<storage-account>.dfs.azure.com
.Gorjeta
Se a sua entrada for do tipo Literal, substitua a propriedade
Uri
por 'Value''.
Se o seu endpoint exigir mais entradas, repita as etapas anteriores para cada uma delas. Neste exemplo, as implantações de modelo exigem exatamente uma entrada.
Configurar a seção de saída
Configure a seção Saídas de trabalho da seguinte maneira:
Expanda a seção Saídas de trabalho.
Selecione Novo para adicionar uma nova saída ao seu ponto de extremidade.
Dê o nome
output_data
à saída. Como você está usando uma implantação de modelo, pode usar qualquer nome. Para implantações de pipeline, no entanto, você precisa indicar o nome exato da saída que seu modelo está gerando.Selecione o menu suspenso ao lado da saída que você acabou de adicionar para abrir a propriedade da saída (campo nome e valor).
Insira
JobOutputType
o campo Nome para indicar o tipo de saída que você está criando.Insira
UriFile
o campo Valor para indicar que a saída é um caminho de arquivo. O outro valor suportado para este campo é UriFolder (um caminho de pasta). Ao contrário da seção de entrada de trabalho, Literal (qualquer valor literal como string ou inteiro) não é suportado como uma saída.Selecione o sinal de adição ao lado da propriedade para adicionar outra propriedade para essa saída.
Insira
Uri
o campo Nome para indicar o caminho para os dados.Digite
@concat(@concat('azureml://datastores/trusted_blob/paths/endpoints', pipeline().RunId, 'predictions.csv')
, o caminho para onde a saída deve ser colocada, no campo Valor . Os pontos de extremidade em lote do Azure Machine Learning dão suporte apenas ao uso de caminhos de armazenamento de dados como saídas. Como as saídas precisam ser exclusivas para evitar conflitos, você usou uma expressão dinâmica,@concat(@concat('azureml://datastores/trusted_blob/paths/endpoints', pipeline().RunId, 'predictions.csv')
, para construir o caminho.
Se o ponto de extremidade retornar mais saídas, repita as etapas anteriores para cada uma delas. Neste exemplo, as implantações de modelo produzem exatamente uma saída.
(Opcional) Definir as definições do trabalho
Você também pode definir as configurações de trabalho adicionando as seguintes propriedades:
Para implantações de modelo:
Definição | Descrição |
---|---|
MiniBatchSize |
O tamanho do lote. |
ComputeInstanceCount |
O número de instâncias de computação a serem solicitadas pela implantação. |
Para implantações de pipeline:
Definição | Descrição |
---|---|
ContinueOnStepFailure |
Indica se o pipeline deve parar de processar nós após uma falha. |
DefaultDatastore |
Indica o armazenamento de dados padrão a ser usado para saídas. |
ForceRun |
Indica se o pipeline deve forçar todos os componentes a serem executados, mesmo que a saída possa ser inferida de uma execução anterior. |
Uma vez configurado, você pode testar o pipeline.