Tutorial: Usar o designer para implantar um modelo de aprendizado de máquina
Na primeira parte deste tutorial, você treinou um modelo de regressão linear que prevê os preços dos carros. Nesta segunda parte, você usa o designer do Azure Machine Learning para implantar o modelo para que outras pessoas possam usá-lo.
Nota
O designer suporta dois tipos de componentes: componentes pré-construídos clássicos (v1) e componentes personalizados (v2). Estes dois tipos de componentes NÃO são compatíveis.
Os componentes pré-construídos clássicos fornecem componentes pré-construídos principalmente para processamento de dados e tarefas tradicionais de aprendizado de máquina, como regressão e classificação. Este tipo de componente continua a ser suportado, mas nenhum novo componente será adicionado.
Os componentes personalizados permitem que você envolva seu próprio código como um componente. Eles oferecem suporte ao compartilhamento de componentes entre espaços de trabalho e à criação contínua nas interfaces do Machine Learning Studio, CLI v2 e SDK v2.
Para novos projetos, recomendamos que você use componentes personalizados, que são compatíveis com o Azure Machine Learning v2 e continuarão recebendo novas atualizações.
Este artigo se aplica a componentes pré-criados clássicos e não é compatível com CLI v2 e SDK v2.
Neste tutorial:
- Crie um pipeline de inferência em tempo real.
- Crie um cluster de inferência.
- Implante o ponto de extremidade em tempo real.
- Teste o ponto de extremidade em tempo real.
Pré-requisitos
Conclua a primeira parte do tutorial para aprender a treinar e pontuar um modelo de aprendizado de máquina no designer.
Importante
Se você não vir os elementos gráficos mencionados neste documento, como botões no estúdio ou no designer, talvez não tenha o nível certo de permissões para o espaço de trabalho. Entre em contato com o administrador da assinatura do Azure para verificar se você recebeu o nível correto de acesso. Para obter mais informações, veja Gerir utilizadores e funções.
Criar um pipeline de inferência em tempo real
Para implementar o seu pipeline, primeiro tem de converter o pipeline de preparação num pipeline de inferência em tempo real. Este processo remove componentes de preparação e adiciona entradas e saídas do serviço Web para processar pedidos.
Nota
O recurso Criar pipeline de inferência oferece suporte a pipelines de treinamento que contêm apenas os componentes internos do designer e que têm um componente como Train Model que produz o modelo treinado.
Criar um pipeline de inferência em tempo real
Selecione Pipelines no painel de navegação lateral e abra o trabalho de pipeline que você criou. Na página de detalhes, acima da tela do pipeline, selecione as reticências e, em seguida, escolha Create inference pipeline>Real-time inference pipeline.
Seu novo pipeline agora tem esta aparência:
Quando você seleciona Criar pipeline de inferência, várias coisas acontecem:
- O modelo treinado é armazenado como um componente Dataset na paleta de componentes. Você pode encontrá-lo em Meus conjuntos de dados.
- Componentes de treinamento como Train Model e Split Data são removidos.
- O modelo treinado salvo é adicionado novamente ao pipeline.
- Os componentes Web Service Input e Web Service Output são adicionados. Esses componentes mostram onde os dados do usuário entram no pipeline e onde os dados são retornados.
Nota
Por padrão, a Entrada do Serviço Web espera o mesmo esquema de dados que os dados de saída do componente que se conectam à mesma porta downstream. Neste exemplo, a Entrada de Serviço Web e os dados de preço de Automóvel (Raw) se conectam ao mesmo componente downstream, portanto , a Entrada de Serviço Web espera o mesmo esquema de dados que os dados de preço de Automóvel (Raw) e a coluna
price
de variável de destino é incluída no esquema. No entanto, ao pontuar os dados, você não saberá os valores das variáveis de destino. Nesse caso, você pode remover a coluna da variável de destino no pipeline de inferência usando o componente Selecionar colunas no conjunto de dados. Verifique se a saída de Selecionar Colunas na coluna Conjunto de Dados removendo a variável de destino está conectada à mesma porta que a saída do componente Entrada do Serviço Web.Selecione Configurar & Enviar e use o mesmo destino de computação e experimento que você usou na primeira parte.
Se este for o primeiro trabalho, pode levar até 20 minutos para que o pipeline termine de ser executado. As configurações de computação padrão têm um tamanho mínimo de nó de 0, o que significa que o designer deve alocar recursos depois de ficar ocioso. Trabalhos de pipeline repetidos levam menos tempo, uma vez que os recursos de computação já estão alocados. Além disso, o designer usa resultados armazenados em cache para cada componente para melhorar ainda mais a eficiência.
Vá para os detalhes do trabalho do pipeline de inferência em tempo real selecionando Detalhes do trabalho no painel esquerdo.
Selecione Implantar na página de detalhes do trabalho.
Criar um cluster de inferência
Na caixa de diálogo exibida, você pode selecionar entre qualquer cluster existente do Serviço Kubernetes do Azure (AKS) para implantar seu modelo. Se você não tiver um cluster AKS, use as etapas a seguir para criar um.
Vá para a página Computação selecionando Computação na caixa de diálogo.
Na faixa de opções de navegação, selecione Kubernetes Clusters>+ New.
No painel de cluster de inferência, configure um novo Serviço Kubernetes.
Digite aks-compute para o nome Compute.
Selecione uma região próxima que esteja disponível para a Região.
Selecione Criar.
Nota
Leva aproximadamente 15 minutos para criar um novo serviço AKS. Você pode verificar o estado de provisionamento na página Clusters de inferência .
Implante o ponto de extremidade em tempo real
Depois que o serviço AKS concluir o provisionamento, retorne ao pipeline de inferência em tempo real para concluir a implantação.
Selecione Implantar acima da tela.
Selecione Implantar novo ponto de extremidade em tempo real.
Selecione o cluster AKS que criou.
Você também pode alterar a configuração Avançado para seu ponto de extremidade em tempo real.
Configuração avançada Description Habilite o diagnóstico e a coleta de dados do Application Insights Permite que o Azure Application Insights colete dados dos pontos de extremidade implantados.
Por padrão: false.Tempo limite de pontuação Um tempo limite em milissegundos a ser imposto para marcar chamadas para o serviço Web.
Por padrão: 60000.Dimensionamento automático ativado Permite o dimensionamento automático para o serviço Web.
Por padrão: true.Réplicas mínimas O número mínimo de contêineres a serem usados ao dimensionar automaticamente este serviço Web.
Por padrão: 1.Máximo de réplicas O número máximo de contêineres a serem usados ao dimensionar automaticamente este serviço Web.
Por padrão: 10.Utilização de destino A utilização de destino (como uma porcentagem) que o autoscaler deve tentar manter para este serviço Web.
Por padrão: 70.Período de atualização Com que frequência (em segundos) o autoscaler tenta dimensionar este serviço Web.
Por padrão: 1.Capacidade de reserva da CPU O número de núcleos de CPU a alocar para este serviço Web.
Por padrão: 0.1.Capacidade de reserva de memória A quantidade de memória (em GB) a alocar para este serviço Web.
Por padrão: 0.5.Selecione Implementar.
Uma notificação de êxito da central de notificações aparece após a conclusão da implantação. Pode demorar alguns minutos.
Gorjeta
Você também pode implantar na Instância de Contêiner do Azure se selecionar Tipo de Instância de Contêiner do Azure para Computação na caixa de configuração de ponto de extremidade em tempo real. A Instância de Contêiner do Azure é usada para teste ou desenvolvimento. Use a Instância de Contêiner do Azure para cargas de trabalho baseadas em CPU de baixa escala que exigem menos de 48 GB de RAM.
Teste o ponto de extremidade em tempo real
Após a conclusão da implantação, você poderá visualizar seu ponto de extremidade em tempo real acessando a página Pontos de extremidade .
Na página Pontos de extremidade , selecione o ponto de extremidade implantado.
Na guia Detalhes, você pode ver mais informações, como URI REST, definição do Swagger, status e tags.
Na guia Consumir, você pode encontrar exemplos de código de consumo, chaves de segurança e definir métodos de autenticação.
Na guia Logs de implantação, você pode encontrar os logs de implantação detalhados do seu ponto de extremidade em tempo real.
Para testar seu ponto de extremidade, vá para a guia Teste . A partir daqui, você pode inserir dados de teste e selecionar Testar verificar a saída do seu ponto de extremidade.
Atualizar o ponto de extremidade em tempo real
Você pode atualizar o ponto de extremidade online com um novo modelo treinado no designer. Na página de detalhes do ponto de extremidade online, encontre seu trabalho anterior de pipeline de treinamento e trabalho de pipeline de inferência.
Você pode encontrar e modificar o rascunho do pipeline de treinamento na página inicial do designer.
Ou você pode abrir o link de trabalho do pipeline de treinamento e, em seguida, cloná-lo em um novo rascunho de pipeline para continuar a edição.
Depois de enviar o pipeline de treinamento modificado, vá para a página de detalhes do trabalho.
Quando o trabalho for concluído, clique com o botão direito do mouse em Modelo de Trem e selecione Registrar dados.
Insira o nome e selecione Tipo de arquivo .
Depois que o conjunto de dados for registrado com êxito, abra o rascunho do pipeline de inferência ou clone o trabalho de pipeline de inferência anterior em um novo rascunho. No rascunho do pipeline de inferência, substitua o modelo treinado anterior mostrado como nó MD-XXXX conectado ao componente Modelo de pontuação pelo conjunto de dados recém-registrado.
Se você precisar atualizar a parte de pré-processamento de dados em seu pipeline de treinamento e quiser atualizá-la no pipeline de inferência, o processamento será semelhante às etapas acima.
Você só precisa registrar a saída de transformação do componente de transformação como conjunto de dados.
Em seguida, substitua manualmente o componente TD- no pipeline de inferência pelo conjunto de dados registrado.
Depois de modificar seu pipeline de inferência com o modelo ou transformação recém-treinado, envie-o. Quando o trabalho estiver concluído, implante-o no ponto de extremidade online existente implantado anteriormente.
Limitações
Devido à limitação de acesso ao armazenamento de dados, se o pipeline de inferência contiver componentes Importar Dados ou Exportar Dados , eles serão removidos automaticamente quando implantados no ponto de extremidade em tempo real.
Se você tiver conjuntos de dados no pipeline de inferência em tempo real e quiser implantá-los no ponto de extremidade em tempo real, atualmente esse fluxo oferece suporte apenas a conjuntos de dados registrados do armazenamento de dados Blob . Se quiser usar conjuntos de dados de outros tipos de armazenamentos de dados, você pode usar Selecionar Coluna para se conectar ao seu conjunto de dados inicial com configurações de seleção de todas as colunas, registrar as saídas de Selecionar Coluna como conjunto de dados de Arquivo e, em seguida, substituir o conjunto de dados inicial no pipeline de inferência em tempo real por esse conjunto de dados recém-registrado.
Se o gráfico de inferência contiver o componente Enter Data Manually que não está conectado à mesma porta que o componente Web Service Input, o componente Enter Data Manually não será executado durante o processamento de chamadas HTTP. Uma solução alternativa é registrar as saídas desse componente Enter Data Manually como um conjunto de dados e, em seguida, no rascunho do pipeline de inferência, substituir o componente Enter Data Manually pelo conjunto de dados registrado.
Clean up resources (Limpar recursos)
Importante
Você pode usar os recursos criados como pré-requisitos para outros tutoriais e artigos de instruções do Azure Machine Learning.
Excluir tudo
Se você não planeja usar nada do que criou, exclua todo o grupo de recursos para não incorrer em cobranças.
No portal do Azure, selecione Grupos de recursos no lado esquerdo da janela.
Na lista, selecione o grupo de recursos que você criou.
Selecione Eliminar grupo de recursos.
A exclusão do grupo de recursos também exclui todos os recursos criados no designer.
Excluir ativos individuais
No designer onde você criou seu experimento, exclua ativos individuais selecionando-os e, em seguida, selecionando o botão Excluir .
O destino de computação que você criou aqui é automaticamente dimensionado para zero nós quando não está sendo usado. Esta ação é tomada para minimizar as cobranças. Se você quiser excluir o destino de computação, execute estas etapas:
Você pode cancelar o registro de conjuntos de dados do seu espaço de trabalho selecionando cada conjunto de dados e selecionando Cancelar registro.
Para excluir um conjunto de dados, vá para a conta de armazenamento usando o portal do Azure ou o Gerenciador de Armazenamento do Azure e exclua manualmente esses ativos.
Conteúdos relacionados
Neste tutorial, você aprendeu como criar, implantar e consumir um modelo de aprendizado de máquina no designer. Para saber mais sobre como você pode usar o designer, consulte os seguintes artigos: