Implementación de modelos de MLflow con ModelBuilder - Amazon SageMaker AI

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.

Implementación de modelos de MLflow con ModelBuilder

Puede implementar modelos de MLflow en un punto de conexión de SageMaker mediante el Creador de modelos de Amazon SageMaker AI. Para obtener más información sobre el Creador de modelos de Amazon SageMaker AI, consulte Creación de un modelo en Amazon SageMaker AI con ModelBuilder.

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

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

nota

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

Rutas de modelos que requieren un ARN en los model_metadata

Las siguientes rutas de modelo requieren que especifique un ARN en el campo model_metadata para su implementación:

Rutas de modelos que no requieren un ARN en los model_metadata

Las siguientes rutas de modelo requieren que especifique un ARN en el campo model_metadata para su implementación:

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

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

  • ARN del paquete de modelos: 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 modelos de MLflow con Amazon SageMaker AI, consulte la sección Deploy MLflow Model to Amazon SageMaker AI de la documentación de MLflow.

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

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

En el siguiente ejemplo se proporciona información general sobre cómo implementar el modelo de MLflow mediante un ruta de registro de modelo de MLflow y ModelBuilder. Dado que este ejemplo proporciona la ruta del artefacto del modelo en forma de ruta de registro del modelo de MLflow, la llamada a ModelBuilder también debe especificar un ARN del servidor de seguimiento a través del atributo model_metadata["MLFLOW_TRACKING_ARN"].

importante

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

nota

Utilice el siguiente código de ejemplo como referencia. Para ver ejemplos integrales que le muestran cómo implementar modelos de MLflow registrados, consulte Tutoriales de MLflow con cuadernos de Jupyter de ejemplo.

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 los modelos de MLflow implementados conModelBuilder, debe contar con los siguientes permisos de IAM:

  • 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 a model.deploy(). Sin embargo, la implementación del punto de conexión aún se realiza correctamente, y puede interactuar directamente con el punto de conexión del modelo. Si se configuran los permisos anteriores, se creará la información de seguimiento del linaje, que se almacenará automáticamente.

Para obtener más información y ver ejemplos integrales, consulte Tutoriales de MLflow con cuadernos de Jupyter de ejemplo.