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à.
Esegui un test di carico personalizzato
I test di carico di Amazon SageMaker Inference Recommender eseguono benchmark completi in base ai requisiti di produzione per latenza e throughput, modelli di traffico personalizzati e endpoint serverless o istanze in tempo reale (fino a 10) selezionate.
Le seguenti sezioni mostrano come creare, descrivere e interrompere un test di carico a livello di codice utilizzando AWS SDK for Python (Boto3) and the AWS CLI o in modo interattivo utilizzando Amazon SageMaker Studio Classic o la console. SageMaker
Crea un processo di test di carico
Crea un test di carico a livello di codice utilizzando AWS SDK for Python (Boto3), con o in modo interattivo utilizzando AWS CLI Studio Classic o la console. SageMaker Come per i consigli di inferenza di Inference Recommender, specificate un nome di lavoro per il test di carico, un AWS IAM ruoloARN, una configurazione di input e il pacchetto del modello utilizzato al momento della registrazione del modello nel ARN registro dei modelli. I test di carico richiedono anche che sia specificato un modello di traffico e le condizioni di arresto.
- AWS SDK for Python (Boto3)
-
Utilizzate il
CreateInferenceRecommendationsJob
API per creare un test di carico Inference Recommender. SpecificaAdvanced
per il campoJobType
e indica:-
Un nome di processo per il test di carico (
JobName
). Il nome del lavoro deve essere univoco all'interno AWS della tua regione e all'interno del tuo AWS account. -
L'Amazon Resource Name (ARN) di un IAM ruolo che consente a Inference Recommender di eseguire attività per tuo conto. Definiscilo per il campo
RoleArn
. -
Un dizionario di configurazione endpoint (
InputConfig
) in cui specifichi le seguenti informazioni:-
Per
TrafficPattern
, specifica il modello di traffico a fasi o a scalini. Con il modello di traffico a fasi, i nuovi utenti vengono generati ogni minuto alla velocità specificata. Con il modello di traffico a scalini, i nuovi utenti vengono generati a intervalli di tempo (o fasi) alla frequenza specificata. Seleziona una delle seguenti opzioni:-
Per
TrafficType
, specificarePHASES
. Quindi, per la matricePhases
, specificaInitialNumberOfUsers
(con quanti utenti simultanei iniziare, con un minimo di 1 e un massimo di 3),SpawnRate
(il numero di utenti da generare in un minuto per una fase specifica di test di carico, con un minimo di 0 e un massimo di 3) eDurationInSeconds
(quanto deve essere lunga la fase di traffico, con un minimo di 120 e un massimo di 3600). -
Per
TrafficType
, specificareSTAIRS
. Quindi, per la matriceStairs
, specificaDurationInSeconds
(quanto deve essere lunga la fase di traffico, con un minimo di 120 e un massimo di 3600),NumberOfSteps
(quanti intervalli vengono utilizzati durante la fase) eUsersPerStep
(quanti utenti vengono aggiunti durante ogni intervallo). Si noti che la lunghezza di ogni fase è il valore diDurationInSeconds / NumberOfSteps
. Ad esempio, seDurationInSeconds
è600
e si specificano5
fasi, ogni fase dura 120 secondi.Nota
Un utente è definito come un attore generato dal sistema che viene eseguito in un ciclo e invoca le richieste a un endpoint come parte del suggeritore di inferenza. Per un XGBoost contenitore tipico in esecuzione su un'
ml.c5.large
istanza, gli endpoint possono raggiungere 30.000 chiamate al minuto (500 tps) con solo 15-20 utenti.
-
-
Per
ResourceLimit
, specificaMaxNumberOfTests
(il numero massimo di test di carico di benchmarking per un processo del suggeritore di inferenza, con un minimo di 1 e un massimo di 10) eMaxParallelOfTests
(il numero massimo di test di carico di benchmarking paralleli per un processo del suggeritore di inferenza, con un minimo di 1 e un massimo di 10). -
Per
EndpointConfigurations
, puoi specificare uno dei seguenti elementi:-
Il campo
InstanceType
, in cui specifichi il tipo di istanza su cui desideri eseguire i test di carico. -
ServerlessConfig
, in cui si specifichi i valori ideali perMaxConcurrency
eMemorySizeInMB
per un endpoint serverless. Per ulteriori informazioni, consulta la documentazione per inferenze serverless.
-
-
-
Un dizionario delle condizioni di arresto (
StoppingConditions
), in cui il processo del suggeritore di inferenza si interrompe qualora fosse soddisfatta una condizione qualsiasi. Per questo esempio, specifica i seguenti campi nel dizionario:-
Per
MaxInvocations
, specifica il numero massimo di richieste al minuto previsto per l'endpoint, con un minimo di 1 e un massimo di 30.000. -
Per
ModelLatencyThresholds
, specificaPercentile
(la soglia del percentile di latenza del modello) eValueInMilliseconds
(il valore del percentile di latenza del modello in millisecondi). -
(Facoltativo) Per
FlatInvocations
, puoi specificare se continuare il test di carico quando la velocità TPS (chiamate al minuto) si attenua. Una TPS velocità ridotta in genere indica che l'endpoint ha raggiunto la capacità. Tuttavia, potresti voler continuare a monitorare l'endpoint in condizioni di piena capacità. Per continuare il test di carico quando ciò accade, specifica questo valore comeContinue
. In caso contrario, il valore predefinito èStop
.
-
# Create a low-level SageMaker service client. import boto3 aws_region=
<INSERT>
sagemaker_client=boto3.client('sagemaker', region=aws_region) # Provide a name to your recommendation based on load testing load_test_job_name="<INSERT>"
# Provide the name of the sagemaker instance type instance_type="<INSERT>"
# Provide the IAM Role that gives SageMaker permission to access AWS services role_arn='arn:aws:iam::<account>:role/*
' # Provide your model package ARN that was created when you registered your # model with Model Registry model_package_arn='arn:aws:sagemaker:<region>:<account>:role/*
' sagemaker_client.create_inference_recommendations_job( JobName=load_test_job_name, JobType="Advanced", RoleArn=role_arn, InputConfig={ 'ModelPackageVersionArn': model_package_arn, "JobDurationInSeconds": 7200, 'TrafficPattern' : { # Replace PHASES with STAIRS to use the stairs traffic pattern 'TrafficType': 'PHASES', 'Phases': [ { 'InitialNumberOfUsers': 1, 'SpawnRate': 1, 'DurationInSeconds': 120 }, { 'InitialNumberOfUsers': 1, 'SpawnRate': 1, 'DurationInSeconds': 120 } ] # Uncomment this section and comment out the Phases object above to use the stairs traffic pattern # 'Stairs' : { # 'DurationInSeconds': 240, # 'NumberOfSteps': 2, # 'UsersPerStep': 2 # } }, 'ResourceLimit': { 'MaxNumberOfTests': 10, 'MaxParallelOfTests': 3 }, "EndpointConfigurations" : [{ 'InstanceType': 'ml.c5.xlarge' }, { 'InstanceType': 'ml.m5.xlarge' }, { 'InstanceType': 'ml.r5.xlarge' }] # Uncomment the ServerlessConfig and comment out the InstanceType field if you want recommendations for a serverless endpoint # "ServerlessConfig": { # "MaxConcurrency":value
, # "MemorySizeInMB":value
# } }, StoppingConditions={ 'MaxInvocations': 1000, 'ModelLatencyThresholds':[{ 'Percentile': 'P95', 'ValueInMilliseconds': 100 }], # Change 'Stop' to 'Continue' to let the load test continue if invocations flatten 'FlatInvocations': 'Stop' } )Consulta l'Amazon SageMaker API Reference Guide per un elenco completo degli argomenti opzionali e obbligatori a cui puoi passare
CreateInferenceRecommendationsJob
. -
- AWS CLI
-
Usa il
create-inference-recommendations-job
API per creare un test di carico Inference Recommender. SpecificaAdvanced
per il campoJobType
e indica:-
Un nome di processo per il test di carico (
job-name
). Il nome del lavoro deve essere univoco all'interno AWS della tua regione e all'interno del tuo AWS account. -
L'Amazon Resource Name (ARN) di un IAM ruolo che consente a Inference Recommender di eseguire attività per tuo conto. Definiscilo per il campo
role-arn
. -
Un dizionario di configurazione endpoint (
input-config
) in cui specifichi le seguenti informazioni:-
Per
TrafficPattern
, specifica il modello di traffico a fasi o a scalini. Con il modello di traffico a fasi, i nuovi utenti vengono generati ogni minuto alla velocità specificata. Con il modello di traffico a scalini, i nuovi utenti vengono generati a intervalli di tempo (o fasi) alla frequenza specificata. Seleziona una delle seguenti opzioni:-
Per
TrafficType
, specificarePHASES
. Quindi, per la matricePhases
, specificaInitialNumberOfUsers
(con quanti utenti simultanei iniziare, con un minimo di 1 e un massimo di 3),SpawnRate
(il numero di utenti da generare in un minuto per una fase specifica di test di carico, con un minimo di 0 e un massimo di 3) eDurationInSeconds
(quanto deve essere lunga la fase di traffico, con un minimo di 120 e un massimo di 3600). -
Per
TrafficType
, specificareSTAIRS
. Quindi, per la matriceStairs
, specificaDurationInSeconds
(quanto deve essere lunga la fase di traffico, con un minimo di 120 e un massimo di 3600),NumberOfSteps
(quanti intervalli vengono utilizzati durante la fase) eUsersPerStep
(quanti utenti vengono aggiunti durante ogni intervallo). Si noti che la lunghezza di ogni fase è il valore diDurationInSeconds / NumberOfSteps
. Ad esempio, seDurationInSeconds
è600
e si specificano5
fasi, ogni fase dura 120 secondi.Nota
Un utente è definito come un attore generato dal sistema che viene eseguito in un ciclo e invoca le richieste a un endpoint come parte del suggeritore di inferenza. Per un XGBoost contenitore tipico in esecuzione su un'
ml.c5.large
istanza, gli endpoint possono raggiungere 30.000 chiamate al minuto (500 tps) con solo 15-20 utenti.
-
-
Per
ResourceLimit
, specificaMaxNumberOfTests
(il numero massimo di test di carico di benchmarking per un processo del suggeritore di inferenza, con un minimo di 1 e un massimo di 10) eMaxParallelOfTests
(il numero massimo di test di carico di benchmarking paralleli per un processo del suggeritore di inferenza, con un minimo di 1 e un massimo di 10). -
Per
EndpointConfigurations
, puoi specificare uno dei seguenti elementi:-
Il campo
InstanceType
, in cui specifichi il tipo di istanza su cui desideri eseguire i test di carico. -
ServerlessConfig
, in cui si specifichi i valori ideali perMaxConcurrency
eMemorySizeInMB
per un endpoint serverless.
-
-
-
Un dizionario delle condizioni di arresto (
stopping-conditions
), in cui il processo del suggeritore di inferenza si interrompe qualora fosse soddisfatta una condizione qualsiasi. Per questo esempio, specifica i seguenti campi nel dizionario:-
Per
MaxInvocations
, specifica il numero massimo di richieste al minuto previsto per l'endpoint, con un minimo di 1 e un massimo di 30.000. -
Per
ModelLatencyThresholds
, specificaPercentile
(la soglia del percentile di latenza del modello) eValueInMilliseconds
(il valore del percentile di latenza del modello in millisecondi). -
(Facoltativo) Per
FlatInvocations
, puoi specificare se continuare il test di carico quando la velocità TPS (chiamate al minuto) si attenua. Una TPS velocità ridotta in genere indica che l'endpoint ha raggiunto la capacità. Tuttavia, potresti voler continuare a monitorare l'endpoint in condizioni di piena capacità. Per continuare il test di carico quando ciò accade, specifica questo valore comeContinue
. In caso contrario, il valore predefinito èStop
.
-
aws sagemaker create-inference-recommendations-job\ --region
<region>
\ --job-name<job-name>
\ --job-type ADVANCED\ --role-arn arn:aws:iam::<account>:role/*
\ --input-config \"{ \"ModelPackageVersionArn\": \"arn:aws:sagemaker:<region>:<account>:role/*
\", \"JobDurationInSeconds\": 7200, \"TrafficPattern\" : { # Replace PHASES with STAIRS to use the stairs traffic pattern \"TrafficType\": \"PHASES\", \"Phases\": [ { \"InitialNumberOfUsers\": 1, \"SpawnRate\": 60, \"DurationInSeconds\": 300 } ] # Uncomment this section and comment out the Phases object above to use the stairs traffic pattern # 'Stairs' : { # 'DurationInSeconds': 240, # 'NumberOfSteps': 2, # 'UsersPerStep': 2 # } }, \"ResourceLimit\": { \"MaxNumberOfTests\": 10, \"MaxParallelOfTests\": 3 }, \"EndpointConfigurations\" : [ { \"InstanceType\": \"ml.c5.xlarge\" }, { \"InstanceType\": \"ml.m5.xlarge\" }, { \"InstanceType\": \"ml.r5.xlarge\" } # Use the ServerlessConfig and leave out the InstanceType fields if you want recommendations for a serverless endpoint # \"ServerlessConfig\": { # \"MaxConcurrency\":value
, # \"MemorySizeInMB\":value
# } ] }\" --stopping-conditions \"{ \"MaxInvocations\": 1000, \"ModelLatencyThresholds\":[ { \"Percentile\": \"P95\", \"ValueInMilliseconds\": 100 } ], # Change 'Stop' to 'Continue' to let the load test continue if invocations flatten \"FlatInvocations\": \"Stop\" }\" -
- Amazon SageMaker Studio Classic
-
Crea un test di carico con Studio Classic.
-
Nell'applicazione Studio Classic, scegliete l'icona Home ( ).
-
Nella barra laterale sinistra di Studio Classic, scegli Implementazioni.
-
Scegli Suggeritore di inferenza dall'elenco a discesa.
-
Scegli Crea un processo di raccomandazione di inferenza. Si apre una nuova scheda intitolata Crea un processo di raccomandazione di inferenza.
-
Seleziona il nome del tuo gruppo di modelli dal campo Gruppo di modelli del menu a discesa. L'elenco include tutti i gruppi di modelli registrati nel registro dei modelli nel tuo account, inclusi i modelli registrati al di fuori di Studio Classic.
-
Seleziona una versione del modello dal campo Versione del modello del menu a discesa.
-
Scegli Continua.
-
Indica un nome per il processo nel campo Nome.
-
(Facoltativo) Fornisci una descrizione del processo nel campo Descrizione.
-
Scegli un IAM ruolo che conceda a Inference Recommender l'autorizzazione ad accedere ai servizi. AWS A tale scopo, puoi creare un ruolo e allegare la policy
AmazonSageMakerFullAccess
IAM gestita oppure puoi lasciare che Studio Classic crei un ruolo per te. -
Scegli Condizioni di arresto per espandere i campi di input disponibili. Fornisci una serie di condizioni per interrompere una raccomandazione di implementazione.
-
Specifica il numero massimo di richieste al minuto previsto per l'endpoint nel campo Numero massimo di invocazioni al minuto.
-
Specifica la soglia di latenza del modello in microsecondi nel campo Soglia di latenza del modello. La soglia di latenza del modello rappresenta l'intervallo di tempo impiegato da un modello per rispondere, come mostrato dal suggeritore di inferenza. Questo intervallo include il tempo per le comunicazioni locali impiegato per inviare la richiesta e recuperare la risposta dal container del modello e il tempo richiesto per completare l'inferenza nel container.
-
-
Scegli Modello di traffico per espandere i campi di input disponibili.
-
Imposta il numero iniziale di utenti virtuali specificando un numero intero nel campo Numero iniziale di utenti.
-
Fornisci un numero intero per il campo Velocità di generazione. La velocità di generazione imposta il numero di utenti creati al secondo.
-
Imposta la durata della fase in secondi specificando un numero intero nel campo Durata.
-
(Facoltativo) Aggiungi modelli di traffico aggiuntivi. A tale scopo, seleziona Aggiungi.
-
-
Seleziona l'impostazione Aggiuntivo per visualizzare il campo Durata massima del test. Specifica, in secondi, il tempo massimo che un test può impiegare durante un processo. I nuovi processi non vengono pianificati dopo la durata definita. Ciò contribuisce a garantire che i processi in corso non vengano interrotti e che vengano visualizzati solo i processi completati.
-
Scegli Continua.
-
Seleziona Istanze selezionate.
-
Nel campo Istanze per il benchmarking, seleziona Aggiungi istanze da testare. Seleziona fino a 10 istanze che il suggeritore di inferenza deve utilizzare per i test di carico.
-
Seleziona Impostazioni aggiuntive.
-
Fornisci un numero intero che stabilisca un limite massimo al numero di test che un processo può eseguire per il campo Numero massimo di test. Tieni presente che ogni configurazione dell'endpoint comporta un nuovo test di carico.
-
Fornisci un numero intero per il campo di test Massimo paralleli. Questa impostazione definisce un limite superiore al numero di test di carico che possono essere eseguiti in parallelo.
-
-
Scegli Invia.
Il test di carico può richiedere fino a 2 ore.
avvertimento
Non chiudere questa scheda. Se si chiude questa scheda, si annulla il processo di test di carico del suggeritore di inferenza.
-
- SageMaker console
-
Crea un test di carico personalizzato tramite la SageMaker console effettuando le seguenti operazioni:
-
Vai alla SageMaker console all'indirizzo https://console.aws.amazon.com/sagemaker/
. -
Nel riquadro di navigazione di sinistra, seleziona Inferenza e poi Suggeritore di inferenza.
-
Nella pagina dei processi del suggeritore di inferenza, seleziona Crea processo.
-
Per fase 1, configurazione di modelli, procedi come segue:
-
Per Tipo di processo, seleziona Processo del suggeritore avanzato.
-
Se utilizzi un modello registrato nel registro dei SageMaker modelli, attiva l'interruttore Scegli un modello dal registro dei modelli ed esegui le seguenti operazioni:
-
Per l'elenco a discesa del gruppo di modelli, scegli il gruppo di modelli nel registro dei modelli in cui si trova il tuo SageMaker modello.
-
Dall'elenco a discesa Versione del modello, seleziona la versione desiderata del modello.
-
-
Se utilizzi un modello in cui hai creato SageMaker, disattiva l'interruttore Scegli un modello dal registro dei modelli ed esegui le seguenti operazioni:
-
Nel campo Nome modello, inserisci il nome del tuo SageMaker modello.
-
-
Per quanto riguarda IAMil ruolo, è possibile selezionare un AWS IAM ruolo esistente con le autorizzazioni necessarie per creare un processo di raccomandazione delle istanze. In alternativa, se non disponi di un ruolo esistente, puoi scegliere Crea un nuovo ruolo per aprire il pop-up di creazione del ruolo e SageMaker aggiungere le autorizzazioni necessarie al nuovo ruolo che crei.
-
Per Bucket S3 per l'esecuzione del benchmark del payload, inserisci il percorso Amazon S3 all'archivio del payload di esempio, che dovrebbe contenere i file di payload di esempio utilizzati dal suggeritore di inferenza per eseguire il benchmark del tuo modello in base a diversi tipi di istanze.
-
Per Tipo di contenuto Payload, inserisci i MIME tipi di dati di esempio del payload.
-
Per Modello di traffico, configura le fasi per il test di carico effettuando le seguenti operazioni:
-
Per Numero iniziale di utenti, specifica da quanti utenti simultanei vuoi iniziare (con un minimo di 1 e un massimo di 3).
-
Per Frequenza di generazione, specifica il numero di utenti da generare in un minuto per la fase (con un minimo di 0 e un massimo di 3).
-
Per Durata (secondi), specifica quanto deve essere bassa la fase di traffico in secondi (con un minimo di 120 e un massimo di 3600).
-
-
(Facoltativo) Se hai disattivato l'opzione Scegli un modello dal registro dei modelli e hai specificato un SageMaker modello, per la configurazione del contenitore, procedi come segue:
-
Per l'elenco a discesa Dominio, seleziona il dominio di machine learning del modello, ad esempio visione artificiale, elaborazione del linguaggio naturale o machine learning.
-
Per l'elenco a discesa Framework, seleziona il framework del contenitore, ad esempio o. TensorFlow XGBoost
-
Per Versione del framework, inserisci la versione del framework dell'immagine del container.
-
Per l'elenco a discesa Nome del modello più vicino, seleziona il modello pre-addestrato che più si avvicina al tuo.
-
Nell'elenco a discesa Attività, seleziona l'attività di machine learning svolta dal modello, ad esempio la classificazione o la regressione delle immagini.
-
-
(Facoltativo) Per la compilazione del modello con SageMaker Neo, puoi configurare il processo di raccomandazione per un modello che hai compilato usando SageMaker Neo. Per configurazione dell'input dei dati, inserisci la forma dei dati di input corretta per il tuo modello in un formato simile a
{'input':[1,1024,1024,3]}
. -
Scegli Next (Successivo).
-
-
Per fase 2, istanze e parametri di ambiente, effettua le seguenti operazioni:
-
Per Seleziona le istanze per l'esecuzione dei benchmark, seleziona fino a 8 tipi di istanze da sottoporre a benchmark.
-
(Facoltativo) Per Intervalli dei parametri dell'ambiente, puoi specificare i parametri dell'ambiente che contribuiscono a ottimizzare il modello. Specifica i parametri come le coppie Chiave e Valore.
-
Scegli Next (Successivo).
-
-
Per fase 3, parametri del processo, effettua le seguenti operazioni:
-
(Facoltativo) Nel campo Nome del processo, immetti un nome per il tuo processo di raccomandazione dell'istanza. Quando crei il lavoro, SageMaker aggiunge un timestamp alla fine di questo nome.
-
(Facoltativo) Per il campo Descrizione processo, immetti una descrizione per il processo.
-
(Facoltativo) Nell'elenco a discesa della chiave di crittografia, scegli una AWS KMS chiave per nome o inseriscila per ARN crittografare i dati.
-
(Facoltativo) Per Numero massimo di test, inserisci il numero di test che desideri eseguire durante il processo di raccomandazione.
-
(Facoltativo) Per Test paralleli massimi, inserisci il numero di test paralleli che desideri eseguire durante il processo di raccomandazione.
-
(Per Durate massime dei test, inserisci il numero massimo di secondi per cui desideri che ciascun test venga eseguito.
-
Per Numero massimo di invocazioni al minuto, inserisci il numero massimo di richieste al minuto che l'endpoint può raggiungere prima dell'interruzione del processo di raccomandazione. Dopo aver raggiunto questo limite, SageMaker termina il lavoro.
-
Per Soglia di latenza del modello P99 (ms), inserisci il percentile di latenza del modello in millisecondi.
-
Scegli Next (Successivo).
-
-
Per fase 4, esamina il processo, esamina le configurazioni e quindi seleziona Invia.
-
Ottieni i risultati dei test di carico
È possibile raccogliere in modo programmatico le metriche relative a tutti i test di carico una volta completati i test di carico con AWS SDK for Python (Boto3) Studio Classic o la AWS CLI console. SageMaker
- AWS SDK for Python (Boto3)
-
Raccogli le metriche con.
DescribeInferenceRecommendationsJob
API Specifica il nome del processo del test di carico per il campoJobName
:load_test_response = sagemaker_client.describe_inference_recommendations_job( JobName=load_test_job_name )
Stampa l'oggetto risposta.
load_test_response['Status']
Ciò restituisce una JSON risposta simile all'esempio seguente. Nota che questo esempio mostra i tipi di istanza consigliati per l'inferenza in tempo reale (per un esempio che mostra i suggerimenti di inferenza serverless, vedi l'esempio successivo).
{ 'JobName':
'job-name'
, 'JobDescription':'job-description'
, 'JobType': 'Advanced', 'JobArn': 'arn:aws:sagemaker:region
:account-id
:inference-recommendations-job/resource-id
', 'Status': 'COMPLETED', 'CreationTime': datetime.datetime(2021, 10, 26, 19, 38, 30, 957000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2021, 10, 26, 19, 46, 31, 399000, tzinfo=tzlocal()), 'InputConfig': { 'ModelPackageVersionArn': 'arn:aws:sagemaker:region
:account-id
:model-package/resource-id
', 'JobDurationInSeconds': 7200, 'TrafficPattern': { 'TrafficType': 'PHASES' }, 'ResourceLimit': { 'MaxNumberOfTests': 100, 'MaxParallelOfTests': 100 }, 'EndpointConfigurations': [{ 'InstanceType': 'ml.c5d.xlarge' }] }, 'StoppingConditions': { 'MaxInvocations': 1000, 'ModelLatencyThresholds': [{ 'Percentile': 'P95', 'ValueInMilliseconds': 100} ]}, 'InferenceRecommendations': [{ 'Metrics': { 'CostPerHour': 0.6899999976158142, 'CostPerInference': 1.0332434612791985e-05, 'MaximumInvocations': 1113, 'ModelLatency': 100000 }, 'EndpointConfiguration': { 'EndpointName':'endpoint-name'
, 'VariantName':'variant-name'
, 'InstanceType': 'ml.c5d.xlarge', 'InitialInstanceCount': 3 }, 'ModelConfiguration': { 'Compiled': False, 'EnvironmentParameters': [] } }], 'ResponseMetadata': { 'RequestId':'request-id'
, 'HTTPStatusCode': 200, 'HTTPHeaders': { 'x-amzn-requestid':'x-amzn-requestid'
, 'content-type':'content-type'
, 'content-length': '1199', 'date': 'Tue, 26 Oct 2021 19:57:42 GMT' }, 'RetryAttempts': 0} }Le prime nuove righe forniscono informazioni sullo stesso processo di test di carico. Ciò include il nome del lavoro, il ruoloARN, l'ora di creazione e di eliminazione.
Il dizionario
InferenceRecommendations
contiene un elenco di consigli sull'inferenza del suggeritore di inferenza.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 per il monitoraggio di Amazon SageMaker con Amazon CloudWatch.Il dizionario annidato
EndpointConfiguration
contiene anche la raccomandazione del conteggio di istanze (InitialInstanceCount
). Si tratta del numero di istanze da fornire nell'endpoint per soddisfareMaxInvocations
specificato inStoppingConditions
. Ad esempio, se l'InstanceType
èml.m5.large
e l'InitialInstanceCount
è2
, allora dovresti predisporre 2ml.m5.large
istanze per l'endpoint in modo che possa gestire le istanze TPS specificate nellaMaxInvocations
condizione di arresto.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
) per l'endpoint in tempo reale, il numero massimo diInvokeEndpoint
richieste inviate all'endpoint e la latenza del modello (ModelLatency
), che è l'intervallo di tempo (in microsecondi) a cui il modello ha impiegato per rispondere SageMaker. 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 test di carico configurato per restituire raccomandazioni 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 valori specificati perMaxConcurrency
eMemorySizeInMB
durante la configurazione del test di carico. Le raccomandazioni serverless misurano anche il parametroModelSetupTime
, che misura (in microsecondi) il tempo necessario per avviare le risorse di calcolo su un endpoint serverless. Per ulteriori informazioni sulla configurazione di endpoint serverless, consulta la documentazione per inferenze serverless. - AWS CLI
-
Raccogli le metriche con.
describe-inference-recommendations-job
API Specifica il nome del processo del test di carico per il flagjob-name
:aws sagemaker describe-inference-recommendations-job --job-name
<job-name>
Ciò restituisce una risposta simile all'esempio seguente. Nota che questo esempio mostra i tipi di istanza consigliati per l'inferenza in tempo reale (per un esempio che mostra i consigli di inferenza Serverless, vedi l'esempio successivo).
{ 'JobName':
'job-name'
, 'JobDescription':'job-description'
, 'JobType': 'Advanced', 'JobArn': 'arn:aws:sagemaker:region
:account-id
:inference-recommendations-job/resource-id
', 'Status': 'COMPLETED', 'CreationTime': datetime.datetime(2021, 10, 26, 19, 38, 30, 957000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2021, 10, 26, 19, 46, 31, 399000, tzinfo=tzlocal()), 'InputConfig': { 'ModelPackageVersionArn': 'arn:aws:sagemaker:region
:account-id
:model-package/resource-id
', 'JobDurationInSeconds': 7200, 'TrafficPattern': { 'TrafficType': 'PHASES' }, 'ResourceLimit': { 'MaxNumberOfTests': 100, 'MaxParallelOfTests': 100 }, 'EndpointConfigurations': [{ 'InstanceType': 'ml.c5d.xlarge' }] }, 'StoppingConditions': { 'MaxInvocations': 1000, 'ModelLatencyThresholds': [{ 'Percentile': 'P95', 'ValueInMilliseconds': 100 }] }, 'InferenceRecommendations': [{ 'Metrics': { 'CostPerHour': 0.6899999976158142, 'CostPerInference': 1.0332434612791985e-05, 'MaximumInvocations': 1113, 'ModelLatency': 100000 }, 'EndpointConfiguration': { 'EndpointName':'endpoint-name'
, 'VariantName':'variant-name'
, 'InstanceType': 'ml.c5d.xlarge', 'InitialInstanceCount': 3 }, 'ModelConfiguration': { 'Compiled': False, 'EnvironmentParameters': [] } }], 'ResponseMetadata': { 'RequestId':'request-id'
, 'HTTPStatusCode': 200, 'HTTPHeaders': { 'x-amzn-requestid':'x-amzn-requestid'
, 'content-type':'content-type'
, 'content-length': '1199', 'date': 'Tue, 26 Oct 2021 19:57:42 GMT' }, 'RetryAttempts': 0 } }Le prime nuove righe forniscono informazioni sullo stesso processo di test di carico. Ciò include il nome del lavoro, il ruoloARN, l'ora di creazione e di eliminazione.
Il dizionario
InferenceRecommendations
contiene un elenco di consigli sull'inferenza del suggeritore di inferenza.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 per il monitoraggio di Amazon SageMaker con Amazon CloudWatch.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
) per l'endpoint in tempo reale, il numero massimo diInvokeEndpoint
richieste inviate all'endpoint e la latenza del modello (ModelLatency
), che è l'intervallo di tempo (in microsecondi) a cui il modello ha impiegato per rispondere. SageMaker 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 test di carico configurato per restituire raccomandazioni 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 valori specificati perMaxConcurrency
eMemorySizeInMB
durante la configurazione del test di carico. Le raccomandazioni serverless misurano anche il parametroModelSetupTime
, 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. - Amazon SageMaker Studio Classic
-
I consigli vengono inseriti in una nuova scheda denominata Inference Recommendations all'interno di Studio Classic. Può essere necessario fino a 2 ore prima che i risultati vengano visualizzati. Questa scheda contiene le collone Risultati e Dettagli.
La colonna Dettagli fornisce informazioni sul processo dei test di carico, ad esempio il nome assegnato al processo del test di carico, quando il processo è stato creato (Ora di creazione) e altro ancora. Contiene inoltre informazioni sulle Impostazioni, come il numero massimo di invocazioni avvenute al minuto e informazioni sugli Amazon Resource Name utilizzati.
La colonna Risultati fornisce SageMakerle finestre degli obiettivi e dei consigli di distribuzione in cui è possibile modificare l'ordine di visualizzazione dei risultati in base all'importanza della distribuzione. Sono disponibili tre menu a discesa in cui è possibile 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 la raccomandazione principale nel campo dei SageMakerconsigli sulla destra del pannello, insieme al costo orario stimato e alla richiesta di inferenza. Fornisce inoltre informazioni sulla latenza del modello prevista, sul numero massimo di invocazioni e sul numero di istanze.
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 console
-
È possibile visualizzare i risultati del processo di test di carico personalizzato nella SageMaker console effettuando le seguenti operazioni:
-
Vai alla SageMaker console all'indirizzo https://console.aws.amazon.com/sagemaker/
. -
Nel riquadro di navigazione di sinistra, seleziona Inferenza e poi Suggeritore di inferenza.
-
Nella pagina dei processi di raccomandazione delle inferenze, scegli il nome del tuo processo di raccomandazione delle inferenze.
Nella pagina dei dettagli del lavoro, puoi visualizzare i consigli di Inference, ovvero i tipi di istanza SageMaker consigliati per il tuo modello, come mostrato nella schermata seguente.
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.
-