

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à.

# Distribuisci MLflow modelli con `ModelBuilder`
<a name="mlflow-track-experiments-model-deployment"></a>

Puoi distribuire MLflow modelli su un endpoint di intelligenza artificiale utilizzando Amazon SageMaker SageMaker AI Model Builder. Per ulteriori informazioni su Amazon SageMaker AI Model Builder, consulta [Creare un modello in Amazon SageMaker AI con ModelBuilder](https://docs.aws.amazon.com/sagemaker/latest/dg/how-it-works-modelbuilder-creation.html).

`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 ulteriori dettagli sulla `ModelBuilder` classe, consulta [ModelBuilder](https://sagemaker.readthedocs.io/en/stable/api/inference/model_builder.html#sagemaker.serve.builder.model_builder.ModelBuilder).

Per distribuire il MLflow modello utilizzando`ModelBuilder`, fornite un percorso agli MLflow artefatti 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 fornite il percorso dell'artefatto del modello sotto forma di MLflow run ID o percorso del registro del MLflow modello, dovete anche specificare l'ARN del server di tracciamento tramite l'attributo. `model_metadata["MLFLOW_TRACKING_ARN"]`
+ [Percorsi del modello che richiedono un ARN in `model_metadata`](#mlflow-track-experiments-model-deployment-with-arn)
+ [Percorsi del modello che non richiedono un ARN in `model_metadata`](#mlflow-track-experiments-model-deployment-without-arn)

## Percorsi del modello che richiedono un ARN in `model_metadata`
<a name="mlflow-track-experiments-model-deployment-with-arn"></a>

I seguenti percorsi del modello richiedono che si specifichi un ARN in `model_metadata` per l’implementazione:
+ MLflow [ID di esecuzione:](https://mlflow.org/docs/latest/python_api/mlflow.entities.html?highlight=mlflow%20info#mlflow.entities.RunInfo.run_id) `runs:/aloy-run-id/run-relative/path/to/model`
+ MLflow [percorso del registro del modello](https://mlflow.org/docs/latest/model-registry.html#find-registered-models): `models:/model-name/model-version`

## Percorsi del modello che non richiedono un ARN in `model_metadata`
<a name="mlflow-track-experiments-model-deployment-without-arn"></a>

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 la distribuzione dei MLflow modelli con Amazon SageMaker AI, consulta [Deploy MLflow Model to Amazon SageMaker AI](https://mlflow.org/docs/latest/deployment/deploy-model-to-sagemaker.html) nella MLflow documentazione.

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 distribuire il MLflow modello utilizzando `ModelBuilder` e un percorso di registro del MLflow modello. Poiché questo esempio fornisce il percorso dell'artefatto del modello sotto forma di percorso del registro del MLflow modello, la chiamata a `ModelBuilder` deve specificare anche un ARN del server di tracciamento tramite l'attributo. `model_metadata["MLFLOW_TRACKING_ARN"]`

**Importante**  
È necessario utilizzare la versione [2.224.0](https://pypi.org/project/sagemaker/2.224.0/) o successiva di SageMaker Python SDK per utilizzarlo. `ModelBuilder`

**Nota**  
Utilizza il seguente esempio di codice come riferimento. Per end-to-end esempi che mostrano come distribuire modelli registrati, consulta. MLflow [Tutorial di MLflow con notebook Jupyter di esempio](mlflow-tutorials.md)

```
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 [tracciamento della discendenza](https://docs.aws.amazon.com/sagemaker/latest/dg/lineage-tracking.html) per MLflow i modelli distribuiti utilizzando`ModelBuilder`, devi 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 end-to-end esempi, consulta. [Tutorial di MLflow con notebook Jupyter di esempio](mlflow-tutorials.md)