

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
<a name="generative-ai-inference-recommendations-deploy"></a>

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
<a name="generative-ai-inference-recommendations-deploy-overview"></a>

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
<a name="generative-ai-inference-recommendations-deploy-api"></a>

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
<a name="generative-ai-inference-recommendations-deploy-studio"></a>

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.