Implementazione dei modelli MLflow con ModelBuilder - Amazon SageMaker AI

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Implementazione dei modelli MLflow con ModelBuilder

Puoi implementare modelli MLflow su un endpoint SageMaker AI utilizzando il generatore di modelli Amazon SageMaker AI. Per ulteriori informazioni sul generatore di modelli Amazon SageMaker AI, consulta Creare un modello in Amazon SageMaker AI con ModelBuilder.

ModelBuilder è una classe Python che accetta un modello di framework o una specifica di inferenza indicata dall’utente e la converte in un modello implementabile. Per maggiori dettagli sulla classe ModelBuilder, consulta ModelBuilder.

Per implementare il tuo modello MLflow utilizzando ModelBuilder, fornisci un percorso agli artefatti MLflow nell’attributo model_metadata["MLFLOW_MODEL_PATH"]. Continua a leggere per ulteriori informazioni sui formati di input validi per i percorsi del modello:

Nota

Se fornisci il percorso dell’artefatto del modello sotto forma di un ID di esecuzione MLflow o di un percorso di registro dei modelli MLflow, devi specificare anche l’ARN del server di tracciamento tramite l’attributo model_metadata["MLFLOW_TRACKING_ARN"].

Percorsi del modello che richiedono un ARN in model_metadata

I seguenti percorsi del modello richiedono che si specifichi un ARN in model_metadata per l’implementazione:

Percorsi del modello che non richiedono un ARN in model_metadata

I seguenti percorsi del modello non richiedono che si specifichi un ARN in model_metadata per l’implementazione:

  • Percorso del modello locale: /Users/me/path/to/local/model

  • Percorso del modello Amazon S3: s3://amzn-s3-demo-bucket/path/to/model

  • ARN del pacchetto di modelli: arn:aws:sagemaker:region:account-id:mlflow-tracking-server/tracking-server-name

Per ulteriori informazioni su come funziona l’implementazione del modello MLflow con Amazon SageMaker AI, consulta l’argomento relativo all’implementazione del modello MLflow su Amazon SageMaker AI nella documentazione MLflow.

Se utilizzi un percorso Amazon S3, puoi trovare il percorso del tuo modello registrato con i seguenti comandi:

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

L’esempio seguente è una panoramica di come implementare il modello MLflow utilizzando ModelBuilder e un percorso del registro dei modelli MLflow. Poiché questo esempio fornisce il percorso dell’artefatto del modello sotto forma di un percorso di registro dei modelli MLflow, la chiamata a ModelBuilder deve specificare anche un ARN del server di tracciamento tramite l’attributo model_metadata["MLFLOW_TRACKING_ARN"].

Importante

È necessaria la versione 2.224.0 o successiva di SageMaker Python SDK per utilizzare ModelBuilder.

Nota

Utilizza il seguente esempio di codice come riferimento. Per esempi completi che mostrano come implementare modelli MLflow registrati, consulta Tutorial di MLflow con notebook Jupyter di esempio.

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" )

Per mantenere il monitoraggio del lineage per i modelli MLflow implementati utilizzando ModelBuilder, è necessario disporre delle seguenti autorizzazioni IAM:

  • sagemaker:CreateArtifact

  • sagemaker:ListArtifacts

  • sagemaker:AddAssociation

  • sagemaker:DescribeMLflowTrackingServer

Importante

Il monitoraggio del lineage è facoltativo. L’implementazione riesce senza le autorizzazioni relative al monitoraggio del lineage. Se non hai configurato le autorizzazioni, durante la chiamata di model.deploy() verrà visualizzato un errore di autorizzazione per il monitoraggio del lineage. Tuttavia, l’implementazione dell’endpoint riesce comunque e puoi interagire direttamente con l’endpoint modello. Se le autorizzazioni di cui sopra sono configurate, le informazioni sul monitoraggio del lineage vengono create e archiviate automaticamente.

Per ulteriori informazioni ed esempi completi, consulta Tutorial di MLflow con notebook Jupyter di esempio.