Ottieni i risultati del processo di raccomandazione di inferenza - Amazon SageMaker

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

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

AWS SDK for 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)

Stampa l'oggetto risposta. L'esempio di codice precedente memorizzava la risposta in una variabile denominata. response

print(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': '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 lavoro, il ruolo ARN e i tempi di creazione ed 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) 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) 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 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.

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 simile dovrebbe essere simile all'esempio seguente. JSON 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': '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 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) 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) 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 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.

Amazon SageMaker Studio Classic

I consigli di inferenza vengono inseriti in una nuova scheda dei consigli di inferenza all'interno di Studio Classic. 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 degli obiettivi e dei SageMakerconsigli di distribuzione 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 i consigli più importanti 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 console

Puoi visualizzare i lavori di raccomandazione delle istanze nella SageMaker console effettuando le seguenti operazioni:

  1. Vai alla SageMaker console all'indirizzo https://console.aws.amazon.com/sagemaker/.

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

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

Schermata dell'elenco dei consigli di inferenza nella pagina dei dettagli del lavoro nella console. SageMaker

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.

Per ulteriori informazioni sull'interpretazione dei risultati del processo di raccomandazione, consulta Risultati delle raccomandazioni.