

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

# Imposta una configurazione del carico di lavoro per i consigli di inferenza generativa dell'intelligenza artificiale
<a name="generative-ai-inference-recommendations-workload-config"></a>

Una configurazione del carico di lavoro definisce i modelli di traffico e i parametri di benchmark utilizzati dall' SageMaker IA per valutare il modello o l'endpoint. È necessario creare una configurazione del carico di lavoro prima di eseguire un processo di raccomandazione o un processo di benchmark. La stessa configurazione del carico di lavoro può essere riutilizzata in più job.

Puoi definire il tuo carico di lavoro in due modi:
+ **Specificazione in linea.** Specificate le distribuzioni dei token e i parametri del traffico direttamente nella chiamata API.
+ **Set di dati da Amazon S3.** Fornisci un set di dati rappresentativo di richieste reali utilizzando il parametro. `DatasetConfig`

## Crea una configurazione del carico di lavoro con parametri in linea
<a name="generative-ai-inference-recommendations-workload-config-inline"></a>

Utilizza i parametri in linea per specificare le distribuzioni dei token quando non disponi di un set di dati rappresentativo.

**Python (boto3)**

```
import boto3
import json

client = boto3.client("sagemaker", region_name="us-west-2")

workload_spec = {
    "benchmark": {"type": "aiperf"},
    "parameters": {
        "prompt_input_tokens_mean": 550,
        "prompt_input_tokens_stddev": 150,
        "output_tokens_mean": 150,
        "output_tokens_stddev": 50,
    },
}

response = client.create_ai_workload_config(
    AIWorkloadConfigName="my-workload-config",
    AIWorkloadConfigs={
        "WorkloadSpec": {"Inline": json.dumps(workload_spec)}
    },
)
print(response["AIWorkloadConfigArn"])
```

**AWS CLI**

```
aws sagemaker create-ai-workload-config \
  --ai-workload-config-name "my-workload-config" \
  --ai-workload-configs '{"WorkloadSpec": {"Inline": "{\"benchmark\": {\"type\": \"aiperf\"}, \"parameters\": {\"prompt_input_tokens_mean\": 550, \"output_tokens_mean\": 150}}"}}' \
  --region us-west-2
```

## Crea una configurazione del carico di lavoro con un set di dati
<a name="generative-ai-inference-recommendations-workload-config-dataset"></a>

Se disponi di un set di dati rappresentativo di richieste reali, forniscilo tramite Amazon S3 utilizzando `DatasetConfig` il parametro con `InputDataConfig` un canale.

```
response = client.create_ai_workload_config(
    AIWorkloadConfigName="my-dataset-workload",
    DatasetConfig={
        "InputDataConfig": [
            {
                "ChannelName": "traffic",
                "DataSource": {
                    "S3DataSource": {
                        "S3Uri": "s3://DOC-EXAMPLE-BUCKET/datasets/traffic-trace/"
                    }
                }
            }
        ]
    },
    AIWorkloadConfigs={
        "WorkloadSpec": {"Inline": json.dumps(workload_spec)}
    },
)
```

Per impostazione predefinita, vengono generati prompt sintetici. Puoi anche utilizzare un set di dati pubblico o fornire un set di dati personalizzato da Amazon S3.

## Configurazione del carico di lavoro per il benchmarking
<a name="generative-ai-inference-recommendations-workload-config-benchmark"></a>

Quando si crea una configurazione del carico di lavoro per il benchmarking di un endpoint esistente, è possibile specificare parametri aggiuntivi come tokenizer, concorrenza, numero di richieste e frequenza delle richieste.

```
workload_spec = {
    "benchmark": {"type": "aiperf"},
    "parameters": {
        "tokenizer": "TinyLlama/TinyLlama-1.1B-Chat-v1.0",
        "concurrency": 1,
        "request_count": 10,
        "streaming": True,
        "prompt_input_tokens_mean": 550,
        "prompt_input_tokens_stddev": 150,
        "output_tokens_mean": 50,
        "output_tokens_stddev": 10,
        "request_rate": 1.0,
        "benchmark_duration": 60,
    },
    "tooling": {"api_standard": "openai", "version": "0.6.0"},
}
```

## Gestisci le configurazioni dei carichi di lavoro
<a name="generative-ai-inference-recommendations-workload-config-manage"></a>

Utilizza le seguenti operazioni per gestire le configurazioni del carico di lavoro.

```
# List workload configurations
response = client.list_ai_workload_configs(MaxResults=10)
for config in response["AIWorkloadConfigs"]:
    print(f"{config['AIWorkloadConfigName']} - {config['AIWorkloadConfigArn']}")

# Describe a workload configuration
response = client.describe_ai_workload_config(
    AIWorkloadConfigName="my-workload-config"
)

# Delete a workload configuration
client.delete_ai_workload_config(
    AIWorkloadConfigName="my-workload-config"
)
```

## Riferimento alle specifiche del carico di lavoro
<a name="generative-ai-inference-recommendations-workload-config-reference"></a>

Questa sezione fornisce lo schema completo per il documento JSON con le specifiche del carico di lavoro che viene passato `WorkloadSpec.Inline` sul campo durante la creazione di una configurazione del carico di lavoro.

### Sintassi
<a name="generative-ai-inference-recommendations-workload-config-syntax"></a>

Di seguito è riportato un esempio rappresentativo di una specifica del carico di lavoro con parametri di uso comune. Tutti i parametri sono documentati nella tabella di riferimento riportata di seguito.

```
{
    "benchmark": {
        "type": "aiperf"
    },
    "parameters": {
        "prompt_input_tokens_mean": 550,
        "prompt_input_tokens_stddev": 150.0,
        "output_tokens_mean": 150,
        "output_tokens_stddev": 50.0,
        "concurrency": 10,
        "request_count": 100,
        "request_rate": 5.0,
        "benchmark_duration": 120,
        "streaming": true,
        "tokenizer": "meta-llama/Llama-3.2-1B"
    },
    "secrets": {
        "hf_token": "arn:aws:secretsmanager:us-west-2:111122223333:secret:my-hf-token-AbCdEf"
    },
    "tooling": {
        "api_standard": "openai"
    }
}
```

### Chiavi per le specifiche del carico di lavoro
<a name="generative-ai-inference-recommendations-workload-config-keys"></a>

La specifica del carico di lavoro contiene le seguenti chiavi di primo livello. Le chiavi sconosciute vengono rifiutate.

#### benchmark
<a name="workload-config-ref-benchmark"></a>

Mappatura obbligatoria. Identifica lo strumento di benchmarking da utilizzare.

`benchmark/type`  
Obbligatorio. Il motore di riferimento. L’unico valore valido è `aiperf`.

#### parametri
<a name="workload-config-ref-parameters"></a>

Mappatura opzionale. Parametri di benchmark passati al motore AIPerf. I nomi di parametri sconosciuti vengono rifiutati. Tutti i parametri sono opzionali se non diversamente specificato.

**Distribuzione dei token**

`prompt_input_tokens_mean`  
Numero intero. Numero medio di token di input per richiesta per la generazione di prompt sintetici. Alias:,. `synthetic_input_tokens_mean` `isl`

`prompt_input_tokens_stddev`  
Galleggiante. Deviazione standard del conteggio dei token di input. Alias:`synthetic_input_tokens_stddev`,. `isl_stddev`

`output_tokens_mean`  
Numero intero. Numero medio di token di output per richiesta. Alias:`prompt_output_tokens_mean`,. `osl`

`output_tokens_stddev`  
Galleggiante. Deviazione standard del conteggio dei token di output. Alias:`prompt_output_tokens_stddev`,. `osl_stddev`

**Modellamento del traffico**

`concurrency`  
Numero intero. Numero di richieste simultanee da inviare durante il benchmark.

`request_count`  
Numero intero. Numero totale di richieste da inviare. Pseudonimo:`num_requests`.

`request_rate`  
Galleggiante. Richieste target al secondo.

`benchmark_duration`  
Numero intero. Durata del benchmark in secondi.

`max_concurrency`  
Numero intero. Numero massimo di richieste simultanee consentite.

`request_rate_mode`  
Stringa. Schema di arrivo delle richieste. Pseudonimo:`arrival_pattern`.

`arrival_smoothness`  
Galleggiante. Controlla la frequenza degli arrivi delle richieste. Valori più alti producono un traffico più fluido. Pseudonimo:. `vllm_burstiness`

`prefill_concurrency`  
Numero intero. Numero di richieste di precompilazione simultanee.

**Ambito generale**

`streaming`  
booleano. Se utilizzare le risposte in streaming. Default: `true`.

`tokenizer`  
Stringa. HuggingFace nome del modello o percorso della directory locale per il tokenizer utilizzato per contare i token. Esempio: `meta-llama/Llama-3.2-1B`.

`hf_token`  
Stringa. Token di accesso Hugging Face per scaricare modelli e tokenizzatori recintati. `HF_TOKEN`Pseudonimo:. Per i valori sensibili, usa la `secrets` sezione invece di passare il token in testo semplice.

`request_timeout_seconds`  
Numero intero. Timeout in secondi per richieste individuali.

`benchmark_grace_period`  
Numero intero. Periodo di tolleranza in secondi dopo il completamento del benchmark per consentire il completamento delle richieste in volo.

`extra_inputs`  
Stringa. JSON-encoded Ingressi aggiuntivi da includere nel payload di ogni richiesta.

`random_seed`  
Numero intero. Seme per la generazione di numeri casuali. Default: `42`.

`verbose`  
booleano. Abilita la registrazione dettagliata. Default: `false`.

`num_conversations`  
Numero intero. Numero di conversazioni a più turni da simulare. Pseudonimi:,. `conversation_num` `num_sessions`

`model_selection_strategy`  
Stringa. Strategia per la selezione dei modelli quando sull'endpoint sono disponibili più modelli.

**Riscaldamento**

I parametri di riscaldamento controllano una fase di riscaldamento opzionale che precede il benchmark misurato. Questo prepara le cache del server modello e la compilazione JIT.

`warmup_duration`  
Numero intero. Durata della fase di riscaldamento in secondi.

`warmup_request_count`  
Numero intero. Numero di richieste di riscaldamento. Pseudonimo:. `num_warmup_requests`

`warmup_concurrency`  
Numero intero. Livello di concorrenza durante il riscaldamento.

`warmup_prefill_concurrency`  
Numero intero. Precompila la concorrenza durante il riscaldamento.

`warmup_request_rate`  
Galleggiano. Richiedi la tariffa durante il riscaldamento.

`warmup_arrival_pattern`  
Stringa. Schema di arrivo durante il riscaldamento.

`warmup_grace_period`  
Galleggiante. Periodo di grazia in secondi dopo il completamento del riscaldamento.

`num_warmup_sessions`  
Numero intero. Numero di sessioni di riscaldamento.

**Set di dati**

`public_dataset`  
Stringa. Nome di un set di dati pubblico da utilizzare per i prompt di benchmark anziché per la generazione sintetica.

`custom_dataset_type`  
Stringa. Formato di un set di dati personalizzato fornito tramite Amazon S3.

`input_file`  
Stringa. Percorso del file del set di dati di input all'interno del contenitore di benchmark. Quando si fornisce un set di dati tramite il `DatasetConfig` parametro, i dati vengono montati su. `/opt/ml/input/data/{ChannelName}/` Utilizzate questo parametro per puntare a un file specifico all'interno di quel percorso di montaggio.

**Ingressi di immagini**

Parametri per il benchmarking di modelli multimodali che accettano input di immagini.

`image_width_mean`  
Fluttuano. Larghezza media delle immagini sintetiche in pixel.

`image_width_stddev`  
Fluttua. Deviazione standard della larghezza dell'immagine.

`image_height_mean`  
Galleggiante. Altezza media delle immagini sintetiche in pixel.

`image_height_stddev`  
Fluttua. Deviazione standard dell'altezza dell'immagine.

`image_batch_size`  
Numero intero. Numero di immagini per richiesta. Pseudonimo:`batch_size_image`.

`image_format`  
Stringa. Formato dell'immagine (ad esempio`png`,`jpeg`).

**Ingressi video**

Parametri per il benchmarking dei modelli multimodali che accettano ingressi video.

`video_batch_size`  
Numero intero. Numero di video per richiesta. Pseudonimo:`batch_size_video`.

`video_duration`  
Galleggiante. Durata dei video sintetici in secondi.

`video_fps`  
Numero intero. Fotogrammi al secondo per video sintetici.

`video_width`  
Numero intero. Larghezza dei video sintetici in pixel.

`video_height`  
Numero intero. Altezza dei video sintetici in pixel.

`video_synth_type`  
Stringa. Tipo di generazione di video sintetici.

`video_format`  
Stringa. Formato contenitore video.

`video_codec`  
Stringa. Codec video.

`video_audio_sample_rate`  
Numero intero. Frequenza di campionamento audio in Hz.

`video_audio_num_channels`  
Numero intero. Numero di canali audio.

`video_audio_codec`  
Stringa. Codec audio.

`video_audio_depth`  
Stringa. Profondità di bit audio.

#### segreti
<a name="workload-config-ref-secrets"></a>

Mappatura opzionale. Utilizzate questa sezione per trasmettere valori sensibili (come i token di accesso Hugging Face) facendo riferimento ai segreti di Secrets Manager invece di AWS includerli come testo semplice. `parameters`

Ogni chiave è un nome di parametro e il valore è l'ARN del segreto in AWS Secrets Manager. All'inizio del processo, il servizio risolve il segreto e inserisce il valore nell'ambiente di riferimento.

```
"secrets": {
    "hf_token": "arn:aws:secretsmanager:us-west-2:111122223333:secret:my-hf-token-AbCdEf"
}
```

#### utensili
<a name="workload-config-ref-tooling"></a>

Mappatura opzionale. Speciifica lo standard dell'API e la versione dello strumento.

`tooling/api_standard`  
Opzionale. Lo standard API utilizzato dall'endpoint. Ad esempio, `openai`.

`tooling/version`  
Opzionale. La versione dello strumento di benchmarking. L'impostazione predefinita è l'ultima versione disponibile.