

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

# Tieni traccia dei consigli di inferenza e confronta i risultati con MLFlow
<a name="generative-ai-inference-recommendations-mlflow"></a>

Puoi monitorare i risultati delle tue raccomandazioni e confrontare i lavori con MLFlow completamente gestito su Amazon SageMaker AI. Quando fornisci una configurazione MLFlow, SageMaker AI registra le metriche prestazionali e gli artefatti prodotti dal lavoro in un'app MLFlow. È quindi possibile utilizzare l'interfaccia utente MLFlow per visualizzare le singole esecuzioni, confrontare le configurazioni tra i job e condividere i risultati con il team. Per ulteriori informazioni su MLFlow on SageMaker AI, consulta. [Accelera lo sviluppo dell'intelligenza artificiale generativa utilizzando MLFlow gestito su Amazon AI SageMaker](mlflow.md)

Il tracciamento MLFlow è facoltativo. Per abilitarlo, fornite una configurazione MLFlow che faccia riferimento a un'app MLFlow quando create il lavoro.

## Prerequisiti
<a name="generative-ai-inference-recommendations-mlflow-prereqs"></a>

Prima di monitorare i risultati con MLFlow, oltre a quanto segue [Prerequisiti](generative-ai-inference-recommendations-get-started.md#generative-ai-inference-recommendations-get-started-prereqs) per un lavoro di raccomandazione o di benchmark, è necessario:
+ Un'app MLFlow in uno stato operativo, nello stesso modo in cui svolgi il tuo lavoro Regione AWS . Per informazioni sulla creazione di un'app MLFlow, consulta. [Configurazione dell'app MLFlow](mlflow-app-setup.md)
+ Un ruolo di esecuzione IAM (`RoleArn`quello che passi al job) con il permesso di descrivere l'app MLFlow e chiamare le API REST di MLFlow. Aggiungi l'`sagemaker:DescribeMlflowApp`azione e le `sagemaker-mlflow` azioni utilizzate dal job per registrare le esecuzioni. Per ulteriori informazioni sulle autorizzazioni MLFlow, vedere. [Configurazione dell'app MLFlow](mlflow-app-setup.md)

## Parametri di configurazione MLFlow
<a name="generative-ai-inference-recommendations-mlflow-config"></a>

Per tenere traccia dei risultati, aggiungi un `MlflowConfig` oggetto `OutputConfig` alla tua `CreateAIBenchmarkJob` richiesta `CreateAIRecommendationJob` o. `MlflowConfig`contiene i seguenti campi:

`MlflowResourceArn`  
Obbligatorio. L'Amazon Resource Name (ARN) dell'app MLFlow su cui registrare i risultati, nel formato. `arn:aws:sagemaker:{{region}}:{{account-id}}:mlflow-app/{{app-id}}`

`MlflowExperimentName`  
Opzionale. Il nome dell'esperimento MLFlow in cui registrare l'esecuzione. Se l'esperimento non esiste, l' SageMaker IA lo crea; se esiste già, l' SageMaker IA lo riutilizza, in modo da poter raggruppare le esecuzioni di più job in un unico esperimento assegnando lo stesso nome.

`MlflowRunName`  
Opzionale. Il nome dell'esecuzione MLFlow di primo livello in cui sono annidati i risultati del processo. Per raggruppare i risultati di più job in un'unica esecuzione di primo livello, passate gli stessi `MlflowRunName` dati a ciascun job.

Ogni job crea un'esecuzione MLFlow di primo livello, con esecuzioni secondarie annidate che suddividono i risultati per dimensioni come l'obiettivo o il tipo di istanza del benchmark, la configurazione di distribuzione e il livello di concorrenza. Questa struttura consente di approfondire le singole misurazioni e confrontare le configurazioni nell'interfaccia utente MLFlow.

Quanto `MlflowConfig` fornito nella richiesta di creazione viene ripreso nella risposta corrispondente. `OutputConfig` `Describe`

## Tieni traccia di un lavoro di raccomandazione
<a name="generative-ai-inference-recommendations-mlflow-recommendation"></a>

Aggiungi l'`MlflowConfig`oggetto a `OutputConfig` quando crei un lavoro di raccomandazione.

**Python (boto3)**

```
response = client.create_ai_recommendation_job(
    AIRecommendationJobName="my-recommendation-job",
    ModelSource={
        "S3": {
            "S3Uri": "s3://DOC-EXAMPLE-BUCKET/models/my-model/",
        }
    },
    OutputConfig={
        "S3OutputLocation": "s3://DOC-EXAMPLE-BUCKET/recommendations/",
        "MlflowConfig": {
            "MlflowResourceArn": "arn:aws:sagemaker:us-west-2:111122223333:mlflow-app/app-EXAMPLE",
            "MlflowExperimentName": "my-recommendation-experiment",
            "MlflowRunName": "my-recommendation-job-run",
        },
    },
    PerformanceTarget={
        "Constraints": [
            {"Metric": "ttft-ms"}
        ]
    },
    AIWorkloadConfigIdentifier="my-recommendation-workload",
    RoleArn="arn:aws:iam::111122223333:role/ExampleRole",
)
print(response["AIRecommendationJobArn"])
```

**AWS CLI**

```
aws sagemaker create-ai-recommendation-job \
  --ai-recommendation-job-name "my-recommendation-job" \
  --model-source '{"S3": {"S3Uri": "s3://DOC-EXAMPLE-BUCKET/models/my-model/"}}' \
  --output-config '{
    "S3OutputLocation": "s3://DOC-EXAMPLE-BUCKET/recommendations/",
    "MlflowConfig": {
      "MlflowResourceArn": "arn:aws:sagemaker:us-west-2:111122223333:mlflow-app/app-EXAMPLE",
      "MlflowExperimentName": "my-recommendation-experiment",
      "MlflowRunName": "my-recommendation-job-run"
    }
  }' \
  --performance-target '{"Constraints": [{"Metric": "ttft-ms"}]}' \
  --ai-workload-config-identifier "my-recommendation-workload" \
  --role-arn "arn:aws:iam::111122223333:role/ExampleRole" \
  --region us-west-2
```

## Tieni traccia di un lavoro di riferimento
<a name="generative-ai-inference-recommendations-mlflow-benchmark"></a>

Aggiungi l'`MlflowConfig`oggetto a `OutputConfig` quando crei un lavoro di benchmark.

**Python (boto3)**

```
response = client.create_ai_benchmark_job(
    AIBenchmarkJobName="my-benchmark-job",
    BenchmarkTarget={
        "Endpoint": {
            "Identifier": "my-sagemaker-endpoint"
        }
    },
    OutputConfig={
        "S3OutputLocation": "s3://DOC-EXAMPLE-BUCKET/benchmark-results/",
        "MlflowConfig": {
            "MlflowResourceArn": "arn:aws:sagemaker:us-west-2:111122223333:mlflow-app/app-EXAMPLE",
            "MlflowExperimentName": "my-benchmark-experiment",
            "MlflowRunName": "my-benchmark-job-run",
        },
    },
    AIWorkloadConfigIdentifier="my-benchmark-config",
    RoleArn="arn:aws:iam::111122223333:role/ExampleRole",
)
print(response["AIBenchmarkJobArn"])
```

**AWS CLI**

```
aws sagemaker create-ai-benchmark-job \
  --ai-benchmark-job-name "my-benchmark-job" \
  --benchmark-target '{"Endpoint": {"Identifier": "my-sagemaker-endpoint"}}' \
  --output-config '{
    "S3OutputLocation": "s3://DOC-EXAMPLE-BUCKET/benchmark-results/",
    "MlflowConfig": {
      "MlflowResourceArn": "arn:aws:sagemaker:us-west-2:111122223333:mlflow-app/app-EXAMPLE",
      "MlflowExperimentName": "my-benchmark-experiment",
      "MlflowRunName": "my-benchmark-job-run"
    }
  }' \
  --ai-workload-config-identifier "my-benchmark-config" \
  --role-arn "arn:aws:iam::111122223333:role/ExampleRole" \
  --region us-west-2
```

## Visualizza i risultati in MLFlow
<a name="generative-ai-inference-recommendations-mlflow-view"></a>

Una volta raggiunto `Completed` lo stato del processo, apri l'interfaccia utente MLFlow dall'app MLFlow per controllare le esecuzioni registrate. Per ulteriori informazioni sull'avvio dell'interfaccia utente MLFlow, vedere. [Avvio dell’interfaccia utente di MLflow mediante un URL prefirmato](mlflow-launch-ui.md)

Nella pagina **Esperimenti**, selezionate l'esperimento specificato in. `MlflowExperimentName`

![La pagina degli esperimenti dell'interfaccia utente MLFlow che mostra un elenco di esperimenti con i relativi nomi e tempi di creazione.](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/mlflow/inference-recommendations-mlflow-experiments.png)


La vista **Esecuzioni** dell'esperimento mostra un'esecuzione di primo livello che contiene un'esecuzione per processo, che si espande in esecuzioni secondarie per ogni tipo di istanza, configurazione di distribuzione e livello di concorrenza. Seleziona un'esecuzione per visualizzarne i parametri, le metriche e gli artefatti.

![La visualizzazione MLFlow UI Runs mostra un'esecuzione di primo livello che si espande in esecuzioni secondarie annidate per processo, tipo di istanza, tipo di immagine e livelli di concorrenza.](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/mlflow/inference-recommendations-mlflow-runs.png)
