Pemahaman bahasa alami diterapkan dalam berbagai kasus penggunaan, mulai dari chatbot dan asisten virtual, hingga terjemahan mesin dan peringkasan teks. Untuk memastikan bahwa aplikasi ini berjalan pada tingkat kinerja yang diharapkan, data dalam lingkungan pelatihan dan produksi harus berasal dari distribusi yang sama. Ketika data yang digunakan untuk inferensi (data produksi) berbeda dari data yang digunakan selama pelatihan model, kita menghadapi fenomena yang dikenal sebagai penyimpangan data. Saat penyimpangan data terjadi, model tidak lagi relevan dengan data dalam produksi dan kemungkinan berperforma lebih buruk dari yang diharapkan. Penting untuk terus memantau data inferensi dan membandingkannya dengan data yang digunakan selama pelatihan.
Anda dapat menggunakan Amazon SageMaker untuk membangun, melatih, dan menerapkan model pembelajaran mesin (ML) dengan cepat pada skala apa pun. Sebagai tindakan proaktif terhadap degradasi model, Anda dapat menggunakan Monitor Model Amazon SageMaker untuk terus memantau kualitas model ML Anda secara real time. Dengan Model Monitor, Anda juga dapat mengonfigurasi peringatan untuk memberi tahu dan memicu tindakan jika terjadi penyimpangan dalam kinerja model. Deteksi dini dan proaktif dari penyimpangan ini memungkinkan Anda untuk mengambil tindakan korektif, seperti mengumpulkan data pelatihan kebenaran dasar yang baru, melatih ulang model, dan mengaudit sistem hulu, tanpa harus memantau model secara manual atau membangun alat tambahan.
Model Monitor menawarkan empat jenis kemampuan pemantauan untuk mendeteksi dan mengurangi penyimpangan model secara real time:
- Kualitas data – Membantu mendeteksi perubahan dalam skema data dan properti statistik dari variabel independen dan memberi peringatan ketika penyimpangan terdeteksi.
- Kualitas model – Untuk memantau karakteristik kinerja model seperti akurasi atau presisi secara real time, Model Monitor memungkinkan Anda menyerap label kebenaran dasar yang dikumpulkan dari aplikasi Anda. Model Monitor secara otomatis menggabungkan informasi kebenaran dasar dengan data prediksi untuk menghitung metrik kinerja model.
- Bias model –Model Monitor terintegrasi dengan Memperjelas Amazon SageMaker untuk meningkatkan visibilitas ke potensi bias. Meskipun data atau model awal Anda mungkin tidak bias, perubahan di dunia dapat menyebabkan bias berkembang dari waktu ke waktu dalam model yang telah dilatih.
- Penjelasan model – Deteksi drift memberi tahu Anda saat terjadi perubahan dalam kepentingan relatif dari atribusi fitur.
Dalam posting ini, kita membahas jenis penyimpangan kualitas data yang berlaku untuk data teks. Kami juga menyajikan pendekatan untuk mendeteksi penyimpangan data dalam data teks menggunakan Model Monitor.
Penyimpangan data di NLP
Penyimpangan data dapat diklasifikasikan ke dalam tiga kategori tergantung pada apakah pergeseran distribusi terjadi pada sisi input atau pada sisi output, atau apakah hubungan antara input dan output telah berubah.
Pergeseran kovariat
Di sebuah pergeseran kovariat, distribusi input berubah dari waktu ke waktu, tetapi distribusi bersyarat P(y|x) tidak berubah. Drift jenis ini disebut pergeseran kovariat karena masalah muncul akibat pergeseran distribusi kovariat (fitur). Misalnya, dalam model klasifikasi spam email, distribusi data pelatihan (korpus email) mungkin berbeda dari distribusi data selama penilaian.
Pergeseran label
Sementara pergeseran kovariat berfokus pada perubahan dalam distribusi fitur, pergeseran label berfokus pada perubahan dalam distribusi variabel kelas. Jenis pergeseran ini pada dasarnya adalah kebalikan dari pergeseran kovariat. Cara intuitif untuk memikirkannya mungkin dengan mempertimbangkan kumpulan data yang tidak seimbang. Jika rasio email spam dan non-spam dalam set pelatihan kami adalah 50%, tetapi kenyataannya 10% email kami adalah non-spam, maka distribusi label target telah bergeser.
Pergeseran konsep
Pergeseran konsep berbeda dengan covariate dan label shift yang tidak terkait dengan distribusi data atau distribusi kelas, melainkan terkait dengan hubungan antara kedua variabel. Misalnya, spammer email sering menggunakan berbagai konsep untuk lolos dari model filter spam, dan konsep email yang digunakan selama pelatihan dapat berubah seiring berjalannya waktu.
Sekarang setelah kita memahami berbagai jenis penyimpangan data, mari kita lihat cara menggunakan Model Monitor untuk mendeteksi pergeseran kovariat dalam data teks.
Ikhtisar solusi
Tidak seperti data tabular, yang terstruktur dan terikat, data tekstual bersifat kompleks, berdimensi tinggi, dan bentuk bebas. Untuk mendeteksi drift secara efisien di NLP, kami bekerja dengan penyematan, yang merupakan representasi teks berdimensi rendah. Anda dapat memperoleh penyematan menggunakan berbagai model bahasa seperti Word2Vec dan model berbasis transformator seperti BERTI. Model-model ini memproyeksikan data berdimensi tinggi ke dalam ruang berdimensi rendah sambil mempertahankan informasi semantik teks. Hasilnya adalah vektor yang padat dan bermakna secara kontekstual, yang dapat digunakan untuk berbagai tugas hilir, termasuk memantau penyimpangan data.
Dalam solusi kami, kami menggunakan penyematan untuk mendeteksi pergeseran kovariat kalimat bahasa Inggris. Kami menggunakan Model Monitor untuk memfasilitasi pemantauan berkelanjutan untuk pengklasifikasi teks yang diterapkan ke lingkungan produksi. Pendekatan kami terdiri dari langkah-langkah berikut:
- Sempurnakan model BERT menggunakan SageMaker.
- Terapkan pengklasifikasi BERT yang disetel dengan baik sebagai titik akhir waktu nyata dengan data capture diaktifkan.
- Buat dataset dasar yang terdiri dari sampel kalimat yang digunakan untuk melatih pengklasifikasi BERT.
- Membuat tugas pemantauan SageMaker khusus untuk menghitung kesamaan cosinus antara data yang diambil dalam produksi dan dataset dasar.
Diagram berikut mengilustrasikan alur kerja solusi:
Sempurnakan model BERT
Dalam posting ini, kami menggunakan Korpus Penerimaan Linguistik (CoLA), kumpulan data dari 10,657 kalimat bahasa Inggris yang diberi label gramatikal atau tidak gramatikal dari literatur linguistik yang diterbitkan. Kami menggunakan pelatihan SageMaker untuk menyempurnakan model BERT menggunakan kumpulan data CoLa dengan menentukan kelas estimator PyTorch. Untuk informasi selengkapnya tentang cara menggunakan SDK ini dengan PyTorch, lihat Gunakan PyTorch dengan SageMaker Python SDK. Memanggil fit()
metode estimator meluncurkan pekerjaan pelatihan:
Menyebarkan model
Setelah melatih model kami, kami menghostingnya di titik akhir SageMaker. Untuk membuat titik akhir memuat model dan menyajikan prediksi, kami menerapkan beberapa metode train_deploy.py:
- model_fn () – Memuat model yang disimpan dan mengembalikan objek model yang dapat digunakan untuk penyajian model. Server model SageMaker PyTorch memuat model kami dengan memanggil
model_fn
. - input_fn () – Deserialisasi dan menyiapkan input prediksi. Dalam contoh ini, badan permintaan kami pertama-tama diserialisasikan ke JSON dan kemudian dikirim ke titik akhir penyajian model. Oleh karena itu, dalam
input_fn()
, pertama kita deserialize badan permintaan yang diformat JSON dan mengembalikan input sebagai atorch.tensor
, seperti yang dipersyaratkan untuk BERT. - predict_fn () – Melakukan prediksi dan mengembalikan hasilnya.
Aktifkan pengambilan data Monitor Model
Kami mengaktifkan Pengambilan data Monitor Model merekam data masukan ke dalam Layanan Penyimpanan Sederhana Amazon (Amazon S3) ember untuk referensi nanti:
Kemudian kami membuat titik akhir SageMaker real-time dengan model yang dibuat di langkah sebelumnya:
Kesimpulan
Kami menjalankan prediksi menggunakan objek prediktor yang kami buat pada langkah sebelumnya. Kami mengatur serializer dan deserializer JSON, yang digunakan oleh titik akhir inferensi:
Titik akhir real-time dikonfigurasi untuk mengambil data dari permintaan, dan respons serta data disimpan di Amazon S3. Anda dapat melihat data yang diambil dalam jadwal pemantauan sebelumnya.
Buat garis dasar
Kami menggunakan model BERT yang disetel dengan baik untuk mengekstraksi fitur penyisipan kalimat dari data pelatihan. Kami menggunakan vektor ini sebagai input fitur berkualitas tinggi untuk membandingkan jarak kosinus karena BERT menghasilkan representasi kata yang dinamis dengan konteks semantik. Selesaikan langkah-langkah berikut untuk menyematkan kalimat:
- Gunakan tokenizer BERT untuk mendapatkan ID token untuk setiap token (
input_id
) dalam kalimat input dan mask untuk menunjukkan elemen mana dalam urutan input yang merupakan elemen token vs. padding (attention_mask_id
). Kami menggunakan BERTtokenizer.encode_plus
berfungsi untuk mendapatkan nilai-nilai ini untuk setiap kalimat input:
input_ids
dan attention_mask_ids
diteruskan ke model dan mengambil status tersembunyi dari jaringan. Itu hidden_states
memiliki empat dimensi dengan urutan sebagai berikut:
- Nomor lapisan (BERT memiliki 12 lapisan)
- Nomor batch (1 kalimat)
- Indeks token kata
- Unit tersembunyi (fitur 768)
- Gunakan dua lapisan tersembunyi terakhir untuk mendapatkan satu vektor (menyematkan kalimat) dengan menghitung rata-rata semua token masukan dalam kalimat:
- Konversi penyematan kalimat sebagai larik NumPy dan simpan di lokasi Amazon S3 sebagai garis dasar yang digunakan oleh Model Monitor:
Skrip evaluasi
Model Monitor menyediakan wadah pra-bangun dengan kemampuan menganalisis data yang diambil dari titik akhir untuk kumpulan data tabular. Jika Anda ingin membawa container sendiri, Model Monitor menyediakan extension point yang bisa Anda gunakan. Ketika Anda membuat MonitoringSchedule
, Model Monitor akhirnya memulai pekerjaan pemrosesan. Oleh karena itu, wadah perlu mengetahui kontrak kerja pemrosesan. Kita perlu membuat skrip evaluasi yang kompatibel dengan wadah input kontrak dan output.
Model Monitor menggunakan kode evaluasi pada semua sampel yang diambil selama jadwal pemantauan. Untuk setiap titik data inferensi, kami menghitung penyematan kalimat menggunakan logika yang sama yang dijelaskan sebelumnya. Kesamaan kosinus digunakan sebagai metrik jarak untuk mengukur kesamaan titik data inferensi dan penyematan kalimat di baseline. Secara matematis, ini mengukur sudut kosinus antara dua vektor penyisipan kalimat. Skor kemiripan kosinus yang tinggi menunjukkan penyisipan kalimat yang serupa. Skor kesamaan cosinus yang lebih rendah menunjukkan penyimpangan data. Kami menghitung rata-rata semua skor kesamaan kosinus, dan jika kurang dari ambang batas, skor tersebut dicatat dalam laporan pelanggaran. Berdasarkan kasus penggunaan, Anda dapat menggunakan metrik jarak lain seperti manhattan
or euclidean
untuk mengukur kesamaan penyisipan kalimat.
Diagram berikut menunjukkan cara kami menggunakan SageMaker Model Monitoring untuk menetapkan garis dasar dan mendeteksi penyimpangan data menggunakan kesamaan jarak kosinus.
Berikut adalah kode perhitungan pelanggaran; skrip evaluasi lengkap tersedia di GitHub:
Ukur penyimpangan data menggunakan Model Monitor
Pada bagian ini, kami berfokus pada pengukuran penyimpangan data menggunakan Model Monitor. Model Monitor monitor pra-bangun didukung oleh Deequ, yang merupakan pustaka yang dibangun di atas Apache Spark untuk menentukan pengujian unit untuk data, yang mengukur kualitas data dalam kumpulan data besar. Anda tidak memerlukan pengkodean untuk memanfaatkan kemampuan pemantauan yang dibuat sebelumnya ini. Anda juga memiliki fleksibilitas untuk memantau model dengan pengkodean untuk memberikan analisis khusus. Anda dapat mengumpulkan dan meninjau semua metrik yang dikeluarkan oleh Model Monitor di Studio Amazon SageMaker, sehingga Anda dapat menganalisis kinerja model Anda secara visual tanpa menulis kode tambahan.
Dalam skenario tertentu, misalnya saat data non-tabular, tugas pemrosesan default (diberdayakan oleh Deequ) tidak cukup karena hanya mendukung kumpulan data tabular. Monitor bawaan mungkin tidak cukup untuk menghasilkan metrik canggih untuk mendeteksi drift, dan mungkin memerlukan metrik Anda sendiri. Di bagian selanjutnya, kami menjelaskan penyiapan untuk memasukkan metrik Anda dengan membuat penampung khusus.
Bangun wadah Monitor Model kustom
Kami menggunakan naskah evaluasi dari bagian sebelumnya untuk membuat wadah Docker dan mendorongnya ke Registry Kontainer Elastis Amazon (ECR Amazon):
Saat wadah Docker pelanggan berada di Amazon ECR, kami dapat menjadwalkan tugas Pemantauan Model dan membuat laporan pelanggaran, seperti yang ditunjukkan di bagian berikutnya.
Jadwalkan tugas pemantauan model
Untuk menjadwalkan tugas pemantauan model, kami membuat instance Model Monitor dan di image_uri
, kami merujuk ke wadah Docker yang kami buat di bagian sebelumnya:
Kami menjadwalkan pekerjaan pemantauan menggunakan create_monitoring_schedule
API. Anda dapat menjadwalkan pekerjaan pemantauan setiap jam atau setiap hari. Anda mengonfigurasi pekerjaan menggunakan destination
parameter, seperti yang ditunjukkan pada kode berikut:
Untuk menjelaskan dan mencantumkan jadwal pemantauan dan prosesnya, Anda dapat menggunakan perintah berikut:
Laporan pelanggaran penyimpangan data
Saat tugas pemantauan model selesai, Anda dapat menavigasi ke jalur S3 tujuan untuk mengakses laporan pelanggaran. Laporan ini berisi semua masukan yang skor cosinus rata-ratanya (avg_cosine_score
) berada di bawah ambang yang dikonfigurasi sebagai variabel lingkungan THRESHOLD:0.5
dalam ModelMonitor contoh. Ini merupakan indikasi bahwa data yang diamati selama inferensi melayang di luar garis dasar yang ditetapkan.
Kode berikut menampilkan laporan pelanggaran yang dibuat:
Terakhir, berdasarkan pengamatan ini, Anda dapat mengonfigurasi model untuk pelatihan ulang. Anda juga dapat mengaktifkan Layanan Pemberitahuan Sederhana Amazon (Amazon SNS) notifikasi untuk mengirimkan peringatan saat terjadi pelanggaran.
Kesimpulan
Model Monitor memungkinkan Anda mempertahankan kualitas tinggi model Anda dalam produksi. Dalam postingan ini, kami menyoroti tantangan pemantauan penyimpangan data pada data tidak terstruktur seperti teks, dan memberikan pendekatan intuitif untuk mendeteksi penyimpangan data menggunakan skrip pemantauan khusus. Anda dapat menemukan kode yang terkait dengan pos berikut ini Repositori GitHub. Selain itu, Anda dapat menyesuaikan solusi untuk memanfaatkan metrik jarak lainnya seperti perbedaan rata-rata maksimum (MMD), metrik jarak non-parametrik untuk menghitung distribusi marjinal antara distribusi sumber dan target pada ruang tertanam.
Tentang Penulis
Vikram Elango adalah Arsitek Solusi Spesialis AI/ML di Amazon Web Services, berbasis di Virginia, AS. Vikram membantu pelanggan industri keuangan dan asuransi dengan desain, pemikiran kepemimpinan untuk membangun dan menerapkan aplikasi pembelajaran mesin dalam skala besar. Dia saat ini berfokus pada pemrosesan bahasa alami, AI yang bertanggung jawab, pengoptimalan inferensi, dan penskalaan ML di seluruh perusahaan. Di waktu senggangnya, ia senang bepergian, hiking, memasak, dan berkemah bersama keluarganya.
Raghu Ramesha adalah Arsitek Solusi ML dengan tim Layanan Amazon SageMaker. Dia berfokus untuk membantu pelanggan memigrasikan beban kerja produksi ML ke SageMaker dalam skala besar. Dia berspesialisasi dalam pembelajaran mesin, AI, dan domain visi komputer, dan memegang gelar master dalam Ilmu Komputer dari UT Dallas. Di waktu luangnya, ia menikmati perjalanan dan fotografi.
Tony Chen adalah Arsitek Solusi Pembelajaran Mesin di Amazon Web Services, membantu pelanggan merancang kemampuan pembelajaran mesin yang dapat diskalakan dan tangguh di cloud. Sebagai mantan ilmuwan data dan insinyur data, dia memanfaatkan pengalamannya untuk membantu mengatasi beberapa masalah paling menantang yang dihadapi organisasi dalam mengoperasionalkan pembelajaran mesin.
- '
- "
- 100
- 11
- 7
- Tentang Kami
- mengakses
- Akun
- di seluruh
- tindakan
- Tambahan
- AI
- Semua
- sudah
- Meskipun
- Amazon
- Amazon SageMaker
- Amazon Web Services
- analisis
- Apache
- Apache Spark
- berlaku
- aplikasi
- tersedia
- rata-rata
- AWS
- Dasar
- tubuh
- membangun
- Bangunan
- berkemah
- kasus
- Menyebabkan
- tantangan
- perubahan
- chatbots
- klasifikasi
- awan
- kode
- Pengkodean
- Mengumpulkan
- kompleks
- menghitung
- Komputer Ilmu
- Visi Komputer
- Wadah
- mengandung
- kontinu
- kontrak
- memasak
- membuat
- pelanggan
- Dallas
- data
- kualitas data
- ilmuwan data
- Mendesain
- Deteksi
- mengembangkan
- berbeda
- membahas
- jarak
- Buruh pelabuhan
- Wadah Docker
- Tidak
- domain
- penggerak
- selama
- dinamis
- Awal
- pertemuan
- Titik akhir
- insinyur
- Inggris
- Enterprise
- Lingkungan Hidup
- mapan
- contoh
- pengalaman
- Menghadapi
- keluarga
- Fitur
- Fitur
- keuangan
- Pertama
- keluwesan
- Fokus
- terfokus
- bentuk
- Depan
- Gratis
- fungsi
- menghasilkan
- GitHub
- memiliki
- membantu
- membantu
- High
- Disorot
- mendaki
- Beranda
- Seterpercayaapakah Olymp Trade? Kesimpulan
- How To
- HTTPS
- gambar
- melaksanakan
- penting
- Termasuk
- industri
- informasi
- asuransi
- industri asuransi
- IT
- Pekerjaan
- Jobs
- Label
- bahasa
- besar
- Terbaru
- meluncurkan
- Kepemimpinan
- pengetahuan
- Tingkat
- memanfaatkan
- Perpustakaan
- ilmu bahasa
- Daftar
- literatur
- memuat
- tempat
- Mesin belajar
- mesin penerjemah
- masker
- mengukur
- Metrik
- ML
- model
- model
- pemantauan
- lebih
- Bahasa Alami
- Pengolahan Bahasa alami
- jaringan
- nLP
- pemberitahuan
- Penawaran
- urutan
- organisasi
- Lainnya
- prestasi
- fotografi
- Ketelitian
- ramalan
- Prediksi
- menyajikan
- Masalah
- Produksi
- proyek
- memberikan
- menyediakan
- Ular sanca
- pytorch
- kualitas
- jarak
- real-time
- Kenyataan
- catatan
- melaporkan
- laporan
- tanggapan
- Hasil
- pelatihan ulang
- Pengembalian
- membalikkan
- ulasan
- Run
- berjalan
- pembuat bijak
- Skala
- skala
- Ilmu
- SDK
- Layanan
- porsi
- set
- bergeser
- mirip
- Sederhana
- So
- Solusi
- Space
- spasi
- Spam
- spesialisasi
- Negara
- penyimpanan
- menyimpan
- Mendukung
- sistem
- target
- uji
- pengujian
- tes
- Dunia
- pikir
- pemikiran kepemimpinan
- waktu
- token
- Token
- puncak
- obor
- lalu lintas
- Pelatihan
- Terjemahan
- Amerika Serikat
- View
- virginia
- maya
- jarak penglihatan
- penglihatan
- menunggu
- jaringan
- layanan web
- Wikipedia
- tanpa
- Kerja
- alur kerja
- dunia
- penulisan