View a markdown version of this page

Menerapkan rekomendasi inferensi AI generatif - Amazon SageMaker AI

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menerapkan rekomendasi inferensi AI generatif

Ketika pekerjaan rekomendasi selesai, setiap rekomendasi menyertakan konfigurasi siap penerapan. Anda dapat menerapkan konfigurasi yang dipilih ke titik akhir inferensi SageMaker AI dengan satu tindakan dari SageMaker AI Studio, atau secara terprogram melalui API.

Memahami konfigurasi penerapan

Setiap rekomendasi dalam respons pekerjaan berisi DeploymentConfiguration objek dengan informasi berikut:

ImageUri

URI gambar kontainer dioptimalkan untuk jenis instans yang direkomendasikan.

InstanceType

Jenis instans yang direkomendasikan untuk penerapan.

InstanceCount

Jumlah instance yang diperlukan untuk memenuhi target kinerja.

CopyCountPerInstance

Jumlah salinan model untuk dijalankan per instance. Ketika disetel ke nilai yang lebih besar dari satu, beberapa salinan model dimuat pada setiap instance untuk meningkatkan throughput.

EnvironmentVariables

Variabel lingkungan dikonfigurasi untuk kinerja optimal, seperti ukuran paralel tensor dan panjang urutan maksimum.

S3

Referensi saluran S3 untuk artefak model, termasuk keluaran model yang dioptimalkan.

Terapkan menggunakan API

Untuk menerapkan rekomendasi secara terprogram, gunakan paket model dari rekomendasi untuk membuat model SageMaker AI dan titik akhir. Setiap rekomendasi menyertakan ModelDetails objek dengan paket model ARN dan nama spesifikasi inferensi. Ini adalah jalur penyebaran paling sederhana karena paket model sudah berisi image container, variabel lingkungan, dan saluran artefak model.

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.")

Setelah titik akhir dibuat, Anda dapat memantau statusnya menggunakan DescribeEndpoint API hingga mencapai InService status.

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)

Menyebarkan dari SageMaker AI Studio

Anda juga dapat menerapkan konfigurasi yang direkomendasikan langsung dari SageMaker AI Studio dengan satu tindakan. Di SageMaker AI Studio, navigasikan ke pekerjaan rekomendasi yang telah selesai, tinjau rekomendasi dan metrik kinerjanya, dan pilih konfigurasi yang ingin Anda terapkan.