Percepat dengan BERT: Model Optimasi NLP
Diterbitkan: 2022-03-11Mempercepat NLP dengan BERT: Hasil Kelas Dunia Dengan Data 100x Lebih Sedikit
Ada dua kesulitan utama saat membangun model klasifikasi pemrosesan bahasa alami (NLP) deep learning.
- Pengumpulan data (mendapatkan ribuan atau jutaan titik data rahasia)
- Arsitektur dan pelatihan pembelajaran yang mendalam
Kemampuan kami untuk membangun model pembelajaran mendalam yang kompleks yang mampu memahami kompleksitas bahasa biasanya membutuhkan pengalaman bertahun-tahun di seluruh domain ini. Semakin sulit masalah Anda, semakin beragam output Anda, semakin banyak waktu yang Anda perlukan untuk setiap langkah ini.
Pengumpulan data membebani, memakan waktu, mahal, dan merupakan faktor pembatas nomor satu untuk proyek NLP yang sukses. Mempersiapkan data, membangun jalur pipa yang tangguh, membuat pilihan di antara ratusan opsi persiapan potensial, dan menyiapkan "model" dapat dengan mudah memakan waktu berbulan-bulan bahkan dengan insinyur pembelajaran mesin yang berbakat. Terakhir, pelatihan dan pengoptimalan model pembelajaran mendalam memerlukan kombinasi pemahaman intuitif, keahlian teknis, dan kemampuan untuk bertahan pada suatu masalah.
Dalam artikel ini, kita akan membahas
- Tren pembelajaran mendalam untuk NLP: Bagaimana pembelajaran transfer membuat model kelas dunia menjadi open source
- Pengantar BERT: Pengantar "alat" NLP paling kuat hingga saat ini - Representasi encoder dua arah dari transformer (BERT)
- Bagaimana BERT bekerja dan mengapa itu akan mengubah cara perusahaan mengeksekusi proyek NLP
Tren dalam Pembelajaran Mendalam
Secara alami, optimalisasi proses ini dimulai dengan peningkatan akurasi. Jaringan LSTM (long-short term memory) merevolusi banyak tugas NLP, tetapi mereka (dan) sangat haus data. Mengoptimalkan dan melatih model tersebut dapat memakan waktu berhari-hari atau berminggu-minggu pada mesin yang besar dan mahal. Akhirnya, menerapkan model-model besar itu dalam produksi mahal dan tidak praktis.
Untuk mengurangi faktor-faktor yang menciptakan kompleksitas ini, bidang visi komputer telah lama memanfaatkan pembelajaran transfer. Pembelajaran transfer adalah kemampuan untuk menggunakan model yang dilatih untuk tugas yang berbeda tetapi serupa untuk mempercepat solusi Anda pada yang baru. Dibutuhkan jauh lebih sedikit upaya untuk melatih model yang sudah dapat mengkategorikan pohon daripada melatih model baru untuk mengenali semak-semak dari awal.
Bayangkan sebuah skenario di mana seseorang belum pernah melihat semak tetapi telah melihat banyak pohon dalam hidup mereka. Anda akan merasa jauh lebih mudah untuk menjelaskan kepada mereka seperti apa semak itu berdasarkan apa yang mereka ketahui tentang pohon daripada menggambarkan semak dari awal. Pembelajaran transfer adalah cara yang sangat manusiawi untuk belajar, jadi masuk akal secara intuitif bahwa ini akan berhasil dalam tugas pembelajaran yang mendalam.
BERT berarti Anda membutuhkan lebih sedikit data, lebih sedikit waktu pelatihan, dan Anda mendapatkan lebih banyak nilai bisnis. Kualitas produk NLP yang dapat dibangun oleh bisnis mana pun telah menjadi kelas dunia.
Datang BERT
BERT memanfaatkan apa yang disebut transformer dan dirancang untuk menghasilkan pengkodean kalimat. Pada dasarnya, BERT adalah model bahasa yang didasarkan pada model pembelajaran mendalam tertentu. Ini dibuat khusus untuk memberikan representasi kontekstual, numerik, dari kalimat atau serangkaian kalimat. Representasi digital itu adalah input untuk model yang dangkal dan tidak rumit. Tidak hanya itu, tetapi hasilnya umumnya lebih unggul dan memerlukan sebagian kecil dari data masukan untuk tugas yang belum diselesaikan.
Bayangkan bisa menghabiskan satu hari untuk mengumpulkan data, bukan satu tahun, dan mampu membangun model di sekitar kumpulan data yang jika tidak, Anda tidak akan pernah memiliki cukup data untuk membuat model LSTM. Jumlah tugas NLP yang akan dibuka untuk bisnis yang sebelumnya tidak mampu menyediakan waktu pengembangan dan keahlian yang dibutuhkan sangat mengejutkan.
Bagaimana BERT Bekerja
Dalam NLP tradisional, titik awal untuk pelatihan model adalah vektor kata. Vektor kata adalah daftar angka [0.55, 0.24, 0.90, ...] yang mencoba untuk mewakili secara numerik apa arti kata itu. Dengan representasi numerik, kita dapat menggunakan kata-kata itu dalam melatih model kompleks, dan dengan vektor kata yang besar, kita dapat menanamkan informasi tentang kata-kata ke dalam model kita.
BERT melakukan sesuatu yang serupa (sebenarnya, titik awalnya adalah vektor kata), tetapi BERT menciptakan representasi numerik dari seluruh kalimat input (atau kalimat).
Dibandingkan dengan model LSTM, BERT melakukan banyak hal secara berbeda.
- Ia membaca semua kata sekaligus, bukan dari kiri ke kanan atau kanan ke kiri
- 15% dari kata-kata dipilih secara acak untuk "bertopeng" (secara harfiah diganti dengan token [MASK]) selama waktu pelatihan
- 10% dari kata-kata yang dipilih secara acak dibiarkan tidak berubah
- 10% dari kata-kata bertopeng diganti dengan kata-kata acak
- (a) dan (b) bekerja sama untuk memaksa model memprediksi setiap kata dalam kalimat (model malas)
- BERT kemudian mencoba untuk memprediksi semua kata dalam kalimat, dan hanya kata-kata bertopeng yang berkontribusi pada fungsi kerugian - termasuk kata-kata yang tidak berubah dan diganti secara acak
- Model menyempurnakan prediksi kalimat berikutnya. Pada langkah ini, model mencoba untuk menentukan apakah kalimat yang diberikan adalah kalimat berikutnya dalam teks
Konvergensi lambat, dan BERT membutuhkan waktu lama untuk dilatih. Namun, ia mempelajari hubungan kontekstual dalam teks jauh lebih baik. Vektor kata adalah representasi yang sangat dangkal yang membatasi kompleksitas yang dapat mereka modelkan—BERT tidak memiliki batasan ini.

Sebagian besar bisnis dapat menggunakan model pra-pelatihan yang menggunakan beberapa GPU dan membutuhkan waktu berhari-hari untuk melatih aplikasi mereka. Ada beberapa kasus di mana model BERT yang ada tidak dapat digunakan di tempat atau disesuaikan dengan kasus penggunaan tertentu. BERT memungkinkan tim untuk mempercepat solusi sepuluh kali lipat. Seseorang dapat bergerak untuk mengidentifikasi solusi bisnis, untuk membangun bukti konsep, dan akhirnya memindahkan konsep itu ke dalam produksi dalam waktu yang sangat singkat.
Menerapkan BERT dan Membandingkan Nilai Bisnis
Karena artikel ini berfokus pada aplikasi bisnis dan teknik dalam membangun produk nyata, kami akan membuat dan melatih dua model untuk lebih memahami nilai komparatif.
- BERT: Pipa BERT paling mudah. Kami memproses teks dengan cara standar, kami menghasilkan pengkodean kalimat BERT, dan kami memasukkan pengkodean kalimat tersebut ke dalam jaringan saraf yang dangkal
- LSTM: Embed standar - Encode - Attend - Predict arsitektur (gambar di atas)
Tugas? Memprediksi asal usul film berdasarkan plotnya dari IMDB. Dataset kami mencakup film dari Amerika, Australia, Inggris, Kanada, Jepang, Cina, Korea Selatan, dan Rusia di samping enam belas film lainnya dengan total 24 asal. Kami memiliki total kurang dari 35.000 contoh pelatihan.
Berikut adalah contoh cuplikan dari plot.
Ribuan tahun yang lalu, Steppenwolf dan legiun Parademons berusaha untuk mengambil alih Bumi dengan energi gabungan dari tiga Kotak Ibu. Mereka digagalkan oleh pasukan terpadu yang mencakup Dewa Olympian, Amazon, Atlantis, umat manusia, dan Korps Lentera Hijau. Setelah memukul mundur pasukan Steppenwolf, Kotak Induk dipisahkan dan disembunyikan di lokasi di planet ini. Saat ini, umat manusia sedang berduka atas Superman, yang kematiannya memicu Kotak Induk untuk diaktifkan kembali dan kembalinya Steppenwolf ke Bumi dalam upaya untuk mendapatkan kembali bantuan dari tuannya, Darkseid. Steppenwolf bertujuan untuk mengumpulkan artefak untuk membentuk "The Unity", yang akan menghancurkan ekologi Bumi dan mengubahnya menjadi citra…
Jika Anda tidak menebak, inilah plot Justice League — sebuah film Amerika.
Hasil
Kami melatih serangkaian parameter yang beragam untuk memahami bagaimana hasilnya merespons berbagai jumlah data dan ukuran model. Seperti yang kami katakan, nilai tambah yang paling signifikan dari BERT adalah kebutuhan akan data yang jauh lebih sedikit.
Untuk model LSTM, kami melatih model terbesar yang kami bisa pada GPU kami dan memvariasikan ukuran kosakata dan panjang kata untuk menemukan model berkinerja terbaik. Untuk model BERT, kami memiliki tidak lebih dari satu lapisan.
Kami memperbaiki set pengujian kami di semua sampel ini, jadi kami secara konsisten mencetak set pelatihan yang sama.
Pada tugas ini, model yang dilatih menggunakan pengkodean kalimat BERT mencapai skor F1 yang mengesankan sebesar 0,84 setelah hanya 1000 sampel. Jaringan LSTM tidak pernah melebihi 0,60. Bahkan yang lebih mengesankan, melatih model BERT memakan waktu rata-rata 1/20 waktu daripada mempersiapkan model LSTM.
Kesimpulan
Dengan metrik apa pun, hasil ini menunjukkan sebuah revolusi dalam NLP. Dengan menggunakan data 100x lebih sedikit dan waktu pelatihan 20x lebih sedikit, kami mencapai hasil kelas dunia. Kemampuan untuk melatih model berkualitas tinggi dalam hitungan detik atau menit, bukan jam atau hari, membuka NLP di area yang sebelumnya tidak dapat diberikan.
BERT memiliki lebih banyak kegunaan daripada yang ada di posting ini. Ada model multibahasa. Ini dapat digunakan untuk menyelesaikan banyak tugas NLP yang berbeda, baik secara individual seperti dalam posting ini atau secara bersamaan menggunakan beberapa output. Pengkodean kalimat BERT ditetapkan untuk menjadi landasan dari banyak proyek NLP ke depan.
Kode di balik posting ini tersedia di Github. Saya juga mendorong pembaca untuk memeriksa Bert-as-a-service, yang merupakan landasan membangun pengkodean kalimat BERT untuk posting ini.