View a markdown version of this page

Echtzeit-Inferenz mit niedriger Latenz mit AWS PrivateLink - Amazon SageMaker KI

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.

Echtzeit-Inferenz mit niedriger Latenz mit AWS PrivateLink

Amazon SageMaker AI bietet eine niedrige Latenz für Echtzeit-Inferenzen und sorgt gleichzeitig für hohe Verfügbarkeit und Ausfallsicherheit mithilfe der Multi-AZ-Bereitstellung. Die Latenz der Anwendung besteht aus zwei Hauptkomponenten: Infrastruktur- oder Overhead-Latenz und Latenz der Modell-Inference. Die Reduzierung der Overhead-Latenz eröffnet neue Möglichkeiten, wie z. B. die Bereitstellung komplexerer, umfassenderer und genauerer Modelle oder die Aufteilung monolithischer Anwendungen in Microservice-Module, die skaliert und gewartet werden können. Mithilfe einer Bereitstellung können Sie die Latenz für Echtzeit-Inferenzen mithilfe von SageMaker KI reduzieren. AWS PrivateLink Mit AWS PrivateLink können Sie auf skalierbare Weise privat auf alle SageMaker API-Operationen von Ihrer Virtual Private Cloud (VPC) aus zugreifen, indem Sie Schnittstellen-VPC-Endpunkte verwenden. Ein Schnittstellen-VPC-Endpunkt ist eine elastische Netzwerkschnittstelle in Ihrem Subnetz mit privaten IP-Adressen, die als Einstiegspunkt für alle API-Aufrufe dient. SageMaker

Standardmäßig wird ein SageMaker KI-Endpunkt mit 2 oder mehr Instances in mindestens 2 AWS Availability Zones (AZs) bereitgestellt, und Instances in jeder AZ können Aufrufe verarbeiten. Dies führt zu einem oder mehreren AZ-„Sprüngen“, die zur Overhead-Latenz beitragen. Eine AWS PrivateLink Bereitstellung mit der privateDNSEnabled Option auf true mildert dieses Problem, indem zwei Ziele erreicht werden:

  • Der gesamte Inference-Verkehr bleibt in Ihrer VPC.

  • Bei Verwendung von Runtime bleibt der Aufrufverkehr in derselben AZ wie der Client, von dem er stammt. SageMaker Somit werden die „Sprünge“ zwischen AZs vermieden, wodurch die Overhead-Latenz reduziert wird.

In den folgenden Abschnitten dieses Handbuchs wird gezeigt, wie Sie die Latenz bei Echtzeit-Inferenen bei der AWS PrivateLink Bereitstellung reduzieren können.

Erstellen Sie zur Bereitstellung AWS PrivateLink zunächst einen Schnittstellenendpunkt für die VPC, von dem aus Sie eine Verbindung zu den SageMaker AI-Endpunkten herstellen. Bitte folgen Sie den Schritten unter Zugriff auf einen AWS Dienst mithilfe eines Schnittstellen-VPC-Endpunkts, um den Schnittstellenendpunkt zu erstellen. Wählen Sie beim Erstellen des Endpunktes die folgenden Einstellungen in der Konsolenoberfläche aus:

  • Aktivieren Sie unter Zusätzliche Einstellungen das Kontrollkästchen DNS-Namen aktivieren

  • Wählen Sie die entsprechenden Sicherheitsgruppen und die Subnetze aus, die mit den SageMaker AI-Endpunkten verwendet werden sollen.

Vergewissern Sie sich außerdem, dass für die VPC DNS-Hostnamen aktiviert sind. Weitere Informationen dazu, wie Sie DNS-Attribute für Ihre VPC ändern, finden Sie unter DNS-Attribute für Ihre VPC anzeigen und aktualisieren.

Stellen Sie den SageMaker KI-Endpunkt in einer VPC bereit

Um eine niedrige Overhead-Latenz zu erreichen, erstellen Sie einen SageMaker AI-Endpunkt mit denselben Subnetzen, die Sie bei der Bereitstellung angegeben haben. AWS PrivateLink Diese Subnetze sollten den AZs Ihrer Client-Anwendung entsprechen, wie im folgenden Codeausschnitt dargestellt.

model_name = '<the-name-of-your-model>' vpc = 'vpc-0123456789abcdef0' subnet_a = 'subnet-0123456789abcdef0' subnet_b = 'subnet-0123456789abcdef1' security_group = 'sg-0123456789abcdef0' create_model_response = sagemaker_client.create_model( ModelName = model_name, ExecutionRoleArn = sagemaker_role, PrimaryContainer = { 'Image': container, 'ModelDataUrl': model_url }, VpcConfig = { 'SecurityGroupIds': [security_group], 'Subnets': [subnet_a, subnet_b], }, )

Der o.g. Codeausschnitt setzt voraus, dass Sie die Schritte unter Bevor Sie beginnen befolgt haben.

Rufen Sie den AI-Endpunkt auf SageMaker

Geben Sie abschließend den SageMaker Runtime-Client an und rufen Sie den SageMaker AI-Endpunkt auf, wie im folgenden Codeausschnitt gezeigt.

endpoint_name = '<endpoint-name>' runtime_client = boto3.client('sagemaker-runtime') response = runtime_client.invoke_endpoint(EndpointName=endpoint_name, ContentType='text/csv', Body=payload)

Weitere Informationen zur Endpunktkonfiguration finden Sie unter Modelle für Echtzeit-Inferenzen bereitstellen.