Bereitstellen von MLflow-Modellen mit ModelBuilder
Mit Amazon SageMaker AI Model Builder können Sie MLflow-Modelle auf einem SageMaker-AI-Endpunkt bereitstellen. Weitere Informationen zu Amazon SageMaker AI Model Builder finden Sie unter Erstellen eines Modells in Amazon SageMaker AI mit ModelBuilder.
ModelBuilder ist eine Python-Klasse, die ein Framework-Modell oder eine benutzerdefinierte Inferenzspezifikation in ein bereitstellbares Modell konvertiert. Weitere Informationen zur ModelBuilder-Klasse finden Sie unter ModelBuilder
Um Ihr MLflow-Modell mitModelBuilder bereitzustellen, geben Sie im Attribut model_metadata["MLFLOW_MODEL_PATH"] einen Pfad zu Ihren MLflow-Artefakten an. Weitere Informationen zu gültigen Eingabeformaten für Modellpfade finden Sie hier:
Anmerkung
Wenn Sie den Pfad des Modellartefakts in Form einer MLflow-Lauf-ID oder eines Model-Registry-Pfads von MLflow angeben, müssen Sie auch Ihren Tracking-Server-ARN über das Attribut model_metadata["MLFLOW_TRACKING_ARN"] angeben.
Modellieren von Pfaden, für die ein ARN in den model_metadata erforderlich ist
Für die folgenden Modellpfade müssen Sie unter model_metadata für die Bereitstellung einen ARN angeben:
MLflow-Lauf-ID
: runs:/aloy-run-id/run-relative/path/to/modelPfad zur MLflow Model Registry
: models:/model-name/model-version
Modellpfade, für die unter model_metadata kein ARN erforderlich ist
Für die folgenden Modellpfade müssen Sie bei der Bereitstellung unter model_metadata keinen ARN angeben:
Lokaler Modellpfad:
/Users/me/path/to/local/modelAmazon-S3-Modellpfad:
s3://amzn-s3-demo-bucket/path/to/modelModellpaket-ARN:
arn:aws:sagemaker:region:account-id:mlflow-tracking-server/tracking-server-name
Weitere Informationen darüber, wie die MLflow-Modellbereitstellung mit Amazon SageMaker AI funktioniert, finden Sie unter Bereitstellen des MLflow-Modells auf Amazon SageMaker AI
Wenn Sie einen Amazon-S3-Pfad verwenden, können Sie den Pfad Ihres registrierten Modells mit den folgenden Befehlen ermitteln:
registered_model = client.get_registered_model(name='AutoRegisteredModel') source_path = registered_model.latest_versions[0].source
Das folgende Beispiel gibt einen Überblick darüber, wie Sie Ihr MLflow-Modell anhand von ModelBuilder und mithilfe eines Pfads zur MLflow Model Registry bereitstellen. Da dieses Beispiel den Modellartefaktpfad in Form eines Pfads zur MLflow Model Registry bereitstellt, muss beim Aufruf von ModelBuilder auch ein Tracking-Server-ARN über das Attribut model_metadata["MLFLOW_TRACKING_ARN"] angegeben werden.
Wichtig
Sie müssen Version 2.224.0ModelBuilder verwenden zu können.
Anmerkung
Verwenden Sie das folgende Codebeispiel als Referenz. Ausführliche Beispiele dazu, wie Sie registrierte MLflow-Modelle bereitstellen können, finden Sie unter MLflow-Tutorials mit Beispiel-Jupyter-Notebooks.
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" )
Um die Herkunftsverfolgung für MLflow-Modelle aufrechtzuerhalten, die mit ModelBuilder bereitgestellt wurden, benötigen Sie die folgenden IAM-Berechtigungen:
sagemaker:CreateArtifactsagemaker:ListArtifactssagemaker:AddAssociationsagemaker:DescribeMLflowTrackingServer
Wichtig
Die Herkunftsnachverfolgung ist optional. Die Bereitstellung ist auch ohne Berechtigungen zur Herkunftsnachverfolgung erfolgreich. Wenn Sie die Berechtigungen nicht konfiguriert haben, wird Ihnen beim Aufrufen von model.deploy() ein Fehler bezüglich der Berechtigungen zur Herkunftsnachverfolgung angezeigt. Die Endpunktbereitstellung ist jedoch weiterhin erfolgreich und Sie können direkt mit Ihrem Modellendpunkt interagieren. Wenn die oben genannten Berechtigungen konfiguriert sind, werden Informationen zur Herkunftsnachverfolgung automatisch erstellt und gespeichert.
Weitere Informationen und umfassende Beispiele finden Sie unter MLflow-Tutorials mit Beispiel-Jupyter-Notebooks.