Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Jalankan Pekerjaan Pemrosesan SageMaker Klarifikasi untuk Analisis Bias dan Penjelasan
Untuk menganalisis data dan model Anda untuk bias dan penjelasan menggunakan SageMaker Clarify, Anda harus mengonfigurasi pekerjaan pemrosesan SageMaker Clarify. Panduan ini menunjukkan cara mengkonfigurasi input pekerjaan, output, sumber daya, dan konfigurasi analisis menggunakan Python SageMaker . SDK API SageMakerClarifyProcessor
APIBertindak sebagai pembungkus tingkat tinggi dari. SageMaker CreateProcessingJob
API Ini menyembunyikan banyak detail yang terlibat dalam menyiapkan pekerjaan pemrosesan SageMaker Clarify. Detail untuk menyiapkan pekerjaan termasuk mengambil gambar kontainer SageMaker Clarify URI dan menghasilkan file konfigurasi analisis. Langkah-langkah berikut menunjukkan cara mengkonfigurasi, menginisialisasi, dan meluncurkan pekerjaan pemrosesan SageMaker Clarify.
Konfigurasikan pekerjaan pemrosesan SageMaker Clarify menggunakan API
-
Tentukan objek konfigurasi untuk setiap bagian dari konfigurasi pekerjaan. Porsi ini dapat mencakup yang berikut:
-
Dataset input dan lokasi output: DataConfig
. -
Model atau titik akhir yang akan dianalisis: ModelConfig
. -
Parameter analisis bias: BiasConfig
. -
SHapleyAditif exPlanations (SHAP) parameter analisis: SHAPConfig
. -
Parameter analisis nilai Shapley asimetris (hanya untuk deret waktu):. AsymmetricShapleyValueConfig
Objek konfigurasi untuk pekerjaan pemrosesan SageMaker Clarify bervariasi untuk berbagai jenis format data dan kasus penggunaan. Contoh konfigurasi untuk data tabular dalam CSV dan JSON Lines format, pemrosesan bahasa alami (NLP), computer vision (CV), dan masalah deret waktu (TS) disediakan di bagian berikut.
-
-
Buat
SageMakerClarifyProcessor
objek dan inisialisasi dengan parameter yang menentukan sumber daya pekerjaan. Sumber daya ini mencakup parameter seperti jumlah instance komputasi yang akan digunakan.Contoh kode berikut menunjukkan cara membuat
SageMakerClarifyProcessor
objek dan menginstruksikannya untuk menggunakan satu contohml.c4.xlarge
komputasi untuk melakukan analisis.from sagemaker import clarify clarify_processor = clarify.SageMakerClarifyProcessor( role=role, instance_count=1, instance_type='ml.c4.xlarge', sagemaker_session=session, )
-
Panggil metode run spesifik SageMakerClarifyProcessor
objek dengan objek konfigurasi untuk kasus penggunaan Anda untuk meluncurkan pekerjaan. Metode run ini meliputi yang berikut: -
run_pre_training_bias
-
run_post_training_bias
-
run_bias
-
run_explainability
-
run_bias_and_explainability
Ini
SageMakerClarifyProcessor
menangani beberapa tugas di belakang layar. Tugas ini termasuk mengambil SageMaker Clarify container image universal resource identifier (URI), menyusun file konfigurasi analisis berdasarkan objek konfigurasi yang disediakan, mengunggah file ke bucket Amazon S3, dan mengonfigurasi tugas pemrosesan Clarify. SageMakerBagian yang dapat diperluas berikut menunjukkan cara menghitung metrik bias pra-pelatihan dan pasca-pelatihan, SHAP nilai, dan plot ketergantungan sebagian (PDPs). Bagian menunjukkan pentingnya fitur untuk tipe data ini:
-
Kumpulan data tabel dalam CSV format atau format Garis JSON
-
Kumpulan data pemrosesan bahasa alami (NLP)
-
Kumpulan data visi komputer
-
Panduan untuk menjalankan pekerjaan pemrosesan SageMaker Clarify paralel dengan pelatihan terdistribusi menggunakan Spark mengikuti bagian yang dapat diperluas.
Contoh berikut menunjukkan cara mengkonfigurasi analisis bias dan analisis penjelasan untuk dataset tabel dalam format. CSV Dalam contoh ini, dataset yang masuk memiliki empat kolom fitur dan satu kolom label biner,. Target
Isi dataset adalah sebagai berikut. Nilai label 1
menunjukkan hasil positif.
Target,Age,Gender,Income,Occupation 0,25,0,2850,2 1,36,0,6585,0 1,22,1,1759,1 0,48,0,3446,1 ...
DataConfig
Objek ini menentukan dataset input dan di mana untuk menyimpan output. s3_data_input_path
Parameter dapat berupa URI file dataset atau awalan Amazon URI S3. Jika Anda memberikan URI awalan S3, tugas pemrosesan SageMaker Clarify secara rekursif mengumpulkan semua file Amazon S3 yang terletak di bawah awalan. Nilai untuk s3_output_path
harus menjadi URI awalan S3 untuk menahan hasil analisis. SageMaker menggunakan s3_output_path
while compiling, dan tidak dapat mengambil nilai parameter SageMaker Pipeline, properti, ekspresi, atauExecutionVariable
, yang digunakan selama runtime. Contoh kode berikut menunjukkan cara menentukan konfigurasi data untuk dataset input sampel sebelumnya.
data_config = clarify.DataConfig( s3_data_input_path=dataset_s3_uri, dataset_type='text/csv', headers=[
'Target', 'Age', 'Gender', 'Income', 'Occupation'
], label='Target', s3_output_path=clarify_job_output_s3_uri, )
Cara menghitung semua metrik bias pra-pelatihan untuk kumpulan data CSV
Contoh kode berikut menunjukkan cara mengkonfigurasi BiasConfig
objek untuk mengukur bias input sampel sebelumnya terhadap sampel dengan Gender
nilai0
.
bias_config = clarify.BiasConfig( label_values_or_threshold=[1], facet_name='
Gender
', facet_values_or_threshold=[0], )
Contoh kode berikut menunjukkan cara menggunakan pernyataan run untuk meluncurkan pekerjaan pemrosesan SageMaker Clarify yang menghitung semua metrik bias pra-pelatihan untuk kumpulan data input.
clarify_processor.run_pre_training_bias( data_config=data_config, data_bias_config=bias_config, methods="all", )
Atau, Anda dapat memilih metrik mana yang akan dihitung dengan menetapkan daftar metrik bias pra-pelatihan ke parameter metode. Misalnya, mengganti methods="all"
dengan methods=["CI", "DPL"]
menginstruksikan SageMaker Clarify Processor untuk menghitung hanya Ketidakseimbangan Kelas dan Perbedaan dalam Proporsi Label.
Cara menghitung semua metrik bias pasca-pelatihan untuk kumpulan data CSV
Anda dapat menghitung metrik bias pra-pelatihan sebelum pelatihan. Namun, untuk menghitung metrik bias pasca-pelatihan, Anda harus memiliki model yang terlatih. Contoh output berikut adalah dari model klasifikasi biner yang mengeluarkan data dalam CSV format. Dalam contoh output ini, setiap baris berisi dua kolom. Kolom pertama berisi label yang diprediksi, dan kolom kedua berisi nilai probabilitas untuk label tersebut.
0,0.028986845165491 1,0.825382471084594 ...
Dalam konfigurasi contoh berikut, ModelConfig
objek menginstruksikan pekerjaan untuk menyebarkan SageMaker model ke titik akhir singkat. Titik akhir menggunakan satu instance ml.m4.xlarge
inferensi. Karena parameter content_type
dan tidak accept_type
diatur, mereka secara otomatis menggunakan nilai parameterdataset_type
, yaitutext/csv
.
model_config = clarify.ModelConfig( model_name=your_model, instance_type='ml.m4.xlarge', instance_count=1, )
Contoh konfigurasi berikut menggunakan ModelPredictedLabelConfig
objek dengan indeks label0
. Ini menginstruksikan pekerjaan pemrosesan SageMaker Clarify untuk menemukan label yang diprediksi di kolom pertama keluaran model. Pekerjaan Processing menggunakan pengindeksan berbasis nol dalam contoh ini.
predicted_label_config = clarify.ModelPredictedLabelConfig( label=0, )
Dikombinasikan dengan contoh konfigurasi sebelumnya, contoh kode berikut meluncurkan pekerjaan pemrosesan SageMaker Clarify untuk menghitung semua metrik bias pasca-pelatihan.
clarify_processor.run_post_training_bias( data_config=data_config, data_bias_config=bias_config, model_config=model_config, model_predicted_label_config=predicted_label_config, methods="all", )
Demikian pula, Anda dapat memilih metrik mana yang akan dihitung dengan menetapkan daftar metrik bias pasca-pelatihan ke parameter. methods
Misalnya, ganti methods=“all”
dengan methods=["DPPL", "DI"]
untuk menghitung hanya Perbedaan Proporsi Positif dalam Label yang Diprediksi dan Dampak Berbeda.
Cara menghitung semua metrik bias untuk kumpulan data CSV
Contoh konfigurasi berikut menunjukkan cara menjalankan semua metrik bias pra-pelatihan dan pasca-pelatihan dalam satu SageMaker Klarifikasi pekerjaan pemrosesan.
clarify_processor.run_bias( data_config=data_config, bias_config=bias_config, model_config=model_config, model_predicted_label_config=predicted_label_config, pre_training_methods="all", post_training_methods="all", )
Untuk contoh buku catatan dengan petunjuk tentang cara menjalankan pekerjaan pemrosesan SageMaker Clarify di SageMaker Studio Classic untuk mendeteksi bias, lihat Keadilan dan Keterjelasan
Bagaimana cara menghitung SHAP nilai untuk CSV dataset
SageMaker Clarify menyediakan atribusi fitur menggunakan SHAPalgoritma KernelModelPredictedLabelConfig
objek ini memiliki indeks probabilitas1
. Ini menginstruksikan pekerjaan pemrosesan SageMaker Clarify untuk mengekstrak skor probabilitas dari kolom kedua dari output model (menggunakan pengindeksan berbasis nol).
probability_config = clarify.ModelPredictedLabelConfig( probability=1, )
SHAPConfig
Objek menyediakan SHAP parameter analisis. Dalam contoh ini, SHAP baseline
parameter dihilangkan dan nilai num_clusters
parameternya adalah. 1
Ini menginstruksikan Prosesor SageMaker Clarify untuk menghitung satu SHAP sampel dasar berdasarkan pengelompokan dataset input. Jika Anda ingin memilih dataset dasar, lihat SHAP Dasar untuk Penjelasan.
shap_config = clarify.SHAPConfig( num_clusters=1, )
Contoh kode berikut meluncurkan pekerjaan pemrosesan SageMaker Clarify untuk menghitung SHAP nilai.
clarify_processor.run_explainability( data_config=data_config, model_config=model_config, model_scores=probability_config, explainability_config=shap_config, )
Untuk contoh buku catatan dengan petunjuk tentang cara menjalankan pekerjaan pemrosesan SageMaker Clarify di SageMaker Studio Classic untuk dihitung SHAP nilai, lihat Keadilan dan Penjelasan
Cara menghitung plot ketergantungan paral (PDPs) untuk CSV dataset
PDPs menunjukkan ketergantungan respons target yang diprediksi pada satu atau lebih fitur input yang menarik sambil mempertahankan semua fitur lainnya konstan. Garis miring ke atas, atau kurva diPDP, menunjukkan bahwa hubungan antara target dan fitur input positif, dan kecuraman menunjukkan kekuatan hubungan. Garis miring ke bawah atau kurva menunjukkan bahwa jika fitur input menurun, variabel target meningkat. Secara intuitif, Anda dapat menafsirkan ketergantungan paral sebagai respons variabel target untuk setiap fitur input yang menarik.
Contoh konfigurasi berikut adalah untuk menggunakan PDPConfig
objek untuk SageMaker menginstruksikan pekerjaan pemrosesan Clarify untuk menghitung pentingnya fitur. Income
pdp_config = clarify.PDPConfig( features=["Income"], grid_resolution=10, )
Pada contoh sebelumnya, grid_resolution
parameter membagi rentang nilai Income
fitur menjadi 10
bucket. Pekerjaan pemrosesan SageMaker Clarify akan menghasilkan PDPs untuk Income
dibagi menjadi 10
segmen pada sumbu x. Sumbu y akan menunjukkan dampak marjinal Income
pada variabel target.
Contoh kode berikut meluncurkan pekerjaan pemrosesan SageMaker Clarify untuk menghitung PDPs.
clarify_processor.run_explainability( data_config=data_config, model_config=model_config, model_scores=probability_config, explainability_config=pdp_config, )
Untuk contoh buku catatan dengan petunjuk tentang cara menjalankan pekerjaan pemrosesan SageMaker Clarify di SageMaker Studio Classic untuk dihitung PDPs, lihat Penjelasan dengan SageMaker Klarifikasi - Plot Ketergantungan Sebagian () PDP
Bagaimana cara menghitung keduanya SHAP nilai dan PDPs untuk CSV dataset
Anda dapat menghitung keduanya SHAP nilai dan PDPs dalam satu pekerjaan pemrosesan SageMaker Klarifikasi. Dalam contoh konfigurasi berikut, top_k_features
parameter PDPConfig
objek baru diatur ke2
. Ini menginstruksikan pekerjaan pemrosesan SageMaker Clarify untuk menghitung PDPs untuk 2
fitur yang memiliki global terbesar SHAP nilai.
shap_pdp_config = clarify.PDPConfig( top_k_features=2, grid_resolution=10, )
Contoh kode berikut meluncurkan pekerjaan pemrosesan SageMaker Clarify untuk menghitung keduanya SHAP nilai dan PDPs.
clarify_processor.run_explainability( data_config=data_config, model_config=model_config, model_scores=probability_config, explainability_config=[shap_config, shap_pdp_config], )
Contoh berikut menunjukkan cara mengonfigurasi analisis bias dan analisis eksplainabilitas untuk kumpulan data tabular dalam format padat > SageMaker JSON Garis. Untuk informasi selengkapnya, lihat JSONLINESformat permintaan. Dalam contoh ini, dataset yang masuk memiliki data yang sama dengan bagian sebelumnya, tetapi mereka dalam format JSON Garis. Setiap baris adalah JSON objek yang valid. Features
Poin kunci ke array nilai fitur, dan Label
poin-poin kunci ke label kebenaran dasar.
{"Features":[25,0,2850,2],"Label":0} {"Features":[36,0,6585,0],"Label":1} {"Features":[22,1,1759,1],"Label":1} {"Features":[48,0,3446,1],"Label":0} ...
Dalam contoh konfigurasi berikut, DataConfig
objek menentukan dataset input dan tempat menyimpan output.
data_config = clarify.DataConfig( s3_data_input_path=jsonl_dataset_s3_uri, dataset_type='application/jsonlines', headers=['Age', 'Gender', 'Income', 'Occupation', 'Target'], label='Label', features='Features', s3_output_path=clarify_job_output_s3_uri, )
Dalam contoh konfigurasi sebelumnya, parameter fitur diatur ke JMESPathFeatures
sehingga pekerjaan pemrosesan SageMaker Clarify dapat mengekstrak array fitur dari setiap catatan. label
Parameter diatur ke JMESPath ekspresi Label
sehingga pekerjaan pemrosesan SageMaker Clarify dapat mengekstrak label kebenaran dasar dari setiap rekaman. s3_data_input_path
Parameter dapat berupa URI file dataset atau awalan Amazon URI S3. Jika Anda memberikan URI awalan S3, pekerjaan pemrosesan SageMaker Clarify secara rekursif mengumpulkan semua file S3 yang terletak di bawah awalan. Nilai untuk s3_output_path
harus menjadi URI awalan S3 untuk menahan hasil analisis. SageMaker menggunakan s3_output_path
while compiling, dan tidak dapat mengambil nilai parameter SageMaker Pipeline, properti, ekspresi, atauExecutionVariable
, yang digunakan selama runtime.
Anda harus memiliki model terlatih untuk menghitung metrik bias pasca-pelatihan atau kepentingan fitur. Contoh berikut adalah dari model klasifikasi biner yang mengeluarkan data JSON Lines dalam format contoh. Setiap baris output model adalah JSON objek yang valid. predicted_label
Poin kunci untuk label yang diprediksi, dan probability
poin-poin kunci untuk nilai probabilitas.
{"predicted_label":0,"probability":0.028986845165491} {"predicted_label":1,"probability":0.825382471084594} ...
Dalam contoh konfigurasi berikut, ModelConfig
objek menginstruksikan pekerjaan pemrosesan SageMaker Clarify untuk menyebarkan SageMaker model ke titik akhir sementara. Titik akhir menggunakan satu instance ml.m4.xlarge
inferensi.
model_config = clarify.ModelConfig( model_name=your_model, instance_type='ml.m4.xlarge', instance_count=1, content_template='{"Features":$features}', )
Dalam contoh konfigurasi sebelumnya, parameter content_type
dan tidak accept_type
diatur. Oleh karena itu, mereka secara otomatis menggunakan nilai dataset_type
parameter DataConfig
objek, yaituapplication/jsonlines
. Pekerjaan pemrosesan SageMaker Clarify menggunakan content_template
parameter untuk menyusun input model dengan mengganti $features
placeholder dengan array fitur.
Contoh konfigurasi berikut menunjukkan cara mengatur parameter label ModelPredictedLabelConfig
objek ke JMESPath ekspresipredicted_label
. Ini akan mengekstrak label yang diprediksi dari output model.
predicted_label_config = clarify.ModelPredictedLabelConfig( label='predicted_label', )
Contoh konfigurasi berikut menunjukkan bagaimana mengatur probability
parameter ModelPredictedLabelConfig
objek ke JMESPath ekspresiprobability
. Ini akan mengekstrak skor dari output model.
probability_config = clarify.ModelPredictedLabelConfig( probability='probability', )
Untuk menghitung metrik bias dan kepentingan fitur untuk kumpulan data dalam format JSON Garis, gunakan pernyataan run dan objek konfigurasi yang sama seperti bagian sebelumnya untuk kumpulan data. CSV Anda dapat menjalankan tugas pemrosesan SageMaker Clarify di SageMaker Studio Classic untuk mendeteksi bias dan pentingnya fitur komputasi. Untuk instruksi dan contoh buku catatan, lihat Keadilan dan Keterjelasan dengan SageMaker Clarify (Format JSON Garis)
SageMaker Clarify mendukung penjelasan untuk model pemrosesan bahasa alami (NLP). Penjelasan ini membantu Anda memahami bagian teks mana yang paling penting untuk prediksi model Anda. Anda dapat menjelaskan prediksi model untuk satu contoh kumpulan data input, atau prediksi model dari set data dasar. Untuk memahami dan memvisualisasikan perilaku model, Anda dapat menentukan beberapa tingkat perincian. Untuk melakukan ini, tentukan panjang segmen teks, seperti token, kalimat, paragraf.
SageMaker Klarifikasi NLP penjelasan kompatibel dengan model klasifikasi dan regresi. Anda juga dapat menggunakan SageMaker Clarify untuk menjelaskan perilaku model Anda pada kumpulan data multi-modal yang berisi fitur teks, kategoris, atau numerik. NLPpenjelasan untuk kumpulan data multi-modal dapat membantu Anda memahami betapa pentingnya setiap fitur untuk keluaran model. SageMaker Clarify mendukung 62 bahasa dan dapat menangani teks yang mencakup beberapa bahasa.
Contoh berikut menunjukkan file konfigurasi analisis untuk kepentingan fitur komputasi untukNLP. Dalam contoh ini, kumpulan data yang masuk adalah kumpulan data tabular dalam CSV format, dengan satu kolom label biner dan dua kolom fitur.
0,2,"Flavor needs work" 1,3,"They taste good" 1,5,"The best" 0,1,"Taste is awful" ...
Contoh konfigurasi berikut menunjukkan cara menentukan dataset input dalam CSV format dan jalur data output menggunakan DataConfig
objek.
nlp_data_config = clarify.DataConfig( s3_data_input_path=nlp_dataset_s3_uri, dataset_type='text/csv', headers=['Target', 'Rating', 'Comments'], label='Target', s3_output_path=clarify_job_output_s3_uri, )
Dalam contoh konfigurasi sebelumnya, s3_data_input_path
parameter dapat berupa URI file dataset atau awalan Amazon URI S3. Jika Anda memberikan URI awalan S3, pekerjaan pemrosesan SageMaker Clarify secara rekursif mengumpulkan semua file S3 yang terletak di bawah awalan. Nilai untuk s3_output_path
harus menjadi URI awalan S3 untuk menahan hasil analisis. SageMaker menggunakan s3_output_path
while compiling, dan tidak dapat mengambil nilai parameter SageMaker Pipeline, properti, ekspresi, atauExecutionVariable
, yang digunakan selama runtime.
Contoh output berikut dibuat dari model klasifikasi biner yang dilatih pada dataset input sebelumnya. Model klasifikasi menerima CSV data, dan menghasilkan skor tunggal di antara 0
dan. 1
0.491656005382537 0.569582343101501 ...
Contoh berikut menunjukkan cara mengkonfigurasi ModelConfig
objek untuk menyebarkan SageMaker model. Dalam contoh ini, titik akhir fana menyebarkan model. Titik akhir ini menggunakan satu instance ml.g4dn.xlarge
inferensi yang dilengkapi dengan aGPU, untuk inferensi yang dipercepat.
nlp_model_config = clarify.ModelConfig( model_name=your_nlp_model_name, instance_type='ml.g4dn.xlarge', instance_count=1, )
Contoh berikut menunjukkan bagaimana mengkonfigurasi ModelPredictedLabelConfig
objek untuk menemukan probabilitas (skor) di kolom pertama dengan indeks0
.
probability_config = clarify.ModelPredictedLabelConfig( probability=0, )
Contoh berikut SHAP konfigurasi menunjukkan cara menjalankan analisis penjelasan berdasarkan token menggunakan model dan kumpulan data input dalam bahasa Inggris.
text_config = clarify.TextConfig( language='english', granularity='token', ) nlp_shap_config = clarify.SHAPConfig( baseline=[[4, '[MASK]']], num_samples=100, text_config=text_config, )
Pada contoh sebelumnya, TextConfig
objek mengaktifkan analisis NLP eksplainabilitas. granularity
Parameter menunjukkan bahwa analisis harus mengurai token. Dalam bahasa Inggris, setiap token adalah sebuah kata. Untuk bahasa lain, lihat spaCydokumentasi tokenisasiRating
4
untuk mengatur di tempat SHAP contoh dasar. Token topeng khusus [MASK]
digunakan untuk mengganti token (kata) diComments
.
Pada contoh sebelumnya, jika instancenya2,"Flavor needs work"
, atur baseline ke rata-rata 4
dengan Rating
baseline berikut.
4, '[MASK]'
Pada contoh sebelumnya, SageMaker Clarify menjelaskan iterasi melalui setiap token dan menggantinya dengan mask, sebagai berikut.
2,"[MASK] needs work" 4,"Flavor [MASK] work" 4,"Flavor needs [MASK]"
Kemudian, penjelasan SageMaker Clarify akan mengirim setiap baris ke model Anda untuk prediksi. Ini agar penjelas mempelajari prediksi dengan dan tanpa kata-kata bertopeng. SageMaker Penjelasan Clarify kemudian menggunakan informasi ini untuk menghitung kontribusi setiap token.
Contoh kode berikut meluncurkan pekerjaan pemrosesan SageMaker Clarify untuk menghitung SHAP nilai.
clarify_processor.run_explainability( data_config=nlp_data_config, model_config=nlp_model_config, model_scores=probability_config, explainability_config=nlp_shap_config, )
Untuk contoh buku catatan dengan petunjuk tentang cara menjalankan pekerjaan pemrosesan SageMaker Clarify di SageMaker Studio Classic untuk analisis penjelasan, lihat NLP Menjelaskan Analisis Sentimen Teks Menggunakan
SageMaker Clarify menghasilkan peta panas yang memberikan wawasan tentang bagaimana model visi komputer Anda mengklasifikasikan dan mendeteksi objek dalam gambar Anda.
Dalam contoh konfigurasi berikut, dataset input terdiri dari JPEG gambar.
cv_data_config = clarify.DataConfig( s3_data_input_path=cv_dataset_s3_uri, dataset_type="application/x-image", s3_output_path=clarify_job_output_s3_uri, )
Dalam contoh konfigurasi sebelumnya, DataConfig
objek berisi s3_data_input_path
set ke awalan Amazon S3URI. Pekerjaan pemrosesan SageMaker Clarify secara rekursif mengumpulkan semua file gambar yang terletak di bawah awalan. s3_data_input_path
Parameter dapat berupa URI file dataset atau awalan Amazon URI S3. Jika Anda memberikan URI awalan S3, pekerjaan pemrosesan SageMaker Clarify secara rekursif mengumpulkan semua file S3 yang terletak di bawah awalan. Nilai untuk s3_output_path
harus menjadi URI awalan S3 untuk menahan hasil analisis. SageMaker menggunakan s3_output_path
while compiling, dan tidak dapat mengambil nilai parameter SageMaker Pipeline, properti, ekspresi, atauExecutionVariable
, yang digunakan selama runtime.
Bagaimana menjelaskan model klasifikasi gambar
Pekerjaan pemrosesan SageMaker Clarify menjelaskan gambar menggunakan SHAP algoritma Kernel, yang memperlakukan gambar sebagai kumpulan piksel super. Mengingat kumpulan data yang terdiri dari gambar, pekerjaan pemrosesan menghasilkan kumpulan data gambar di mana setiap gambar menunjukkan peta panas dari piksel super yang relevan.
Contoh konfigurasi berikut menunjukkan cara mengkonfigurasi analisis penjelasan menggunakan model klasifikasi SageMaker gambar. Untuk informasi selengkapnya, lihat Klasifikasi Gambar - MXNet.
ic_model_config = clarify.ModelConfig( model_name=your_cv_ic_model, instance_type="ml.p2.xlarge", instance_count=1, content_type="image/jpeg", accept_type="application/json", )
Dalam contoh konfigurasi sebelumnya, model bernamayour_cv_ic_model
, telah dilatih untuk mengklasifikasikan hewan pada JPEG gambar input. ModelConfig
Objek dalam contoh sebelumnya menginstruksikan pekerjaan pemrosesan SageMaker Clarify untuk menyebarkan SageMaker model ke titik akhir sementara. Untuk inferensi yang dipercepat, titik akhir menggunakan satu instance ml.p2.xlarge
inferensi yang dilengkapi dengan a. GPU
Setelah JPEG gambar dikirim ke titik akhir, titik akhir mengklasifikasikannya dan mengembalikan daftar skor. Setiap skor adalah untuk kategori. ModelPredictedLabelConfig
Objek memberikan nama setiap kategori, sebagai berikut.
ic_prediction_config = clarify.ModelPredictedLabelConfig( label_headers=['bird', 'cat', 'dog'], )
Contoh keluaran untuk input sebelumnya dari ['bird', 'cat', 'dog'] bisa jadi 0.3,0.6,0.1, di mana 0.3 mewakili skor kepercayaan untuk mengklasifikasikan gambar sebagai burung.
Contoh berikut SHAP konfigurasi menunjukkan cara menghasilkan penjelasan untuk masalah klasifikasi gambar. Ini menggunakan ImageConfig
objek untuk mengaktifkan analisis.
ic_image_config = clarify.ImageConfig( model_type="IMAGE_CLASSIFICATION", num_segments=20, segment_compactness=5, ) ic_shap_config = clarify.SHAPConfig( num_samples=100, image_config=ic_image_config, )
SageMaker Klarifikasi fitur ekstrak menggunakan metode Simple Linear Iterative Clustering (SLIC)model_type
parameter, menunjukkan jenis masalah klasifikasi gambar. Parameter num_segments
memperkirakan berapa banyak perkiraan jumlah segmen yang akan diberi label dalam gambar input. Jumlah segmen kemudian diteruskan ke n_segments
parameter slic.
Setiap segmen gambar dianggap super-pixel, dan lokal SHAP nilai dihitung untuk setiap segmen. Parameter segment_compactness
menentukan bentuk dan ukuran segmen gambar yang dihasilkan oleh metode scikit-image slic. Ukuran dan bentuk segmen gambar kemudian diteruskan ke compactness
parameter slic.
Contoh kode berikut meluncurkan pekerjaan pemrosesan SageMaker Clarify untuk menghasilkan peta panas untuk gambar Anda. Nilai peta panas positif menunjukkan bahwa fitur tersebut meningkatkan skor kepercayaan dalam mendeteksi objek. Nilai negatif menunjukkan bahwa fitur tersebut menurunkan skor kepercayaan.
clarify_processor.run_explainability( data_config=cv_data_config, model_config=ic_model_config, model_scores=ic_prediction_config, explainability_config=ic_shap_config, )
Untuk contoh buku catatan yang menggunakan Clarify untuk SageMaker mengklasifikasikan gambar dan menjelaskan klasifikasinya, lihat Menjelaskan Klasifikasi Gambar dengan SageMaker Clarify
Bagaimana menjelaskan model deteksi objek
Pekerjaan pemrosesan SageMaker Clarify dapat mendeteksi dan mengklasifikasikan objek dalam gambar dan kemudian memberikan penjelasan untuk objek yang terdeteksi. Proses penjelasannya adalah sebagai berikut.
-
Objek gambar pertama kali dikategorikan ke dalam salah satu kelas dalam koleksi tertentu. Misalnya, jika model deteksi objek dapat mengenali kucing, dog, dan fish, maka ketiga kelas ini ada dalam koleksi. Koleksi ini ditentukan oleh
label_headers
parameter sebagai berikut.clarify.ModelPredictedLabelConfig( label_headers=object_categories, )
-
Pekerjaan pemrosesan SageMaker Clarify menghasilkan skor kepercayaan untuk setiap objek. Skor kepercayaan yang tinggi menunjukkan bahwa itu milik salah satu kelas dalam koleksi tertentu. Pekerjaan pemrosesan SageMaker Clarify juga menghasilkan koordinat kotak pembatas yang membatasi objek. Untuk informasi lebih lanjut tentang skor kepercayaan diri dan kotak pembatas, lihatFormat Respons.
-
SageMaker Clarify kemudian memberikan penjelasan untuk mendeteksi suatu objek dalam adegan gambar. Ini menggunakan metode yang dijelaskan di bagian Bagaimana menjelaskan model klasifikasi gambar.
Dalam contoh konfigurasi berikut, model deteksi SageMaker objek your_cv_od_model
dilatih pada JPEG gambar untuk mengidentifikasi hewan pada mereka.
od_model_config = clarify.ModelConfig( model_name=your_cv_ic_model, instance_type="ml.p2.xlarge", instance_count=1, content_type="image/jpeg", accept_type="application/json", )
ModelConfig
Objek dalam contoh konfigurasi sebelumnya menginstruksikan pekerjaan pemrosesan SageMaker Clarify untuk menyebarkan SageMaker model ke titik akhir sementara. Untuk pencitraan yang dipercepat, titik akhir ini menggunakan satu instance ml.p2.xlarge
inferensi yang dilengkapi dengan a. GPU
Dalam konfigurasi contoh berikut, ModelPredictedLabelConfig
objek memberikan nama setiap kategori untuk klasifikasi.
ic_prediction_config = clarify.ModelPredictedLabelConfig( label_headers=['bird', 'cat', 'dog'], )
Contoh berikut SHAP konfigurasi menunjukkan cara menghasilkan penjelasan untuk deteksi objek.
od_image_config = clarify.ImageConfig( model_type="OBJECT_DETECTION", num_segments=20, segment_compactness=5, max_objects=5, iou_threshold=0.5, context=1.0, ) od_shap_config = clarify.SHAPConfig( num_samples=100, image_config=image_config, )
Dalam konfigurasi contoh sebelumnya, ImageConfig
objek mengaktifkan analisis. model_type
Parameter menunjukkan bahwa jenis masalah adalah deteksi objek. Untuk penjelasan rinci tentang parameter lainnya, lihatFile Konfigurasi Analisis.
Contoh kode berikut meluncurkan pekerjaan pemrosesan SageMaker Clarify untuk menghasilkan peta panas untuk gambar Anda. Nilai peta panas positif menunjukkan bahwa fitur tersebut meningkatkan skor kepercayaan dalam mendeteksi objek. Nilai negatif menunjukkan bahwa fitur tersebut menurunkan skor kepercayaan.
clarify_processor.run_explainability( data_config=cv_data_config, model_config=od_model_config, model_scores=od_prediction_config, explainability_config=od_shap_config, )
Untuk contoh buku catatan yang menggunakan SageMaker Clarify untuk mendeteksi objek dalam gambar dan menjelaskan prediksinya, lihat Menjelaskan model deteksi objek dengan Amazon SageMaker
Contoh berikut menunjukkan cara mengkonfigurasi data dalam format SageMaker JSON padat untuk menjelaskan model peramalan deret waktu. Untuk informasi selengkapnya tentang JSON pemformatan, lihatJSONformat permintaan.
[ { "item_id": "item1", "timestamp": "2019-09-11", "target_value": 47650.3, "dynamic_feature_1": 0.4576, "dynamic_feature_2": 0.2164, "dynamic_feature_3": 0.1906, "static_feature_1": 3, "static_feature_2": 4 }, { "item_id": "item1", "timestamp": "2019-09-12", "target_value": 47380.3, "dynamic_feature_1": 0.4839, "dynamic_feature_2": 0.2274, "dynamic_feature_3": 0.1889, "static_feature_1": 3, "static_feature_2": 4 }, { "item_id": "item2", "timestamp": "2020-04-23", "target_value": 35601.4, "dynamic_feature_1": 0.5264, "dynamic_feature_2": 0.3838, "dynamic_feature_3": 0.4604, "static_feature_1": 1, "static_feature_2": 2 }, ]
Konfigurasi data
Gunakan TimeSeriesDataConfig
komunikasikan ke tugas penjelasan Anda cara mengurai data dengan benar dari kumpulan data input yang diteruskan, seperti yang ditunjukkan dalam konfigurasi contoh berikut:
time_series_data_config = clarify.TimeSeriesDataConfig( target_time_series='[].target_value', item_id='[].item_id', timestamp='[].timestamp', related_time_series=['[].dynamic_feature_1', '[].dynamic_feature_2', '[].dynamic_feature_3'], static_covariates=['[].static_feature_1', '[].static_feature_2'], dataset_format='timestamp_records', )
Konfigurasi nilai Shapley asimetris
Gunakan AsymmetricShapleyValueConfig
untuk mendefinisikan argumen untuk analisis penjelasan model peramalan deret waktu seperti garis dasar, arah, granularitas, dan jumlah sampel. Nilai dasar ditetapkan untuk ketiga jenis data: deret waktu terkait, kovariat statis, dan deret waktu target. AsymmetricShapleyValueConfig
Konfigurasi menginformasikan prosesor SageMaker Clarify cara menghitung atribusi fitur untuk satu item pada satu waktu. Konfigurasi berikut menunjukkan contoh definisiAsymmetricShapleyValueConfig
.
asymmetric_shapley_value_config = AsymmetricShapleyValueConfig( direction="chronological", granularity="fine-grained", num_samples=10, baseline={ "related_time_series": "zero", "static_covariates": { "item1": [0, 0], "item2": [0, 0] }, "target_time_series": "zero" }, )
Nilai yang Anda berikan AsymmetricShapleyValueConfig
diteruskan ke konfigurasi analisis sebagai entri methods
dengan kunciasymmetric_shapley_value
.
Konfigurasi model
Anda dapat mengontrol struktur muatan yang dikirim dari prosesor SageMaker Clarify. Dalam contoh kode berikut, objek ModelConfig
konfigurasi mengarahkan pekerjaan penjelasan perkiraan deret waktu ke agregat catatan menggunakan JMESPath sintaks ke dalam'{"instances": $records}'
, di mana struktur setiap catatan didefinisikan dengan record_template berikut. '{"start":
$start_time, "target": $target_time_series, "dynamic_feat": $related_time_series,
"cat": $static_covariates}'
Perhatikan bahwa$start_time
,, $target_time_series
$related_time_series
, dan $static_covariates
merupakan token internal yang digunakan untuk memetakan nilai kumpulan data ke nilai permintaan titik akhir.
model_config = clarify.ModelConfig( model_name=
your_model
, instance_type='ml.m4.xlarge', instance_count=1, record_template='{"start": $start_time, "target": $target_time_series, "dynamic_feat": $related_time_series, "cat": $static_covariates}', content_template='{"instances": $records}',, time_series_model_config=TimeSeriesModelConfig( forecast={'forecast': 'predictions[*].mean[:2]'} ) )
Demikian pula, atribut forecast
diTimeSeriesModelConfig
, diteruskan ke konfigurasi analisis dengan kuncitime_series_predictor_config
, digunakan untuk mengekstrak perkiraan model dari respons titik akhir. Misalnya, contoh respons batch titik akhir bisa menjadi sebagai berikut:
{ "predictions": [ {"mean": [13.4, 3.6, 1.0]}, {"mean": [23.0, 4.7, 3.0]}, {"mean": [3.4, 5.6, 2.0]} ] }
Jika JMESPath ekspresi yang disediakan forecast
adalah {'predictions [*] .mean [:2] '}}, nilai perkiraan diuraikan sebagai berikut:
[[13.4, 3.6], [23.0, 4.7], [3.4, 5.6]]
Cara menjalankan pekerjaan pemrosesan SageMaker Clarify paralel
Saat bekerja dengan kumpulan data besar, Anda dapat menggunakan Apache Spark
Contoh konfigurasi berikut menunjukkan cara menggunakan SageMakerClarifyProcessor
untuk membuat prosesor SageMaker Clarify dengan instance 5
komputasi. Untuk menjalankan pekerjaan apa pun yang terkait denganSageMakerClarifyProcessor
, SageMaker Klarifikasi menggunakan pemrosesan terdistribusi Spark.
from sagemaker import clarify spark_clarify_processor = clarify.SageMakerClarifyProcessor( role=role, instance_count=5, instance_type='ml.c5.xlarge', )
Jika Anda menyetel save_local_shap_values
parameter SHAPConfigTrue
, pekerjaan pemrosesan SageMaker Clarify menyimpan lokal SHAP nilai sebagai beberapa file bagian di lokasi output pekerjaan.
Untuk mengasosiasikan lokal SHAP nilai untuk instance dataset input, gunakan joinsource
parameter. DataConfig
Jika Anda menambahkan lebih banyak instance komputasi, kami sarankan Anda juga meningkatkan instance_count
dari ModelConfig