Erstellen Sie einen Serverless-Endpunkt - 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.

Erstellen Sie einen Serverless-Endpunkt

Wichtig

Benutzerdefinierte IAM-Richtlinien, die es Amazon SageMaker Studio oder Amazon SageMaker Studio Classic ermöglichen, SageMaker Amazon-Ressourcen zu erstellen, müssen auch Berechtigungen zum Hinzufügen von Tags zu diesen Ressourcen gewähren. Die Berechtigung zum Hinzufügen von Tags zu Ressourcen ist erforderlich, da Studio und Studio Classic automatisch alle von ihnen erstellten Ressourcen taggen. Wenn eine IAM-Richtlinie Studio und Studio Classic das Erstellen von Ressourcen, aber kein Tagging erlaubt, können "AccessDenied" Fehler auftreten, wenn versucht wird, Ressourcen zu erstellen. Weitere Informationen finden Sie unter Stellen Sie Berechtigungen für das Taggen von Ressourcen SageMaker bereit.

AWS Verwaltete Richtlinien für Amazon SageMakerdie Berechtigungen zum Erstellen von SageMaker Ressourcen gewähren, beinhalten bereits Berechtigungen zum Hinzufügen von Tags beim Erstellen dieser Ressourcen.

Um einen serverlosen Endpunkt zu erstellen, können Sie die SageMaker Amazon-Konsole, die APIs oder die AWS CLI verwenden. Einen Serverless-Endpunkt können Sie nach einem ähnlichen Verfahren erstellen wie einen Echtzeitendpunkt.

Ein Modell erstellen

Um Ihr Modell zu erstellen, müssen Sie den Speicherort Ihrer Modellartefakte und Ihres Container-Images angeben. Sie können auch eine Modellversion aus SageMaker Model Registry verwenden. Die Beispiele in den folgenden Abschnitten zeigen Ihnen, wie Sie mithilfe der CreateModelAPI, der Modellregistrierung und der SageMakerAmazon-Konsole ein Modell erstellen.

Zum Erstellen eines Modells (mit Hilfe von Model Registry)

Model Registry ist eine Funktion von SageMaker , mit der Sie Versionen Ihres Modells für die Verwendung in ML-Pipelines katalogisieren und verwalten können. Um Model Registry mit Serverless Inference verwenden zu können, müssen Sie zunächst eine Modellversion in einer Model Registry Modellgruppe registrieren. Wie Sie ein Modell in Model Registry registrieren, erfahren Sie in den Anweisungen unter Erstellen einer Modellgruppe und Registrieren Sie eine Modellversion.

Für das folgende Beispiel benötigen Sie den ARN einer registrierten Modellversion und verwendet das AWS SDK for Python (Boto3), um die CreateModelAPI aufzurufen. Für Serverless Inference wird Model Registry derzeit nur vom AWS SDK for Python (Boto3) unterstützt. Geben Sie für das Beispiel die folgenden Werte an:

  • Geben Sie für model_name einen Name für das Modell ein.

  • Für sagemaker_role können Sie die standardmäßig SageMaker erstellte Rolle oder eine benutzerdefinierte SageMaker IAM-Rolle aus Schritt 4 des Abschnitts verwenden. Voraussetzungen

  • Geben Sie für ModelPackageName den ARN für Ihre Modellversion an, die in der Model Registry für eine Modellgruppe registriert sein muss.

#Setup import boto3 import sagemaker region = boto3.Session().region_name client = boto3.client("sagemaker", region_name=region) #Role to give SageMaker permission to access AWS services. sagemaker_role = sagemaker.get_execution_role() #Specify a name for the model model_name = "<name-for-model>" #Specify a Model Registry model version container_list = [ { "ModelPackageName": <model-version-arn> } ] #Create the model response = client.create_model( ModelName = model_name, ExecutionRoleArn = sagemaker_role, container_list )

So erstellen Sie ein Modell (mit Hilfe der API)

Im folgenden Beispiel wird das AWS SDK for Python (Boto3) verwendet, um die CreateModelAPI aufzurufen. Geben Sie die folgenden Werte an:

  • Denn sagemaker_role, Sie können die standardmäßig SageMaker erstellte Rolle oder eine benutzerdefinierte SageMaker IAM-Rolle aus Schritt 4 des Abschnitts verwenden. Voraussetzungen

  • Geben Sie für model_url den Amazon-S3-URI für Ihr Modell an.

  • Rufen Sie für container über seinen Amazon ECR-Pfad den Container ab, den Sie verwenden möchten. In diesem Beispiel wird ein von SageMaker -bereitgestellter XGBoost-Container verwendet. Wenn Sie keinen SageMaker Container ausgewählt oder Ihren eigenen mitgebracht haben, finden Sie weitere Informationen in Schritt 6 des Voraussetzungen Abschnitts.

  • Geben Sie für model_name einen Name für das Modell ein.

#Setup import boto3 import sagemaker region = boto3.Session().region_name client = boto3.client("sagemaker", region_name=region) #Role to give SageMaker permission to access AWS services. sagemaker_role = sagemaker.get_execution_role() #Get model from S3 model_url = "s3://DOC-EXAMPLE-BUCKET/models/model.tar.gz" #Get container image (prebuilt example) from sagemaker import image_uris container = image_uris.retrieve("xgboost", region, "0.90-1") #Create model model_name = "<name-for-model>" response = client.create_model( ModelName = model_name, ExecutionRoleArn = sagemaker_role, Containers = [{ "Image": container, "Mode": "SingleModel", "ModelDataUrl": model_url, }] )

So erstellen Sie ein Modell (mithilfe der Konsole)

  1. Melden Sie sich bei der SageMakerAmazon-Konsole an.

  2. Wählen Sie auf der Registerkarte Navigation die Option Inferenz aus.

  3. Wählen Sie als Nächstes Modelle aus.

  4. Wählen Sie Modell erstellen aus.

  5. Geben Sie unter Modellname einen Namen für das Modell ein, der für Ihr Konto eindeutig ist, und AWS-Region.

  6. Wählen Sie für die IAM-Rolle entweder eine IAM-Rolle aus, die Sie bereits erstellt haben (sieheVoraussetzungen), oder lassen Sie SageMaker zu, dass Sie eine für Sie erstellen.

  7. Wählen Sie in Container-Definition 1 für Container-Eingabeoptionen die Option Modellartefakte bereitstellen und Ort eingeben aus.

  8. Wählen Sie unter Modellartefakte und Inferenz-Image-Optionen bereitstellen die Option Ein einzelnes Modell verwenden aus.

  9. Geben Sie unter Standort des Inferenzcode-Abbildes einen Amazon ECR-Pfad zu einem Container ein. Bei dem Image muss es sich entweder um ein von einem Drittanbieter SageMaker bereitgestelltes Image (z. TensorFlow B. XGBoost) oder um ein Image handeln, das sich in einem Amazon ECR-Repository innerhalb desselben Kontos befindet, in dem Sie den Endpunkt erstellen. Wenn Sie keinen Container haben, gehen Sie zurück zu Schritt 6 im Abschnitt Voraussetzungen. Dort finden Sie weitere Informationen.

  10. Geben Sie als Standort der Modellartefakte den Amazon-S3-URI zu Ihrem ML-Modell ein. z. B. s3://DOC-EXAMPLE-BUCKET/models/model.tar.gz.

  11. (Optional) Fügen Sie für Tags Schlüssel-Wert-Paare hinzu, um Metadaten für Ihr Modell zu erstellen.

  12. Wählen Sie Modell erstellen aus.

Eine Endpunktkonfiguration erstellen

Wenn Sie ein Modell erstellt haben, erstellen Sie als nächstes eine Endpunktkonfiguration. Anschließend können Sie Ihr Modell mithilfe der Spezifikationen in Ihrer Endpunktkonfiguration bereitstellen. In der Konfiguration geben Sie an, ob Sie einen Echtzeit- oder einen Serverless-Endpunkt haben wollen. Um eine serverlose Endpunktkonfiguration zu erstellen, können Sie die SageMaker Amazon-Konsole, die CreateEndpointConfigAPI oder die AWS CLI verwenden. Die API- und Konsolenansätze werden in den folgenden Abschnitten beschrieben.

So erstellen Sie eine Endpunktkonfiguration (mit Hilfe der API)

Im folgenden Beispiel wird das AWS SDK for Python (Boto3) verwendet, um die CreateEndpointConfigAPI aufzurufen. Geben Sie die folgenden Werte an:

  • Wählen Sie für EndpointConfigName einen Namen für die Endpunktkonfiguration. Der Name sollte innerhalb einer Region in Ihrem Konto eindeutig sein.

  • (Optional) Verwenden Sie für KmsKeyId die Schlüssel-ID, den Schlüssel-ARN, den Aliasnamen oder den Alias-ARN für einen AWS KMS Schlüssel, den Sie verwenden möchten. SageMaker verwendet diesen Schlüssel, um Ihr Amazon ECR-Bild zu verschlüsseln.

  • Verwenden Sie für ModelName den Namen des Modells, das Sie bereitstellen möchten. Dieses Modell sollte dasselbe sein, das Sie im Ein Modell erstellen Schritt verwendet haben.

  • ServerlessConfig:

    • Setzen Sie MemorySizeInMB auf 2048. In diesem Beispiel legen wir die Speichergröße auf 2048 MB fest. Sie können für Ihre Speichergröße jedoch einen der folgenden Werte wählen: 1024 MB, 2048 MB, 3072 MB, 4096 MB, 5120 MB oder 6144 MB.

    • Setzen Sie MaxConcurrency auf 20. In diesem Beispiel haben wir die maximale Parallelität auf 20 festgelegt. Die maximale Anzahl gleichzeitiger Aufrufe, die Sie für einen Serverless-Endpunkt festlegen können, ist 200. Der Mindestwert, den Sie auswählen können, ist 1.

    • (Optional) Um bereitgestellte Gleichzeitigkeit zu verwenden, legen Sie ProvisionedConcurrency auf 10 fest. In diesem Beispiel haben wir die bereitgestellte Gleichzeitigkeit auf 10 gesetzt. Die ProvisionedConcurrency Zahl für einen Serverless-Endpunkt muss kleiner oder gleich der MaxConcurrency Zahl sein. Sie können das Feld leer lassen, wenn Sie einen Endpunkt für Serverless Inferenz auf Abruf verwenden möchten. Sie können Gleichzeitigkeit bereitstellen dynamisch skalieren. Weitere Informationen finden Sie unter Automatische Skalierung der bereitgestellten Gleichzeitigkeit für einen Serverless Endpunkt.

response = client.create_endpoint_config( EndpointConfigName="<your-endpoint-configuration>", KmsKeyId="arn:aws:kms:us-east-1:123456789012:key/143ef68f-76fd-45e3-abba-ed28fc8d3d5e", ProductionVariants=[ { "ModelName": "<your-model-name>", "VariantName": "AllTraffic", "ServerlessConfig": { "MemorySizeInMB": 2048, "MaxConcurrency": 20, "ProvisionedConcurrency": 10, } } ] )

So erstellen Sie eine Endpunktkonfiguration (mit Hilfe der Konsole)

  1. Melden Sie sich bei der SageMakerAmazon-Konsole an.

  2. Wählen Sie auf der Registerkarte Navigation Inferenz aus.

  3. Wählen Sie als Nächstes Endpunktkonfigurationen aus.

  4. Wählen Sie Endpunktkonfiguration erstellen aus.

  5. Geben Sie unter Name der Endpunktkonfiguration einen Namen ein, der innerhalb Ihres Kontos in einer Region eindeutig ist.

  6. Wählen Sie als Typ des Endpunkts die Option Serverless aus.

    Screenshot der Option Endpunkttyp in der Konsole.
  7. Wählen Sie für Produktionsvarianten die Option Modell hinzufügen aus.

  8. Wählen Sie unter Modell hinzufügen das Modell, das Sie verwenden möchten, von der Liste der Modelle aus und klicken Sie dann auf Speichern.

  9. Wenn Sie Ihr Modell hinzugefügt haben, wählen Sie unter Aktionen die Option Bearbeiten aus.

  10. Wählen Sie unter Speichergröße die gewünschte Speichergröße in GB aus.

    Screenshot der Option „Speichergröße“ in der Konsole.
  11. Geben Sie für Max. Gleichzeitigkeit die gewünschte maximale Anzahl gleichzeitiger Aufrufe für den Endpunkt ein. Der Höchstwert, den Sie eingeben können, ist 200 und der Mindestwert ist 1.

  12. (Optional) Um die bereitgestellte Gleichzeitigkeit zu verwenden, geben Sie die gewünschte Anzahl gleichzeitiger Aufrufe in das Feld Einstellung für bereitgestellte Gleichzeitigkeit ein. Die Anzahl der gleichzeitig bereitgestellten Aufrufe muss kleiner oder gleich der maximalen Anzahl gleichzeitiger Aufrufe sein.

  13. Wählen Sie Speichern.

  14. (Optional) Geben Sie unter Tags Schlüssel-Wert-Paare ein, wenn Sie Metadaten für Ihre Endpunktkonfiguration erstellen möchten.

  15. Wählen Sie Endpunktkonfiguration erstellen aus.

Endpunkt herstellen

Um einen serverlosen Endpunkt zu erstellen, können Sie die SageMaker Amazon-Konsole, die CreateEndpointAPI oder die AWS CLI verwenden. Die API- und Konsolenansätze werden in den folgenden Abschnitten beschrieben. Wenn Sie Ihren Endpunkt erstellt haben, kann es einige Minuten dauern, bis der Endpunkt verfügbar ist.

So erstellen Sie einen Endpunkt (mithilfe der API)

Im folgenden Beispiel wird das AWS SDK for Python (Boto3) verwendet, um die CreateEndpointAPI aufzurufen. Geben Sie die folgenden Werte an:

  • Geben Sie für EndpointName einen Namen für den Endpunkt ein, der innerhalb einer Region in Ihrem Konto eindeutig ist.

  • Verwenden Sie für EndpointConfigName den Namen der Endpunktkonfiguration, die Sie im letzten Abschnitt erstellt haben.

response = client.create_endpoint( EndpointName="<your-endpoint-name>", EndpointConfigName="<your-endpoint-config>" )

So erstellen Sie einen Endpunkt (mit Hilfe der Konsole)

  1. Melden Sie sich bei der SageMakerAmazon-Konsole an.

  2. Wählen Sie auf der Registerkarte Navigation Inferenz aus.

  3. Wählen Sie als Nächstes Endpunkte aus.

  4. Wählen Sie Endpunkt erstellen aus.

  5. Geben Sie als Endpunktname einen Namen ein, der innerhalb einer Region in Ihrem Konto eindeutig ist.

  6. Wählen Sie unter Endpunktkonfiguration anhängen die Option Vorhandene Endpunktkonfiguration verwenden aus.

  7. Wählen Sie für Endpunktkonfiguration den Namen der Endpunktkonfiguration aus, die Sie im letzten Abschnitt erstellt haben, und wählen Sie dann Endpunktkonfiguration auswählen aus.

  8. (Optional) Geben Sie unter Tags Schlüssel-Wert-Paare ein, wenn Sie Metadaten für Ihren Endpunkt erstellen möchten.

  9. Wählen Sie Endpunkt erstellen aus.

    Screenshot der Seite „Endpunkt erstellen und konfigurieren“ in der Konsole.