Kecerdasan buatan
UltraFastBERT: Lebih Cepat Eksponensial dalam Pemodelan Bahasa

Model bahasa dan kecerdasan buatan generatif, yang terkenal dengan kemampuan mereka, merupakan topik hangat di industri kecerdasan buatan. Peneliti global meningkatkan efikasi dan kemampuan mereka. Sistem ini, biasanya model pembelajaran dalam, dipratinjau pada data berlabel ekstensif, mengintegrasikan jaringan saraf untuk perhatian diri. Mereka menggunakan berbagai lapisan—feedforward, rekuren, tertanam, dan perhatian—untuk memproses teks input dan menghasilkan output yang relevan.
Biasanya, lapisan feedforward model bahasa besar memegang sebagian besar parameter. Studi menunjukkan bahwa model ini hanya menggunakan sebagian kecil neuron yang tersedia untuk perhitungan output selama inferensi.
Artikel ini memperkenalkan UltraFastBERT, kerangka kerja berbasis BERT yang sesuai dengan efikasi model BERT terdepan tetapi hanya menggunakan 0,3% neuron selama inferensi, khususnya 12 dari 4095 di setiap lapisan. Kami akan mengeksplorasi arsitektur UltraFastBERT, fungsionalitas, dan hasilnya. Mari kita mulai.
UltraFastBERT : Pengenalan untuk Pemodelan Bahasa Lebih Cepat Eksponensial
Secara tradisional, model bahasa menggunakan berbagai komponen untuk melengkapi kemampuan generasi konten, termasuk lapisan feedforward, lapisan rekuren, lapisan tertanam, dan lapisan perhatian. Komponen-komponen ini bertanggung jawab untuk mempelajari pola selama pelatihan dan akhirnya menghasilkan output akurat berdasarkan teks input. Setiap komponen ini 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 menyebabkan 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 hilir. Karena implementasi desainnya, lapisan antara dalam kerangka kerja UltraFastBERT jauh lebih cepat,
Diberikan jaringan feedforward cepat (FFF) dan jaringan feedforward (FF), masing-masing dengan n jumlah neuron, kompleksitas waktu dari satu jalur maju dalam jaringan feedforward adalah O(n) sedangkan kompleksitas waktu adalah O(log2n) untuk jaringan feedforward cepat, dan perbedaan kompleksitas waktu ini terutama karena dalam jaringan feedforward cepat, neuron diatur menjadi pohon biner seimbang, dan ketika input diberikan, jaringan hanya mengeksekusi 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 individual, dan output dari operasi dot-product sebelumnya menentukan bobot kolom untuk dilanjutkan. Akibatnya, jaringan hanya menggunakan semua neuron untuk beberapa input, dan tidak ada input yang memerlukan lebih dari beberapa neuron untuk ditangani oleh jaringan. Produk dot CMM kontras dengan DMM atau Perkalian Matriks Padat yang menghitung produk dot dari semua input dengan semua kolom bobot.
Untuk merangkum, UltraFastBERT adalah kerangka kerja berbasis BERT yang menyediakan hasil yang setara dengan model bahasa BERT terdepan 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 kuat yang setara dengan model BERT terdepan dengan mengimplementasikan strategi penyetelan ulang pada tugas hilir.
- Menyediakan implementasi asli dari CMM atau Perkalian Matriks Kondisional yang membentuk dasar untuk jaringan feedforward cepat, dan akhirnya menghasilkan percepatan 78x dalam kinerja dibandingkan dengan perkalian matriks padat yang dioptimalkan.
Jaringan Saraf Feed Forward
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 Rekuren, 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 lainnya dengan bantuan bobot.
Neuron yang ada di lapisan input menerima input, dan meneruskannya ke lapisan berikutnya. Jumlah neuron di 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 komputasi yang diperlukan. Neuron di setiap lapisan tersembunyi mengambil jumlah bobot dari output yang diberikan oleh lapisan sebelumnya, menerapkan fungsi aktivasi, dan melewatkan hasilnya ke lapisan berikutnya, dan proses ini berulang lagi. Akhirnya, kita memiliki lapisan output yang menghasilkan output untuk input yang diberikan. Setiap neuron di setiap lapisan jaringan feedforward cepat dihubungkan dengan setiap neuron di lapisan berikutnya, sehingga membuat jaringan saraf feedforward menjadi jaringan yang 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 pada output.
Maju ke depan, 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 ke depan. Lapisan tersembunyi kemudian menghitung jumlah bobot dari input, dan memperkenalkan non-linearitas dalam model dengan melewatkan jumlah input melalui fungsi aktivasi seperti ReLu, Sigmoid, dan TanH. Proses ini berulang 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 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 antara. Sebagai gantinya, kerangka kerja UltraFastBERT menggantikan pengkode transformer dalam jaringan feedforward yang terkandung dalam lapisan antara 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 menjadi 1.
- Akhirnya, kerangka kerja ini memungkinkan beberapa pohon jaringan feedforward cepat berjalan paralel dengan menghitung lapisan output antara bersama. Kerangka kerja ini mengelola untuk melakukan perhitungan ini dengan mengambil jumlah dari pohon individu, dan kemudian menyajikan jumlah sebagai lapisan output antara.
Maju ke depan, dalam pelatihan, kerangka kerja UltraFastBERT mengikuti prosedur pelatihan yang digunakan oleh kerangka kerja crammedBERT yang termasuk menonaktifkan dropout dalam pelatihan awal, dan menggunakan jadwal pembelajaran triangular 1-siklus. Model kemudian disetel ulang untuk memaksimalkan kinerjanya pada berbagai tugas, terutama dari benchmark GLUE, selama total 5 epoch.
Inferensi
Inferensi adalah bagian penting untuk jaringan feedforward cepat, dan jaringan feedforward cepat ini sendiri membentuk sebagian besar model bahasa besar, dan mereka dikenal karena 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 untuk inferensi, yang berarti sekitar 0,03% dari neuron yang tersedia untuk GPT-3.
Algoritma dan Kompatibilitas
Kerangka kerja UltraFastBERT menggunakan algoritma pseudocode rekursif untuk inferensi 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 mengenalkan 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 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 saraf” bertindak sebagai tambahan pada offset memori ke penunjuk yang relevan dalam kerangka kerja. Oleh karena itu, dalam kerangka kerja UltraFastBERT, prediksi instruksi cabang 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 dot antara baris dan kolom, pemrosesan paralel vektor tunggal (SIMD) masih merupakan pilihan yang baik untuk mempercepat implementasi inferensi untuk perangkat tertentu.
UltraFastBERT : Kinerja dan Hasil
Kami akan membahas kinerja kerangka kerja UltraFastBERT untuk penyetelan ulang serta untuk tugas inferensi untuk menganalisis bagaimana kerangka kerja ini berkinerja dibandingkan dengan model bahasa terdepan.
Hasil Penyetelan Ulang
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 hilir 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 Inferensi
Dalam bagian ini, kami akan membandingkan kinerja beberapa jaringan feedforward atau jaringan feedforward cepat pada implementasi inferensi, dan implementasi ini tersebar di tiga tingkat.
- Pada Tingkat 1, implementasi ini dibangun menggunakan rutinitas Level 1 BLAS seperti produk vektor-skalr, dan produk dot vektor-vektor.
- Pada Tingkat 2, implementasi ini menggunakan rutinitas Level 2 BLAS seperti produk skalar-vektor batch, dan produk dot matriks-vektor batch.
- Pada Tingkat 3, implementasi ini menggunakan pendekatan perkalian matriks-matriks Level 3 BLAS non-batched, dan meskipun ini adalah implementasi tercepat yang tersedia untuk jaringan feedforward, implementasi seperti ini tidak tersedia untuk jaringan feedforward cepat karena perpustakaan tidak mendukung kekosongan vektor dari Perkalian Matriks Kondisional.
Selain itu, kerangka kerja UltraFastBERT menggelar implementasi GPU dengan menggunakan inti 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 kecepatan implementasi inferensi feedforward cepat relatif terhadap feedforward ketika mereka menggunakan rutinitas primitif aljabar linier yang sama.
Namun, perlu dicatat bahwa percepatan yang dilaporkan dalam tabel ini dimaksudkan untuk “perbandingan yang adil” yaitu baik implementasi feedforward cepat dan feedforward menggunakan operasi primitif aljabar linier yang identik. Selain itu, pada Tingkat 1 dan Tingkat 2, implementasi jaringan feedforward cepat dapat melakukan inferensi 48x dan 78x lebih cepat daripada implementasi feedforward tercepat, respectively.
Pemikiran Akhir
Dalam artikel ini, kami 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 menyebabkan pemborosan sumber daya yang meningkatkan kompleksitas, waktu komputasi, dan biaya komputasi, 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 hilir.
Karena implementasi desainnya, lapisan antara dalam kerangka kerja UltraFastBERT jauh lebih cepat. Selain itu, kinerja kuat yang dihasilkan oleh kerangka kerja UltraFastBERT adalah bukti bahwa model bahasa besar dapat menghasilkan kinerja kuat dengan hanya menggunakan sebagian kecil parameter untuk inferensi individual, karena kerangka kerja UltraFastBERT hanya menggunakan 0,3% neuron yang tersedia selama inferensi, dan masih berhasil mencapai percepatan 78x dalam waktu inferensi.








