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, poderá encontrá-los nas saídas do trabalho. Para gerenciar mais facilmente seus modelos, você também pode armazenar um modelo no registro do modelo do Azure Machine Learning.

O registro de modelos facilita a organização e o acompanhamento de seus modelos treinados. Ao registrar um modelo, você armazena e faz a versão do modelo no espaço de trabalho.

Os modelos registados são identificados por nome e versão. Sempre que registar um modelo com o mesmo nome de um modelo já existente, o registo aumenta a versão. Você também pode adicionar mais tags de metadados para pesquisar mais facilmente por um modelo específico.

Gorjeta

Você também pode registrar modelos treinados fora do Aprendizado de Máquina do Azure fornecendo o caminho local para os artefatos do modelo.

Existem três tipos de modelos que pode registar:

  • MLflow: Modelo treinado e rastreado com MLflow. Recomendado para casos de uso padrão.
  • Personalizado: tipo de modelo com um padrão personalizado atualmente não suportado pelo Azure Machine Learning.
  • Triton: Tipo de modelo para cargas de trabalho de aprendizagem profunda. Comumente usado para implantações de modelos TensorFlow e PyTorch.

O Azure Machine Learning integra-se bem com o MLflow, e é por isso que é uma prática recomendada registar e registar um modelo MLflow. Trabalhar com modelos 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 MLflow.

Registrar um modelo MLflow

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

Como cientista de dados, você pode se sentir mais confortável em trabalhar com o Python SDK.

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)

Quando o trabalho for concluído e o modelo for treinado, use o nome do trabalho para localizar o trabalho executado e registrar o modelo a partir de suas 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 registrar um modelo MLflow, você pode encontrar o MLmodel arquivo nos artefatos do modelo registrado.