View a markdown version of this page

Implementieren Sie eine generative KI-Inferenzempfehlung - 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.

Implementieren Sie eine generative KI-Inferenzempfehlung

Wenn ein Empfehlungsauftrag abgeschlossen ist, umfasst jede Empfehlung eine einsatzbereite Konfiguration. Sie können die gewählte Konfiguration mit einer einzigen Aktion von SageMaker AI Studio aus oder programmgesteuert über die API auf einem SageMaker AI-Inferenzendpunkt bereitstellen.

Bereitstellungskonfigurationen verstehen

Jede Empfehlung in der Jobantwort enthält ein DeploymentConfiguration Objekt mit den folgenden Informationen:

ImageUri

Der Container-Image-URI ist für den empfohlenen Instance-Typ optimiert.

InstanceType

Der empfohlene Instanztyp für die Bereitstellung.

InstanceCount

Die Anzahl der Instanzen, die benötigt werden, um das Leistungsziel zu erreichen.

CopyCountPerInstance

Die Anzahl der Modellkopien, die pro Instanz ausgeführt werden sollen. Bei einem Wert größer als eins werden mehrere Kopien des Modells auf jede Instanz geladen, um den Durchsatz zu erhöhen.

EnvironmentVariables

Umgebungsvariablen, die für eine optimale Leistung konfiguriert sind, wie z. B. die parallel Größe des Tensors und die maximale Sequenzlänge.

S3

S3-Kanalreferenzen für Modellartefakte, einschließlich aller optimierten Modellausgaben.

Mithilfe der API bereitstellen

Um eine Empfehlung programmgesteuert bereitzustellen, verwenden Sie das Modellpaket aus der Empfehlung, um ein SageMaker KI-Modell und einen KI-Endpunkt zu erstellen. Jede Empfehlung enthält ein ModelDetails Objekt mit dem Modellpaket-ARN und dem Namen der Inferenzspezifikation. Dies ist der einfachste Bereitstellungspfad, da das Modellpaket bereits das Container-Image, die Umgebungsvariablen und die Modellartefakt-Kanäle enthält.

import boto3 client = boto3.client("sagemaker", region_name="us-west-2") # Get the recommendation from a completed job response = client.describe_ai_recommendation_job( AIRecommendationJobName="my-recommendation-job" ) # Select a recommendation (e.g., the first one) recommendation = response["Recommendations"][0] model_details = recommendation["ModelDetails"] deploy_config = recommendation["DeploymentConfiguration"] # Create a model from the model package. # The model package already contains the container image, environment # variables, and S3 data channels (base model + optimization artifacts). model_name = "my-recommended-model" container_def = { "ModelPackageName": model_details["ModelPackageArn"], } # If the recommendation uses a named inference specification (e.g., for # a specific optimization variant), specify it so SageMaker selects the # correct container and instance configuration from the model package. if model_details.get("InferenceSpecificationName"): container_def["InferenceSpecificationName"] = model_details["InferenceSpecificationName"] client.create_model( ModelName=model_name, PrimaryContainer=container_def, ExecutionRoleArn="arn:aws:iam::111122223333:role/ExampleRole", ) # Create an endpoint configuration endpoint_config_name = "my-recommended-endpoint-config" production_variant = { "VariantName": "AllTraffic", "ModelName": model_name, "InstanceType": deploy_config["InstanceType"], "InitialInstanceCount": deploy_config.get("InstanceCount", 1), } copy_count = deploy_config.get("CopyCountPerInstance") if copy_count and copy_count > 1: production_variant["InferenceAmiVersion"] = "al2-ami-sagemaker-inference-gpu-2" production_variant["RoutingConfig"] = {"RoutingStrategy": "LEAST_OUTSTANDING_REQUESTS"} client.create_endpoint_config( EndpointConfigName=endpoint_config_name, ProductionVariants=[production_variant], ) # Create the endpoint endpoint_name = "my-recommended-endpoint" client.create_endpoint( EndpointName=endpoint_name, EndpointConfigName=endpoint_config_name, ) print(f"Endpoint {endpoint_name} is being created.")

Nachdem der Endpunkt erstellt wurde, können Sie seinen Status mithilfe der DescribeEndpoint API überwachen, bis er den InService Status erreicht.

import time while True: response = client.describe_endpoint(EndpointName=endpoint_name) status = response["EndpointStatus"] print(f"Endpoint status: {status}") if status in ("InService", "Failed"): break time.sleep(60)

Von SageMaker AI Studio aus bereitstellen

Sie können eine empfohlene Konfiguration auch direkt von SageMaker AI Studio aus mit einer einzigen Aktion bereitstellen. Navigieren Sie in SageMaker AI Studio zum abgeschlossenen Empfehlungsjob, überprüfen Sie die Empfehlungen und ihre Leistungskennzahlen und wählen Sie die Konfiguration aus, die Sie bereitstellen möchten.