Registrar um modelo MLflow

Concluído

No Azure Machine Learning, os modelos são treinados em trabalhos. Quando você quiser encontrar os artefatos do modelo, procure nas saídas do trabalho. Para gerenciar seus modelos com mais facilidade, você também pode armazenar um modelo no registro de modelo do Azure Machine Learning.

O registro de modelo torna mais fácil organizar e manter o controle de seus modelos treinados. Ao registrar um modelo, você armazena e gerencia a versão dele no workspace.

Modelos registrados são identificados por nome e versão. Cada vez que você registra um modelo com o mesmo nome de um já existente, o Registro incrementa a versão. Você também pode adicionar mais marcas de metadados para pesquisar com mais facilidade um modelo específico.

Dica

Você também pode registrar modelos treinados fora do Azure Machine Learning fornecendo o caminho local para os artefatos do modelo.

Há três tipos de modelos que você pode registrar:

  • MLflow: modelo treinado e acompanhado com o MLflow. Recomendado para casos de uso padrão.
  • Personalizado: tipo de modelo com um padrão personalizado, no momento não compatível com o Azure Machine Learning.
  • Triton: tipo de modelo para cargas de trabalho de aprendizado profundo. Normalmente usado para implantações de modelo do TensorFlow e do PyTorch.

O Azure Machine Learning se integra bem ao MLflow, razão pela qual é uma melhor prática registrar e documentar modelos do MLflow. Trabalhar com modelos do MLflow facilita o gerenciamento e a implantação de modelos no Azure Machine Learning. Durante a implantação, por exemplo, o ambiente e o script de pontuação são criados para você ao usar um modelo do MLflow.

Registrar um modelo MLflow

Para registrar um modelo do MLflow, você pode usar o estúdio, a CLI do Azure ou o SDK do Python.

Como cientista de dados, você pode estar mais confortável trabalhando com o SDK do Python.

Para treinar o modelo, você pode enviar um script de treinamento como um trabalho de comando usando o seguinte código:

from azure.ai.ml import command

# configure job

job = command(
    code="./src",
    command="python train-model-signature.py --training_data diabetes.csv",
    environment="AzureML-sklearn-0.24-ubuntu18.04-py37-cpu@latest",
    compute="aml-cluster",
    display_name="diabetes-train-signature",
    experiment_name="diabetes-training"
    )

# submit job
returned_job = ml_client.create_or_update(job)
aml_url = returned_job.studio_url
print("Monitor your job at", aml_url)

Depois que o trabalho for concluído e o modelo for treinado, use o nome do trabalho para localizar a execução dele e registrar o modelo com base nas saídas.

from azure.ai.ml.entities import Model
from azure.ai.ml.constants import AssetTypes

job_name = returned_job.name

run_model = Model(
    path=f"azureml://jobs/{job_name}/outputs/artifacts/paths/model/",
    name="mlflow-diabetes",
    description="Model created from run.",
    type=AssetTypes.MLFLOW_MODEL,
)
# Uncomment after adding required details above
ml_client.models.create_or_update(run_model)

Todos os modelos registrados são listados na página Modelos do Estúdio do Azure Machine Learning. O modelo registrado inclui o diretório de saída do modelo. Ao registrar e documentar um modelo do MLflow, você pode encontrar o arquivo MLmodel nos artefatos do modelo registrado.