Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Erfassen Sie die Ergebnisse Ihres Jobs mit Inferenzempfehlungen programmgesteuert mit AWS SDK for Python (Boto3) der AWS CLI Studio Classic- oder der SageMaker AI-Konsole.
Sobald eine Inferenzempfehlung abgeschlossen ist, können Sie sie verwenden, DescribeInferenceRecommendationsJob
um die Auftragsdetails und Empfehlungen abzurufen. Geben Sie den Jobnamen ein, den Sie bei der Erstellung des Jobs für Inferenzempfehlungen verwendet haben.
job_name=
'<INSERT>'
response = sagemaker_client.describe_inference_recommendations_job( JobName=job_name)
Drucken Sie das Antwortobjekt aus. Im vorherigen Codebeispiel wurde die Antwort in einer Variablen mit dem Namen gespeichert. response
print(response['Status'])
Dies gibt eine JSON-Antwort ähnlich dem folgenden Beispiel zurück. Beachten Sie, dass dieses Beispiel die empfohlenen Instance-Typen für Echtzeit-Inferenzen zeigt (ein Beispiel mit Empfehlungen für serverlose Inferenzen finden Sie im nachfolgenden Beispiel).
{
'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
}
}
Die ersten Zeilen enthalten Informationen über den Job mit Inferenzempfehlungen selbst. Dazu gehören der Jobname, der Rollen-ARN sowie die Erstellungs- und Löschzeiten.
Das InferenceRecommendations
Wörterbuch enthält eine Liste von Inference Recommender-Inferenzempfehlungen.
Das EndpointConfiguration
verschachtelte Wörterbuch enthält die Empfehlung für den Instanztyp (InstanceType
) sowie den Endpunkt- und Variantennamen (ein bereitgestelltes Modell für AWS maschinelles Lernen), die während des Empfehlungsjobs verwendet wurden. Sie können den Endpunkt und den Variantennamen für die Überwachung in Amazon CloudWatch Events verwenden. Weitere Informationen finden Sie unter Metriken für die Überwachung von Amazon SageMaker AI mit Amazon CloudWatch.
Das Metrics
verschachtelte Wörterbuch enthält Informationen über die geschätzten Kosten pro Stunde (CostPerHour
) für Ihren Echtzeit-Endpunkt in US-Dollar, die geschätzten Kosten pro Inferenz (CostPerInference
) in US-Dollar für Ihren Echtzeit-Endpunkt, die erwartete maximale Anzahl von InvokeEndpoint
Anfragen pro Minute, die an den Endpunkt gesendet werden (MaxInvocations
), und die Modelllatenz (ModelLatency
), also das Zeitintervall (in Mikrosekunden), das Ihr Modell benötigt hat, um auf KI zu reagieren. SageMaker Dieses Intervall enthält die lokale Kommunikationszeitspanne für das Senden der Anforderung und Abrufen der Antwort vom Container eines Modells sowie die Zeitspanne für das Abschließen der Inferenz im Container.
Das folgende Beispiel zeigt den InferenceRecommendations
Teil der Antwort für einen Job mit Inferenzempfehlungen, der so konfiguriert ist, dass er serverlose Inferenzempfehlungen zurückgibt:
"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
"
}
]
Sie können die Empfehlungen für die serverlose Inferenz ähnlich wie die Ergebnisse für die Echtzeit-Inferenz interpretieren, mit Ausnahme von ServerlessConfig
, das Ihnen die Metriken angibt, die für einen serverlosen Endpunkt mit dem angegebenen MemorySizeInMB
und wann MaxConcurrency =
1
zurückgegeben werden. Um den auf dem Endpunkt möglichen Durchsatz zu erhöhen, erhöhen Sie den Wert MaxConcurrency
linear. Wenn zum Beispiel die Schlussfolgerungsempfehlung MaxInvocations
als 1000
ausweist, dann würde die Erhöhung von MaxConcurrency
auf 2
2000 MaxInvocations
unterstützen. Beachten Sie, dass dies nur bis zu einem bestimmten Punkt gilt, der je nach Modell und Code variieren kann. Serverlose Empfehlungen messen auch die Metrik ModelSetupTime
, die (in Mikrosekunden) die Zeit misst, die benötigt wird, um Computerressourcen auf einem serverlosen Endpunkt zu starten. Weitere Informationen zum Festlegen serverloser Endpunkte finden Sie in der Serverless Inferenz-Dokumentation.
Weitere Informationen zum Interpretieren der Ergebnisse aus Ihrem Empfehlungsjob finden Sie unter Ergebnisse der Empfehlungen.