Implante MLflow modelos com ModelBuilder - Amazon SageMaker

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Implante MLflow modelos com ModelBuilder

Você pode implantar MLflow modelos em um SageMaker endpoint usando o Amazon SageMaker Model Builder. Para obter mais informações sobre o Amazon SageMaker Model Builder, consulte Criar um modelo na Amazon SageMaker com ModelBuilder.

ModelBuilderé uma classe Python que pega um modelo de estrutura ou uma especificação de inferência especificada pelo usuário e o converte em um modelo implantável. Para obter mais detalhes sobre a ModelBuilder aula, consulte ModelBuilder.

Para implantar seu MLflow modelo usandoModelBuilder, forneça um caminho para seus MLflow artefatos no model_metadata["MLFLOW_MODEL_PATH"] atributo. Continue lendo para obter mais informações sobre formatos de entrada de caminho de modelo válidos:

nota

Se você fornecer o caminho do artefato do modelo na forma de uma ID de MLflow execução ou caminho de registro do MLflow modelo, também deverá especificar o servidor de rastreamento ARN por meio do model_metadata["MLFLOW_TRACKING_ARN"] atributo.

Caminhos de modelo que exigem um ARN no model_metadata

Os seguintes caminhos de modelo exigem que você especifique um ARN no model_metadata para implantação:

Modele caminhos que não exigem um ARN no model_metadata

Os seguintes caminhos de modelo não exigem que você especifique um ARN no model_metadata para implantação:

  • Caminho do modelo local: /Users/me/path/to/local/model

  • Caminho do modelo Amazon S3: s3://amzn-s3-demo-bucket/path/to/model

  • Pacote modeloARN: arn:aws:sagemaker:region:account-id:mlflow-tracking-server/tracking-server-name

Para obter mais informações sobre como a implantação de MLflow modelos funciona com a Amazon SageMaker, consulte Implantar MLflow modelo SageMaker na Amazon na MLflow documentação.

Se estiver usando um caminho do Amazon S3, você pode encontrar o caminho do seu modelo registrado com os seguintes comandos:

registered_model = client.get_registered_model(name='AutoRegisteredModel') source_path = registered_model.latest_versions[0].source

O exemplo a seguir é uma visão geral de como implantar seu MLflow modelo usando ModelBuilder um caminho de registro de MLflow modelo. Como esse exemplo fornece o caminho do artefato do modelo na forma de um caminho de registro do MLflow modelo, a chamada para também ModelBuilder deve especificar um servidor de rastreamento ARN por meio do model_metadata["MLFLOW_TRACKING_ARN"] atributo.

Importante

Você deve usar a versão 2.224.0 ou posterior do SageMaker SDK Python para usar. ModelBuilder

nota

Use o exemplo de código a seguir como referência. Para obter end-to-end exemplos que mostram como implantar MLflow modelos registrados, consulteMLflowtutoriais usando exemplos de cadernos Jupyter.

from sagemaker.serve import ModelBuilder from sagemaker.serve.mode.function_pointers import Mode from sagemaker.serve import SchemaBuilder my_schema = SchemaBuilder( sample_input=sample_input, sample_output=sample_output ) model_builder = ModelBuilder( mode=Mode.SAGEMAKER_ENDPOINT, schema_builder=my_schema, role_arn="Your-service-role-ARN", model_metadata={ # both model path and tracking server ARN are required if you use an mlflow run ID or mlflow model registry path as input "MLFLOW_MODEL_PATH": "models:/sklearn-model/1" "MLFLOW_TRACKING_ARN": "arn:aws:sagemaker:region:account-id:mlflow-tracking-server/tracking-server-name" } ) model = model_builder.build() predictor = model.deploy( initial_instance_count=1, instance_type="ml.c6i.xlarge" )

Para manter o rastreamento de linhagem para MLflow modelos implantados usandoModelBuilder, você deve ter as seguintes permissões: IAM

  • sagemaker:CreateArtifact

  • sagemaker:ListArtifacts

  • sagemaker:AddAssociation

  • sagemaker:DescribeMLflowTrackingServer

Importante

O rastreamento de linhagem é opcional. A implantação é bem-sucedida sem as permissões relacionadas ao rastreamento de linhagem. Se você não tiver as permissões configuradas, verá um erro de permissões de rastreamento de linhagem ao ligarmodel.deploy(). No entanto, a implantação do endpoint ainda é bem-sucedida e você pode interagir diretamente com o endpoint do modelo. Se as permissões acima estiverem configuradas, as informações de rastreamento de linhagem serão criadas e armazenadas automaticamente.

Para obter mais informações e end-to-end exemplos, consulteMLflowtutoriais usando exemplos de cadernos Jupyter.