Pilih preferensi cookie Anda

Kami menggunakan cookie penting serta alat serupa yang diperlukan untuk menyediakan situs dan layanan. Kami menggunakan cookie performa untuk mengumpulkan statistik anonim sehingga kami dapat memahami cara pelanggan menggunakan situs dan melakukan perbaikan. Cookie penting tidak dapat dinonaktifkan, tetapi Anda dapat mengklik “Kustom” atau “Tolak” untuk menolak cookie performa.

Jika Anda setuju, AWS dan pihak ketiga yang disetujui juga akan menggunakan cookie untuk menyediakan fitur situs yang berguna, mengingat preferensi Anda, dan menampilkan konten yang relevan, termasuk iklan yang relevan. Untuk menerima atau menolak semua cookie yang tidak penting, klik “Terima” atau “Tolak”. Untuk membuat pilihan yang lebih detail, klik “Kustomisasi”.

Contoh kode: SDK untuk Python

Mode fokus
Contoh kode: SDK untuk Python - Amazon SageMaker AI

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

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

Bagian ini menyediakan contoh kode untuk membuat dan memanggil titik akhir yang menggunakan SageMaker Clarify online explainability. Contoh kode ini menggunakan AWS SDK untuk Python.

Data tabular

Contoh berikut menggunakan data tabular dan model SageMaker AI yang disebutmodel_name. Dalam contoh ini, wadah model menerima data dalam format CSV, dan setiap catatan memiliki empat fitur numerik. Dalam konfigurasi minimal ini, hanya untuk tujuan demonstrasi, data dasar SHAP diatur ke nol. Lihat Garis Dasar SHAP untuk Penjelasan untuk mempelajari cara memilih nilai yang lebih sesuai untukShapBaseline.

Konfigurasikan titik akhir, sebagai berikut:

endpoint_config_name = 'tabular_explainer_endpoint_config' response = sagemaker_client.create_endpoint_config( EndpointConfigName=endpoint_config_name, ProductionVariants=[{ 'VariantName': 'AllTraffic', 'ModelName': model_name, 'InitialInstanceCount': 1, 'InstanceType': 'ml.m5.xlarge', }], ExplainerConfig={ 'ClarifyExplainerConfig': { 'ShapConfig': { 'ShapBaselineConfig': { 'ShapBaseline': '0,0,0,0', }, }, }, }, )

Gunakan konfigurasi endpoint untuk membuat endpoint, sebagai berikut:

endpoint_name = 'tabular_explainer_endpoint' response = sagemaker_client.create_endpoint( EndpointName=endpoint_name, EndpointConfigName=endpoint_config_name, )

Gunakan DescribeEndpoint API untuk memeriksa kemajuan pembuatan titik akhir, sebagai berikut:

response = sagemaker_client.describe_endpoint( EndpointName=endpoint_name, ) response['EndpointStatus']

Setelah status endpoint adalah "InService“, panggil titik akhir dengan catatan pengujian, sebagai berikut:

response = sagemaker_runtime_client.invoke_endpoint( EndpointName=endpoint_name, ContentType='text/csv', Accept='text/csv', Body='1,2,3,4', )
catatan

Dalam contoh kode sebelumnya, untuk titik akhir multi-model, berikan TargetModel parameter tambahan dalam permintaan untuk menentukan model mana yang akan ditargetkan pada titik akhir.

Asumsikan bahwa respons memiliki kode status 200 (tidak ada kesalahan), dan muat badan respons, sebagai berikut:

import codecs import json json.load(codecs.getreader('utf-8')(response['Body']))

Tindakan default untuk titik akhir adalah menjelaskan catatan. Berikut ini menunjukkan contoh output dalam objek JSON dikembalikan.

{ "version": "1.0", "predictions": { "content_type": "text/csv; charset=utf-8", "data": "0.0006380207487381" }, "explanations": { "kernel_shap": [ [ { "attributions": [ { "attribution": [-0.00433456] } ] }, { "attributions": [ { "attribution": [-0.005369821] } ] }, { "attributions": [ { "attribution": [0.007917749] } ] }, { "attributions": [ { "attribution": [-0.00261214] } ] } ] ] } }

Gunakan EnableExplanations parameter untuk mengaktifkan penjelasan sesuai permintaan, sebagai berikut:

response = sagemaker_runtime_client.invoke_endpoint( EndpointName=endpoint_name, ContentType='text/csv', Accept='text/csv', Body='1,2,3,4', EnableExplanations='[0]>`0.8`', )
catatan

Dalam contoh kode sebelumnya, untuk titik akhir multi-model, berikan TargetModel parameter tambahan dalam permintaan untuk menentukan model mana yang akan ditargetkan pada titik akhir.

Dalam contoh ini, nilai prediksi kurang dari nilai ambang batas0.8, sehingga catatan tidak dijelaskan:

{ "version": "1.0", "predictions": { "content_type": "text/csv; charset=utf-8", "data": "0.6380207487381995" }, "explanations": {} }

Gunakan alat visualisasi untuk membantu menafsirkan penjelasan yang dikembalikan. Gambar berikut menunjukkan bagaimana plot SHAP dapat digunakan untuk memahami bagaimana setiap fitur berkontribusi pada prediksi. Nilai dasar pada diagram, juga disebut nilai yang diharapkan, adalah prediksi rata-rata dari kumpulan data pelatihan. Fitur yang mendorong nilai yang diharapkan lebih tinggi berwarna merah, dan fitur yang mendorong nilai yang diharapkan lebih rendah berwarna biru. Lihat tata letak gaya aditif SHAP untuk informasi tambahan.

Contoh plot SHAP, yang dapat digunakan untuk memahami bagaimana setiap fitur berkontribusi pada prediksi.

Lihat contoh buku catatan lengkap untuk data tabular.

Data teks

Bagian ini memberikan contoh kode untuk membuat dan memanggil titik akhir penjelasan online untuk data teks. Contoh kode menggunakan SDK untuk Python.

Contoh berikut menggunakan data teks dan model SageMaker AI yang disebutmodel_name. Dalam contoh ini, wadah model menerima data dalam format CSV, dan setiap catatan adalah string tunggal.

endpoint_config_name = 'text_explainer_endpoint_config' response = sagemaker_client.create_endpoint_config( EndpointConfigName=endpoint_config_name, ProductionVariants=[{ 'VariantName': 'AllTraffic', 'ModelName': model_name, 'InitialInstanceCount': 1, 'InstanceType': 'ml.m5.xlarge', }], ExplainerConfig={ 'ClarifyExplainerConfig': { 'InferenceConfig': { 'FeatureTypes': ['text'], 'MaxRecordCount': 100, }, 'ShapConfig': { 'ShapBaselineConfig': { 'ShapBaseline': '"<MASK>"', }, 'TextConfig': { 'Granularity': 'token', 'Language': 'en', }, 'NumberOfSamples': 100, }, }, }, )
  • ShapBaseline: Token khusus yang disediakan untuk pemrosesan bahasa alami (NLP).

  • FeatureTypes: Mengidentifikasi fitur sebagai teks. Jika parameter ini tidak disediakan, penjelasan akan mencoba menyimpulkan jenis fitur.

  • TextConfig: Menentukan unit granularitas dan bahasa untuk analisis fitur teks. Dalam contoh ini, bahasanya adalah bahasa Inggris, dan granularitas token berarti kata dalam teks bahasa Inggris.

  • NumberOfSamples: Batas untuk mengatur batas atas ukuran dataset sintetis.

  • MaxRecordCount: Jumlah maksimum catatan dalam permintaan yang dapat ditangani oleh wadah model. Parameter ini diatur untuk menstabilkan kinerja.

Gunakan konfigurasi endpoint untuk membuat endpoint, sebagai berikut:

endpoint_name = 'text_explainer_endpoint' response = sagemaker_client.create_endpoint( EndpointName=endpoint_name, EndpointConfigName=endpoint_config_name, )

Setelah status titik akhir menjadiInService, panggil titik akhir. Contoh kode berikut menggunakan catatan uji sebagai berikut:

response = sagemaker_runtime_client.invoke_endpoint( EndpointName=endpoint_name, ContentType='text/csv', Accept='text/csv', Body='"This is a good product"', )

Jika permintaan berhasil diselesaikan, badan respons akan mengembalikan objek JSON yang valid yang mirip dengan berikut ini:

{ "version": "1.0", "predictions": { "content_type": "text/csv", "data": "0.9766594\n" }, "explanations": { "kernel_shap": [ [ { "attributions": [ { "attribution": [ -0.007270948666666712 ], "description": { "partial_text": "This", "start_idx": 0 } }, { "attribution": [ -0.018199033666666628 ], "description": { "partial_text": "is", "start_idx": 5 } }, { "attribution": [ 0.01970993241666666 ], "description": { "partial_text": "a", "start_idx": 8 } }, { "attribution": [ 0.1253469515833334 ], "description": { "partial_text": "good", "start_idx": 10 } }, { "attribution": [ 0.03291143366666657 ], "description": { "partial_text": "product", "start_idx": 15 } } ], "feature_type": "text" } ] ] } }

Gunakan alat visualisasi untuk membantu menafsirkan atribusi teks yang dikembalikan. Gambar berikut menunjukkan bagaimana utilitas visualisasi captum dapat digunakan untuk memahami bagaimana setiap kata berkontribusi pada prediksi. Semakin tinggi saturasi warna, semakin tinggi pentingnya kata tersebut. Dalam contoh ini, warna merah cerah yang sangat jenuh menunjukkan kontribusi negatif yang kuat. Warna hijau yang sangat jenuh menunjukkan kontribusi positif yang kuat. Warna putih menunjukkan bahwa kata tersebut memiliki kontribusi netral. Lihat perpustakaan captum untuk informasi tambahan tentang penguraian dan rendering atribusi.

Utilitas visualisasi Captum digunakan untuk memahami bagaimana setiap kata berkontribusi pada prediksi.

Lihat contoh buku catatan lengkap untuk data teks.

PrivasiSyarat situsPreferensi cookie
© 2025, Amazon Web Services, Inc. atau afiliasinya. Semua hak dilindungi undang-undang.