Jelaskan prediksi model klasifikasi teks menggunakan Amazon SageMaker Clarify

Jelaskan prediksi model klasifikasi teks menggunakan Amazon SageMaker Clarify

Penjelasan model mengacu pada proses menghubungkan prediksi model pembelajaran mesin (ML) dengan nilai fitur input dari sebuah instance dalam istilah yang dapat dimengerti manusia. Bidang ini sering disebut sebagai kecerdasan buatan yang bisa dijelaskan (XAI). Memperjelas Amazon SageMaker adalah fitur dari Amazon SageMaker yang memungkinkan data scientist dan engineer ML menjelaskan prediksi model ML mereka. Ini menggunakan metode model agnostik seperti Penjelasan Aditif yang Sangat Indah (SHAP) untuk atribusi fitur. Selain mendukung penjelasan untuk data tabular, Clarify juga mendukung penjelasan untuk computer vision (CV) dan natural language processing (NLP) menggunakan algoritma SHAP yang sama.

Dalam posting ini, kami mengilustrasikan penggunaan Clarify untuk menjelaskan model NLP. Secara khusus, kami menunjukkan bagaimana Anda dapat menjelaskan prediksi model klasifikasi teks yang telah dilatih menggunakan SageMaker BlazingText algoritma. Ini membantu Anda memahami bagian atau kata mana dari teks yang paling penting untuk prediksi yang dibuat oleh model. Antara lain, pengamatan ini kemudian dapat digunakan untuk meningkatkan berbagai proses seperti akuisisi data yang mengurangi bias dalam kumpulan data dan validasi model untuk memastikan bahwa model berfungsi sebagaimana mestinya, dan mendapatkan kepercayaan dari semua pemangku kepentingan saat model diterapkan. Ini bisa menjadi persyaratan utama di banyak domain aplikasi seperti analisis sentimen, tinjauan hukum, diagnosis medis, dan banyak lagi.

Kami juga menyediakan pola desain umum yang dapat Anda gunakan saat menggunakan Clarify dengan salah satu Algoritme SageMaker.

Ikhtisar solusi

Algoritme SageMaker memiliki format data masukan dan keluaran tetap. Misalnya, wadah algoritme BlazingText menerima masukan dalam format JSON. Tetapi pelanggan sering kali memerlukan format khusus yang kompatibel dengan saluran data mereka. Kami menyajikan beberapa opsi yang dapat Anda ikuti untuk menggunakan Clarify.

Opsi A

Dalam opsi ini, kami menggunakan fitur pipa inferensi dari hosting SageMaker. Pipeline inferensi adalah model SageMaker yang membentuk urutan kontainer yang memproses permintaan inferensi. Diagram berikut mengilustrasikan sebuah contoh.

Pekerjaan klarifikasi memanggil pipa inferensi dengan satu wadah yang menangani format data dan wadah lain yang memegang model.

Anda dapat menggunakan pipeline inferensi untuk menerapkan kombinasi model kustom Anda sendiri dan algoritme bawaan SageMaker yang dikemas dalam wadah berbeda. Untuk informasi lebih lanjut, lihat Hosting model bersama dengan logika pra-pemrosesan sebagai pipa inferensi serial di belakang satu titik akhir. Karena Clarify hanya mendukung Baris CSV dan JSON sebagai masukan, Anda harus menyelesaikan langkah-langkah berikut:

  1. Buat model dan wadah untuk mengonversi data dari CSV (atau Garis JSON) ke JSON.
  2. Setelah langkah pelatihan model dengan algoritma BlazingText, secara langsung menyebarkan model. Ini akan menerapkan model menggunakan wadah BlazingText, yang menerima JSON sebagai masukan. Saat menggunakan algoritme berbeda, SageMaker membuat model menggunakan wadah algoritme tersebut.
  3. Gunakan dua model sebelumnya untuk membuat a Model Pipa. Ini merantai dua model dalam urutan linier dan membuat model tunggal. Sebagai contoh, lihat Pipa inferensi dengan Scikit-learn dan Linear Learner.

Dengan solusi ini, kami telah berhasil membuat satu model yang masukannya kompatibel dengan Clarify dan dapat digunakan olehnya untuk menghasilkan penjelasan.

Opsi B

Opsi ini menunjukkan bagaimana Anda dapat mengintegrasikan penggunaan format data yang berbeda antara algoritme Clarify dan SageMaker dengan membawa wadah Anda sendiri untuk menghosting model SageMaker. Diagram berikut mengilustrasikan arsitektur dan langkah-langkah yang terlibat dalam solusi:

Menjelaskan prediksi model klasifikasi teks menggunakan Amazon SageMaker Clarify PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.

Langkah-langkahnya adalah sebagai berikut:

  1. Gunakan algoritme BlazingText melalui SageMaker Estimator untuk melatih model klasifikasi teks.
  2. Setelah model dilatih, buat wadah Docker khusus yang dapat digunakan untuk membuat model SageMaker dan secara opsional menerapkan model sebagai titik akhir model SageMaker.
  3. Konfigurasikan dan buat tugas Clarify untuk menggunakan wadah hosting untuk menghasilkan laporan yang dapat dijelaskan.
  4. Wadah khusus menerima permintaan inferensi sebagai CSV dan memungkinkan Clarify menghasilkan penjelasan.

Perlu dicatat bahwa solusi ini menunjukkan gagasan mendapatkan penjelasan offline menggunakan Clarify untuk model BlazingText. Untuk informasi lebih lanjut tentang penjelasan online, lihat Penjelasan Online dengan SageMaker Clarify.

Sisa dari posting ini menjelaskan setiap langkah di opsi kedua.

Latih model BlazingText

Kami pertama kali melatih model klasifikasi teks menggunakan algoritma BlazingText. Dalam contoh ini, kami menggunakan Kumpulan data Ontologi DBpedia. DBpedia adalah inisiatif bersumber dari banyak orang untuk mengekstraksi konten terstruktur menggunakan informasi dari berbagai proyek Wikimedia seperti Wikipedia. Secara khusus, kami menggunakan kumpulan data ontologi DBpedia yang dibuat oleh Zhang dkk. Itu dibangun dengan memilih 14 kelas yang tidak tumpang tindih dari DBpedia 2014. Bidang berisi abstrak artikel Wikipedia dan kelas yang sesuai. Tujuan dari model klasifikasi teks adalah untuk memprediksi kelas artikel yang diberikan abstraknya.

Proses langkah demi langkah terperinci untuk melatih model tersedia berikut ini buku catatan. Setelah Anda melatih model, perhatikan Layanan Penyimpanan Sederhana Amazon (Amazon S3) Jalur URI tempat artefak model disimpan. Untuk panduan langkah demi langkah, lihat Klasifikasi Teks menggunakan SageMaker BlazingText.

Terapkan model BlazingText terlatih menggunakan wadah Anda sendiri di SageMaker

Dengan Clarify, ada dua opsi untuk memberikan informasi model:

  • Buat model SageMaker tanpa menerapkannya ke titik akhir โ€“ Saat model SageMaker disediakan untuk Clarify, ia akan membuat titik akhir singkat menggunakan model tersebut.
  • Buat model SageMaker dan terapkan ke titik akhir โ€“ Saat titik akhir tersedia untuk Klarifikasi, ia menggunakan titik akhir untuk mendapatkan penjelasan. Hal ini menghindari pembuatan titik akhir sesaat dan dapat mengurangi waktu proses tugas Clarify.

Dalam posting ini, kami menggunakan opsi pertama dengan Clarify. Kami menggunakan SDK Python SageMaker untuk tujuan ini. Untuk opsi lain dan detail lebih lanjut, lihat Buat titik akhir Anda dan terapkan model Anda.

Bawa wadah sendiri (BYOC)

Kami pertama-tama membuat gambar Docker khusus yang digunakan untuk membuat Model SageMaker. Anda dapat menggunakan file dan kode di direktori sumber repositori GitHub kami.

Dockerfile mendeskripsikan image yang ingin kita buat. Kita mulai dengan instalasi Ubuntu standar dan kemudian instal Scikit-learn. Kami juga mengkloning teks cepat dan instal paketnya. Ini digunakan untuk memuat model BlazingText untuk membuat prediksi. Terakhir, kami menambahkan kode yang mengimplementasikan algoritme kami dalam bentuk file sebelumnya dan menyiapkan lingkungan dalam wadah. Seluruhnya Dockerfile disediakan di repositori kami dan Anda dapat menggunakannya apa adanya. Mengacu pada Gunakan Kode Inferensi Anda Sendiri dengan Layanan Hosting untuk detail selengkapnya tentang cara SageMaker berinteraksi dengan container Docker Anda dan persyaratannya.

Selain itu, prediktor.py berisi kode untuk memuat model dan membuat prediksi. Itu menerima data input sebagai CSV, yang membuatnya kompatibel dengan Clarify.

Setelah Anda memiliki Dockerfile, buat wadah Docker dan unggah ke Registry Kontainer Elastis Amazon (ECR Amazon). Anda dapat menemukan proses langkah demi langkah dalam bentuk a skrip shell di repositori GitHub kami, yang dapat Anda gunakan untuk membuat dan mengunggah image Docker ke Amazon ECR.

Buat model BlazingText

Langkah selanjutnya adalah membuat objek model dari SageMaker Python SDK Kelas model yang dapat diterapkan ke titik akhir HTTPS. Kami mengonfigurasi Clarify untuk menggunakan model ini untuk menghasilkan penjelasan. Untuk kode dan persyaratan lain untuk langkah ini, lihat Terapkan Model SageMaker BlazingText Anda yang terlatih menggunakan wadah Anda sendiri di Amazon SageMaker.

Konfigurasikan Klarifikasi

Clarify NLP kompatibel dengan model regresi dan klasifikasi. Ini membantu Anda memahami bagian mana dari teks input yang memengaruhi prediksi model Anda. Clarify mendukung 62 bahasa dan dapat menangani teks dengan berbagai bahasa. Kami menggunakan SageMaker Python SDK untuk menentukan tiga konfigurasi yang digunakan oleh Clarify untuk membuat laporan yang dapat dijelaskan.

Pertama, kita perlu membuat objek prosesor dan juga menentukan lokasi input dataset yang akan digunakan untuk prediksi dan atribusi fitur:

import sagemaker
sagemaker_session = sagemaker.Session()
from sagemaker import clarify
clarify_processor = clarify.SageMakerClarifyProcessor(
role=role,
instance_count=1,
instance_type="ml.m5.xlarge",
sagemaker_session=sagemaker_session,
)
file_path = "<location of the input dataset>"

Konfigurasi Data

Di sini, Anda harus mengonfigurasi lokasi data input, kolom fitur, dan di mana Anda ingin tugas Clarify menyimpan hasilnya. Ini dilakukan dengan meneruskan argumen yang relevan saat membuat objek DataConfig:

explainability_output_path = "s3://{}/{}/clarify-text-explainability".format(
sagemaker_session.default_bucket(), "explainability"
) explainability_data_config = clarify.DataConfig(
s3_data_input_path=file_path,
s3_output_path=explainability_output_path,
headers=["Review Text"],
dataset_type="text/csv",
)

Konfigurasi Model

Dengan ModelConfig, Anda harus menentukan informasi tentang model terlatih Anda. Di sini, kami menentukan nama model BlazingText SageMaker yang kami buat di langkah sebelumnya dan juga mengatur parameter lain seperti Cloud komputasi elastis Amazon (Amazon EC2) jenis instans dan format konten:

model_config = clarify.ModelConfig(
model_name=model_name,
instance_type="ml.m5.xlarge",
instance_count=1,
accept_type="application/jsonlines",
content_type="text/csv",
endpoint_name_prefix=None,
)

Konfigurasi BENTUK

Ini digunakan untuk memberi tahu Clarify tentang cara mendapatkan atribusi fitur. TextConfig digunakan untuk menentukan perincian teks dan bahasa. Dalam kumpulan data kami, karena kami ingin memecah teks input menjadi kata-kata dan bahasanya adalah bahasa Inggris, kami menetapkan nilai ini masing-masing ke token dan bahasa Inggris. Bergantung pada sifat kumpulan data, Anda dapat menyetel perincian menjadi kalimat atau paragraf. Baseline diatur ke token khusus. Ini berarti bahwa Clarify akan membuang subkumpulan teks input dan menggantinya dengan nilai dari garis dasar sambil mendapatkan prediksi untuk menghitung nilai SHAP. Inilah cara menentukan efek token pada prediksi model dan pada gilirannya mengidentifikasi kepentingannya. Jumlah sampel yang akan digunakan dalam algoritma Kernel SHAP ditentukan oleh nilai dari num_samples argumen. Nilai yang lebih tinggi menghasilkan atribusi fitur yang lebih kuat, tetapi hal itu juga dapat meningkatkan waktu proses tugas. Oleh karena itu, Anda perlu melakukan trade-off antara keduanya. Lihat kode berikut:

shap_config = clarify.SHAPConfig(
baseline=[["<UNK>"]],
num_samples=1000,
agg_method="mean_abs",
save_local_shap_values=True,
text_config=clarify.TextConfig(granularity="token", language="english"),
)

Untuk informasi lebih lanjut, lihat Atribusi Fitur yang Menggunakan Nilai Shapley dan Buku Putih Keadilan dan Penjelasan Amazon AI.

ModelPredictedLabelConfig

Agar Clarify mengekstrak label yang diprediksi atau skor atau probabilitas yang diprediksi, objek konfigurasi ini perlu disetel. Lihat kode berikut:

from sagemaker.clarify import ModelPredictedLabelConfig
modellabel_config = ModelPredictedLabelConfig(probability="prob", label="label")

Untuk lebih jelasnya, lihat dokumentasi di SDK.

Jalankan tugas Clarify

Setelah Anda membuat konfigurasi yang berbeda, Anda sekarang siap untuk memicu tugas pemrosesan Clarify. Tugas pemrosesan memvalidasi input dan parameter, membuat titik akhir sesaat, dan menghitung atribusi fitur lokal dan global menggunakan algoritme SHAP. Setelah selesai, itu menghapus titik akhir singkat dan menghasilkan file keluaran. Lihat kode berikut:

clarify_processor.run_explainability(
data_config=explainability_data_config,
model_config=model_config,
explainability_config=shap_config,
model_scores=modellabel_config,
)

Runtime langkah ini bergantung pada ukuran kumpulan data dan jumlah sampel yang dihasilkan oleh SHAP.

Visualisasikan hasilnya

Terakhir, kami menampilkan visualisasi hasil dari laporan atribusi fitur lokal yang dibuat oleh tugas pemrosesan Clarify. Outputnya dalam format JSON Lines dan dengan beberapa pemrosesan; Anda dapat memplot skor untuk token dalam teks masukan seperti contoh berikut. Bilah yang lebih tinggi berdampak lebih besar pada label target. Selanjutnya, nilai positif dikaitkan dengan prediksi yang lebih tinggi pada variabel target dan nilai negatif dengan prediksi yang lebih rendah. Dalam contoh ini, model membuat prediksi untuk teks masukan "Wesebach adalah sungai Hesse Jerman". Kelas yang diprediksi adalah Tempat Alam dan skor menunjukkan bahwa model menemukan kata โ€œsungaiโ€ sebagai yang paling informatif untuk membuat prediksi ini. Ini intuitif untuk manusia dan dengan memeriksa lebih banyak sampel, Anda dapat menentukan apakah model mempelajari fitur yang tepat dan berperilaku seperti yang diharapkan.

Menjelaskan prediksi model klasifikasi teks menggunakan Amazon SageMaker Clarify PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.

Kesimpulan

Dalam postingan ini, kami menjelaskan cara menggunakan Clarify untuk menjelaskan prediksi dari model klasifikasi teks yang dilatih menggunakan SageMaker BlazingText. Mulailah dengan menjelaskan prediksi dari model klasifikasi teks Anda menggunakan buku catatan contoh Penjelasan Teks untuk SageMaker BlazingText.

Kita juga membahas pola desain yang lebih umum yang dapat Anda gunakan saat menggunakan Clarify dengan algoritme bawaan SageMaker. Untuk informasi lebih lanjut, lihat Apa Keadilan dan Penjelasan Model untuk Prediksi Machine Learning. Kami juga mendorong Anda untuk membaca Buku Putih Keadilan dan Penjelasan Amazon AI, yang memberikan ikhtisar tentang topik dan membahas praktik terbaik dan keterbatasan.


Tentang Penulis

Menjelaskan prediksi model klasifikasi teks menggunakan Amazon SageMaker Clarify PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai. Pinak Panigrahi bekerja dengan pelanggan untuk membangun solusi berbasis pembelajaran mesin untuk memecahkan masalah bisnis strategis di AWS. Saat tidak sibuk dengan pembelajaran mesin, dia dapat ditemukan sedang berjalan-jalan, membaca buku, atau mengikuti olahraga.

Menjelaskan prediksi model klasifikasi teks menggunakan Amazon SageMaker Clarify PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai. Dhawal Patel adalah Arsitek Pembelajaran Mesin Utama di AWS. Dia telah bekerja dengan organisasi mulai dari perusahaan besar hingga perusahaan rintisan menengah pada masalah yang terkait dengan komputasi terdistribusi, dan Kecerdasan Buatan. Dia berfokus pada Deep learning termasuk domain NLP dan Computer Vision. Dia membantu pelanggan mencapai inferensi model kinerja tinggi di SageMaker.

Stempel Waktu:

Lebih dari Pembelajaran Mesin AWS