berita

Apa yang terjadi jika saya mengacak/melewati lapisan Transformer?Penelitian terbaru mengungkap mekanisme aliran informasinya

2024-07-26

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Angin barat datang dari Kuil Aofei
Qubit |. Akun publik QbitAI

Mekanisme aliran informasi di Transformer telah terungkap melalui penelitian terbaru:

Apakah semua lapisan diperlukan? Apakah lapisan tengah melakukan hal yang sama? Apakah urutan lapisan itu penting?

jikalewati beberapa lapisan, misalnya, apa yang akan terjadi jika keluaran lapisan 4 dihubungkan ke lapisan 6.Acak urutan lapisan secara acak, bagaimana dengan 4-6-5-7, misalnya.

Sebuah studi baru-baru ini yang disebut "Lapisan Transformator sebagai Pelukis" menjadi populer, dan diselesaikan oleh tim peneliti dari startup AI Sakana AI dan Emergence AI.



Mereka memulai dari prinsip kerja internal Transformer dan mencapai kesimpulan mengenai masalah di atas melalui serangkaian eksperimen. Tim menyatakan bahwa pemahaman mendalam tentang prinsip-prinsip ini tidak hanya dapat meningkatkan efisiensi pemanfaatan model yang ada, tetapi juga membantu meningkatkan arsitektur dan mengembangkan varian baru.

Lucas Beyer, peneliti Google DeepMind dan penulis ViT, langsung menyukainya setelah membacanya:

Ringkasan yang bagus! Meskipun beberapa eksperimen telah ditunjukkan dalam penelitian sebelumnya, saya menyukai detail baru yang Anda tambahkan, terutama menyoroti bahwa tugas jenis "penalaran" lebih terpengaruh daripada tugas lainnya!



Banyak sarjana dan insinyur juga menyatakan rekomendasi yang kuat.

Ada kemungkinan besar bahwa beberapa wawasan ini pada akhirnya akan digunakan untuk meningkatkan Transformer.



Eksperimen tersebut sekali lagi menegaskan bahwa: menyalin lapisan berguna untuk tugas-tugas kreatif, tetapi biasanya tidak efektif untuk tugas-tugas penalaran; mengubah urutan lapisan tidak berfungsi paling baik di lapisan tengah, tetapi masih memerlukan penyesuaian perbaikan.



Lantas, eksperimen apa saja yang dilakukan tim peneliti pada penelitian ini? Pertanyaan apa yang terjawab?

Pemilihan model eksperimental dan benchmarking

Mari kita lihat konfigurasi eksperimentalnya terlebih dahulu~

Eksperimen dihanya decoderDanhanya encoderdilakukan pada model.

Diantaranya, model decoder saja yang memilihLlama2, terutama mempelajari Llama2-7B dengan 32 lapisan dan 7 miliar parameter. Eksperimen yang diperluas juga mencakup model 13B (40 lapisan) dan 70B (80 lapisan).

Model khusus pembuat enkode yang memilihBERT, dengan 24 lapisan dan 340 juta parameter.

Para peneliti menggunakan pos pemeriksaan pra-pelatihan standar untuk model ini. Dalam semua percobaan, model dibekukan, dan kecuali untuk evaluasi BERT, yang mencakup langkah penyesuaian standar, parameter model tidak diubah melalui penyesuaian atau metode lainnya.

Dalam hal pengujian benchmark, Llama2 menggunakan tolok ukur standar berikut: ARC (pertanyaan tes sains), HellaSwag (pertanyaan akal sehat), GSM8K (pertanyaan matematika), WinoGrande (penalaran akal sehat), LAMBADA (prediksi kosakata). Diantaranya, LAMBADA digunakan untuk mengukur kebingungan, yang paling mendekati prediksi token asli yang digunakan selama pelatihan.

Untuk evaluasi kinerja Llama2, median tolok ukur yang dinormalisasi disediakan, yang mengukur kinerja dari 0 hingga 1 (kinerja optimal model).

Untuk BERT, tolok ukur GLUE diadopsi dan metrik evaluasinya diikuti, termasuk skor rata-rata tolok ukur yang tidak dinormalisasi. Perhatikan bahwa evaluasi BERT standar mencakup langkah penyesuaian, sehingga mengadaptasi model. Pada lampiran juga peneliti menunjukkan hasil evaluasi dimana hanya kepala model saja yang dapat disesuaikan.

Motivasi percobaan ini awalnya berasal dari pertanyaan ini:

Apakah mungkin untuk menggabungkan beberapa lapisan menjadi satu lapisan yang mungkin lebih besar?Dihipotesiskan bahwa mungkin karena penggunaan koneksi sisa selama pelatihan, lapisan tengah jaringan sarafRuang representasi umum dapat digunakan.(Hal ini tidak berlaku untuk perceptron multi-lapisan standar, yang tidak memiliki mekanisme untuk mendorong representasi umum atau konsistensi susunan antar lapisan)

Jika lapisan dapat berbagi ruang representasi, hal ini akan berdampak penting pada penghitungan kondisi selanjutnya atau secara dinamis menambahkan pengetahuan baru ke model Transformer yang telah dilatih sebelumnya dan aplikasi hilir.

8 pertanyaan utama tentang Transformer
Apakah lapisan tersebut menggunakan ruang representasi yang sama?

Untuk menentukan apakah lapisan yang berbeda berbagi ruang representasi yang sama, para peneliti memeriksa TransformerLewati lapisan tertentu atau ubah urutan lapisan yang berdekatanketahanan.

Misalnya, dalam model Llama2-7B, ubah aliran keluaran dari urutan normal "Layer 4 -> Layer 5 -> Layer 6" menjadi "Layer 4 -> Layer 6", lewati Layer 5, Apa yang akan terjadi?

Atau apa jadinya jika keluaran lapisan 4 dikirim ke lapisan 6, lalu keluaran lapisan 6 dikirim ke lapisan 5, lalu ke lapisan 7?

Seperti yang ditunjukkan pada gambar di bawah, percobaan menemukan bahwa kecuali beberapa lapisan pertama dan terakhir,Llama2-7B menunjukkan ketahanan yang baik dengan melewatkan atau mengubah urutan lapisan

Artinya, lapisan tengah berbagi ruang representasi, dan lapisan tengah serta "lapisan luar" (lapisan pertama dan terakhir) memiliki ruang representasi independen.



Untuk lebih mengkonfirmasi hipotesis ini, para peneliti mengukur kesamaan kosinus rata-rata antara aktivasi keadaan tersembunyi dari lapisan berbeda dalam model berbeda (Llama2-7B, Llama2-13B, dan BERT-Large) dan membandingkannya di seluruh tolok ukur.

Gambar 3 di bawah menunjukkanKonsistensi antara semua lapisan tengah . Misalnya, aktivasi lapisan keempat di bawah sangat mirip dengan aktivasi lapisan keempat di atas. Untuk Llama2-13B 40-lapisan, Anda dapat melihat bahwa lapisan-lapisan tersebut dapat dibagi menjadi 4-5 kelompok berdasarkan kesamaan: lapisan 0, lapisan 1-3, lapisan tengah, dan kemudian satu atau dua lapisan terakhir.



Hal ini menunjukkan bahwa model tersebut mungkinAda tiga ruang representasi berbeda untuk lapisan "awal", "tengah", dan "akhir". . Para peneliti juga menemukan bahwa jumlah “lapisan awal” tampaknya meningkat seiring dengan jumlah total lapisan dalam model.

Lebih jauh lagi, kesamaan kosinus yang tinggi dapat membuktikan adanya ruang representasi bersama, sedangkan kesamaan kosinus yang rendah lebih menunjukkan bahwa ruang-ruang tersebut tidak digunakan bersama. Data Llama2-7B pada Gambar 3 di atas sangat konsisten dengan hasil kinerja yang ditunjukkan pada Gambar 2, yang selanjutnya membuktikan:

Setidaknya ruang keterwakilan di tingkat menengah terbagi.

Apakah semua lapisan diperlukan?

Untuk lebih memverifikasi bahwa ruang representasi lapisan tengah benar-benar terbagi, para peneliti juga melakukanEksperimen melewatkan lapisan(Tidak ada penyesuaian yang dilakukan selama percobaan).

Secara khusus, keluaran lapisan ke-N langsung diteruskan ke masukan lapisan ke-N+M (M>1), sehingga "melewati" lapisan M-1, seperti yang ditunjukkan pada gambar di bawah.



Awalnya lapisan N+M dilatih hanya berdasarkan masukan dari lapisan N+M-1, jadi sekarang dapatkah ia memahami aktivasi lapisan N?

Dalam eksperimen jenis ini, peneliti mengeksekusi lapisan pertama dan lapisan N-1 terakhir secara normal, sambil melewatkan atau memodifikasi lapisan N+1 menjadi TN (T adalah jumlah total lapisan dalam model).

Seperti yang ditunjukkan pada Gambar 4 di bawah, dalam beberapa pengujian benchmark, Llama2-7B dan BERT-LargeKinerja secara bertahap menurun (Gambar tersebut menunjukkan peningkatan bertahap dalam jumlah lapisan yang dilewati dari kiri ke kanan). Hasil ini mengungkapkan:

Tidak semua lapisan diperlukan, dan menghilangkan setidaknya beberapa lapisan tengah tidak akan berdampak serius pada kinerja keseluruhan.



Apakah semua tingkatan menengah menjalankan fungsi yang sama?

Apakah lapisan perantara mubazir jika mereka berbagi ruang representasi yang sama?

Untuk menjawab pertanyaan ini, para peneliti mengulangi percobaan “lewati” sebelumnya, namun kali ini alih-alih melewatkan lapisan tengah,Mengganti bobot seluruh lapisan tengah dengan bobot lapisan tengah,Seperti yang ditunjukkan di bawah ini.

Faktanya, T-2N+1 kali dieksekusi pada lapisan tengah, di mana T adalah jumlah total lapisan model (Llama2-7B sebanyak 32 lapisan, BERT-Large sebanyak 24 lapisan).



Dalam uji benchmark yang dihasilkan, seiring bertambahnya jumlah lapisan yang diganti,Performa model menurun dengan cepat . Dan penurunan kinerjanya jauh lebih parah daripada sekadar melewatkan beberapa lapisan, penggantian bobot semacam ini sangat merusak.



Karena itu,Tidaklah berlebihan jika lapisan tengah menjalankan fungsi yang berbeda. Berbagi bobot antar lapisan tengah dapat menimbulkan konsekuensi yang sangat buruk.

Apakah urutan lapisan itu penting?

Eksperimen di atas menunjukkan bahwa meskipun lapisan tengah berbagi ruang representasi, ia melakukan operasi yang berbeda pada ruang tersebut. Jadi, apakah urutan operasi ini penting? Para peneliti melakukan dua set percobaan.

Pertama, lapisan tengah dilatih menuruturutan terbalik dieksekusi secara berurutan (urutan terbalik). Lewatkan keluaran lapisan TN ke lapisan TN-1, dan seterusnya hingga lapisan N, lalu teruskan keluaran lapisan tersebut ke lapisan TN terakhir.

Seperti yang ditunjukkan di bawah ini:



Percobaan kedua,pengaturan acakLapisan tengah diurutkan dan dirata-ratakan pada 10 hasil benih acak.

Hasilnya seperti yang ditunjukkan di bawah iniPenurunan kinerja yang lambat





Berikut adalah spoiler hasil eksperimen di bawah ini. Baik dalam urutan terbalik atau acak, performa model lebih baik daripada melewatkan lapisan ini secara langsung, yang menunjukkan bahwa meskipun lapisan dijalankan pada masukan dalam urutan non-pelatihan, lapisan tersebut dijalankan pada input dalam urutan non-pelatihan. masih dapat menghasilkan output yang efektif.

Jadi, apakah urutan lapisan itu penting? Kesimpulannya adalah:

Penyesuaian urutan lapisan memiliki dampak tertentu terhadap kinerja, dan baik urutan acak maupun urutan terbalik menunjukkan penurunan kinerja tertentu.

Perlu dicatat bahwa urutan acak berkinerja lebih baik daripada urutan terbalik. Ini mungkin karena urutan kebalikannya benar-benar berlawanan dengan urutan selama pelatihan, dan urutan acak apa pun mempertahankan setidaknya beberapa koherensi berurutan (yaitu, lapisan i selalu berada setelah lapisan j lainnya, di mana i>j).

Bisakah lapisan-lapisan ini dijalankan secara paralel?

Jika keberadaan lapisan, yaitu tidak dilewati, lebih penting daripada urutan pelaksanaannya, apakah mungkin untuk mempertimbangkannya?Jalankan lapisan-lapisan ini secara terpisah dan kemudian gabungkan hasilnya ? Seperti yang ditunjukkan di bawah ini.



Para peneliti melakukan percobaan di mana alih-alih melewatkan lapisan N ke TN, mereka menjalankan lapisan perantara ini secara paralel dan kemudian meneruskan hasil rata-ratanya ke lapisan N akhir.

Hasilnya ditunjukkan pada gambar di bawah ini. Kecuali benchmark soal matematika GSM8K, semua benchmark menunjukkan penurunan kinerja yang lambat.

Menariknya,Lapisan paralel berkinerja lebih baik daripada melewatkan lapisan, tetapi tidak sebaik menjalankan lapisan dalam urutan terbalik.



Singkatnya, apakah mungkin menjalankan lapisan-lapisan ini secara paralel? jawabannya adalah:Ya, kecuali untuk tolok ukur matematika yang berat.

Untuk beberapa tugas, apakah urutan lebih penting?

Sebagian besar varian (termasuk urutan terbalik, lewati, dan paralel) menunjukkan penurunan kinerja tercepat dalam penalaran abstrak ARC atau penalaran matematis benchmark GSM8K.

Hal ini dapat dijelaskan oleh fakta bahwa tugas penalaran bertahap lebih sensitif terhadap perubahan urutan lapisan dibandingkan tugas "semantik" seperti Winogrande atau HellaSwag.

Hal ini karena tugas penalaran memerlukan kombinasi informasi struktural dan semantik, sedangkan tugas seperti HellaSwag dapat diselesaikan hanya dengan semantik.

Melalui eksperimen, para peneliti menyimpulkan:Tugas-tugas matematika dan penalaran lebih bergantung pada urutan daripada tugas-tugas "semantik".

Apakah iterasi membantu dengan lapisan paralel?

Jika mekanisme operasi internal Transformer diibaratkan dengan proses melukis sebuah lukisan: kanvas (masukan) dilewatkan di antara beberapa pelukis, beberapa pelukis mengkhususkan diri dalam melukis burung, dan ada pula yang lebih baik dalam melukis roda... Setiap pelukis pada gilirannya menggambar dari yang lain Pelukis mengambil kanvas di tangannya dan memutuskan apakah akan menambahkan lukisan itu atau meneruskannya langsung ke pelukis berikutnya (menggunakan sambungan sisa).

Bisa dibayangkan bahwa lapisan-lapisan tertentu hanya “melengkapi” lukisan ketika menerima masukan yang sesuai. Misalnya, seorang seniman yang “menggambar roda” kemungkinan besar akan menggambar roda jika ia melihat badan mobil terlebih dahulu.

Dalam Transformator, beberapa lapisan mungkin hanya berkontribusi pada forward pass ketika mereka menerima input yang sesuai, daripada meneruskan input secara langsung melalui koneksi sisa.

Melihatnya seperti ini, dibandingkan dengan mengeksekusi lapisan paralel hanya sekali,Eksekusi berulang dari lapisan paralelHarus meningkatkan kinerja.

Para peneliti mengujinya dengan mengembalikan keluaran rata-rata lapisan paralel ke lapisan yang sama dan menetapkan jumlah iterasi, seperti yang ditunjukkan di bawah ini:



Pada Gambar 9 di bawah ini, peneliti menunjukkan hasil iterasi pada lapisan paralel sebanyak 3 kali. Metode ini jauh lebih baik dibandingkan mengeksekusi lapisan paralel hanya satu kali.



Satu-satunya pengecualian adalah ketika lapisan awal N adalah 15 untuk Llama2-7B atau 11 untuk BERT. Dalam hal ini, efek memparalelkan loop sebanyak 3 kali setara dengan mengulangi lapisan tengah sebanyak 3 kali saja, dan lapisan paralel saat ini setara dengan model lengkap.

Para peneliti pun mengulangi percobaan tersebut dengan jumlah iterasi yang berbeda-beda.

Gambar di bawah menunjukkan bagaimana kinerja Llama2-7B berubah dengan jumlah lapisan paralel M dan jumlah iterasi.



Jumlah iterasi optimal untuk setiap M ditunjukkan dengan kotak merah. Kecuali untuk M=29 dan M=31 (hampir semua lapisan diparalelkan), jumlah iterasi optimal kira-kira berbanding lurus dengan jumlah lapisan paralel.

Jadi kesimpulannya adalah:Iterasi membantu dengan lapisan paralel, dan jumlah iterasi optimal sebanding dengan jumlah lapisan paralel.

Varian mana yang paling sedikit merugikan performa?

Terakhir, para peneliti membandingkan semua varian berbeda dalam percobaan pada grafik yang sama.

Hasilnya menunjukkan bahwa,Ulangi satu lapisan(Seperti disebutkan di atas, ganti lapisan tengah dengan jumlah lapisan paling tengah yang sama)Efek terburuk, kinerja dengan cepat menurun ke garis dasar acak.



Paralelisme berulang dan penurunan kinerja sekuensial lapisan acak sangat minim, di antaranya paralelisme berulang memiliki kinerja terbaik di BERT dan Llama2-7B.



Hasil eksperimen lainnya telah ditambahkan ke lampiran makalah ini, dan anggota keluarga yang tertarik dapat memeriksa makalah aslinya.

Tautan makalah: https://arxiv.org/abs/2407.09298v1
Tautan referensi: https://x.com/A_K_Nain/status/1812684597248831912