

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

# Ottieni i risultati del processo di raccomandazione di inferenza
<a name="instance-recommendation-results"></a>

Raccogli i risultati del tuo lavoro di raccomandazione inferenziale in modo AWS SDK per Python (Boto3) programmatico con Studio Classic o la SageMaker console AI. AWS CLI

------
#### [ AWS SDK per Python (Boto3) ]

Una volta completata la raccomandazione di inferenza, puoi utilizzare `DescribeInferenceRecommendationsJob` per ottenere le raccomandazioni e i dettagli del processo. Fornisci il nome del processo che hai usato quando hai creato il processo per la raccomandazione di inferenza.

```
job_name={{'<INSERT>'}}
response = sagemaker_client.describe_inference_recommendations_job(
                    JobName=job_name)
```

Visualizza l’oggetto di risposta. L’esempio di codice precedente archiviava la risposta in una variabile denominata `response`.

```
print(response['Status'])
```

Questo esempio restituisce una risposta JSON simile alla seguente: Questo esempio mostra i tipi di istanza consigliati per l’inferenza in tempo reale (per un esempio che mostra raccomandazioni di inferenza Serverless, consulta l’esempio successivo).

```
{
    'JobName': {{'job-name'}}, 
    'JobDescription': {{'job-description'}}, 
    'JobType': 'Default', 
    'JobArn': 'arn:aws:sagemaker:{{region}}:{{account-id}}:inference-recommendations-job/{{resource-id}}', 
    'Status': 'COMPLETED', 
    'CreationTime': datetime.datetime(2021, 10, 26, 20, 4, 57, 627000, tzinfo=tzlocal()), 
    'LastModifiedTime': datetime.datetime(2021, 10, 26, 20, 25, 1, 997000, tzinfo=tzlocal()), 
    'InputConfig': {
                'ModelPackageVersionArn': 'arn:aws:sagemaker:{{region}}:{{account-id}}:model-package/{{resource-id}}', 
                'JobDurationInSeconds': 0
                }, 
    'InferenceRecommendations': [{
            'Metrics': {
                'CostPerHour': 0.20399999618530273, 
                'CostPerInference': 5.246913588052848e-06, 
                'MaximumInvocations': 648, 
                'ModelLatency': 263596
                }, 
            'EndpointConfiguration': {
                'EndpointName': {{'endpoint-name'}}, 
                'VariantName': {{'variant-name'}}, 
                'InstanceType': 'ml.c5.xlarge', 
                'InitialInstanceCount': 1
                }, 
            'ModelConfiguration': {
                'Compiled': False, 
                'EnvironmentParameters': []
                }
         }, 
         {
            'Metrics': {
                'CostPerHour': 0.11500000208616257, 
                'CostPerInference': 2.92620870823157e-06, 
                'MaximumInvocations': 655, 
                'ModelLatency': 826019
                }, 
            'EndpointConfiguration': {
                'EndpointName': {{'endpoint-name'}}, 
                'VariantName': {{'variant-name'}}, 
                'InstanceType': 'ml.c5d.large', 
                'InitialInstanceCount': 1
                }, 
            'ModelConfiguration': {
                'Compiled': False, 
                'EnvironmentParameters': []
                }
            }, 
            {
                'Metrics': {
                    'CostPerHour': 0.11500000208616257, 
                    'CostPerInference': 3.3625731248321244e-06, 
                    'MaximumInvocations': 570, 
                    'ModelLatency': 1085446
                    }, 
                'EndpointConfiguration': {
                    'EndpointName': {{'endpoint-name'}}, 
                    'VariantName': {{'variant-name'}}, 
                    'InstanceType': 'ml.m5.large', 
                    'InitialInstanceCount': 1
                    }, 
                'ModelConfiguration': {
                    'Compiled': False, 
                    'EnvironmentParameters': []
                    }
            }], 
    'ResponseMetadata': {
        'RequestId': {{'request-id'}}, 
        'HTTPStatusCode': 200, 
        'HTTPHeaders': {
            'x-amzn-requestid': {{'x-amzn-requestid'}}, 
            'content-type': {{'content-type'}}, 
            'content-length': '1685', 
            'date': 'Tue, 26 Oct 2021 20:31:10 GMT'
            }, 
        'RetryAttempts': 0
        }
}
```

Le prime nuove righe forniscono informazioni sullo stesso processo di raccomandazione dell'inferenza. Ciò include il nome del processo, l'ARN del ruolo e l'ora di creazione ed eliminazione. 

Il dizionario `InferenceRecommendations` contiene un elenco di suggerimenti sull’inferenza di Inference Recommender.

Il dizionario `EndpointConfiguration` annidato contiene il consiglio sul tipo di istanza (`InstanceType`) insieme al nome dell'endpoint e della variante (un modello di apprendimento AWS automatico distribuito) utilizzati durante il processo di raccomandazione. Puoi utilizzare l'endpoint e il nome della variante per il monitoraggio in Amazon CloudWatch Events. Per ulteriori informazioni, consulta [Metriche di Amazon SageMaker AI in Amazon CloudWatch](monitoring-cloudwatch.md).

Il dizionario `Metrics` annidato contiene informazioni sul costo orario stimato (`CostPerHour`) per l'endpoint in tempo reale in dollari USA, il costo per inferenza stimato (`CostPerInference`) in dollari USA per l'endpoint in tempo reale, il numero massimo previsto di `InvokeEndpoint` richieste al minuto inviate all'endpoint (`MaxInvocations`) e la latenza del modello (`ModelLatency`), che è l'intervallo di tempo (in microsecondi) impiegato dal modello per rispondere all' SageMaker IA. La latenza del modello include il tempo per le comunicazioni locali impiegato per inviare la richiesta e recuperare la risposta dal container di un modello e il tempo richiesto per completare l’inferenza nel container.

L'esempio seguente mostra la parte `InferenceRecommendations` della risposta per un processo di raccomandazioni di inferenza configurato per restituire consigli di inferenza serverless:

```
"InferenceRecommendations": [ 
      { 
         "EndpointConfiguration": { 
            "EndpointName": "{{value}}",
            "InitialInstanceCount": {{value}},
            "InstanceType": "{{value}}",
            "VariantName": "{{value}}",
            "ServerlessConfig": {
                "MaxConcurrency": {{value}},
                "MemorySizeInMb": {{value}}
            }
         },
         "InvocationEndTime": {{value}},
         "InvocationStartTime": {{value}},
         "Metrics": { 
            "CostPerHour": {{value}},
            "CostPerInference": {{value}},
            "CpuUtilization": {{value}},
            "MaxInvocations": {{value}},
            "MemoryUtilization": {{value}},
            "ModelLatency": {{value}},
            "ModelSetupTime": {{value}}
         },
         "ModelConfiguration": { 
            "Compiled": "False",
            "EnvironmentParameters": [],
            "InferenceSpecificationName": "{{value}}"
         },
         "RecommendationId": "{{value}}"
      }
   ]
```

È possibile interpretare i consigli per l'inferenza serverless in modo simile ai risultati per l'inferenza in tempo reale, ad eccezione di `ServerlessConfig`, che indica i parametri restituiti per un endpoint serverless con `MemorySizeInMB` e quando `MaxConcurrency = 1`. Per aumentare il possibile throughput sull'endpoint, aumenta il valore di `MaxConcurrency` in modo lineare. Ad esempio, se la raccomandazione di inferenza mostra `MaxInvocations` come `1000`, l'aumento di `MaxConcurrency` a `2` supporterebbe 2000 `MaxInvocations`. Tieni presente che ciò è vero solo fino a un certo punto, in quanto può variare in base al modello e al codice. Le raccomandazioni serverless misurano anche il parametro `ModelSetupTime`, che misura (in microsecondi) il tempo necessario per avviare le risorse informatiche su un endpoint serverless. Per ulteriori informazioni sulla configurazione di endpoint serverless, consulta la [documentazione per inferenze serverless](https://docs.aws.amazon.com/sagemaker/latest/dg/serverless-endpoints.html).

------
#### [ AWS CLI ]

Una volta completata la raccomandazione di inferenza, puoi utilizzare `describe-inference-recommendations-job` per ottenere i dettagli del processo e i tipi di istanze raccomandate. Fornisci il nome del processo che hai usato quando hai creato il processo per la raccomandazione di inferenza.

```
aws sagemaker describe-inference-recommendations-job\
    --job-name {{<job-name>}}\
    --region {{<aws-region>}}
```

La risposta JSON si presenta in maniera analoga all'esempio sotto riportato. Questo esempio mostra i tipi di istanza consigliati per l’inferenza in tempo reale (per un esempio che mostra raccomandazioni di inferenza Serverless, consulta l’esempio successivo).

```
{
    'JobName': {{'job-name'}}, 
    'JobDescription': {{'job-description'}}, 
    'JobType': 'Default', 
    'JobArn': 'arn:aws:sagemaker:{{region}}:{{account-id}}:inference-recommendations-job/{{resource-id}}', 
    'Status': 'COMPLETED', 
    'CreationTime': datetime.datetime(2021, 10, 26, 20, 4, 57, 627000, tzinfo=tzlocal()), 
    'LastModifiedTime': datetime.datetime(2021, 10, 26, 20, 25, 1, 997000, tzinfo=tzlocal()), 
    'InputConfig': {
                'ModelPackageVersionArn': 'arn:aws:sagemaker:{{region}}:{{account-id}}:model-package/{{resource-id}}', 
                'JobDurationInSeconds': 0
                }, 
    'InferenceRecommendations': [{
            'Metrics': {
                'CostPerHour': 0.20399999618530273, 
                'CostPerInference': 5.246913588052848e-06, 
                'MaximumInvocations': 648, 
                'ModelLatency': 263596
                }, 
            'EndpointConfiguration': {
                'EndpointName': {{'endpoint-name'}}, 
                'VariantName': {{'variant-name'}}, 
                'InstanceType': 'ml.c5.xlarge', 
                'InitialInstanceCount': 1
                }, 
            'ModelConfiguration': {
                'Compiled': False, 
                'EnvironmentParameters': []
                }
         }, 
         {
            'Metrics': {
                'CostPerHour': 0.11500000208616257, 
                'CostPerInference': 2.92620870823157e-06, 
                'MaximumInvocations': 655, 
                'ModelLatency': 826019
                }, 
            'EndpointConfiguration': {
                'EndpointName': {{'endpoint-name'}}, 
                'VariantName': {{'variant-name'}}, 
                'InstanceType': 'ml.c5d.large', 
                'InitialInstanceCount': 1
                }, 
            'ModelConfiguration': {
                'Compiled': False, 
                'EnvironmentParameters': []
                }
            }, 
            {
                'Metrics': {
                    'CostPerHour': 0.11500000208616257, 
                    'CostPerInference': 3.3625731248321244e-06, 
                    'MaximumInvocations': 570, 
                    'ModelLatency': 1085446
                    }, 
                'EndpointConfiguration': {
                    'EndpointName': {{'endpoint-name'}}, 
                    'VariantName': {{'variant-name'}}, 
                    'InstanceType': 'ml.m5.large', 
                    'InitialInstanceCount': 1
                    }, 
                'ModelConfiguration': {
                    'Compiled': False, 
                    'EnvironmentParameters': []
                    }
            }], 
    'ResponseMetadata': {
        'RequestId': {{'request-id'}}, 
        'HTTPStatusCode': 200, 
        'HTTPHeaders': {
            'x-amzn-requestid': {{'x-amzn-requestid'}}, 
            'content-type': {{'content-type'}}, 
            'content-length': '1685', 
            'date': 'Tue, 26 Oct 2021 20:31:10 GMT'
            }, 
        'RetryAttempts': 0
        }
}
```

Le prime nuove righe forniscono informazioni sullo stesso processo di raccomandazione dell'inferenza. Ciò include il nome del processo, l'ARN del ruolo e l'ora di creazione ed eliminazione. 

Il dizionario `InferenceRecommendations` contiene un elenco di suggerimenti sull’inferenza di Inference Recommender.

Il dizionario `EndpointConfiguration` annidato contiene la raccomandazione del tipo di istanza (`InstanceType`) insieme al nome dell'endpoint e della variante (un modello di apprendimento AWS automatico distribuito) utilizzati durante il processo di raccomandazione. Puoi utilizzare l'endpoint e il nome della variante per il monitoraggio in Amazon CloudWatch Events. Per ulteriori informazioni, consulta [Metriche di Amazon SageMaker AI in Amazon CloudWatch](monitoring-cloudwatch.md).

Il dizionario `Metrics` annidato contiene informazioni sul costo orario stimato (`CostPerHour`) per l'endpoint in tempo reale in dollari USA, il costo per inferenza stimato (`CostPerInference`) in dollari USA per l'endpoint in tempo reale, il numero massimo previsto di `InvokeEndpoint` richieste al minuto inviate all'endpoint (`MaxInvocations`) e la latenza del modello (`ModelLatency`), che è l'intervallo di tempo (in millisecondi) impiegato dal modello per rispondere all' SageMaker IA. La latenza del modello include il tempo per le comunicazioni locali impiegato per inviare la richiesta e recuperare la risposta dal container di un modello e il tempo richiesto per completare l’inferenza nel container.

L'esempio seguente mostra la parte `InferenceRecommendations` della risposta per un processo di raccomandazioni di inferenza configurato per restituire consigli di inferenza serverless:

```
"InferenceRecommendations": [ 
      { 
         "EndpointConfiguration": { 
            "EndpointName": "{{value}}",
            "InitialInstanceCount": {{value}},
            "InstanceType": "{{value}}",
            "VariantName": "{{value}}",
            "ServerlessConfig": {
                "MaxConcurrency": {{value}},
                "MemorySizeInMb": {{value}}
            }
         },
         "InvocationEndTime": {{value}},
         "InvocationStartTime": {{value}},
         "Metrics": { 
            "CostPerHour": {{value}},
            "CostPerInference": {{value}},
            "CpuUtilization": {{value}},
            "MaxInvocations": {{value}},
            "MemoryUtilization": {{value}},
            "ModelLatency": {{value}},
            "ModelSetupTime": {{value}}
         },
         "ModelConfiguration": { 
            "Compiled": "False",
            "EnvironmentParameters": [],
            "InferenceSpecificationName": "{{value}}"
         },
         "RecommendationId": "{{value}}"
      }
   ]
```

È possibile interpretare i consigli per l'inferenza serverless in modo simile ai risultati per l'inferenza in tempo reale, ad eccezione di `ServerlessConfig`, che indica i parametri restituiti per un endpoint serverless con `MemorySizeInMB` e quando `MaxConcurrency = 1`. Per aumentare il possibile throughput sull'endpoint, aumenta il valore di `MaxConcurrency` in modo lineare. Ad esempio, se la raccomandazione di inferenza mostra `MaxInvocations` come `1000`, l'aumento di `MaxConcurrency` a `2` supporterebbe 2000 `MaxInvocations`. Tieni presente che ciò è vero solo fino a un certo punto, in quanto può variare in base al modello e al codice. Le raccomandazioni serverless misurano anche il parametro `ModelSetupTime`, che misura (in microsecondi) il tempo necessario per avviare le risorse informatiche su un endpoint serverless. Per ulteriori informazioni sulla configurazione di endpoint serverless, consulta la [documentazione per inferenze serverless](https://docs.aws.amazon.com/sagemaker/latest/dg/serverless-endpoints.html).

------
#### [ Amazon SageMaker Studio Classic ]

Le raccomandazioni di inferenza vengono inserite in una nuova scheda **Raccomandazioni di inferenza** all’interno di Studio. Possono essere necessari fino a 45 minuti prima che i risultati vengano visualizzati. Questa scheda contiene le intestazioni delle collone **Risultati** e **Dettagli**.

La colonna **Dettagli** fornisce informazioni sul processo di raccomandazione delle inferenze, ad esempio il nome della raccomandazione delle inferenze, la data di creazione del processo (**Data creazione**) e altro ancora. Fornisce inoltre informazioni sulle **Impostazioni**, come il numero massimo di invocazioni effettuate al minuto e informazioni sugli Amazon Resource Name utilizzati.

La colonna **Risultati** fornisce una finestra **Obiettivi di implementazione** e **consigli SageMaker AI** in cui è possibile modificare l'ordine di visualizzazione dei risultati in base all'importanza della distribuzione. Sono disponibili tre menu a discesa che è possibile utilizzare per indicare il livello di importanza del **costo**, della **latenza** e del **throughput** per il proprio caso d'uso. Puoi impostare il livello di importanza di ogni obiettivo (costo, latenza e throughput): **importanza minima**, **importanza bassa**, **importanza moderata**, **importanza elevata** o **importanza massima**. 

In base all'importanza selezionata per ogni obiettivo, Inference Recommender mostra il consiglio principale nel campo dei **SageMakerconsigli** sulla destra del pannello, insieme al costo orario stimato e alla richiesta di inferenza. Fornisce inoltre informazioni sulla latenza prevista del modello, sul numero massimo di invocazioni e sul numero di istanze. Per le raccomandazioni serverless, puoi visualizzare i valori ideali per la concorrenza massima e la dimensione della memoria dell'endpoint.

Oltre ai consigli principali visualizzati, è anche possibile visualizzare le stesse informazioni riportate per tutte le istanze testate dal suggeritore di inferenza nella sezione **Tutte le esecuzioni**.

------
#### [ SageMaker AI console ]

Puoi visualizzare i lavori di raccomandazione delle istanze nella console SageMaker AI procedendo come segue:

1. Vai alla console SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Nel riquadro di navigazione di sinistra, seleziona **Inferenza** e poi **Suggeritore di inferenza**.

1. Nella pagina dei **processi di raccomandazione delle inferenze**, scegli il nome del tuo processo di raccomandazione delle inferenze.

Nella pagina dei dettagli del tuo lavoro, puoi visualizzare i **consigli di Inference**, ovvero i tipi di istanze consigliati dall' SageMaker IA per il tuo modello, come mostrato nella schermata seguente.

![Schermata dell'elenco dei consigli di inferenza nella pagina dei dettagli del lavoro nella console AI. SageMaker](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/inf-rec-instant-recs.png)


In questa sezione, è possibile confrontare i tipi di istanza in base a vari fattori, come la **latenza del modello**, il **costo all’ora**, il **costo per inferenza** e le **invocazioni al minuto**.

In questa pagina, è possibile visualizzare anche le configurazioni specificate per il processo. Nella sezione **Monitor**, puoi visualizzare i CloudWatch parametri di Amazon registrati per ogni tipo di istanza. Per ulteriori informazioni sull'interpretazione di questi parametri, consulta [Interpretazione dei risultati](https://docs.aws.amazon.com/sagemaker/latest/dg/inference-recommender-interpret-results.html).

------

Per ulteriori informazioni sull'interpretazione dei risultati del processo di raccomandazione, consulta [Risultati della raccomandazione](inference-recommender-interpret-results.md).