

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

# Praktik terbaik
<a name="best-practices"></a>

Topik berikut memberikan panduan tentang praktik terbaik untuk menerapkan model pembelajaran mesin di Amazon SageMaker AI.

**Topics**
+ [Praktik terbaik untuk menerapkan model pada Layanan Hosting SageMaker AI](deployment-best-practices.md)
+ [Pantau Praktik Terbaik Keamanan](monitor-sec-best-practices.md)
+ [Inferensi real-time latensi rendah dengan AWS PrivateLink](realtime-endpoints-privatelink.md)
+ [Migrasikan beban kerja inferensi dari x86 ke Graviton AWS](realtime-endpoints-graviton.md)
+ [Memecahkan masalah penerapan model Amazon SageMaker AI](deploy-model-troubleshoot.md)
+ [Praktik terbaik pengoptimalan biaya inferensi](inference-cost-optimization.md)
+ [Praktik terbaik untuk meminimalkan gangguan selama peningkatan driver GPU](inference-gpu-drivers.md)
+ [Praktik terbaik untuk keamanan dan kesehatan titik akhir dengan Amazon AI SageMaker](best-practice-endpoint-security.md)
+ [Memperbarui kontainer inferensi untuk mematuhi NVIDIA Container Toolkit](container-nvidia-compliance.md)

# Praktik terbaik untuk menerapkan model pada Layanan Hosting SageMaker AI
<a name="deployment-best-practices"></a>

Saat menghosting model menggunakan layanan hosting SageMaker AI, pertimbangkan hal berikut:
+ Biasanya, aplikasi klien mengirimkan permintaan ke titik akhir SageMaker AI HTTPS untuk mendapatkan kesimpulan dari model yang diterapkan. Anda juga dapat mengirim permintaan ke titik akhir ini dari buku catatan Jupyter Anda selama pengujian.
+ Anda dapat menerapkan model yang dilatih dengan SageMaker AI ke target penyebaran Anda sendiri. Untuk melakukan itu, Anda perlu mengetahui format khusus algoritme dari artefak model yang dihasilkan oleh pelatihan model. Untuk informasi selengkapnya tentang format keluaran, lihat bagian yang sesuai dengan algoritme yang Anda gunakan[Format Data Umum untuk Pelatihan](cdf-training.md). 
+ Anda dapat menerapkan beberapa varian model ke titik akhir SageMaker AI HTTPS yang sama. Ini berguna untuk menguji variasi model dalam produksi. Misalnya, misalkan Anda telah menerapkan model ke dalam produksi. Anda ingin menguji variasi model dengan mengarahkan sejumlah kecil lalu lintas, katakanlah 5%, ke model baru. Untuk melakukan ini, buat konfigurasi titik akhir yang menjelaskan kedua varian model. Anda menentukan `ProductionVariant` dalam permintaan Anda ke`CreateEndPointConfig`. Untuk informasi selengkapnya, lihat [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProductionVariant.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProductionVariant.html). 
+ Anda dapat mengonfigurasi `ProductionVariant` untuk menggunakan Application Auto Scaling. Untuk informasi tentang mengonfigurasi penskalaan otomatis, lihat. [Penskalaan otomatis model Amazon SageMaker AI](endpoint-auto-scaling.md)
+ Anda dapat memodifikasi titik akhir tanpa mengambil model yang sudah digunakan ke dalam produksi di luar layanan. Misalnya, Anda dapat menambahkan varian model baru, memperbarui konfigurasi instans Komputasi ML dari varian model yang ada, atau mengubah distribusi lalu lintas antar varian model. Untuk memodifikasi endpoint, Anda menyediakan konfigurasi endpoint baru. SageMaker AI mengimplementasikan perubahan tanpa downtime. Untuk informasi lebih lanjut lihat, [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpoint.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpoint.html)dan [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpointWeightsAndCapacities.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpointWeightsAndCapacities.html). 
+ Mengubah atau menghapus artefak model atau mengubah kode inferensi setelah menerapkan model menghasilkan hasil yang tidak terduga. Jika Anda perlu mengubah atau menghapus artefak model atau mengubah kode inferensi, ubah titik akhir dengan menyediakan konfigurasi titik akhir baru. Setelah Anda memberikan konfigurasi endpoint baru, Anda dapat mengubah atau menghapus artefak model yang sesuai dengan konfigurasi endpoint lama.
+ Jika Anda ingin mendapatkan kesimpulan tentang seluruh kumpulan data, pertimbangkan untuk menggunakan transformasi batch sebagai alternatif untuk layanan hosting. Untuk informasi, lihat [Transformasi Batch untuk inferensi dengan Amazon AI SageMaker](batch-transform.md) 

## Terapkan Beberapa Instance di Seluruh Availability Zone
<a name="deployment-best-practices-availability-zones"></a>

**Buat titik akhir yang kuat saat menghosting model Anda.** SageMaker Titik akhir AI dapat membantu melindungi aplikasi Anda dari pemadaman [Availability Zone](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html) dan kegagalan instans. Jika terjadi pemadaman atau instans gagal, SageMaker AI secara otomatis mencoba mendistribusikan instans Anda di seluruh Availability Zone. Untuk alasan ini, kami sangat menyarankan Anda menerapkan beberapa instance untuk setiap titik akhir produksi. 

Jika Anda menggunakan [Amazon Virtual Private Cloud (VPC), konfigurasikan VPC](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) dengan setidaknya dua [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_VpcConfig.html#SageMaker-Type-VpcConfig-Subnets                     .html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_VpcConfig.html#SageMaker-Type-VpcConfig-Subnets                     .html), masing-masing di Availability Zone yang berbeda. Jika terjadi pemadaman atau instans gagal, Amazon SageMaker AI secara otomatis mencoba mendistribusikan instans Anda di seluruh Availability Zone. 

Secara umum, untuk mencapai kinerja yang lebih andal, gunakan lebih banyak [Jenis Instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) kecil di Availability Zone yang berbeda untuk meng-host endpoint Anda.

**Menyebarkan komponen inferensi untuk ketersediaan tinggi.** Selain rekomendasi di atas untuk nomor instans, untuk mencapai ketersediaan 99,95%, pastikan komponen inferensi Anda dikonfigurasi untuk memiliki lebih dari dua salinan. Selain itu, dalam kebijakan penskalaan otomatis terkelola, tetapkan jumlah minimum instans menjadi dua juga.

# Pantau Praktik Terbaik Keamanan
<a name="monitor-sec-best-practices"></a>

Pantau penggunaan SageMaker AI yang berkaitan dengan praktik terbaik keamanan dengan menggunakan [AWS Security Hub CSPM](https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub.html). Security Hub CSPM menggunakan kontrol keamanan untuk mengevaluasi konfigurasi sumber daya dan standar keamanan untuk membantu Anda mematuhi berbagai kerangka kerja kepatuhan. Untuk informasi selengkapnya tentang penggunaan CSPM Security Hub untuk mengevaluasi sumber daya SageMaker AI, lihat [kontrol Amazon SageMaker AI di Panduan Pengguna](https://docs.aws.amazon.com/securityhub/latest/userguide/sagemaker-controls.html) *CSPM AWS Security Hub*.

# Inferensi real-time latensi rendah dengan AWS PrivateLink
<a name="realtime-endpoints-privatelink"></a>

 Amazon SageMaker AI memberikan latensi rendah untuk inferensi waktu nyata sambil mempertahankan ketersediaan dan ketahanan tinggi menggunakan penerapan multi-AZ. Latensi aplikasi terdiri dari dua komponen utama: infrastruktur atau latensi overhead dan latensi inferensi model. Pengurangan latensi overhead membuka kemungkinan baru seperti menerapkan model yang lebih kompleks, mendalam, dan akurat atau membagi aplikasi monolitik menjadi modul layanan mikro yang dapat diskalakan dan dapat dipelihara. Anda dapat mengurangi latensi untuk inferensi real-time dengan SageMaker AI menggunakan penerapan. AWS PrivateLink Dengan AWS PrivateLink, Anda dapat mengakses semua operasi SageMaker API secara pribadi dari Virtual Private Cloud (VPC) Anda dengan cara yang dapat diskalakan dengan menggunakan titik akhir VPC antarmuka. Endpoint VPC antarmuka adalah elastic network interface di subnet Anda dengan alamat IP pribadi yang berfungsi sebagai titik masuk untuk semua panggilan API. SageMaker 

Secara default, titik akhir SageMaker AI dengan 2 instans atau lebih diterapkan di setidaknya 2 AWS Availability Zones (AZs) dan instance di AZ mana pun dapat memproses pemanggilan. Ini menghasilkan satu atau lebih “hop” AZ yang berkontribusi pada latensi overhead. AWS PrivateLink Penerapan dengan `privateDNSEnabled` opsi yang ditetapkan sebagai `true` meringankan hal ini dengan mencapai dua tujuan:
+ Itu menyimpan semua lalu lintas inferensi dalam VPC Anda.
+ Itu membuat lalu lintas pemanggilan di AZ yang sama dengan klien yang memulainya saat menggunakan Runtime. SageMaker Ini menghindari “lompatan” antara AZs mengurangi latensi overhead.

Bagian berikut dari panduan ini menunjukkan bagaimana Anda dapat mengurangi latensi untuk inferensi waktu nyata dengan AWS PrivateLink penerapan.

**Topics**
+ [Menyebarkan AWS PrivateLink](#deploy-privatelink)
+ [Menerapkan titik akhir SageMaker AI di VPC](#deploy-sagemaker-inference-endpoint)
+ [Memanggil titik akhir SageMaker AI](#invoke-sagemaker-inference-endpoint)

## Menyebarkan AWS PrivateLink
<a name="deploy-privatelink"></a>

Untuk menerapkan AWS PrivateLink, pertama-tama buat titik akhir antarmuka untuk VPC tempat Anda terhubung ke titik akhir AI. SageMaker Ikuti langkah-langkah di [Akses AWS layanan menggunakan titik akhir VPC antarmuka untuk membuat titik akhir](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html) antarmuka. Saat membuat titik akhir, pilih pengaturan berikut di antarmuka konsol:
+ **Pilih kotak centang **Aktifkan nama DNS** di bawah Pengaturan Tambahan**
+ Pilih grup keamanan yang sesuai dan subnet yang akan digunakan dengan titik akhir SageMaker AI.

Pastikan juga bahwa VPC mengaktifkan nama host DNS. Untuk informasi selengkapnya tentang cara mengubah atribut DNS untuk VPC Anda, [lihat Melihat dan memperbarui atribut DNS untuk](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html#vpc-dns-updating) VPC Anda.

## Menerapkan titik akhir SageMaker AI di VPC
<a name="deploy-sagemaker-inference-endpoint"></a>

Untuk mencapai latensi overhead rendah, buat titik akhir SageMaker AI menggunakan subnet yang sama dengan yang Anda tentukan saat menerapkan. AWS PrivateLink Subnet ini harus sesuai dengan aplikasi klien Anda, seperti yang ditunjukkan dalam cuplikan kode berikut. AZs 

```
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],
    },
)
```

Cuplikan kode yang disebutkan di atas mengasumsikan bahwa Anda telah mengikuti langkah-langkahnya. [Sebelum Anda mulai](realtime-endpoints-deploy-models.md#deploy-prereqs)

## Memanggil titik akhir SageMaker AI
<a name="invoke-sagemaker-inference-endpoint"></a>

Terakhir, tentukan klien SageMaker Runtime dan panggil titik akhir SageMaker AI seperti yang ditunjukkan pada cuplikan kode berikut.

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

Untuk informasi selengkapnya tentang konfigurasi titik akhir, lihat[Terapkan model untuk inferensi waktu nyata](realtime-endpoints-deploy-models.md).

# Migrasikan beban kerja inferensi dari x86 ke Graviton AWS
<a name="realtime-endpoints-graviton"></a>

 [AWS Graviton](https://aws.amazon.com/ec2/graviton/) adalah serangkaian prosesor berbasis ARM yang dirancang oleh. AWS Mereka lebih hemat energi daripada prosesor berbasis x86 dan menawarkan rasio harga-kinerja yang menarik. Amazon SageMaker AI menawarkan instance berbasis Graviton sehingga Anda dapat memanfaatkan prosesor canggih ini untuk kebutuhan inferensi Anda. 

 Anda dapat memigrasikan beban kerja inferensi yang ada dari instance berbasis x86 ke instance berbasis Graviton, dengan menggunakan gambar kontainer yang kompatibel dengan ARM atau gambar kontainer multi-arsitektur. Panduan ini mengasumsikan bahwa Anda menggunakan gambar kontainer [AWS Deep Learning, atau gambar kontainer](https://github.com/aws/deep-learning-containers/blob/master/available_images.md) yang kompatibel dengan ARM Anda sendiri. Untuk informasi lebih lanjut tentang membuat gambar Anda sendiri, periksa [Membangun gambar Anda](https://github.com/aws/deep-learning-containers#building-your-image). 

 Pada tingkat tinggi, memigrasikan beban kerja inferensi dari instance berbasis x86 ke instance berbasis Graviton adalah proses empat langkah: 

1. Dorong gambar kontainer ke Amazon Elastic Container Registry (Amazon ECR), registri kontainer AWS terkelola.

1. Buat Model SageMaker AI.

1. Buat konfigurasi titik akhir.

1. Buat titik akhir.

 Bagian berikut dari panduan ini memberikan rincian lebih lanjut mengenai langkah-langkah di atas. Ganti contoh kode *user placeholder text* dalam dengan informasi Anda sendiri. 

**Topics**
+ [Dorong gambar wadah ke Amazon ECR](#realtime-endpoints-graviton-ecr)
+ [Buat Model SageMaker AI](#realtime-endpoints-graviton-model)
+ [Buat konfigurasi titik akhir](#realtime-endpoints-graviton-epc)
+ [Buat titik akhir](#realtime-endpoints-graviton-ep)

## Dorong gambar wadah ke Amazon ECR
<a name="realtime-endpoints-graviton-ecr"></a>

 Anda dapat mendorong gambar kontainer Anda ke Amazon ECR dengan file. AWS CLI Saat menggunakan gambar yang kompatibel dengan ARM, verifikasi bahwa gambar tersebut mendukung arsitektur ARM: 

```
docker inspect deep-learning-container-uri
```

 Respons `"Architecture": "arm64"` menunjukkan bahwa gambar mendukung arsitektur ARM. Anda dapat mendorongnya ke Amazon ECR dengan `docker push` perintah. Untuk informasi selengkapnya, periksa [Mendorong gambar Docker](https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-push-ecr-image.html). 

 Gambar kontainer multi-arsitektur pada dasarnya adalah sekumpulan gambar kontainer yang mendukung arsitektur atau sistem operasi yang berbeda, yang dapat Anda rujuk dengan nama manifes umum. Jika Anda menggunakan gambar wadah multi-arsitektur, maka selain mendorong gambar ke Amazon ECR, Anda juga harus mendorong daftar manifes ke Amazon ECR. Daftar manifes memungkinkan penyertaan bersarang dari manifes gambar lain, di mana setiap gambar yang disertakan ditentukan oleh arsitektur, sistem operasi, dan atribut platform lainnya. Contoh berikut membuat daftar manifes, dan mendorongnya ke Amazon ECR. 

1. Buat daftar manifes.

   ```
   docker manifest create aws-account-id.dkr.ecr.aws-region.amazonaws.com/my-repository \
     aws-account-id.dkr.ecr.aws-account-id.amazonaws.com/my-repository:amd64 \
   	aws-account-id.dkr.ecr.aws-account-id.amazonaws.com/my-repository:arm64 \
   ```

1.  Beri anotasi daftar manifes, sehingga benar mengidentifikasi gambar mana untuk arsitektur mana. 

   ```
   docker manifest annotate --arch arm64 aws-account-id.dkr.ecr.aws-region.amazonaws.com/my-repository \
     aws-account-id.dkr.ecr.aws-region.amazonaws.com/my-repository:arm64
   ```

1. Dorong manifes.

   ```
   docker manifest push aws-account-id.dkr.ecr.aws-region.amazonaws.com/my-repository
   ```

 Untuk informasi selengkapnya tentang membuat dan mendorong daftar manifes ke Amazon ECR, periksa [Memperkenalkan gambar wadah multi-arsitektur untuk Amazon ECR](https://aws.amazon.com/blogs/containers/introducing-multi-architecture-container-images-for-amazon-ecr/), dan [Mendorong](https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-push-multi-architecture-image.html) gambar multi-arsitektur. 

## Buat Model SageMaker AI
<a name="realtime-endpoints-graviton-model"></a>

 Buat Model SageMaker AI dengan memanggil [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html)API. 

```
import boto3
from sagemaker import get_execution_role


aws_region = "aws-region"
sagemaker_client = boto3.client("sagemaker", region_name=aws_region)

role = get_execution_role()

sagemaker_client.create_model(
    ModelName = "model-name",
    PrimaryContainer = {
        "Image": "deep-learning-container-uri",
        "ModelDataUrl": "model-s3-location",
        "Environment": {
            "SAGEMAKER_PROGRAM": "inference.py",
            "SAGEMAKER_SUBMIT_DIRECTORY": "inference-script-s3-location",
            "SAGEMAKER_CONTAINER_LOG_LEVEL": "20",
            "SAGEMAKER_REGION": aws_region,
        }
    },
    ExecutionRoleArn = role
)
```

## Buat konfigurasi titik akhir
<a name="realtime-endpoints-graviton-epc"></a>

 Buat konfigurasi titik akhir dengan memanggil [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpointConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpointConfig.html)API. [Untuk daftar instance berbasis Graviton, periksa Instance yang dioptimalkan Compute.](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/compute-optimized-instances.html) 

```
sagemaker_client.create_endpoint_config(
    EndpointConfigName = "endpoint-config-name",
    ProductionVariants = [
        {
            "VariantName": "variant-name",
            "ModelName": "model-name",
            "InitialInstanceCount": 1,
            "InstanceType": "ml.c7g.xlarge", # Graviton-based instance
       }
    ]
)
```

## Buat titik akhir
<a name="realtime-endpoints-graviton-ep"></a>

 Buat titik akhir dengan memanggil [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpoint.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpoint.html)API. 

```
sagemaker_client.create_endpoint(
    EndpointName = "endpoint-name",
    EndpointConfigName = "endpoint-config-name"
)
```

# Memecahkan masalah penerapan model Amazon SageMaker AI
<a name="deploy-model-troubleshoot"></a>

Jika Anda mengalami masalah saat menerapkan model pembelajaran mesin di Amazon SageMaker AI, lihat panduan berikut.

**Topics**
+ [Kesalahan Deteksi dalam Hitungan CPU Aktif](#deploy-model-troubleshoot-jvms)
+ [Masalah dengan penerapan file model.tar.gz](#deploy-model-troubleshoot-tarballs)
+ [Kontainer primer tidak lulus pemeriksaan kesehatan ping](#deploy-model-troubleshoot-ping)

## Kesalahan Deteksi dalam Hitungan CPU Aktif
<a name="deploy-model-troubleshoot-jvms"></a>

Jika Anda menerapkan model SageMaker AI dengan Linux Java Virtual Machine (JVM), Anda mungkin mengalami kesalahan deteksi yang mencegah penggunaan sumber daya CPU yang tersedia. Masalah ini mempengaruhi beberapa JVMs yang mendukung Java 8 dan Java 9, dan sebagian besar yang mendukung Java 10 dan Java 11. Ini JVMs menerapkan mekanisme yang mendeteksi dan menangani jumlah CPU dan memori maksimum yang tersedia saat menjalankan model dalam wadah Docker, dan, lebih umum, dalam `taskset` perintah Linux atau grup kontrol (cgroups). SageMaker Penerapan AI memanfaatkan beberapa pengaturan yang digunakan JVM untuk mengelola sumber daya ini. Saat ini, ini menyebabkan wadah salah mendeteksi jumlah yang tersedia CPUs. 

SageMaker AI tidak membatasi akses CPUs pada sebuah instans. Namun, JVM mungkin mendeteksi jumlah CPU seperti `1` ketika lebih banyak CPUs tersedia untuk wadah. Akibatnya, JVM menyesuaikan semua pengaturan internalnya untuk berjalan seolah-olah hanya inti `1` CPU yang tersedia. Pengaturan ini memengaruhi pengumpulan sampah, kunci, utas kompiler, dan internal JVM lainnya yang berdampak negatif pada konkurensi, throughput, dan latensi wadah.

Untuk contoh kesalahan deteksi, dalam wadah yang dikonfigurasi untuk SageMaker AI yang digunakan dengan JVM yang didasarkan pada Java8\$1191 dan yang memiliki empat tersedia CPUs pada instance, jalankan perintah berikut untuk memulai JVM Anda:

```
java -XX:+UnlockDiagnosticVMOptions -XX:+PrintActiveCpus -version
```

Ini menghasilkan output berikut:

```
active_processor_count: sched_getaffinity processor count: 4
active_processor_count: determined by OSContainer: 1
active_processor_count: sched_getaffinity processor count: 4
active_processor_count: determined by OSContainer: 1
active_processor_count: sched_getaffinity processor count: 4
active_processor_count: determined by OSContainer: 1
active_processor_count: sched_getaffinity processor count: 4
active_processor_count: determined by OSContainer: 1
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-8u191-b12-2ubuntu0.16.04.1-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)
```

Banyak yang JVMs terpengaruh oleh masalah ini memiliki opsi untuk menonaktifkan perilaku ini dan membangun kembali akses penuh ke semua yang ada CPUs di instance. Nonaktifkan perilaku yang tidak diinginkan dan buat akses penuh ke semua instance CPUs dengan memasukkan `-XX:-UseContainerSupport` parameter saat memulai aplikasi Java. Misalnya, jalankan `java` perintah untuk memulai JVM Anda sebagai berikut:

```
java -XX:-UseContainerSupport -XX:+UnlockDiagnosticVMOptions -XX:+PrintActiveCpus -version
```

Ini menghasilkan output berikut:

```
active_processor_count: sched_getaffinity processor count: 4
active_processor_count: sched_getaffinity processor count: 4
active_processor_count: sched_getaffinity processor count: 4
active_processor_count: sched_getaffinity processor count: 4
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-8u191-b12-2ubuntu0.16.04.1-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)
```

Periksa apakah JVM yang digunakan dalam wadah Anda mendukung parameter. `-XX:-UseContainerSupport` Jika ya, selalu lewati parameter saat Anda memulai JVM Anda. Ini menyediakan akses ke semua CPUs dalam kasus Anda. 

Anda mungkin juga mengalami masalah ini saat secara tidak langsung menggunakan JVM dalam SageMaker wadah AI. Misalnya, saat menggunakan JVM untuk mendukung SparkMl Scala. `-XX:-UseContainerSupport`Parameter juga mempengaruhi output yang dikembalikan oleh Java `Runtime.getRuntime().availableProcessors()` API``. 

## Masalah dengan penerapan file model.tar.gz
<a name="deploy-model-troubleshoot-tarballs"></a>

Saat Anda menerapkan model menggunakan `model.tar.gz` file, tarball model tidak boleh menyertakan symlink apa pun. Symlink menyebabkan pembuatan model gagal. Selain itu, kami menyarankan Anda untuk tidak memasukkan file yang tidak perlu di tarball.

## Kontainer primer tidak lulus pemeriksaan kesehatan ping
<a name="deploy-model-troubleshoot-ping"></a>

 Jika wadah utama Anda gagal melakukan ping pemeriksaan kesehatan dengan pesan kesalahan berikut, ini menunjukkan bahwa ada masalah dengan penampung atau skrip Anda: 

```
The primary container for production variant beta did not pass the ping health check. Please check CloudWatch Logs logs for this endpoint.
```

 Untuk memecahkan masalah ini, Anda harus memeriksa CloudWatch log Log untuk titik akhir yang dimaksud untuk melihat apakah ada kesalahan atau masalah yang mencegah penampung merespons atau. `/ping` `/invocations` Log dapat memberikan pesan kesalahan yang dapat menunjukkan masalah. Setelah Anda mengidentifikasi alasan kesalahan dan kegagalan, Anda harus menyelesaikan kesalahan. 

 Ini juga merupakan praktik yang baik untuk menguji penerapan model secara lokal sebelum membuat titik akhir. 
+  Gunakan mode lokal di SageMaker SDK untuk meniru lingkungan yang dihosting dengan menerapkan model ke titik akhir lokal. Untuk informasi selengkapnya, lihat [Mode Lokal](https://sagemaker.readthedocs.io/en/stable/overview.html#local-mode). 
+  Gunakan perintah vanilla docker untuk menguji container merespons /ping dan /invocations. Untuk informasi selengkapnya, lihat [local\$1test](https://github.com/aws/amazon-sagemaker-examples/tree/main/advanced_functionality/scikit_bring_your_own/container/local_test). 

# Praktik terbaik pengoptimalan biaya inferensi
<a name="inference-cost-optimization"></a>

Konten berikut menyediakan teknik dan pertimbangan untuk mengoptimalkan biaya titik akhir. Anda dapat menggunakan rekomendasi ini untuk mengoptimalkan biaya untuk titik akhir baru dan yang sudah ada.

## Praktik terbaik
<a name="inference-cost-optimization-list"></a>

Untuk mengoptimalkan biaya Inferensi SageMaker AI Anda, ikuti praktik terbaik ini.

### Pilih opsi inferensi terbaik untuk pekerjaan itu.
<a name="collapsible-1"></a>

SageMaker AI menawarkan 4 opsi inferensi berbeda untuk memberikan opsi inferensi terbaik untuk pekerjaan itu. Anda mungkin dapat menghemat biaya dengan memilih opsi inferensi yang paling sesuai dengan beban kerja Anda.
+ Gunakan [inferensi real-time](https://docs.aws.amazon.com/sagemaker/latest/dg/realtime-endpoints.html) untuk beban kerja latensi rendah dengan pola lalu lintas yang dapat diprediksi yang harus memiliki karakteristik latensi yang konsisten dan selalu tersedia. Anda membayar untuk menggunakan instance.
+ Gunakan [inferensi tanpa server](https://docs.aws.amazon.com/sagemaker/latest/dg/serverless-endpoints.html) untuk beban kerja sinkron yang memiliki pola lalu lintas runcing dan dapat menerima variasi dalam latensi p99. Inferensi tanpa server secara otomatis menskalakan untuk memenuhi lalu lintas beban kerja Anda sehingga Anda tidak membayar sumber daya idle apa pun. Anda hanya membayar untuk durasi permintaan inferensi. Model dan wadah yang sama dapat digunakan dengan inferensi real-time dan tanpa server sehingga Anda dapat beralih di antara dua mode ini jika kebutuhan Anda berubah.
+ Gunakan [inferensi asinkron](https://docs.aws.amazon.com/sagemaker/latest/dg/async-inference.html) untuk beban kerja asinkron yang memproses hingga 1 GB data (seperti korpus teks, gambar, video, dan audio) yang tidak sensitif terhadap latensi dan sensitif biaya. Dengan inferensi asinkron, Anda dapat mengontrol biaya dengan menentukan jumlah instans tetap untuk tingkat pemrosesan optimal alih-alih menyediakan untuk puncak. Anda juga dapat menurunkan skala ke nol untuk menghemat biaya tambahan.
+ Gunakan [inferensi batch](https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform.html) untuk beban kerja yang Anda perlukan inferensi untuk sekumpulan besar data untuk proses yang terjadi secara offline (yaitu, Anda tidak memerlukan titik akhir yang persisten). Anda membayar instance untuk durasi pekerjaan inferensi batch.

### Ikut serta dalam SageMaker AI Savings Plan.
<a name="collapsible-2"></a>
+ Jika Anda memiliki tingkat penggunaan yang konsisten di semua layanan SageMaker AI, Anda dapat ikut serta dalam SageMaker AI Savings Plan untuk membantu mengurangi biaya hingga 64%.
+ [Amazon SageMaker AI Savings Plans](https://aws.amazon.com/savingsplans/ml-pricing/) menyediakan model harga yang fleksibel untuk Amazon SageMaker AI, dengan imbalan komitmen terhadap jumlah penggunaan yang konsisten (diukur dalam \$1/jam) untuk jangka waktu satu tahun atau tiga tahun. Paket ini secara otomatis berlaku untuk penggunaan instans SageMaker AI ML yang memenuhi syarat termasuk SageMaker Studio Classic Notebook, SageMaker On-Demand Notebook, SageMaker Processing, SageMaker Data Wrangler, SageMaker Training, SageMaker Real-Time Inference, dan SageMaker Batch Transform terlepas dari keluarga instans, ukuran, atau Wilayah. Misalnya, Anda dapat mengubah penggunaan dari instance CPU ml.c5.xlarge yang berjalan di US East (Ohio) ke instans ML.INF1 di US West (Oregon) untuk beban kerja inferensi kapan saja dan secara otomatis terus membayar harga Savings Plans.

### Optimalkan model Anda agar berjalan lebih baik.
<a name="collapsible-3"></a>
+ Model yang tidak dioptimalkan dapat menyebabkan waktu berjalan lebih lama dan menggunakan lebih banyak sumber daya. Anda dapat memilih untuk menggunakan lebih banyak atau lebih besar contoh untuk meningkatkan kinerja; Namun, ini mengarah pada biaya yang lebih tinggi.
+ Dengan mengoptimalkan model Anda agar lebih berkinerja, Anda mungkin dapat menurunkan biaya dengan menggunakan instance yang lebih sedikit atau lebih kecil sambil mempertahankan karakteristik kinerja yang sama atau lebih baik. Anda dapat menggunakan [SageMaker Neo](https://aws.amazon.com/sagemaker/neo/) dengan SageMaker AI Inference untuk mengoptimalkan model secara otomatis. Untuk detail dan sampel lebih lanjut, lihat[Optimalisasi kinerja model dengan SageMaker Neo](neo.md).

### Gunakan jenis dan ukuran instans yang paling optimal untuk inferensi waktu nyata.
<a name="collapsible-4"></a>
+ SageMaker Inferensi memiliki lebih dari 70 jenis dan ukuran instans yang dapat digunakan untuk menerapkan model ML termasuk chipset AWS Inferentia dan Graviton yang dioptimalkan untuk ML. Memilih instance yang tepat untuk model Anda membantu memastikan Anda memiliki instance berkinerja terbaik dengan biaya terendah untuk model Anda.
+ Dengan menggunakan [Inference Recommender](https://docs.aws.amazon.com/sagemaker/latest/dg/inference-recommender.html), Anda dapat dengan cepat membandingkan instans yang berbeda untuk memahami kinerja model dan biaya. Dengan hasil ini, Anda dapat memilih instans untuk digunakan dengan laba atas investasi terbaik.

### Tingkatkan efisiensi dan biaya dengan menggabungkan beberapa titik akhir menjadi satu titik akhir untuk inferensi waktu nyata.
<a name="collapsible-5"></a>
+ Biaya dapat bertambah dengan cepat saat Anda menerapkan beberapa titik akhir, terutama jika titik akhir tidak sepenuhnya memanfaatkan instance yang mendasarinya. Untuk mengetahui apakah instans kurang digunakan, periksa metrik penggunaan (CPU, GPU, dll) di Amazon untuk instance Anda. CloudWatch Jika Anda memiliki lebih dari satu titik akhir ini, Anda dapat menggabungkan model atau wadah pada beberapa titik akhir ini menjadi satu titik akhir.
+ Dengan menggunakan [Multi-model endpoint](https://docs.aws.amazon.com/sagemaker/latest/dg/multi-model-endpoints.html) (MME) atau [Multi-container endpoint](https://docs.aws.amazon.com/sagemaker/latest/dg/multi-container-endpoints.html) (MCE), Anda dapat menerapkan beberapa model atau kontainer ML dalam satu titik akhir untuk berbagi instance di beberapa model atau kontainer dan meningkatkan laba atas investasi Anda. Untuk mempelajari lebih lanjut, lihat ini [Menghemat biaya inferensi dengan menggunakan titik akhir multi-model Amazon SageMaker AI atau Menerapkan beberapa kontainer penyajian pada satu instance menggunakan titik akhir](https://aws.amazon.com/blogs/machine-learning/save-on-inference-costs-by-using-amazon-sagemaker-multi-model-endpoints/) [multi-kontainer Amazon SageMaker AI di](https://aws.amazon.com/blogs/machine-learning/deploy-multiple-serving-containers-on-a-single-instance-using-amazon-sagemaker-multi-container-endpoints/) blog Machine Learning. AWS 

### Siapkan penskalaan otomatis agar sesuai dengan persyaratan beban kerja Anda untuk inferensi real-time dan asinkron.
<a name="collapsible-6"></a>
+ Tanpa penskalaan otomatis, Anda perlu menyediakan lalu lintas puncak atau tidak tersedianya model risiko. Kecuali lalu lintas ke model Anda stabil sepanjang hari, akan ada kelebihan kapasitas yang tidak terpakai. Hal ini menyebabkan rendahnya pemanfaatan dan sumber daya yang terbuang.
+ [Autoscaling](https://docs.aws.amazon.com/sagemaker/latest/dg/endpoint-auto-scaling.html) adalah out-of-the-box fitur yang memantau beban kerja Anda dan secara dinamis menyesuaikan kapasitas untuk mempertahankan kinerja yang stabil dan dapat diprediksi dengan biaya terendah yang mungkin. Ketika beban kerja meningkat, penskalaan otomatis membawa lebih banyak contoh online. Ketika beban kerja berkurang, penskalaan otomatis menghapus instans yang tidak perlu, membantu Anda mengurangi biaya komputasi. Untuk mempelajari lebih lanjut, lihat [Mengonfigurasi titik akhir inferensi penskalaan otomatis di Amazon AI di blog Machine SageMaker Learning](https://aws.amazon.com/blogs/machine-learning/configuring-autoscaling-inference-endpoints-in-amazon-sagemaker/). AWS 

# Praktik terbaik untuk meminimalkan gangguan selama peningkatan driver GPU
<a name="inference-gpu-drivers"></a>

SageMaker Penerapan Model AI memutakhirkan driver GPU pada instans ML untuk opsi Inferensi Real-time, Batch, dan Asynchronous dari waktu ke waktu untuk memberi pelanggan akses ke peningkatan dari penyedia driver. Di bawah ini Anda dapat melihat versi GPU yang didukung untuk setiap opsi Inferensi. Versi driver yang berbeda dapat mengubah cara model Anda berinteraksi dengan. GPUs Di bawah ini adalah beberapa strategi untuk membantu Anda memahami cara kerja aplikasi Anda dengan versi driver yang berbeda. 

## Versi saat ini dan keluarga instans yang didukung
<a name="inference-gpu-drivers-versions"></a>

Amazon SageMaker AI Inference mendukung driver dan keluarga instans berikut:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/inference-gpu-drivers.html)

## Memecahkan masalah wadah model Anda dengan kemampuan GPU
<a name="inference-gpu-drivers-troubleshoot"></a>

Jika Anda mengalami masalah saat menjalankan beban kerja GPU, lihat panduan berikut:

### Kegagalan deteksi kartu GPU atau kesalahan inisialisasi NVIDIA
<a name="collapsible-section-0"></a>

Jalankan perintah `nvidia-smi` (NVIDIA System Management Interface) dari dalam wadah Docker. Jika Antarmuka Manajemen Sistem NVIDIA mendeteksi kesalahan deteksi GPU atau kesalahan inisialisasi NVIDIA, itu akan mengembalikan pesan kesalahan berikut:

```
Failed to initialize NVML: Driver/library version mismatch
```

Berdasarkan kasus penggunaan Anda, ikuti praktik terbaik berikut ini untuk mengatasi kegagalan atau kesalahan:
+ Ikuti rekomendasi praktik terbaik yang dijelaskan dalam [Jika Anda membawa wadah model (BYO) Anda sendiri](#collapsible-byoc) dropdown.
+ Ikuti rekomendasi praktik terbaik yang dijelaskan dalam [Jika Anda menggunakan lapisan kompatibilitas CUDA](#collapsible-cuda-compat) dropdown.

Lihat [halaman Antarmuka Manajemen Sistem NVIDIA](https://developer.nvidia.com/nvidia-system-management-interface) di situs web NVIDIA untuk informasi lebih lanjut.

### `CannotStartContainerError`
<a name="collapsible-section-cannot-start-container"></a>

 Jika instans GPU Anda menggunakan versi driver NVIDIA yang tidak kompatibel dengan versi CUDA di wadah Docker, maka penerapan titik akhir akan gagal dengan pesan kesalahan berikut: 

```
 Failure reason CannotStartContainerError. Please ensure the model container for variant <variant_name> starts correctly when invoked with 'docker run <image> serve'
```

Berdasarkan kasus penggunaan Anda, ikuti praktik terbaik berikut ini untuk mengatasi kegagalan atau kesalahan:
+ Ikuti rekomendasi praktik terbaik yang dijelaskan dalam [Driver yang bergantung pada wadah saya lebih besar dari versi pada instance GPU ML](#collapsible-driver-dependency-higher) dropdown.
+ Ikuti rekomendasi praktik terbaik yang dijelaskan dalam [Jika Anda menggunakan lapisan kompatibilitas CUDA](#collapsible-cuda-compat) dropdown.

## Praktik terbaik untuk bekerja dengan versi driver yang tidak cocok
<a name="inference-gpu-drivers-cuda-toolkit-updates"></a>

Berikut ini memberikan informasi tentang cara memperbarui driver GPU Anda:

### Driver yang bergantung pada wadah saya lebih rendah dari versi pada instance GPU ML
<a name="collapsible-driver-dependency-lower"></a>

Tidak ada tindakan yang diperlukan. NVIDIA menyediakan kompatibilitas mundur.

### Driver yang bergantung pada wadah saya lebih besar dari versi pada instance GPU ML
<a name="collapsible-driver-dependency-higher"></a>

Jika ini adalah perbedaan versi kecil, tidak ada tindakan yang diperlukan. NVIDIA menyediakan kompatibilitas maju versi minor.

Jika itu adalah perbedaan versi utama, CUDA Compatibility Package perlu diinstal. Silakan merujuk ke [CUDA Compatibility Package](https://docs.nvidia.com/deploy/cuda-compatibility/index.html) dalam dokumentasi NVIDIA.

**penting**  
CUDA Compatibility Package tidak kompatibel ke belakang sehingga perlu dinonaktifkan jika versi driver pada instance lebih besar dari versi CUDA Compatibility Package.

### Jika Anda membawa wadah model (BYO) Anda sendiri
<a name="collapsible-byoc"></a>

Pastikan tidak ada paket driver NVIDIA yang dibundel dalam gambar yang dapat menyebabkan konflik dengan versi driver NVIDIA host.

### Jika Anda menggunakan lapisan kompatibilitas CUDA
<a name="collapsible-cuda-compat"></a>

Untuk memverifikasi apakah platform versi driver Nvidia mendukung versi CUDA Compatibility Package yang diinstal dalam wadah model, lihat dokumentasi [CUDA](https://docs.nvidia.com/deploy/cuda-compatibility/index.html#use-the-right-compat-package). Jika platform versi driver Nvidia tidak mendukung versi CUDA Compatibility Package, Anda dapat menonaktifkan atau menghapus CUDA Compatibility Package dari gambar wadah model. Jika versi libs kompatibilitas CUDA didukung oleh versi driver Nvidia terbaru, kami sarankan Anda mengaktifkan CUDA Compatibility Package berdasarkan versi driver Nvidia yang terdeteksi untuk kompatibilitas masa depan dengan menambahkan cuplikan kode di bawah ini ke dalam skrip shell start up container (di skrip). `ENTRYPOINT`

Skrip menunjukkan cara mengganti penggunaan CUDA Compatibility Package secara dinamis berdasarkan versi driver Nvidia yang terdeteksi pada host yang digunakan untuk wadah model Anda. Saat SageMaker merilis versi driver Nvidia yang lebih baru, CUDA Compatibility Package yang diinstal dapat dimatikan secara otomatis jika aplikasi CUDA didukung secara native pada driver baru.

```
#!/bin/bash

verlt() {
    [ "$1" = "$2" ] && return 1 || [ "$1" = "$(echo -e "$1\n$2" | sort -V | head -n1)" ]
}

if [ -f /usr/local/cuda/compat/libcuda.so.1 ]; then
    CUDA_COMPAT_MAX_DRIVER_VERSION=$(readlink /usr/local/cuda/compat/libcuda.so.1 | cut -d'.' -f 3-)
    echo "CUDA compat package should be installed for NVIDIA driver smaller than ${CUDA_COMPAT_MAX_DRIVER_VERSION}"
    NVIDIA_DRIVER_VERSION=$(sed -n 's/^NVRM.*Kernel Module *\([0-9.]*\).*$/\1/p' /proc/driver/nvidia/version 2>/dev/null || true)
    echo "Current installed NVIDIA driver version is ${NVIDIA_DRIVER_VERSION}"
    if verlt $NVIDIA_DRIVER_VERSION $CUDA_COMPAT_MAX_DRIVER_VERSION; then
        echo "Adding CUDA compat to LD_LIBRARY_PATH"
        export LD_LIBRARY_PATH=/usr/local/cuda/compat:$LD_LIBRARY_PATH
        echo $LD_LIBRARY_PATH
    else
        echo "Skipping CUDA compat setup as newer NVIDIA driver is installed"
    fi
else
    echo "Skipping CUDA compat setup as package not found"
fi
```

# Praktik terbaik untuk keamanan dan kesehatan titik akhir dengan Amazon AI SageMaker
<a name="best-practice-endpoint-security"></a>

Untuk mengatasi masalah keamanan terbaru, Amazon SageMaker AI secara otomatis menambal titik akhir ke perangkat lunak terbaru dan paling aman. Namun, jika Anda salah mengubah dependensi titik akhir Anda, Amazon SageMaker AI tidak dapat secara otomatis menambal titik akhir Anda atau mengganti instance Anda yang tidak sehat. Untuk memastikan titik akhir Anda tetap memenuhi syarat untuk pembaruan otomatis, terapkan praktik terbaik berikut.

## Jangan hapus sumber daya saat titik akhir Anda menggunakannya
<a name="dont-delete-resources-in-use"></a>

Hindari menghapus salah satu sumber daya berikut jika Anda memiliki titik akhir yang menggunakannya:
+ Definisi model yang Anda buat dengan [CreateModel](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html)tindakan di Amazon SageMaker API.
+ Artefak model apa pun yang Anda tentukan untuk [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ContainerDefinition.html#sagemaker-Type-ContainerDefinition-ModelDataUrl](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ContainerDefinition.html#sagemaker-Type-ContainerDefinition-ModelDataUrl)parameter.
+ Peran IAM dan izin yang Anda tentukan untuk parameter. [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html#sagemaker-CreateModel-request-ExecutionRoleArn](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html#sagemaker-CreateModel-request-ExecutionRoleArn)
**Pengingat**  
Dalam definisi model yang digunakan endpoint Anda, pastikan bahwa peran IAM yang Anda tentukan memiliki izin yang benar. Untuk informasi selengkapnya tentang izin yang diperlukan untuk titik akhir Amazon SageMaker AI, lihat. [CreateModel API: Izin Peran Eksekusi](sagemaker-roles.md#sagemaker-roles-createmodel-perms)
+ Gambar inferensi yang Anda tentukan untuk [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ContainerDefinition.html#sagemaker-Type-ContainerDefinition-Image](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ContainerDefinition.html#sagemaker-Type-ContainerDefinition-Image)parameter, jika Anda menggunakan kode inferensi Anda sendiri.
**Pengingat**  
Jika Anda menggunakan fitur registri pribadi, pastikan Amazon SageMaker AI dapat mengakses registri pribadi selama Anda menggunakan titik akhir.
+ Subnet Amazon VPC dan grup keamanan yang Anda tentukan untuk parameter. [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html#sagemaker-CreateModel-request-VpcConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html#sagemaker-CreateModel-request-VpcConfig)
+ Konfigurasi titik akhir yang Anda buat dengan [CreateEndpointConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpointConfig.html)tindakan di Amazon SageMaker API.
+ Kunci KMS atau bucket Amazon S3 apa pun yang Anda tentukan dalam konfigurasi titik akhir.
**Pengingat**  
Pastikan Anda tidak menonaktifkan kunci KMS ini.

## Ikuti prosedur ini untuk memperbarui titik akhir Anda
<a name="procedures-to-update-endpoint"></a>

Saat Anda memperbarui titik akhir Amazon SageMaker AI, gunakan salah satu prosedur berikut yang berlaku untuk kebutuhan Anda.

**Untuk memperbarui setelan definisi model Anda**

1. Buat definisi model baru dengan pengaturan yang diperbarui dengan menggunakan CreateModel tindakan di Amazon SageMaker API.

1. Buat konfigurasi endpoint baru yang menggunakan definisi model baru. Untuk melakukan ini, gunakan CreateEndpointConfig tindakan di Amazon SageMaker API.

1. Perbarui titik akhir Anda dengan konfigurasi titik akhir yang baru sehingga pengaturan definisi model yang diperbarui diterapkan.

1. (Opsional) Hapus konfigurasi titik akhir lama jika Anda tidak menggunakannya dengan titik akhir lainnya. Anda juga dapat menghapus sumber daya yang Anda tentukan dalam definisi model jika Anda tidak menggunakannya dengan titik akhir lainnya. Sumber daya ini mencakup artefak model di Amazon S3 dan gambar inferensi.

**Untuk memperbarui konfigurasi titik akhir Anda**

1. Buat konfigurasi titik akhir baru dengan pengaturan yang diperbarui.

1. Perbarui titik akhir Anda dengan konfigurasi baru sehingga pembaruan Anda berlaku.

1. (Opsional) Hapus konfigurasi titik akhir lama jika Anda tidak menggunakannya dengan titik akhir lainnya. Anda juga dapat menghapus sumber daya yang Anda tentukan dalam definisi model jika Anda tidak menggunakannya dengan titik akhir lainnya. Sumber daya ini mencakup artefak model di Amazon S3 dan gambar inferensi.

Setiap kali Anda membuat definisi model baru atau konfigurasi titik akhir, kami sarankan Anda menggunakan nama yang unik. Jika Anda ingin memperbarui sumber daya ini dan mempertahankan nama aslinya, gunakan prosedur berikut.

**Untuk memperbarui pengaturan model Anda dan mempertahankan nama model asli**

1. Hapus definisi model yang ada. Pada titik ini, titik akhir apa pun yang menggunakan model rusak, tetapi Anda memperbaikinya dalam langkah-langkah berikut.

1. Buat definisi model lagi dengan pengaturan yang diperbarui, dan gunakan nama model yang sama.

1. Buat konfigurasi endpoint baru yang menggunakan definisi model yang diperbarui.

1. Perbarui titik akhir Anda dengan konfigurasi titik akhir baru sehingga pembaruan Anda berlaku.

**Untuk memperbarui konfigurasi titik akhir Anda dan mempertahankan nama konfigurasi asli**

1. Hapus konfigurasi endpoint yang ada.

1. Buat konfigurasi titik akhir baru dengan pengaturan yang diperbarui, dan gunakan nama aslinya.

1. Perbarui titik akhir Anda dengan konfigurasi baru sehingga pembaruan Anda berlaku.

# Memperbarui kontainer inferensi untuk mematuhi NVIDIA Container Toolkit
<a name="container-nvidia-compliance"></a>

Pada versi 1.17.4 dan yang lebih tinggi, NVIDIA Container Toolkit tidak lagi memasang pustaka kompatibilitas CUDA secara otomatis. Perubahan perilaku ini dapat memengaruhi beban kerja inferensi SageMaker AI Anda. Titik akhir SageMaker AI dan pekerjaan transformasi batch Anda mungkin menggunakan kontainer yang tidak kompatibel dengan versi terbaru dari NVIDIA Container Toolkit. Untuk memastikan bahwa beban kerja Anda memenuhi persyaratan terbaru, Anda mungkin perlu memperbarui titik akhir atau mengonfigurasi pekerjaan transformasi batch Anda.

## Memperbarui titik akhir SageMaker AI untuk kepatuhan
<a name="endpoint-compliance"></a>

Kami menyarankan Anda memperbarui titik akhir SageMaker AI yang ada atau membuat yang baru yang mendukung perilaku default terbaru.

Untuk memastikan titik akhir Anda kompatibel dengan versi terbaru dari NVIDIA Container Toolkit, ikuti langkah-langkah berikut:

1. Perbarui cara Anda mengatur pustaka kompatibilitas CUDA jika Anda membawa wadah Anda sendiri.

1. Tentukan inferensi Amazon Machine Image (AMI) yang mendukung perilaku NVIDIA Container Toolkit terbaru. Anda menentukan AMI saat memperbarui titik akhir yang ada atau membuat yang baru.

### Memperbarui pengaturan kompatibilitas CUDA jika Anda membawa wadah Anda sendiri
<a name="cuda-compatibility"></a>

Pustaka kompatibilitas CUDA memungkinkan kompatibilitas ke depan. Kompatibilitas ini berlaku untuk semua versi toolkit CUDA yang lebih baru dari driver NVIDIA yang disediakan oleh instance AI. SageMaker 

Anda harus mengaktifkan pustaka kompatibilitas CUDA hanya ketika driver NVIDIA yang digunakan instance SageMaker AI memiliki versi yang lebih lama daripada toolkit CUDA dalam wadah model. Jika wadah model Anda tidak memerlukan kompatibilitas CUDA, Anda dapat melewati langkah ini. Misalnya, Anda dapat melewati langkah ini jika Anda tidak berencana untuk menggunakan toolkit CUDA yang lebih baru daripada yang disediakan oleh SageMaker instance AI.

Karena perubahan yang diperkenalkan di NVIDIA Container Toolkit versi 1.17.4, Anda dapat secara eksplisit mengaktifkan pustaka kompatibilitas CUDA, jika diperlukan, dengan menambahkannya ke dalam wadah. `LD_LIBRARY_PATH`

Kami menyarankan Anda mengaktifkan kompatibilitas CUDA berdasarkan versi driver NVIDIA yang terdeteksi. Untuk mengaktifkannya, tambahkan cuplikan kode di bawah ini ke skrip shell startup container. Tambahkan kode ini di `ENTRYPOINT` skrip.

Skrip berikut menunjukkan cara mengganti penggunaan kompatibilitas CUDA secara dinamis berdasarkan versi driver NVIDIA yang terdeteksi pada host yang digunakan untuk wadah model Anda.

```
#!/bin/bash

verlt() {
    [ "$1" = "$2" ] && return 1 || [ "$1" = "$(echo -e "$1\n$2" | sort -V | head -n1)" ]
}

if [ -f /usr/local/cuda/compat/libcuda.so.1 ]; then
    CUDA_COMPAT_MAX_DRIVER_VERSION=$(readlink /usr/local/cuda/compat/libcuda.so.1 | cut -d'.' -f 3-)
    echo "CUDA compat package should be installed for NVIDIA driver smaller than ${CUDA_COMPAT_MAX_DRIVER_VERSION}"
    NVIDIA_DRIVER_VERSION=$(sed -n 's/^NVRM.*Kernel Module *\([0-9.]*\).*$/\1/p' /proc/driver/nvidia/version 2>/dev/null || true)
    echo "Current installed NVIDIA driver version is ${NVIDIA_DRIVER_VERSION}"
    if verlt $NVIDIA_DRIVER_VERSION $CUDA_COMPAT_MAX_DRIVER_VERSION; then
        echo "Adding CUDA compat to LD_LIBRARY_PATH"
        export LD_LIBRARY_PATH=/usr/local/cuda/compat:$LD_LIBRARY_PATH
        echo $LD_LIBRARY_PATH
    else
        echo "Skipping CUDA compat setup as newer NVIDIA driver is installed"
    fi
else
    echo "Skipping CUDA compat setup as package not found"
fi
```

### Menentukan AMI Inferensi yang sesuai dengan NVIDIA Container Toolkit
<a name="specify-inference-ami"></a>

Dalam `InferenceAmiVersion` parameter tipe `ProductionVariant` data, Anda dapat memilih AMI untuk titik akhir SageMaker AI. Masing-masing yang didukung AMIs adalah gambar yang telah dikonfigurasi sebelumnya. Setiap gambar dikonfigurasi AWS dengan satu set perangkat lunak dan versi driver.

Secara default, SageMaker AI AMIs mengikuti perilaku warisan. Mereka secara otomatis memasang pustaka kompatibilitas CUDA di wadah. Untuk membuat titik akhir menggunakan perilaku baru, Anda harus menentukan versi AMI inferensi yang dikonfigurasi untuk perilaku baru.

Versi AMI inferensi berikut saat ini mengikuti perilaku baru. Mereka tidak memasang pustaka kompatibilitas CUDA secara otomatis.

al2- ami-sagemaker-inference-gpu -2-1  
+ Versi driver NVIDIA: 535.54.03
+ Versi CUDA: 12.2

al2- ami-sagemaker-inference-gpu -3-1  
+ Versi driver NVIDIA: 550.144.01
+ Versi CUDA: 12.4

### Memperbarui titik akhir yang ada
<a name="update-existing-endpoint"></a>

Gunakan contoh berikut untuk memperbarui titik akhir yang ada. Contoh menggunakan versi AMI inferensi yang menonaktifkan pemasangan otomatis pustaka kompatibilitas CUDA.

```
ENDPOINT_NAME="<endpoint name>"
INFERENCE_AMI_VERSION="al2-ami-sagemaker-inference-gpu-3-1"

# Obtaining current endpoint configuration
CURRENT_ENDPOINT_CFG_NAME=$(aws sagemaker describe-endpoint --endpoint-name "$ENDPOINT_NAME" --query "EndpointConfigName" --output text)
NEW_ENDPOINT_CFG_NAME="${CURRENT_ENDPOINT_CFG_NAME}new"

# Copying Endpoint Configuration with AMI version specified
aws sagemaker describe-endpoint-config \
    --endpoint-config-name ${CURRENT_ENDPOINT_CFG_NAME} \
    --output json | \
jq "del(.EndpointConfigArn, .CreationTime) | . + {
    EndpointConfigName: \"${NEW_ENDPOINT_CFG_NAME}\",
    ProductionVariants: (.ProductionVariants | map(.InferenceAmiVersion = \"${INFERENCE_AMI_VERSION}\"))
}" > /tmp/new_endpoint_config.json

# Make sure all fields in the new endpoint config look as expected
cat /tmp/new_endpoint_config.json

# Creating new endpoint config
aws sagemaker create-endpoint-config \
   --cli-input-json file:///tmp/new_endpoint_config.json
    
# Updating the endpoint
aws sagemaker update-endpoint \
    --endpoint-name "$ENDPOINT_NAME" \
    --endpoint-config-name "$NEW_ENDPOINT_CFG_NAME" \
    --retain-all-variant-properties
```

### Membuat titik akhir baru
<a name="create-new-endpoint"></a>

Gunakan contoh berikut untuk membuat endpoint baru. Contoh menggunakan versi AMI inferensi yang menonaktifkan pemasangan otomatis pustaka kompatibilitas CUDA.

```
INFERENCE_AMI_VERSION="al2-ami-sagemaker-inference-gpu-3-1"

aws sagemakercreate-endpoint-config \
 --endpoint-config-name "<endpoint_config>" \
 --production-variants '[{ \
    ....
    "InferenceAmiVersion":  "${INFERENCE_AMI_VERSION}", \
    ...
    "}]'

aws sagemaker create-endpoint \
--endpoint-name "<endpoint_name>" \
--endpoint-config-name "<endpoint_config>"
```

## Menjalankan pekerjaan transformasi batch yang sesuai
<a name="batch-compliance"></a>

*Transformasi Batch* adalah opsi inferensi yang paling cocok untuk permintaan memproses data dalam jumlah besar secara offline. Untuk membuat pekerjaan transformasi batch, Anda menggunakan tindakan `CreateTransformJob` API. Untuk informasi selengkapnya, lihat [Transformasi Batch untuk inferensi dengan Amazon AI SageMaker](batch-transform.md).

Perilaku yang berubah dari NVIDIA Container Toolkit memengaruhi pekerjaan transformasi batch. Untuk menjalankan transformasi batch yang sesuai dengan persyaratan NVIDIA Container Toolkit, lakukan hal berikut:

1. Jika Anda ingin menjalankan transformasi batch dengan model yang Anda bawa penampungnya sendiri, pertama-tama, perbarui wadah untuk kompatibilitas CUDA. Untuk memperbaruinya, ikuti prosesnya di[Memperbarui pengaturan kompatibilitas CUDA jika Anda membawa wadah Anda sendiri](#cuda-compatibility).

1. Gunakan aksi `CreateTransformJob` API untuk membuat pekerjaan transformasi batch. Dalam permintaan Anda, atur variabel `SAGEMAKER_CUDA_COMPAT_DISABLED` lingkungan ke`true`. Parameter ini menginstruksikan ke wadah untuk tidak secara otomatis memasang pustaka kompatibilitas CUDA.

   Misalnya, saat Anda membuat pekerjaan transformasi batch dengan menggunakan AWS CLI, Anda mengatur variabel lingkungan dengan `--environment` parameter:

   ```
   aws sagemaker create-transform-job \
       --environment '{"SAGEMAKER_CUDA_COMPAT_DISABLED": "true"}'\
       . . .
   ```