Pacotes de modelo para implantação (visualização)

Depois de treinar um modelo de aprendizado de máquina, você precisa implantá-lo para que outros possam consumir suas previsões. No entanto, a implantação de um modelo requer mais do que apenas os pesos ou os artefatos do modelo. Os pacotes de modelo são um recurso do Azure Machine Learning que permite coletar todas as dependências necessárias para implantar um modelo de aprendizado de máquina em uma plataforma de serviço. Você pode mover pacotes entre espaços de trabalho e até mesmo fora do Azure Machine Learning.

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.

O que é um pacote modelo?

Como prática recomendada antes de implantar um modelo, todas as dependências que o modelo requer para ser executado com êxito precisam ser coletadas e resolvidas para que você possa implantar o modelo em uma abordagem reprodutível e robusta.

Screenshot that shows the dependencies collected during a model package operation.

Normalmente, as dependências de um modelo incluem:

  • Imagem base ou ambiente no qual seu modelo é executado.
  • Lista de pacotes Python e dependências das quais o modelo depende para funcionar corretamente.
  • Ativos extras que seu modelo pode precisar para gerar inferência. Esses ativos podem incluir mapas de rótulos e parâmetros de pré-processamento.
  • Software necessário para que o servidor de inferência sirva os pedidos; por exemplo, servidor de frascos ou TensorFlow Serving.
  • Rotina de inferência (se necessário).

Todos esses elementos precisam ser coletados para depois serem implantados na infraestrutura de serviço. O ativo resultante gerado depois de coletar todas as dependências é chamado de pacote modelo.

Benefícios dos modelos de embalagem

O empacotamento de modelos antes da implantação tem as seguintes vantagens:

  • Reprodutibilidade: Todas as dependências são coletadas no momento do empacotamento, em vez do tempo de implantação. Depois que as dependências forem resolvidas, você poderá implantar o pacote quantas vezes forem necessárias, garantindo que as dependências já tenham sido resolvidas.
  • Resolução de conflitos mais rápida: o Azure Machine Learning deteta quaisquer erros de configuração relacionados com as dependências, como um pacote Python em falta, enquanto empacota o modelo. Você não precisa implantar o modelo para descobrir esses problemas.
  • Integração mais fácil com o servidor de inferência: Como o servidor de inferência que você está usando pode precisar de configurações de software específicas (por exemplo, pacote Torch Serve), esse software pode gerar conflitos com as dependências do seu modelo. Os pacotes de modelo no Azure Machine Learning injetam as dependências exigidas pelo servidor de inferência para ajudá-lo a detetar conflitos antes de implantar um modelo.
  • Portabilidade: você pode mover pacotes de modelo do Azure Machine Learning de um espaço de trabalho para outro, usando registros. Você também pode gerar pacotes que podem ser implantados fora do Aprendizado de Máquina do Azure.
  • Suporte ao MLflow com redes privadas: para modelos MLflow, o Azure Machine Learning requer uma conexão com a Internet para poder instalar dinamicamente os pacotes Python necessários para que os modelos sejam executados. Ao empacotar modelos MLflow, esses pacotes Python são resolvidos durante a operação de empacotamento do modelo, para que o pacote do modelo MLflow não exija uma conexão com a Internet para ser implantado.

Gorjeta

Empacotar um modelo MLflow antes da implantação é altamente recomendado e até mesmo necessário para pontos de extremidade que não têm conectividade de rede de saída. Um modelo MLflow indica suas dependências no próprio modelo, exigindo assim a instalação dinâmica de pacotes. Quando um modelo MLflow é empacotado, essa instalação dinâmica é executada em tempo de empacotamento em vez de tempo de implantação.

Implantação de pacotes modelo

Você pode fornecer pacotes de modelo como entradas para pontos de extremidade online. O uso de pacotes de modelo ajuda a simplificar seus fluxos de trabalho de MLOps, reduzindo as chances de erros no momento da implantação, uma vez que todas as dependências teriam sido coletadas durante a operação de empacotamento. Você também pode configurar o pacote de modelo para gerar imagens do docker para implantar em qualquer lugar fora do Azure Machine Learning, no local ou na nuvem.

Screenshot that shows all the possible targets for a model package.

Pacote antes da implantação

A maneira mais simples de implantar usando um pacote de modelo é especificando ao Azure Machine Learning para implantar um pacote de modelo, antes de executar a implantação. Ao usar a CLI do Azure, o SDK do Azure Machine Learning ou o estúdio do Azure Machine Learning para criar uma implantação em um ponto de extremidade online, você pode especificar o uso do empacotamento de modelo da seguinte maneira:

Use o sinalizador --with-package ao criar uma implantação:

az ml online-deployment create --with-package -f model-deployment.yml -e $ENDPOINT_NAME

O Azure Machine Learning empacota o modelo primeiro e, em seguida, executa a implantação.

Nota

Ao usar pacotes, se você indicar um ambiente base com conda ou pip dependências, não precisará incluir as dependências do servidor de inferência (azureml-inference-server-http). Em vez disso, essas dependências são adicionadas automaticamente para você.

Implantar um modelo empacotado

Você pode implantar um modelo que foi empacotado diretamente em um ponto de extremidade online. Esta prática garante a reprodutibilidade dos resultados e é uma boa prática. Consulte Empacotar e implantar modelos em endpoints online.

Se você quiser implantar o pacote fora do Azure Machine Learning, consulte Empacotar e implantar modelos fora do Azure Machine Learning.

Próximo passo