

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 una raccomandazione di inferenza per un endpoint esistente
<a name="inference-recommender-existing-endpoint"></a>

I processi di raccomandazione di inferenza eseguono una serie di test di carico sui tipi di istanze raccomandati o su un endpoint esistente. I processi di raccomandazione di inferenza utilizzano parametri delle prestazioni basati su test di carico che utilizzano i dati di esempio forniti durante la registrazione della versione del modello.

Puoi effettuare benchmark e ottenere consigli di inferenza per un endpoint SageMaker AI Inference esistente per aiutarti a migliorare le prestazioni del tuo endpoint. [La procedura per ottenere consigli per un endpoint SageMaker AI Inference esistente è simile alla procedura per ottenere consigli di inferenza senza un endpoint.](https://docs.aws.amazon.com/sagemaker/latest/dg/inference-recommender-instance-recommendation.html) È possibile prendere in considerazione diverse esclusioni di funzionalità quando si esegue il benchmarking di un endpoint esistente:
+ È possibile utilizzare un solo endpoint esistente per processo del suggeritore di inferenza.
+ È possibile avere una sola variante sul proprio endpoint.
+ Non è possibile utilizzare un endpoint che abilita il dimensionamento automatico.
+ Questa funzionalità è supportata solo per [inferenze in tempo reale](https://docs.aws.amazon.com/sagemaker/latest/dg/realtime-endpoints.html)
+ Questa funzionalità non supporta gli [endpoint multimodello in tempo reale](https://docs.aws.amazon.com/sagemaker/latest/dg/multi-model-endpoints.html).

**avvertimento**  
Sconsigliamo vivamente di non eseguire un processo del suggeritore di inferenza su un endpoint di produzione che gestisce il traffico in tempo reale. Il carico sintetico durante il benchmarking può influire sull'endpoint di produzione e causare rallentamenti o fornire risultati di benchmark imprecisi. Consigliamo di utilizzare un endpoint non di produzione o di sviluppo a scopo di confronto. 

Le seguenti sezioni mostrano come utilizzare Amazon SageMaker Inference Recommender per creare una raccomandazione di inferenza per un endpoint esistente in base al tipo di modello utilizzando l' AWS SDK for Python (Boto3) e il. AWS CLI

**Nota**  
Prima di creare un processo di raccomandazione del suggeritore di inferenza, assicurati di aver soddisfatto [Prerequisiti per l'utilizzo di Amazon SageMaker Inference Recommender](inference-recommender-prerequisites.md).

## Prerequisiti
<a name="inference-recommender-existing-endpoint-prerequisites"></a>

[Se non disponi già di un endpoint SageMaker AI Inference, puoi [ottenere una raccomandazione di inferenza senza un endpoint oppure puoi creare un endpoint di inferenza](https://docs.aws.amazon.com/sagemaker/latest/dg/inference-recommender-instance-recommendation.html) in tempo reale seguendo le istruzioni in Crea il tuo endpoint e distribuisci il tuo modello.](https://docs.aws.amazon.com/sagemaker/latest/dg/realtime-endpoints-deployment.html)

## Crea un processo di raccomandazione di inferenza per un endpoint esistente
<a name="inference-recommender-existing-endpoint-create"></a>

Crea una raccomandazione di inferenza a livello di codice utilizzando, o il. AWS SDK per Python (Boto3) AWS CLI Specificate un nome di lavoro per la vostra raccomandazione di inferenza, il nome di un endpoint SageMaker AI Inference esistente, un ARN del AWS ruolo IAM, una configurazione di input e il pacchetto del modello ARN da quando avete registrato il modello nel registro dei modelli.

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

Usa l'API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateInferenceRecommendationsJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateInferenceRecommendationsJob.html) per avviare un processo di raccomandazione di inferenza. Imposta il campo `JobType` su `'Default'` per i processi di raccomandazione di inferenza. È inoltre necessario indicare quanto segue:
+ Fornisci un nome per il processo di raccomandazione del suggeritore di inferenza per il campo `JobName`. Il nome del lavoro di Inference Recommender deve essere univoco all'interno della regione e all'interno del tuo account. AWS AWS 
+ Il nome della risorsa Amazon (ARN) di un ruolo IAM che consente al suggeritore di inferenza di eseguire attività per tuo conto. Definiscilo per il campo `RoleArn`.
+ L'ARN del pacchetto di modelli con versione che hai creato quando hai registrato il modello con il registro di modelli. Definiscilo per `ModelPackageVersionArn` nel campo `InputConfig`.
+ Fornisci il nome di un endpoint SageMaker AI Inference esistente per il quale desideri eseguire il benchmark in Inference Recommender sul campo. `Endpoints` `InputConfig`

Importa il AWS SDK per Python (Boto3) pacchetto e crea un oggetto client SageMaker AI utilizzando la classe client. Se hai seguito le fasi nella sezione **Prerequisiti**, l'ARN del gruppo di pacchetti di modelli è stato archiviato in una variabile denominata `model_package_arn`.

```
# Create a low-level SageMaker service client.
import boto3
aws_region = {{'<region>'}}
sagemaker_client = boto3.client('sagemaker', region_name=aws_region) 

# Provide your model package ARN that was created when you registered your 
# model with Model Registry 
model_package_arn = {{'<model-package-arn>'}}

# Provide a unique job name for SageMaker Inference Recommender job
job_name = {{'<job-name>'}}

# Inference Recommender job type. Set to Default to get an initial recommendation
job_type = 'Default'

# Provide an IAM Role that gives SageMaker Inference Recommender permission to 
# access AWS services
role_arn = {{'<arn:aws:iam::<account>:role/*>'}}
                                    
# Provide endpoint name for your endpoint that want to benchmark in Inference Recommender
endpoint_name = {{'<existing-endpoint-name>'}}

sagemaker_client.create_inference_recommendations_job(
    JobName = job_name,
    JobType = job_type,
    RoleArn = role_arn,
    InputConfig = {
        'ModelPackageVersionArn': model_package_arn,
        'Endpoints': [{'EndpointName': endpoint_name}]
    }
)
```

Consulta la [Amazon SageMaker API Reference Guide](https://docs.aws.amazon.com/sagemaker/latest/APIReference/Welcome.html) per un elenco completo di argomenti opzionali e obbligatori a cui puoi passare [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateInferenceRecommendationsJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateInferenceRecommendationsJob.html).

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

Usa l'API `create-inference-recommendations-job` per ottenere una raccomandazione sull'endpoint dell'istanza. Imposta il campo `job-type` su `'Default'` per i processi di raccomandazione degli endpoint dell'istanza. È inoltre necessario indicare quanto segue:
+ Fornisci un nome per il processo di raccomandazione del suggeritore di inferenza per il campo `job-name`. Il nome del lavoro di Inference Recommender deve essere univoco all'interno della AWS regione e all'interno del tuo AWS account.
+ L'Amazon Resource Name (ARN) di un ruolo IAM che consente ad Amazon SageMaker Inference Recommender di eseguire attività per tuo conto. Definiscilo per il campo `role-arn`.
+ l'ARN del pacchetto di modelli con versione che hai creato quando hai registrato il modello con Model Registry. Definiscilo per `ModelPackageVersionArn` nel campo `input-config`.
+ Fornisci il nome di un endpoint SageMaker AI Inference esistente per il quale desideri eseguire il benchmark in Inference Recommender sul campo. `Endpoints` `input-config`

```
aws sagemaker create-inference-recommendations-job 
    --region {{<region>}}\
    --job-name {{<job_name>}}\
    --job-type Default\
    --role-arn arn:aws:iam::{{<account:role/*>}}\
    --input-config "{
        \"ModelPackageVersionArn\": \"arn:aws:sagemaker:{{<region:account:role/*>}}\",
        \"Endpoints\": [{\"EndpointName\": <endpoint_name>}]
        }"
```

------

## Ottieni i risultati del processo di raccomandazione di inferenza
<a name="inference-recommender-existing-endpoint-results"></a>

È possibile raccogliere i risultati del processo di raccomandazione di inferenza a livello di programmazione con la stessa procedura per i processi di raccomandazione di inferenza standard. Per ulteriori informazioni, consulta [Ottieni i risultati del processo di raccomandazione di inferenza](instance-recommendation-results.md).

Quando ottieni i risultati di un processo di raccomandazione di inferenza per un endpoint esistente, dovresti ricevere una risposta JSON simile alla seguente:

```
{
    "JobName": {{"job-name"}},
    "JobType": "Default",
    "JobArn": "arn:aws:sagemaker:{{region}}:{{account-id}}:inference-recommendations-job/{{resource-id}}",
    "RoleArn": {{"iam-role-arn"}},
    "Status": "COMPLETED",
    "CreationTime": 1664922919.2,
    "LastModifiedTime": 1664924208.291,
    "InputConfig": {
        "ModelPackageVersionArn": "arn:aws:sagemaker:{{region}}:{{account-id}}:model-package/{{resource-id}}",
        "Endpoints": [
            {
                "EndpointName": {{"endpoint-name"}}
            }
        ]
    },
    "InferenceRecommendations": [
        {
            "Metrics": {
                "CostPerHour": 0.7360000014305115,
                "CostPerInference": 7.456940238625975e-06,
                "MaxInvocations": 1645,
                "ModelLatency": 171
            },
            "EndpointConfiguration": {
                "EndpointName": {{"sm-endpoint-name"}},
                "VariantName": {{"variant-name"}},
                "InstanceType": "ml.g4dn.xlarge",
                "InitialInstanceCount": 1
            },
            "ModelConfiguration": {
                "EnvironmentParameters": [
                    {
                        "Key": "TS_DEFAULT_WORKERS_PER_MODEL",
                        "ValueType": "string",
                        "Value": "4"
                    }
                ]
            }
        }
    ],
    "EndpointPerformances": [
        {
            "Metrics": {
                "MaxInvocations": 184,
                "ModelLatency": 1312
            },
            "EndpointConfiguration": {
                "EndpointName": {{"endpoint-name"}}
            }
        }
    ]
}
```

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 e delle ultime modifiche.

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.

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.

Il dizionario annidato `EndpointPerformances` contiene il nome dell'endpoint esistente su cui è stato eseguito il processo di raccomandazione (`EndpointName`) e i parametri delle prestazioni per l'endpoint (`MaxInvocations` e `ModelLatency`).