Implemente MLflow modelos con ModelBuilder - Amazon SageMaker

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Implemente MLflow modelos con ModelBuilder

Puede implementar MLflow modelos en un SageMaker punto final mediante Amazon SageMaker Model Builder. Para obtener más información sobre Amazon SageMaker Model Builder, consulte Crear un modelo en Amazon SageMaker con ModelBuilder.

ModelBuilderes una clase de Python que toma un modelo de marco o una especificación de inferencia especificada por el usuario y lo convierte en un modelo desplegable. Para obtener más información sobre la ModelBuilder clase, consulte. ModelBuilder

Para implementar su MLflow modelo medianteModelBuilder, proporcione una ruta a sus MLflow artefactos en el model_metadata["MLFLOW_MODEL_PATH"] atributo. Siga leyendo para obtener más información sobre los formatos de entrada de la ruta del modelo válidos:

nota

Si proporciona la ruta del artefacto modelo en forma de identificador de MLflow ejecución o ruta de registro del MLflow modelo, también debe especificar su servidor de seguimiento ARN mediante el model_metadata["MLFLOW_TRACKING_ARN"] atributo.

Modele las rutas que requieran ARN una model_metadata

Las siguientes rutas de modelo requieren que especifique una ARN en el model_metadata para su despliegue:

Modele las rutas que no requieren una ARN en el model_metadata

Las siguientes rutas de modelo no requieren que especifique una ARN en el model_metadata para su despliegue:

  • Ruta del modelo local: /Users/me/path/to/local/model

  • Ruta del modelo Amazon S3: s3://amzn-s3-demo-bucket/path/to/model

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

Para obtener más información sobre cómo funciona la implementación de MLflow modelos con Amazon SageMaker, consulte Implementar un MLflow modelo SageMaker en Amazon en la MLflow documentación.

Si utiliza una ruta de Amazon S3, puede encontrar la ruta de su modelo registrado con los siguientes comandos:

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

El siguiente ejemplo es una descripción general de cómo implementar el MLflow modelo mediante ModelBuilder una ruta de registro del MLflow modelo. Como en este ejemplo se proporciona la ruta del artefacto del modelo en forma de ruta de registro del MLflow modelo, la llamada a también ModelBuilder debe especificar un servidor de seguimiento ARN mediante el model_metadata["MLFLOW_TRACKING_ARN"] atributo.

importante

Debe usar la versión 2.224.0 o posterior de SageMaker Python SDK para poder usarla. ModelBuilder

nota

Utilice el siguiente ejemplo de código como referencia. Para ver end-to-end ejemplos que muestran cómo implementar MLflow modelos registrados, consulteMLflowtutoriales con ejemplos de cuadernos 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 mantener el seguimiento del linaje de MLflow los modelos implementadosModelBuilder, debe tener los siguientes IAM permisos:

  • sagemaker:CreateArtifact

  • sagemaker:ListArtifacts

  • sagemaker:AddAssociation

  • sagemaker:DescribeMLflowTrackingServer

importante

El seguimiento del linaje es opcional. La implementación se realiza correctamente sin los permisos relacionados con el seguimiento del linaje. Si no tiene los permisos configurados, aparecerá un error en los permisos de seguimiento del linaje al llamar. model.deploy() Sin embargo, la implementación del punto final aún se realiza correctamente y puede interactuar directamente con el punto final de su modelo. Si se configuran los permisos anteriores, la información de seguimiento del linaje se crea y almacena automáticamente.

Para obtener más información y end-to-end ejemplos, consulteMLflowtutoriales con ejemplos de cuadernos Jupyter.