Implantar modelos para inferência e previsão em lote

Este artigo descreve como implantar modelos MLflow para inferência offline (lote e streaming). O Databricks recomenda que você use o MLflow para implantar modelos de aprendizado de máquina para inferência em lote ou streaming. Para obter informações gerais sobre como trabalhar com modelos MLflow, consulte Log, load, register and deploy MLflow models.

Para obter informações sobre o serviço de modelo em tempo real no Azure Databricks, consulte Model serving with Azure Databricks.

Usar MLflow para inferência de modelo

O MLflow ajuda a gerar código para inferência em lote ou streaming.

Você também pode personalizar o código gerado por qualquer uma das opções acima. Consulte os seguintes blocos de notas para obter exemplos:

  • O exemplo de inferência de modelo usa um modelo treinado com scikit-learn e previamente registrado no MLflow para mostrar como carregar um modelo e usá-lo para fazer previsões sobre dados em diferentes formatos. O bloco de anotações ilustra como aplicar o modelo como um modelo scikit-learn a um DataFrame pandas e como aplicar o modelo como um UDF PySpark a um DataFrame Spark.
  • O exemplo MLflow Model Registry mostra como criar, gerenciar e implantar um modelo com Model Registry. Nessa página, você pode pesquisar para .predict identificar exemplos de previsões offline (em lote).

Criar um trabalho do Azure Databricks

Para executar previsões em lote ou streaming como um trabalho, crie um bloco de anotações ou JAR que inclua o código usado para executar as previsões. Em seguida, execute o bloco de anotações ou JAR como um trabalho do Azure Databricks. Os trabalhos podem ser executados imediatamente ou de forma programada.

Inferência de streaming

A partir do MLflow Model Registry, você pode gerar automaticamente um bloco de anotações que integra o UDF de inferência MLflow PySpark com Delta Live Tables.

Você também pode modificar o bloco de anotações de inferência gerado para usar a API de streaming estruturado do Apache Spark. Veja o Exemplo de pipelines de MLlib e Transmissão em Fluxo Estruturada do Apache Spark.

Inferência com modelos de aprendizagem profunda

Para obter informações e exemplos de inferência de modelo de aprendizagem profunda no Azure Databricks, consulte os seguintes artigos:

Inferência com modelos MLlib e XGBoost4J

Para inferência de modelo escalável com modelos MLlib e XGBoost4J, use os métodos nativos transform para executar a inferência diretamente no Spark DataFrames. Os blocos de anotações de exemplo MLlib incluem etapas de inferência.

Personalizar e otimizar a inferência do modelo

Ao usar as APIs MLflow para executar inferência no Spark DataFrames, você pode carregar o modelo como um UDF do Spark e aplicá-lo em escala usando computação distribuída.

Você pode personalizar seu modelo para adicionar pré-processamento ou pós-processamento e otimizar o desempenho computacional para modelos grandes. Uma boa opção para personalizar modelos é a API pyfunc MLflow, que permite envolver um modelo com lógica personalizada.

Se você precisar fazer mais personalização, você pode envolver manualmente seu modelo de aprendizado de máquina em um Pandas UDF ou um Pandas Iterator UDF. Veja os exemplos de aprendizagem profunda.

Para conjuntos de dados menores, você também pode usar as rotinas de inferência de modelo nativo fornecidas pela biblioteca.