Share via


Pacotes de modelos para implantação (versão prévia)

Depois de treinar um modelo de machine learning, você precisa implantá-lo para que outras pessoas possam consumir as previsões dele. No entanto, a implantação de um modelo exige mais do que apenas os pesos ou os artefatos do modelo. Os pacotes de modelos são uma funcionalidade do Azure Machine Learning que permite coletar todas as dependências necessárias para implantar um modelo de machine learning em uma plataforma de serviço. Você pode mover os pacotes entre workspaces e até mesmo fora do Azure Machine Learning.

Importante

Esse recurso está atualmente em visualização pública. Essa versão prévia é fornecida sem um contrato de nível de serviço e não é recomendada para cargas de trabalho de produção. Alguns recursos podem não ter suporte ou podem ter restrição de recursos.

Para obter mais informações, consulte Termos de Uso Complementares de Versões Prévias do Microsoft Azure.

O que é um pacote de modelos?

Como melhor prática antes de implantar um modelo, todas as dependências que o modelo exige para execução bem-sucedida precisam ser coletadas e resolvidas para que você possa implantar o modelo em uma abordagem reproduzí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 o modelo é executado.
  • Lista de pacotes e dependências do Python dos quais o modelo depende para funcionar corretamente.
  • Ativos extras de que o modelo pode precisar para gerar a inferência. Esses ativos podem incluir mapas do rótulo e parâmetros de pré-processamento.
  • Software necessário para o servidor de inferência atender às solicitações, por exemplo, servidor Flask ou Serviço do TensorFlow.
  • Rotina de inferência (se necessário).

Todos esses elementos precisam ser coletados para serem implantados na infraestrutura de serviço. O ativo resultante gerado após a coleta de todas as dependências é chamado de pacote de modelos.

Benefícios dos modelos de empacotamento

Os modelos de empacotamento antes da implantação têm as seguintes vantagens:

  • Reprodutibilidade: todas as dependências são coletadas no momento do empacotamento, em vez de no momento da 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 detecta qualquer configuração incorreta relacionada com as dependências, como um pacote ausente do Python, ao empacotar o modelo. Você não precisa implantar o modelo para descobrir esses problemas.
  • Integração mais fácil ao 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 modelo. Os pacotes de modelos do Azure Machine Learning injetam as dependências exigidas pelo servidor de inferência para ajudar você a detectar conflitos antes de implantar um modelo.
  • Portabilidade: você pode mover pacotes de modelos do Azure Machine Learning de um workspace para outro, usando registros. Você também pode gerar pacotes que podem ser implantados fora do Azure Machine Learning.
  • Suporte do MLflow com redes privadas: para modelos do MLflow, o Azure Machine Learning exige uma conexão com a Internet, a fim de instalar dinamicamente os pacotes necessários do Python para que os modelos sejam executados. Ao empacotar modelos do MLflow, esses pacotes do Python são resolvidos durante a operação de empacotamento de modelo, de modo que o pacote de modelos do MLflow não exija uma conexão com a Internet para ser implantado.

Dica

Empacotar um modelo do 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 do MLflow indica as dependências no próprio modelo, exigindo assim a instalação dinâmica de pacotes. Quando um modelo do MLflow é empacotado, essa instalação dinâmica é executada no momento do empacotamento, em vez de no momento da implantação.

Implantação de pacotes de modelo

Você pode fornecer pacotes de modelos como entradas para pontos de extremidade online. O uso de pacotes de modelos ajuda a simplificar seus fluxos de trabalho de MLOps, reduzindo a probabilidade de erros no momento da implantação, pois todas as dependências terão sido coletadas durante a operação de empacotamento. Configure também o pacote de modelos para gerar imagens do Docker para você implantá-las 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 fazer a implantação usando um pacote de modelos é especificando para o Azure Machine Learning implantar um pacote de modelos, 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 modelos 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 primeiro o modelo e, em seguida, executa a implantação.

Observação

Ao usar pacotes, se você indicar um ambiente base com dependências do conda ou do pip, 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. Essa prática garante a reprodutibilidade dos resultados e é uma prática recomendada. Consulte Empacotar e implantar os modelos nos pontos de extremidade online.

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

Próxima etapa