Beheben Sie Inference Recommender-Fehler - Amazon SageMaker

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.

Beheben Sie Inference Recommender-Fehler

Dieser Abschnitt enthält Informationen dazu, wie Sie häufige Fehler verstehen und verhindern können, welche Fehlermeldungen sie generieren und wie Sie diese Fehler beheben können.

Fehlerbehebung

Sie können versuchen, Ihren Fehler zu beheben, indem Sie die folgenden Schritte ausführen:

  • Prüfen Sie, ob Sie alle Voraussetzungen für die Verwendung von Inference Recommender erfüllt haben. Weitere Informationen finden Sie unter Voraussetzungen für Inference Recommender.

  • Vergewissern Sie sich, dass Sie Ihr Modell von Model Registry aus auf einem Endpunkt bereitstellen können und ob es Ihre Payloads fehlerfrei verarbeiten kann. Weitere Informationen finden Sie unter Bereitstellen eines Modells aus dem Verzeichnis.

  • Wenn Sie einen Inference Recommender-Job starten, sollten Sie sehen, dass in der Konsole Endpoints erstellt werden, und Sie können die Protokolle überprüfen. CloudWatch

Häufige Fehler

In der folgenden Tabelle finden Sie häufig auftretende Inference Recommender-Fehler und deren Lösungen.

Fehler Lösung

Geben Sie Domain im Modellpaket Version 1 an. Domain ist ein obligatorischer Parameter für den Job.

Stellen Sie sicher, dass Sie die ML-Domain oderOTHER, falls unbekannt, angeben.

Der angegebene Rollen-ARN kann nicht übernommen werden und es ist ein AWSSecurityTokenServiceException Fehler aufgetreten.

Stellen Sie sicher, dass die angegebene Ausführungsrolle über die erforderlichen Berechtigungen verfügt, die in den Voraussetzungen angegeben sind.

Geben Sie Framework im Modellpaket Version 1 an.Framework ist ein obligatorischer Parameter für den Job.

Stellen Sie sicher, dass Sie das ML-Framework angeben oder, OTHER falls es unbekannt ist.

Benutzer am Ende der vorherigen Phase sind 0, während die ersten Benutzer der aktuellen Phase 1 sind.

Benutzer beziehen sich hier auf virtuelle Benutzer oder Threads, die zum Senden von Anfragen verwendet werden. Jede Phase beginnt mit A-Benutzern und endet mit B-Benutzern, also B > A. Zwischen den aufeinanderfolgenden Phasen, x_1 und x_2, benötigen wir abs (x_2.A – x_1.B) <= 3 und >= 0.

Die Gesamtdauer des Datenverkehrs (über) sollte nicht länger als die Auftragsdauer sein.

Die Gesamtdauer all Ihrer Phasen darf die Jobdauer nicht überschreiten.

Der Burstable-Instance-Typ ml.t2.medium ist nicht zulässig.

Inference Recommender unterstützt keine Lasttests für die T2-Instance-Familie, da Burstable-Instances keine konsistente Leistung bieten.

ResourceLimitExceeded beim Aufrufen der CreateEndpoint Operation

Sie haben ein SageMaker Ressourcenlimit überschritten. Beispielsweise kann Inference Recommender möglicherweise keine Endpunkte für das Benchmarking bereitstellen, wenn das Konto das Endpunktkontingent erreicht hat. Weitere Informationen zu SageMaker Limits und Kontingenten finden Sie unter SageMaker Amazon-Endpunkte und Kontingente.

ModelError beim Aufrufen InvokeEndpoint von Operation

Ein Modellfehler kann aus folgenden Gründen auftreten:

  • Beim Warten auf eine Antwort vom Modellcontainer wurde das Zeitlimit für den Aufruf überschritten.

  • Das Modell konnte die eingegebene Nutzlast nicht verarbeiten.

PayloadError beim Aufrufen von InvokeEndpoint Operation

Ein Payload-Fehler kann aus folgenden Gründen auftreten:

  • Die Payload-Quelle befindet sich nicht im Amazon S3-Bucket.

  • Die Nutzlast hat ein Nicht-Datei-Objektformat.

  • Die Nutzlast hat einen ungültigen Dateityp. Ein Modell erwartet beispielsweise eine Nutzlast vom Typ Bild, erhält aber eine Textdatei.

  • Die Nutzlast ist leer.

Prüfen CloudWatch

Wenn Sie einen Inference Recommender-Job starten, sollten Sie sehen, dass in der Konsole Endpoints erstellt werden. Wählen Sie einen der Endpunkte aus und sehen Sie sich die CloudWatch Protokolle an, um nach 4xx/5xx-Fehlern zu suchen. Wenn Sie einen erfolgreichen Inference Recommender-Job ausgeführt haben, können Sie die Endpunktnamen als Teil der Ergebnisse sehen. Selbst wenn Ihr Inference Recommender-Job nicht erfolgreich ist, können Sie die CloudWatch Protokolle der gelöschten Endpunkte trotzdem überprüfen, indem Sie die folgenden Schritte ausführen:

  1. Öffnen Sie die CloudWatch Amazon-Konsole unter https://console.aws.amazon.com/cloudwatch/.

  2. Wählen Sie aus der Dropdown-Liste Region oben rechts die Region aus, in der Sie den Inference Recommender-Job erstellt haben.

  3. Wählen Sie im Navigationsbereich von CloudWatch Logs und anschließend Log-Gruppen aus.

  4. Suchen Sie nach der Protokollgruppe namens/aws/sagemaker/Endpoints/sm-epc-*. Wählen Sie die Protokollgruppe auf der Grundlage Ihres letzten Inference Recommender-Jobs aus.

Sie können Ihren Job auch beheben, indem Sie die Inference Recommender-Protokolle CloudWatch überprüfen. Die Inference Recommender-Protokolle, die in der /aws/sagemaker/InferenceRecommendationsJobs CloudWatch Protokollgruppe veröffentlicht werden, bieten einen umfassenden Überblick über den Fortschritt des Jobs im Protokollstream. <jobName>/execution Detaillierte Informationen zu jeder der getesteten Endpunktkonfigurationen finden Sie im <jobName>/Endpoint/<endpointName> Protokollstream.

Überblick über die Inference Recommender-Logstreams

  • <jobName>/execution enthält allgemeine Jobinformationen wie Endpunktkonfigurationen, die für das Benchmarking geplant sind, den Grund für das Überspringen von Kompilierungsaufträgen und den Grund für die fehlgeschlagene Validierung.

  • <jobName>/Endpoint/<endpointName> enthält Informationen wie den Fortschritt der Ressourcenerstellung, die Testkonfiguration, den Grund für den Stopp des Ladetests und den Status der Ressourcenbereinigung.

  • <jobName>/CompilationJob/<compilationJobName> enthält Informationen zu Kompilierungsaufträgen, die von Inference Recommender erstellt wurden, wie z. B. die Konfiguration des Kompilierungsauftrags und den Status des Kompilierungsauftrags.

Erstellen Sie einen Alarm für Inference Recommender-Fehlermeldungen

Inference Recommender gibt Protokollanweisungen für Fehler aus, die bei der Fehlerbehebung hilfreich sein können. Mit einer CloudWatch Protokollgruppe und einem Metrikfilter können Sie beim Senden der Daten in diesen Protokolldaten nach Begriffen und Mustern suchen. CloudWatch Anschließend können Sie einen CloudWatch Alarm erstellen, der auf dem Metrikfilter für Protokollgruppen basiert. Weitere Informationen finden Sie unter Erstellen eines CloudWatch Alarms auf der Grundlage eines Metrikfilters für Protokollgruppen.

Überprüfen Sie die Benchmarks

Wenn Sie einen Inference Recommender-Job starten, erstellt Inference Recommender mehrere Benchmarks, um die Leistung Ihres Modells auf verschiedenen Instance-Typen zu bewerten. Sie können die ListInferenceRecommendationsJobStepsAPI verwenden, um die Details für alle Benchmarks anzuzeigen. Wenn Sie einen fehlgeschlagenen Benchmark haben, können Sie die Gründe für das Scheitern als Teil der Ergebnisse sehen.

Um die ListInferenceRecommendationsJobStepsAPI zu verwenden, geben Sie die folgenden Werte an:

  • Geben Sie für den Namen des JobName Inference Recommender-Jobs an.

  • Für StepType, wird verwendet, BENCHMARK um Details zu den Benchmarks des Jobs zurückzugeben.

  • Für Status, wird verwendet, FAILED um nur Details zu den fehlgeschlagenen Benchmarks zurückzugeben. Eine Liste der anderen Statustypen finden Sie in dem Status Feld in der ListInferenceRecommendationsJobStepsAPI.

# Create a low-level SageMaker service client. import boto3 aws_region = '<region>' sagemaker_client = boto3.client('sagemaker', region_name=aws_region) # Provide the job name for the SageMaker Inference Recommender job job_name = '<job-name>' # Filter for benchmarks step_type = 'BENCHMARK' # Filter for benchmarks that have a FAILED status status = 'FAILED' response = sagemaker_client.list_inference_recommendations_job_steps( JobName = job_name, StepType = step_type, Status = status )

Sie können das Antwortobjekt drucken, um die Ergebnisse anzuzeigen. Im vorherigen Codebeispiel wurde die Antwort in einer Variablen mit dem Namen gespeichertresponse:

print(response)