Tutorial: Designer – implementar um modelo de machine learning

Utilize o estruturador para implementar um modelo de machine learning para prever o preço dos automóveis. Este tutorial é a segunda parte de uma série composta por duas partes.

Nota

Designer suporta dois tipos de componentes, componentes pré-criados clássicos (v1) e componentes personalizados (v2). Estes dois tipos de componentes não são compatíveis.

Os componentes pré-criados clássicos fornecem componentes pré-criados principalmente para processamento de dados e tarefas tradicionais de machine learning, como regressão e classificação. Este tipo de componente continua a ser suportado, mas não terá novos componentes adicionados.

Os componentes personalizados permitem-lhe moldar o seu próprio código como um componente. Suporta a partilha de componentes entre áreas de trabalho e criação totalmente integrada em interfaces studio, CLI v2 e SDK v2.

Para novos projetos, sugerimos vivamente que utilize um componente personalizado, que é compatível com o AzureML V2 e continuará a receber novas atualizações.

Este artigo aplica-se aos componentes pré-criados clássicos e não é compatível com a CLI v2 e o SDK v2.

Na primeira parte do tutorial , preparou um modelo de regressão linear sobre os preços dos automóveis. Na segunda parte, vai implementar o modelo para dar a outras pessoas a oportunidade de o utilizarem. Neste tutorial:

  • Crie um pipeline de inferência em tempo real.
  • Criar um cluster de inferência.
  • Implementar o ponto final em tempo real.
  • Teste o ponto final em tempo real.

Pré-requisitos

Conclua a primeira parte do tutorial para saber como preparar e classificar um modelo de machine learning no estruturador.

Importante

Se não vir elementos gráficos mencionados neste documento, como botões no estúdio ou estruturador, poderá não ter o nível certo de permissões para a área de trabalho. Contacte o administrador da subscrição do Azure para verificar se lhe foi concedido o nível de acesso correto. 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

Criar pipeline de inferência só suporta pipelines de preparação que contêm apenas os componentes incorporados do estruturador e têm de ter um componente como Preparar Modelo que produz o modelo preparado.

Criar um pipeline de inferência em tempo real

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

    Captura de ecrã a mostrar o pipeline de criação de inferência na página de detalhes da tarefa do pipeline.

    O novo pipeline terá agora o seguinte aspeto:

    Captura de ecrã a mostrar a configuração esperada do pipeline depois de o preparar para a implementação.

    Quando seleciona Criar pipeline de inferência, ocorrem vários aspetos:

    • O modelo preparado é armazenado como um componente conjunto de dados na paleta de componentes. Pode encontrá-lo em Os Meus Conjuntos de Dados.
    • Os componentes de preparação, como Preparar Modelo e Dividir Dados , são removidos.
    • O modelo preparado guardado é adicionado novamente ao pipeline.
    • Os componentes Entrada do Serviço Web e Saída do Serviço Web são adicionados. Estes componentes mostram onde os dados do utilizador entram no pipeline e onde os dados são devolvidos.

    Nota

    Por predefinição, a Entrada do Serviço Web espera o mesmo esquema de dados que os dados de saída do componente que se ligam à mesma porta a jusante que ele. Neste exemplo, os dados de entrada do Serviço Web e de preço de automóvel (Raw) ligam-se ao mesmo componente a jusante, pelo que a Entrada do Serviço Web espera que o mesmo esquema de dados que dados de preço de automóveis (Raw) e coluna price de variável de destino esteja incluído no esquema. No entanto, normalmente, quando classifica os dados, não saberá os valores da variável de destino. Neste caso, pode remover a coluna da variável de destino no pipeline de inferência com o componente Selecionar Colunas no Conjunto de Dados . Certifique-se de que a saída de Select Columns in Dataset removendo a coluna de variável de destino está ligada à mesma porta que a saída do componente Entrada do Serviço Web .

  2. Selecione Submeter e utilize o mesmo destino de computação e experimentação que utilizou na primeira parte.

    Se esta for a primeira tarefa, poderá demorar até 20 minutos até que o pipeline termine de ser executado. As predefinições de computação têm um tamanho mínimo de nó de 0, o que significa que o estruturador tem de alocar recursos depois de estar inativo. As tarefas de pipeline repetidas demorarão menos tempo, uma vez que os recursos de computação já estão alocados. Além disso, o estruturador utiliza resultados em cache para cada componente para melhorar ainda mais a eficiência.

  3. Aceda ao detalhe da tarefa do pipeline de inferência em tempo real ao selecionar a ligação Detalhes da tarefa no painel esquerdo.

  4. Selecione Implementar na página de detalhes da tarefa.

    Captura de ecrã a mostrar a implementação na página de detalhes da tarefa.

Criar um cluster de inferência

Na caixa de diálogo apresentada, pode selecionar a partir de todos os clusters de Azure Kubernetes Service (AKS) existentes para implementar o modelo. Se não tiver um cluster do AKS, utilize os seguintes passos para criar um.

  1. Selecione Computação na caixa de diálogo que aparece para aceder à página Computação.

  2. No friso de navegação, selecione Clusters > de Inferência+ Novo.

    Captura de ecrã a mostrar como aceder ao novo painel do cluster de inferência.

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

  4. Introduza aks-compute para o Nome da computação.

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

  6. Selecione Criar.

    Nota

    Demora aproximadamente 15 minutos a criar um novo serviço AKS. Pode verificar o estado de aprovisionamento na página Clusters de Inferência .

Implementar o ponto final em tempo real

Depois de o serviço AKS terminar o aprovisionamento, regresse ao pipeline de inferência em tempo real para concluir a implementação.

  1. Selecione Implementar acima da tela.

  2. Selecione Implementar novo ponto final em tempo real.

  3. Selecione o cluster do AKS que criou.

    Captura de ecrã a mostrar como configurar um novo ponto final em tempo real.

    Também pode alterar a definição Avançadas para o ponto final em tempo real.

    Definição avançada Descrição
    Ativar o diagnóstico e a recolha de dados do Application Insights Se pretende ativar o Aplicação Azure Insights para recolher dados dos pontos finais implementados.
    Por predefinição: falso.
    Tempo limite de classificação Um tempo limite em milissegundos para impor chamadas de classificação para o serviço Web.
    Por predefinição: 60000.
    Dimensionamento automático ativado Se pretende ativar o dimensionamento automático para o serviço Web.
    Por predefinição: verdadeiro.
    Réplicas mínimas O número mínimo de contentores a utilizar ao dimensionar automaticamente este serviço Web.
    Por predefinição: 1.
    Réplicas máximas O número máximo de contentores a utilizar ao dimensionar automaticamente este serviço Web.
    Por predefinição: 10.
    Utilização de destino A utilização de destino (em percentagem de 100) que o dimensionador automático deve tentar manter para este serviço Web.
    Por predefinição: 70.
    Período de atualização Com que frequência (em segundos) o dimensionador automático tenta dimensionar este serviço Web.
    Por predefinição: 1.
    Capacidade de reserva da CPU O número de núcleos de CPU a alocar para este serviço Web.
    Por predefinição: 0.1.
    Capacidade de reserva de memória A quantidade de memória (em GB) a alocar para este serviço Web.
    Por predefinição: 0,5.
  4. Selecione Implementar.

    É apresentada uma notificação de êxito do centro de notificações após a conclusão da implementação. Pode demorar alguns minutos.

    Captura de ecrã a mostrar a notificação de implementação.

Dica

Também pode implementar no Azure Container Instance (ACI) se selecionar Azure Container Instance for Compute type na caixa de definição de ponto final em tempo real. O Azure Container Instance é utilizado para testes ou desenvolvimento. Utilize o ACI para cargas de trabalho baseadas em CPU de baixa escala que exijam menos de 48 GB de RAM.

Testar o ponto final em tempo real

Após a conclusão da implementação, pode ver o ponto final em tempo real ao aceder à página Pontos finais .

  1. Na página Pontos finais , selecione o ponto final que implementou.

    No separador Detalhes , pode ver mais informações, como o URI REST, a definição do Swagger, o estado e as etiquetas.

    No separador Consumir , pode encontrar código de consumo de exemplo, chaves de segurança e definir métodos de autenticação.

    No separador Registos de implementação , pode encontrar os registos de implementação detalhados do ponto final em tempo real.

  2. Para testar o ponto final, aceda ao separador Teste . A partir daqui, pode introduzir dados de teste e selecionar Testar verificar a saída do ponto final.

Atualizar o ponto final em tempo real

Pode atualizar o ponto final online com um novo modelo preparado no estruturador. Na página de detalhes do ponto final online, localize a tarefa de pipeline de preparação anterior e a tarefa de pipeline de inferência.

  1. Pode localizar e modificar diretamente o rascunho do pipeline de preparação na home page do estruturador.

    Em alternativa, pode abrir a ligação da tarefa de pipeline de preparação e cloná-la num novo rascunho de pipeline para continuar a editar.

    Captura de ecrã a mostrar a ligação da tarefa de preparação na página de detalhes do ponto final.

  2. Depois de submeter o pipeline de preparação modificado, aceda à página de detalhes da tarefa.

  3. Quando a tarefa estiver concluída, clique com o botão direito do rato em Preparar Modelo e selecione Registar dados.

    Captura de ecrã a mostrar o modelo preparado de registo como conjunto de dados.

    Nome da entrada e selecione Tipo de ficheiro .

    Captura de ecrã a mostrar o registo como um recurso de dados com o novo recurso de dados selecionado.

  4. Depois de o conjunto de dados ser registado com êxito, abra o rascunho do pipeline de inferência ou clone a tarefa do pipeline de inferência anterior num novo rascunho. No rascunho do pipeline de inferência, substitua o modelo preparado anterior apresentado como nó MD-XXXX ligado ao componente Score Model pelo conjunto de dados recentemente registado.

    Captura de ecrã a mostrar como modificar o pipeline de inferência.

  5. Se precisar de atualizar a parte de pré-processamento de dados no pipeline de preparação e quiser atualizá-la para o pipeline de inferência, o processamento é semelhante aos passos acima.

    Só precisa de registar a saída de transformação do componente de transformação como conjunto de dados.

    Em seguida, substitua manualmente o pipeline de inferência do componente TD pelo conjunto de dados registado.

    Captura de ecrã a mostrar como substituir o componente de transformação.

  6. Depois de modificar o pipeline de inferência com o modelo ou transformação recentemente preparado, submeta-o. Quando a tarefa estiver concluída, implemente-a no ponto final online existente implementado anteriormente.

    Captura de ecrã a mostrar como substituir o ponto final em tempo real existente.

Limitações

  • Devido à limitação de acesso do arquivo de dados, se o pipeline de inferência contiver o componente Importar Dados ou Exportar Dados , estes serão removidos automaticamente ao implementar no ponto final em tempo real.

  • Se tiver conjuntos de dados no pipeline de inferência em tempo real e quiser implementá-lo no ponto final em tempo real, atualmente este fluxo só suporta conjuntos de dados registados a partir do arquivo de dados do Blob . Se quiser utilizar conjuntos de dados de outros arquivos de dados de tipo, pode utilizar Selecionar Coluna para se ligar ao conjunto de dados inicial com definições de selecionar todas as colunas, registar as saídas de Selecionar Coluna como Conjunto de dados de Ficheiro e, em seguida, substituir o conjunto de dados inicial no pipeline de inferência em tempo real por este conjunto de dados recentemente registado.

  • Se o gráfico de inferência contiver o componente "Introduzir Dados Manualmente", que não está ligado à mesma porta que o componente "Entrada do serviço Web", o componente "Introduzir Dados Manualmente" não será executado durante o processamento de chamadas HTTP. Uma solução é registar as saídas desse componente "Introduzir Dados Manualmente" como conjunto de dados e, em seguida, no rascunho do pipeline de inferência, substituir o componente "Introduzir Dados Manualmente" pelo conjunto de dados registado.

    Captura de ecrã a mostrar como modificar o pipeline de inferência que contém o componente introduzir dados manualmente.

Limpar os recursos

Importante

Pode utilizar os recursos que criou como pré-requisitos para outros tutoriais do Azure Machine Learning e artigos de procedimentos.

Eliminar tudo

Se não planear utilizar nada que tenha criado, elimine todo o grupo de recursos para não incorrer em custos.

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

    Eliminar grupo de recursos no portal do Azure

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

  3. Selecione Eliminar grupo de recursos.

Eliminar o grupo de recursos também elimina todos os recursos que criou no estruturador.

Eliminar recursos individuais

No estruturador onde criou a experimentação, elimine os recursos individuais ao selecioná-los e, em seguida, selecione o botão Eliminar .

O destino de computação que criou aqui dimensiona automaticamente para zero nós quando não está a ser utilizado. Esta ação é tomada para minimizar os custos. Se quiser eliminar o destino de computação, siga estes passos:

Eliminar recursos

Pode anular o registo de conjuntos de dados da área de trabalho ao selecionar cada conjunto de dados e selecionar Anular registo.

Anular o registo do conjunto de dados

Para eliminar um conjunto de dados, aceda à conta de armazenamento com o portal do Azure ou Explorador de Armazenamento do Azure e elimine manualmente esses recursos.

Passos seguintes

Neste tutorial, aprendeu os passos principais sobre como criar, implementar e consumir um modelo de machine learning no estruturador. Para saber mais sobre como pode utilizar o estruturador, veja as seguintes ligações: