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
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
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
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
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
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
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
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
La specifica del carico di lavoro contiene le seguenti chiavi di primo livello. Le chiavi sconosciute vengono rifiutate.
benchmark
Mappatura obbligatoria. Identifica lo strumento di benchmarking da utilizzare.
benchmark/type-
Obbligatorio. Il motore di riferimento. L’unico valore valido è
aiperf.
parametri
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_meanisl 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_TOKENPseudonimo:. Per i valori sensibili, usa lasecretssezione 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_numnum_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
DatasetConfigparametro, 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
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
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.