Beheben von Problemen mit Inferenz-Pipelines - Amazon SageMaker AI

Beheben von Problemen mit Inferenz-Pipelines

Zum Beheben von Problemen mit Inferenz-Pipelines verwenden Sie CloudWatch-Protokolle und Fehlermeldungen. Wenn Sie benutzerdefinierte Docker-Images in einer Pipeline verwenden, die integrierte Algorithmen von Amazon SageMaker AI enthält, können auch Berechtigungsprobleme auftreten. Um die erforderlichen Berechtigungen zu erteilen, erstellen Sie eine Amazon Elastic Container Registry (Amazon ECR)-Richtlinie.

Beheben von Problemen mit Amazon ECR-Berechtigungen für Inferenz-Pipelines

Wenn Sie Ihre eigenen benutzerdefinierten Docker-Images in einer Pipeline verwenden, die in SageMaker AI integrierte Algorithmen enthält, ist eine Amazon ECR-Richtlinie erforderlich. Die Richtlinie erlaubt Ihrem Amazon ECR-Repository, SageMaker AI die Berechtigung zum Abrufen des Abbilds zu erteilen. Die Richtlinie muss die folgenden Berechtigungen hinzufügen:

{ "Version": "2008-10-17", "Statement": [ { "Sid": "allowSageMakerToPull", "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, "Action": [ "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "ecr:BatchCheckLayerAvailability" ] } ] }

Verwendung von CloudWatch-Protokollen zum Beheben von Problemen mit Inferenz-Pipelines von SageMaker AI

SageMaker AI veröffentlicht die Container-Protokolle für Endpunkte, die eine Inferenz-Pipeline für Amazon CloudWatch bereitstellen, im folgenden Pfad für jeden Container.

/aws/sagemaker/Endpoints/{EndpointName}/{Variant}/{InstanceId}/{ContainerHostname}

Beispiel: Protokolle für diesen Endpunkt werden in den folgenden Protokollgruppen und Streams veröffentlicht:

EndpointName: MyInferencePipelinesEndpoint Variant: MyInferencePipelinesVariant InstanceId: i-0179208609ff7e488 ContainerHostname: MyContainerName1 and MyContainerName2
logGroup: /aws/sagemaker/Endpoints/MyInferencePipelinesEndpoint logStream: MyInferencePipelinesVariant/i-0179208609ff7e488/MyContainerName1 logStream: MyInferencePipelinesVariant/i-0179208609ff7e488/MyContainerName2

Ein Protokollstream ist eine Abfolge von Protokollereignissen, die dieselbe Quelle nutzen. Jede separate Quelle für Protokolle in CloudWatch bildet einen separaten Protokollstream. Eine Protokollgruppe ist eine Gruppe von Protokollstreams, die dieselben Einstellungen für die Aufbewahrung, Überwachung und Zugriffskontrolle besitzen.

Anzeigen der Protokollgruppen und -streams
  1. Öffnen Sie die CloudWatch-Konsole unter https://console.aws.amazon.com/cloudwatch/.

  2. Wählen Sie auf der Navigationsseite Logs (Protokolle).

  3. Filtern Sie unter Log Groups (Protokollgruppen) nach MyInferencePipelinesEndpoint:

    Die nach Inferenz-Pipeline-Endpunkt gefilterten CloudWatch-Protokollgruppen.
  4. Wählen Sie zur Anzeige der Protokollstreams auf der Seite CloudWatch-ProtokollgruppenMyInferencePipelinesEndpoint und dann Protokollgruppe suchen.

    Der CloudWatch-Protokollstream für die Inferenz-Pipeline.

Eine Liste der Protokolle, die SageMaker AI veröffentlicht, finden Sie unter Protokolle und Metriken der Inferenz-Pipeline.

Verwenden von Fehlermeldungen zum Beheben von Problemen mit Inferenz-Pipelines.

Die Inferenz-Pipeline-Fehlermeldungen geben an, welcher Container fehlgeschlagen ist.

Wenn ein Fehler auftritt, während SageMaker AI einen Endpunkt aufruft, gibt der Service einen ModelError (Fehlercode 424) aus; dies zeigt an, welcher Container fehlgeschlagen ist. Wenn die Anforderungsnutzlast (die Antwort des vorherigen Containers) den Grenzwert von 5 MB überschreitet, zeigt SageMaker AI eine detaillierte Fehlermeldung an, wie etwa:

Antwort von MyContainerName1 mit Statuscode 200 erhalten. Die Anforderungsnutzlast von MyContainerName1 an MyContainerName2 beträgt jedoch 6.000.000 Bytes, was über der Obergrenze von 5 MB liegt.

Wenn ein Container die Ping-Zustandsprüfung nicht besteht, während SageMaker AI einen Endpunkt erstellt, wird ein ClientError ausgegeben und es werden alle Container angezeigt, die bei der letzten Zustandsprüfung den Ping-Test nicht bestanden haben.