Model dan platform AI
UltraFastBERT: Pengenalan Model Bahasa yang Lebih Cepat Secara Eksponensial
Model bahasa dan kecerdasan buatan, yang terkenal dengan kemampuan mereka, merupakan topik yang sangat hangat dalam industri kecerdasan buatan. Peneliti global sedang meningkatkan efisiensi dan kemampuan mereka. Sistem ini, biasanya model pembelajaran dalam, dilatih sebelumnya pada data yang luas dan berlabel, yang mengintegrasikan jaringan saraf untuk perhatian diri. Mereka menggunakan berbagai lapisan – feedforward, berulang, tertanam, dan perhatian – untuk memproses teks input dan menghasilkan output yang relevan.
Sebagian besar lapisan feedforward model bahasa besar memiliki parameter yang paling banyak. Studi menunjukkan bahwa model ini hanya menggunakan sebagian kecil neuron yang tersedia untuk perhitungan output selama inferensi.
Artikel ini memperkenalkan UltraFastBERT, sebuah kerangka kerja berbasis BERT yang sesuai dengan efisiensi model BERT terkemuka tetapi hanya menggunakan 0,3% neuron selama inferensi, khususnya 12 dari 4095 neuron di setiap lapisan. Kami akan menjelajahi arsitektur, fungsionalitas, dan hasil UltraFastBERT. Mari kita mulai.
UltraFastBERT : Pengenalan Model Bahasa yang Lebih Cepat Secara Eksponensial
Secara tradisional, model bahasa menggunakan komponen yang berbeda untuk mempersenjatai diri dengan kemampuan generasi konten termasuk lapisan feedforward, lapisan berulang, lapisan tertanam, dan lapisan perhatian. Komponen-komponen ini bertanggung jawab untuk mempelajari pola selama pelatihan dan akhirnya menghasilkan output yang akurat berdasarkan teks input. Setiap komponen memiliki beberapa parameter, dan dalam model bahasa, sebagian besar parameter ini dimiliki oleh lapisan feedforward. Namun, lapisan feedforward ini tidak menggunakan 100% neuron yang tersedia untuk menghasilkan output untuk setiap input pada waktu inferensi, yang mengakibatkan pemborosan sumber daya yang meningkatkan kompleksitas, waktu komputasi, dan biaya komputasi.
Pada intinya, kerangka kerja UltraFastBERT adalah varian dari kerangka kerja BERT, membangun konsep ini, dan menggantikan lapisan feedforward dengan jaringan feedforward yang lebih cepat dalam arsitektur yang akhirnya menghasilkan kerangka kerja UltraFastBERT yang hanya menggunakan 0,3% neuron yang tersedia sambil menghasilkan hasil yang setara dengan model BERT dengan ukuran dan proses pelatihan yang sama, terutama pada tugas downstream. Karena implementasi desainnya, lapisan intermediate dalam kerangka kerja UltraFastBERT jauh lebih cepat,
Diberikan jaringan feedforward cepat (FFF) dan jaringan feedforward (FF), masing-masing dengan n neuron, kompleksitas waktu dari lulus maju dalam jaringan feedforward adalah O(n) sedangkan kompleksitas waktu adalah O(log2n) untuk jaringan feedforward cepat, dan perbedaan dalam kompleksitas waktu sebagian besar disebabkan oleh fakta bahwa dalam jaringan feedforward cepat, neuron diatur menjadi pohon biner seimbang, dan ketika input diberikan, jaringan hanya menjalankan satu cabang pohon secara kondisional. Selanjutnya, melakukan inferensi pada jaringan feedforward cepat menghasilkan CMM atau Perkalian Matriks Kondisional, di mana baris input dot dengan kolom bobot alami secara individu, dan output dari operasi dot-product sebelumnya menentukan bobot kolom untuk melanjutkan. Akibatnya, jaringan hanya menggunakan semua neuron untuk beberapa input, dan tidak ada input yang memerlukan lebih dari beberapa neuron untuk dijalankan oleh jaringan. Produk dot CMM kontras dengan DMM atau Perkalian Matriks Padat yang menghitung dot produk dari semua input dengan semua kolom bobot.
Untuk merangkum, UltraFastBERT adalah kerangka kerja berbasis BERT yang menyediakan hasil yang setara dengan model bahasa BERT terkemuka yang
- Hanya menggunakan 0,3% neuron yang tersedia selama tahap inferensi, dan hanya menggunakan 12 neuron dari total 4095 neuron untuk setiap lapisan inferensi.
- Menghasilkan kinerja yang kuat yang setara dengan model BERT terkemuka dengan mengimplementasikan strategi fine-tuning pada tugas downstream.
- Menyediakan implementasi asli dari CMM atau Perkalian Matriks Kondisional yang membentuk dasar untuk jaringan feedforward cepat, dan akhirnya mengarah pada percepatan 78x dalam kinerja dibandingkan dengan perkalian matriks padat yang dioptimalkan asli.
Jaringan Saraf Feedforward
Jaringan saraf feedforward adalah salah satu jaringan saraf buatan yang paling sederhana yang memindahkan informasi hanya dalam arah maju, dari node input ke node output melalui node tersembunyi. Salah satu sorotan utama dari jaringan saraf feedforward cepat adalah bahwa tidak ada loop atau siklus dalam jaringan tersebut, dan mereka lebih sederhana untuk dibangun dibandingkan dengan RNN atau Jaringan Saraf Berulang, dan CNN atau Jaringan Saraf Konvensional. Arsitektur jaringan saraf feedforward cepat terdiri dari tiga komponen, yaitu lapisan input, lapisan tersembunyi, dan lapisan output, dan setiap lapisan terdiri dari unit yang disebut neuron, dan setiap lapisan dihubungkan dengan lapisan lain dengan bantuan bobot.
Neuron yang ada dalam lapisan input menerima input dan meneruskannya ke lapisan berikutnya. Jumlah neuron dalam setiap lapisan input ditentukan oleh dimensi data input. Selanjutnya, kita memiliki lapisan tersembunyi yang tidak terlihat baik ke input maupun output, dan mereka bertanggung jawab untuk perhitungan yang diperlukan. Neuron dalam setiap lapisan tersembunyi mengambil jumlah bobot dari output yang diberikan oleh lapisan sebelumnya, menerapkan fungsi aktivasi, dan melewatkannya ke lapisan berikutnya, dan proses ini diulangi lagi. Akhirnya, kita memiliki lapisan output yang menghasilkan output untuk input yang diberikan. Setiap neuron dalam setiap lapisan jaringan feedforward cepat dihubungkan dengan setiap neuron dalam lapisan berikutnya, sehingga membuat jaringan saraf feedforward sepenuhnya terhubung. Bobot digunakan untuk merepresentasikan kekuatan koneksi antara neuron, dan jaringan memperbarui bobot ini untuk mempelajari pola dengan memperbarui bobot berdasarkan kesalahan yang terjadi dalam output.
Maju, ada dua tahap utama dalam kerja jaringan saraf feedforward cepat: fase feedforward, dan fase backpropagation.
Fase Feedforward
Dalam fase feedforward, input diberikan ke jaringan, dan kemudian dipropagasikan maju. Lapisan tersembunyi kemudian menghitung jumlah bobot dari input, dan memperkenalkan non-linieritas dalam model dengan melewatkannya melalui fungsi aktivasi seperti ReLu, Sigmoid, dan TanH. Proses ini diulangi lagi sampai bobot mencapai lapisan output, dan model membuat prediksi.
Fase Backpropagation
Setelah model membuat prediksi, ia menghitung kesalahan antara output yang dihasilkan dan output yang diharapkan. Kesalahan kemudian dipropagasikan kembali melalui jaringan, dan jaringan menggunakan algoritma optimasi gradien turun untuk menyesuaikan bobot dalam upaya untuk meminimalkan kesalahan.
UltraFastBERT : Arsitektur Model dan Kerja
Kerangka kerja UltraFastBERT dibangun di atas arsitektur crammedBERT, dan kerangka kerja UltraFastBERT menggunakan semua komponen dari kerangka kerja crammedBERT kecuali sifat lapisan intermediate. Sebagai gantinya, kerangka kerja UltraFastBERT menggantikan pengkode transformer dalam jaringan feedforward yang terkandung dalam lapisan intermediate dari kerangka kerja crammedBERT dengan jaringan feedforward cepat. Kerangka kerja UltraFastBERT membuat perubahan berikut pada jaringan feedforward asli.
- Kerangka kerja ini menghilangkan perbedaan antara node daun dan node non-daun dengan menggunakan fungsi aktivasi GeLu di seluruh node, dan melengkapi node ini dengan bobot output, dan menghapus bias output sepenuhnya. Setelah itu, kerangka kerja ini memperbaiki ukuran daun ke 1.
- Akhirnya, kerangka kerja ini memungkinkan beberapa pohon jaringan feedforward cepat secara paralel dengan menghitung lapisan output intermediate secara bersamaan. Kerangka kerja ini melakukan perhitungan ini dengan mengambil jumlah pohon individual, dan kemudian menyajikan jumlah sebagai lapisan output intermediate.
Maju, dalam pelatihan, kerangka kerja UltraFastBERT mengikuti prosedur pelatihan yang digunakan oleh kerangka kerja crammedBERT yang termasuk menonaktifkan dropout dalam pelatihan sebelumnya, dan menggunakan jadwal pembelajaran triangular 1-siklus. Model kemudian difine-tuning untuk memaksimalkan kinerjanya pada berbagai tugas, terutama dari benchmark GLUE, selama total 5 epoch.
Interferensi
Interferensi adalah bagian penting untuk jaringan feedforward cepat, dan jaringan feedforward cepat ini sendiri membentuk sebagian besar model bahasa besar, dan mereka dikenal dengan potensi percepatan yang luar biasa. Untuk memahami potensi percepatan ini, mari kita ambil contoh salah satu model bahasa paling canggih, GPT-3, di mana jaringan feedforward dalam setiap lapisan transformer terdiri dari lebih dari 49.100 neuron. Jika dapat dilatih, jaringan feedforward cepat (kedalaman maksimum 15) dapat menggantikan jaringan feedforward asli. Jaringan feedforward cepat yang diperkenalkan akan memiliki lebih dari 65.000 neuron, tetapi hanya akan menggunakan 16 neuron ini untuk interferensi, yang berjumlah sekitar 0,03% dari neuron yang tersedia untuk GPT-3.
Algoritma dan Kompatibilitas
Kerangka kerja UltraFastBERT menggunakan algoritma pseudocode rekursif untuk interferensi jaringan feedforward cepat, dan algoritma ini digambarkan dalam gambar di bawah.

Di sini, B mewakili ukuran batch, H mewakili lebar lapisan input, dan M mewakili kolom. Salah satu penyebab kekhawatiran utama dengan menggunakan pendekatan Perkalian Matriks Kondisional adalah apakah membuat jaringan feedforward cepat tidak kompatibel dengan proses yang sudah digunakan untuk Perkalian Matriks Padat dan kerangka kerja pembelajaran dalam yang ada. Untungnya, penggunaan CMM tidak mempengaruhi kinerja atau memperkenalkan inkonsistensi, meskipun itu meningkatkan kompleksitas caching.
Sangat penting untuk dicatat bahwa sebagai bagian dari jaringan feedforward cepat, perkalian matriks padat tunggal bergantung pada eksekusi instruksi MAC atau Perkalian dan Akumulasi, dan hasilnya, menggantikan DMM dengan pendekatan CMM akan menguntungkan CPU karena fewer instruksi MAC diperlukan untuk menghitung output lapisan per elemen. Oleh karena itu, meskipun menggunakan kondisionalitas yang biasanya terkait dengan percabangan, “percabangan neural” bertindak sebagai tambahan pada offset memori ke penunjuk yang relevan dalam kerangka kerja. Oleh karena itu, dalam kerangka kerja UltraFastBERT, prediksi cabang instruksi tidak pernah sepenuhnya terlibat untuk memfasilitasi kondisionalitas CMM, dan hanya memuat kolom yang relevan dari matriks bobot secara individual. Selain itu, karena kerangka kerja melakukan perkalian baris-kolom, pemrosesan vektor paralel SIMD atau single instruction multiple data masih merupakan pilihan yang baik untuk mempercepat implementasi interferensi untuk perangkat tertentu.
UltraFastBERT : Kinerja dan Hasil
Kami akan membahas kinerja kerangka kerja UltraFastBERT untuk fine-tuning serta untuk tugas interferensi untuk menganalisis bagaimana kerangka kerja ini berkinerja dibandingkan dengan model bahasa terkemuka.
Hasil Fine-Tuning
Gambar berikut menunjukkan kinerja berbagai model pada dataset pengujian GLUE-dev. Di sini, N mewakili jumlah neuron yang tersedia untuk kerangka kerja untuk pelatihan, “Avg” mewakili skor rata-rata semua tugas.

Seperti yang dapat dilihat dengan jelas, kerangka kerja UltraFastBERT yang telah dilatih pada GPU A6000 selama lebih dari 24 jam berhasil mempertahankan sekitar 96% kinerja prediktif pada tugas downstream GLUE dibandingkan dengan kerangka kerja BERT asli. Selain itu, juga dapat dilihat bahwa dengan peningkatan kedalaman jaringan feedforward cepat, kinerja kerangka kerja ini mengalami penurunan, meskipun sebagian besar penurunan kinerja terjadi hanya untuk tugas CoLa. Jika tugas CoLa diabaikan untuk sementara, kerangka kerja UltraFastBERT mengembalikan skor kinerja prediktif sekitar 98,6%.
Hasil Interferensi
Dalam bagian ini, kita akan membandingkan kinerja beberapa jaringan feedforward atau jaringan feedforward cepat pada implementasi interferensi, dan implementasi ini tersebar di tiga tingkat.
- Dalam implementasi Tingkat 1, implementasi ini dibangun menggunakan rutinitas Level 1 BLAS seperti produk vektor-skalr, dan produk dot vektor-vektor.
- Dalam Tingkat 2, implementasi ini menggunakan rutinitas Level 2 BLAS seperti produk vektor-skalr batch, dan produk dot matriks-vektor batch.
- Dalam Tingkat 3, implementasi ini menggunakan pendekatan perkalian matriks-matriks non-batched Level 3 BLAS, dan meskipun ini adalah implementasi tercepat yang tersedia untuk jaringan feedforward, implementasi seperti itu tidak tersedia untuk jaringan feedforward cepat karena perpustakaan tidak mendukung kekosongan vektor dari Perkalian Matriks Kondisional.
Selain itu, kerangka kerja UltraFastBERT mengirimkan implementasi GPU dengan menggunakan kernel CUDA kustom atau PyTorch.

Tabel di atas membandingkan kinerja kerangka kerja UltraFastBERT dengan pendahulunya, kerangka kerja berbasis BERT dalam hal lapisan feedforward dan lapisan feedforward cepat di mana setiap kolom berisi percepatan relatif implementasi interferensi feedforward cepat dibandingkan dengan implementasi feedforward ketika mereka menggunakan rutinitas primitif aljabar linier yang sama.
Namun, perlu dicatat bahwa percepatan yang dilaporkan dalam tabel di atas dimaksudkan untuk “perbandingan yang adil” yaitu baik implementasi feedforward cepat dan feedforward menggunakan operasi primitif rutinitas aljabar linier yang sama. Selain itu, pada Tingkat 1 dan Tingkat 2, implementasi jaringan feedforward cepat dapat melakukan interferensi 48x dan 78x lebih cepat daripada implementasi feedforward tercepat, masing-masing.
Pemikiran Akhir
Dalam artikel ini, kita telah membahas tentang UltraFastBERT, varian dari kerangka kerja BERT, membangun konsep bahwa lapisan feedforward tidak menggunakan 100% neuron yang tersedia untuk menghasilkan output untuk setiap input pada waktu inferensi, yang mengakibatkan pemborosan sumber daya yang meningkatkan kompleksitas, waktu komputasi, dan biaya komputasi, dan menggantikan lapisan feedforward dengan jaringan feedforward cepat dalam arsitektur yang akhirnya menghasilkan kerangka kerja UltraFastBERT yang hanya menggunakan 0,3% neuron yang tersedia sambil menghasilkan hasil yang setara dengan model BERT dengan ukuran dan proses pelatihan yang sama, terutama pada tugas downstream.
Karena implementasi desainnya, lapisan intermediate dalam kerangka kerja UltraFastBERT jauh lebih cepat. Selain itu, kinerja yang kuat yang dihasilkan oleh kerangka kerja UltraFastBERT adalah bukti bahwa model bahasa besar dapat menghasilkan kinerja yang kuat dengan menggunakan hanya sebagian kecil parameter mereka untuk interferensi individual, karena kerangka kerja UltraFastBERT hanya menggunakan 0,3% neuron yang tersedia selama interferensi, dan masih berhasil mencapai percepatan 78x dalam waktu interferensi.












