Explorar pontos de extremidade online gerenciados

Concluído

Para disponibilizar um modelo de machine learning para outros aplicativos, você pode implantar o modelo em um ponto de extremidade online gerenciado.

Você aprenderá a usar um ponto de extremidade online gerenciado para previsões em tempo real.

Previsões em tempo real

Para obter previsões em tempo real, você pode implantar um modelo em um ponto de extremidade. Um ponto de extremidade é um ponto de extremidade HTTPS para o qual você pode enviar dados e que enviará uma resposta (quase) imediata.

Todos os dados enviados para o ponto de extremidade servirão como entrada para o script de pontuação hospedado no ponto de extremidade. O script de pontuação carrega o modelo treinado para prever o rótulo para os novos dados de entrada, o que também é chamado de inferência. Em seguida, o rótulo faz parte da saída que é enviada de volta.

Ponto de extremidade online gerenciado

No Azure Machine Learning, há dois tipos de pontos de extremidade online:

  • Pontos de extremidade online gerenciados: o Azure Machine Learning gerencia toda a infraestrutura subjacente.
  • Pontos de extremidade online do Kubernetes: os usuários gerenciam o cluster do Kubernetes que fornece a infraestrutura necessária.

Como cientista de dados, talvez você prefira trabalhar com pontos de extremidade online gerenciados para testar se o modelo funciona conforme o esperado quando implantado. Se um ponto de extremidade online do Kubernetes for necessário para controle e escalabilidade, ele provavelmente será gerenciado por outras equipes.

Se você estiver usando um ponto de extremidade online gerenciado, só precisará especificar o tipo de VM (máquina virtual) e as configurações de escala. Todo o resto, como provisionar a potência de computação e atualizar o SO (sistema operacional) do host, é feito automaticamente para você.

Implantar o seu modelo

Depois de criar um ponto de extremidade no workspace do Azure Machine Learning, implante um modelo nesse ponto de extremidade. Para implantar seu modelo em um ponto de extremidade online gerenciado, especifique quatro coisas:

  • Ativos do modelo como o arquivo pickle do modelo ou um modelo registrado no workspace do Azure Machine Learning.
  • Script de pontuação que carrega o modelo.
  • Ambiente que lista todos os pacotes necessários que precisam ser instalados na computação do ponto de extremidade.
  • A configuração da computação, incluindo o tamanho da computação e as configurações de escala, garante que você possa lidar com a quantidade de solicitações que o ponto de extremidade receberá.

Importante

Ao implantar modelos do MLFlow em um ponto de extremidade online, você não precisará fornecer um script de pontuação e um ambiente, pois ambos são gerados automaticamente.

Todos esses elementos serão definidos na implantação. A implantação é essencialmente um conjunto de recursos necessários para hospedar o modelo que faz a inferência real.

Implantação azul/verde

Um ponto de extremidade pode ter várias implantações. Uma abordagem é fazer a implantação azul/verde.

Vamos usar o exemplo do modelo de recomendador de restaurante. Após a experimentação, você seleciona o modelo de melhor desempenho. Use a implantação azul para a primeira versão do modelo. Conforme os novos dados são coletados, o modelo pode ser retreinado e uma nova versão é registrada no workspace do Azure Machine Learning. Para testar o novo modelo, você pode usar a implantação verde para a segunda versão do modelo.

Ambas as versões do modelo são implantadas no mesmo ponto de extremidade, que é integrado ao aplicativo. No aplicativo, um usuário seleciona um restaurante, enviando uma solicitação para o ponto de extremidade para obter novas recomendações em tempo real de outros restaurantes que o usuário pode gostar.

Quando uma solicitação é enviada para o ponto de extremidade, 90% do tráfego pode ir para a implantação azul*, e 10% do tráfego pode ir para a implantação verde. Ter duas versões do modelo implantadas no mesmo ponto de extremidade permite testar o modelo.

Após o teste, você também pode fazer a transição direta para a nova versão do modelo redirecionando 90% do tráfego para a implantação verde. Se a nova versão não tiver um desempenho melhor, será possível reverter facilmente para a primeira versão do modelo redirecionando a maior parte do tráfego para a implantação azul novamente.

A implantação azul/verde permite que vários modelos sejam implantados em um ponto de extremidade. Você pode decidir quanto tráfego deve ser encaminhado para cada modelo implantado. Dessa forma, você pode alternar para uma nova versão do modelo sem interromper o serviço para o consumidor.

Criar um ponto de extremidade

Para criar um ponto de extremidade online, você usará a classe ManagedOnlineEndpoint, que requer os seguintes parâmetros:

  • name: o nome do ponto de extremidade. Deve ser exclusivo na região do Azure.
  • auth_mode: use key para a autenticação baseada em chave. Use aml_token para autenticação baseada em chave do Azure Machine Learning.

Para criar um ponto de extremidade, use o seguinte comando:

from azure.ai.ml.entities import ManagedOnlineEndpoint

# create an online endpoint
endpoint = ManagedOnlineEndpoint(
    name="endpoint-example",
    description="Online endpoint",
    auth_mode="key",
)

ml_client.begin_create_or_update(endpoint).result()

Dica

Explore a documentação de referência para criar um ponto de extremidade online gerenciado com o SDK do Python v2.