Tutorial: Designer – Implantar um modelo de machine learning

Use o designer para implantar um modelo de machine learning para prever o preço de carros. Este tutorial é parte dois de uma série de duas partes.

Na primeira parte do tutorial, você treinou um modelo de regressão linear em preços de carros. Na segunda parte, você implantará o modelo para dar a outras pessoas a oportunidade de usá-lo. Neste tutorial, você:

  • Criará um pipeline de inferência em tempo real.
  • Criará um cluster de inferência.
  • Implantará o ponto de extremidade em tempo real.
  • Testará o ponto de extremidade em tempo real.

Pré-requisitos

Conclua a parte um do tutorial para aprender a treinar e pontuar um modelo de machine learning na interface visual.

Importante

Se você não vir os elementos gráficos mencionados neste documento, como botões no estúdio ou no designer, talvez você não tenha o nível de permissões certo para o workspace. Entre em contato com seu administrador de assinatura do Azure para verificar se você recebeu o nível de acesso correto. Para obter mais informações, confira Gerenciar usuários e funções.

Criar um pipeline de inferência em tempo real

Para implantar o pipeline, primeiro, converta o pipeline de treinamento em um pipeline de inferência em tempo real. Esse processo remove componentes de treinamento e adiciona entradas e saídas do serviço Web para processar as solicitações.

Observação

Criar pipeline de inferência só dá suporte a pipelines de treinamento que contêm apenas os componentes internos do designer e devem ter um componente como o Modelo de Treinamento que gera o modelo treinado.

Criar um pipeline de inferência em tempo real

  1. Em uma página de detalhes do trabalho do pipeline, acima da tela do pipeline, selecione Criar pipeline de inferência>Pipeline de inferência em tempo real.

    Captura de tela da opção Criar pipeline de inferência na página de detalhes do trabalho do pipeline.

    Seu novo pipeline agora ficará assim:

    Captura de tela mostrando a configuração esperada do pipeline após sua preparação para implantação.

    Quando você seleciona Criar pipeline de inferência, várias coisas acontecem:

    • O modelo treinado é armazenado como um componente de Conjunto de dados na paleta de componentes. Você pode encontrá-lo em Meus conjuntos de dados.
    • Os componentes de treinamento como Treinar Modelo e Dividir Dados são removidos.
    • O modelo treinado salvo é adicionado de volta ao pipeline.
    • Os componentes Entrada de Serviço Web e Saída de Serviço Web são adicionados. Esses componentes mostram o local em que os dados do usuário entram no pipeline e o local em que são retornados.

    Observação

    Por padrão, a Entrada de 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, Entrada de Serviço Web e Dados de preço de automóvel (Brutos) se conectam ao mesmo componente downstream, portanto, Entrada de Serviço Web espera o mesmo esquema de dados que os Dados de preço de automóvel (brutos) e que a coluna de variável de destino price esteja incluída no esquema. No entanto, geralmente ao pontuar os dados, você não sabe os valores das variáveis de destino. Nesse caso, você pode remover a coluna de variável de destino no pipeline de inferência usando o componente Selecionar Colunas no Conjunto de Dados. Ao remover a coluna de variável de destino, verifique se a saída de Selecionar Colunas no Conjunto de Dados está conectada à mesma porta que a saída do componente Entrada do Serviço Web.

  2. Selecione Enviar e use o mesmo destino de computação e experimento usados na primeira parte.

    Se esse for o primeiro trabalho do pipeline, ele poderá levar até 20 minutos para ser concluído. As configurações de computação padrão têm um tamanho de nó mínimo de 0, o que significa que o designer precisa alocar recursos depois de ficar ocioso. Trabalhos de pipeline repetidos levarão menos tempo, já 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.

  3. Acesse os detalhes do trabalho do pipeline de inferência em tempo real selecionando o link Detalhes do trabalho no painel esquerdo.

  4. Selecione Implantar na página de detalhes do trabalho.

    Captura de tela mostrando a opção Implantar na página de detalhes do trabalho.

Cria um cluster inferência

Na caixa de diálogo exibida, selecione uma opção entre os clusters existentes do AKS (Serviço de Kubernetes do Azure) no qual o modelo será implantado. Se não tiver um cluster do AKS, use as etapas a seguir para criar um.

  1. Selecione Computação na caixa de diálogo exibida para acessar a página Computação.

  2. Na faixa de opções de navegação, selecione Clusters de Inferência>+ Novo.

    Captura de tela mostrando como acessar o novo painel do cluster de inferência.

  3. No painel do cluster de inferência, configure um novo Serviço de Kubernetes.

  4. Insira aks-compute para o Nome de computação.

  5. Selecione uma região próxima que esteja disponível para a Região.

  6. Selecione Criar.

    Observação

    Leva aproximadamente 15 minutos para criar um novo serviço do AKS. Verifique o estado de provisionamento na página Clusters de Inferência.

Implantar o ponto de extremidade em tempo real

Após o provisionamento do serviço do AKS, volte para o pipeline de inferência em tempo real para concluir a implantação.

  1. Selecione Implantar acima da tela.

  2. Selecione Implantar novo ponto de extremidade em tempo real.

  3. Selecione o cluster do AKS que você criou.

    Captura de tela mostrando como configurar um novo ponto de extremidade em tempo real.

    Altere também a configuração Avançada do ponto de extremidade em tempo real.

    Configuração avançada Descrição
    Habilitar o diagnóstico e a coleta de dados do Application Insights Indica se o Azure Application Insights deve ou não ser habilitado para coletar dados dos pontos de extremidade implantados.
    Por padrão: falso.
    Tempo limite de pontuação Um tempo limite em milissegundos a ser impor para pontuar chamadas ao serviço Web.
    Por padrão: 60 mil.
    Dimensionamento automático habilitado Se deve habilitar o dimensionamento automático para o serviço Web.
    Por padrão: true.
    Número mínimo de réplicas O número mínimo de contêineres a ser usado ao fazer o dimensionamento automático desse serviço Web.
    Por padrão: 1.
    Número máximo de réplicas O número máximo de contêineres a serem usados no dimensionamento automático desse serviço Web.
    Por padrão: 10.
    Utilização de destino A utilização de destino (em percentual) que o dimensionador automático deve tentar manter para esse serviço Web.
    Por padrão: 70.
    Período de atualização A frequência (em segundos) com que o dimensionamento automático tenta escalar esse serviço Web.
    Por padrão: 1.
    Capacidade reserva de CPU O número de núcleos de CPU a serem alocados para esse serviço Web.
    Por padrão: 0,1.
    Capacidade reserva de memória A quantidade de memória (em GB) a ser alocada para esse serviço Web.
    Por padrão: 0,5.
  4. Selecione Implantar.

    Uma notificação de êxito da centro de notificações é exibida após a conclusão da implantação. Isso pode levar alguns minutos.

    Captura de tela mostrando a notificação de implantação.

Dica

Implante também a ACI (Instância de Contêiner do Azure) se você selecionar Instância de Contêiner do Azure em Tipo de computação na caixa configuração de ponto de extremidade em tempo real. A Instância de Contêiner do Azure é usada para teste ou desenvolvimento. Use a ACI para cargas de trabalho baseadas em CPU de baixa escala que exigem menos de 48 GB de RAM.

Testar o ponto de extremidade em tempo real

Após a conclusão da implantação, veja o ponto de extremidade em tempo real acessando a página Pontos de extremidade.

  1. Na página Pontos de extremidade, selecione o ponto de extremidade implantado.

    Na guia Detalhes, você pode ver mais informações, como o URI REST, a definição do Swagger, o status e as marcas.

    Na guia Consumir, você pode encontrar um código de consumo de exemplos, chaves de segurança e definir métodos de autenticação.

    Na guia Logs de implantação, encontre os logs de implantação detalhados do ponto de extremidade em tempo real.

  2. Para testar o seu ponto de extremidade, acesse a guia Testar. Nela, você pode inserir os dados de teste e selecionar Testar para 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 o novo modelo treinado no designer. Na página de detalhes do ponto de extremidade online, localize o trabalho anterior do pipeline de treinamento e o trabalho de pipeline de inferência.

  1. Você pode localizar e modificar diretamente o rascunho do pipeline de treinamento na home page do designer.

    Outra alternativa é abrir o link de trabalho do pipeline de treinamento e cloná-lo para um novo rascunho de pipeline para continuar a edição.

    Captura de tela mostrando o link do trabalho de treinamento na página de detalhes do ponto de extremidade.

  2. Depois de enviar o pipeline de treinamento modificado, vá para a página de detalhes do trabalho.

  3. Quando o trabalho for concluído, clique com o botão direito do mouse em Treinar Modelo e selecione Registrar dados.

    Captura de tela mostrando a opção Registrar modelo treinado como conjunto de dados.

    Insira o nome e selecione o tipo de Arquivo.

    Captura de tela da opção Registrar como novo conjunto de dados, com a opção Novo conjunto de dados selecionada.

  4. 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 para 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 com o conjunto de dados que acaba de ser registrado.

    Captura de tela mostrando como modificar o pipeline de inferência.

  5. Se for preciso atualizar a parte de pré-processamento de dados do pipeline de treinamento e você quiser atualizá-la no pipeline de inferência, o processamento será semelhante às etapas acima.

    Você precisa apenas registrar a saída de transformação do componente de transformação como um conjunto de dados.

    Em seguida, substitua manualmente o componente TD- no pipeline de inferência com o conjunto de dados registrado.

    Captura de tela mostrando como substituir o componente de transformação.

  6. Depois de modificar o pipeline de inferência com o modelo ou transformação que acaba de ser treinado, envie-o. Quando o trabalho for concluído, implante-o no ponto de extremidade online implantado antes.

    Captura de tela mostrando como substituir o ponto de extremidade em tempo real existente.

Limitações

  • Devido à limitação de acesso do armazenamento de dados, se o pipeline de inferência contiver o componente Importar Dados ou Exportar Dados, eles serão removidos automaticamente quando forem 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á-lo no ponto de extremidade em tempo real, atualmente, esse fluxo dá suporte apenas a conjuntos de dados registrados no armazenamento de dados de Blob. Se você quiser usar conjuntos de dados de outros armazenamentos de dados de tipo, poderá usar Selecionar coluna para se conectar ao 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 grafo de inferência contiver o componente "Inserir os dados manualmente", que não está conectado à mesma porta que o componente "Entrada do serviço Web", o componente "Inserir dados manualmente" não será executado durante o processamento de chamadas HTTP. Uma solução alternativa é registrar as saídas desse componente "Inserir dados manualmente" como conjunto de dados e, em seguida, no rascunho do pipeline de inferência, substituir o componente "Inserir dados manualmente" pelo conjunto de dados registrado.

    Captura de tela mostrando como modificar o pipeline de inferência que contém o componente Inserir dados manualmente.

Limpar os recursos

Importante

Você pode usar os recursos que criou como pré-requisitos em outros tutoriais e artigos de instruções do Serviço do Azure Machine Learning.

Excluir tudo

Se você não pretende usar os recursos criados, exclua todo o grupo de recursos para não gerar encargos.

  1. No portal do Azure, selecione Grupos de recursos no lado esquerdo da janela.

    Excluir um grupo de recursos no portal do Azure

  2. Na lista, selecione o grupo de recursos que você criou.

  3. Selecione Excluir grupo de recursos.

A exclusão de um grupo de recursos também exclui todos os recursos criados no designer.

Excluir recursos individuais

No designer em que 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 é dimensionado automaticamente para zero nós quando não estiver sendo usado. Essa ação é executada para minimizar encargos. Se você quiser excluir o destino de computação, siga estas etapas:

Excluir ativos

É possível cancelar o registro de conjuntos de dados do seu workspace selecionando cada conjunto de dados e, Cancelar registro.

Cancelar o registro do conjunto de dados

Para excluir um conjunto de dados, acesse a conta de armazenamento usando o portal do Azure ou o Gerenciador de Armazenamento do Azure e exclua manualmente esses ativos.

Próximas etapas

Neste tutorial, você aprendeu as etapas principais na criação, na implantação e no consumo de um modelo de machine learning no designer. Para saber mais sobre como você pode usar o designer, confira os seguintes links: