berita

Nvidia bermain dengan pemangkasan dan distilasi: mengurangi separuh parameter Llama 3.1 8B dan mencapai kinerja yang lebih baik dengan ukuran yang sama

2024-08-16

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

Laporan Jantung Mesin

Editor: Du Wei, Chen Chen, Zenan

Munculnya model kecil.

Bulan lalu, Meta merilis model seri Llama 3.1, yang mencakup model 405B terbesar Meta hingga saat ini, serta dua model lebih kecil dengan parameter masing-masing 70 miliar dan 8 miliar.

Llama 3.1 dianggap mengantarkan era baru open source. Namun, meskipun model generasi baru memiliki performa yang kuat, model tersebut masih memerlukan sumber daya komputasi yang besar saat diterapkan.

Oleh karena itu, tren lain telah muncul di industri ini, yaitu mengembangkan model bahasa kecil (SLM) yang berkinerja cukup baik dalam banyak tugas bahasa dan juga sangat murah untuk diterapkan.

Baru-baru ini, penelitian NVIDIA menunjukkan bahwa pemangkasan bobot terstruktur yang dikombinasikan dengan penyulingan pengetahuan dapat secara bertahap memperoleh model bahasa yang lebih kecil dari model yang awalnya lebih besar.



Pemenang Turing Award dan kepala ilmuwan Meta AI Yann LeCun juga menyukai dan mem-posting ulang penelitian tersebut.

Setelah pemangkasan dan penyulingan, tim peneliti NVIDIA menyempurnakan Llama 3.1 8B menjadi Llama-3.1-Minitron 4B dan menjadikannya open source. Ini merupakan karya pertama NVIDIA dalam seri open source Llama 3.1.

Llama-3.1-Minitron 4B mengungguli model open source tercanggih dengan ukuran serupa, termasuk Minitron 4B, Phi-2 2.7B, Gemma2 2.6B, dan Qwen2-1.5B.



Makalah terkait penelitian ini dirilis pada awal bulan lalu.



  • Tautan makalah: https://www.arxiv.org/pdf/2407.14679
  • Judul makalah: Model Bahasa Ringkas melalui Pemangkasan dan Penyulingan Pengetahuan

pemangkasan dan penyulingan

Pemangkasan membuat model lebih kecil dan ramping, dan dapat dicapai dengan menghilangkan lapisan (pemangkasan mendalam) atau menghilangkan neuron dan kepala perhatian serta menyematkan saluran (pemangkasan lebar). Pemangkasan biasanya disertai dengan pelatihan ulang pada tingkat tertentu untuk mengembalikan akurasi.

Penyulingan model adalah suatu teknik untuk mentransfer pengetahuan dari model yang besar dan kompleks (sering disebut model guru) ke model siswa yang lebih kecil dan sederhana. Tujuannya adalah untuk menciptakan model yang lebih efisien yang mempertahankan sebagian besar kekuatan prediktif dari model asli yang lebih besar, sekaligus berjalan lebih cepat dan mengonsumsi lebih sedikit sumber daya.

Ada dua metode penyulingan utama: penyempurnaan SDG dan penyulingan pengetahuan klasik. Kedua metode penyulingan ini saling melengkapi. Artikel ini berfokus pada metode penyulingan pengetahuan klasik.

NVIDIA membuat model besar dengan menggabungkan pemangkasan dan penyulingan pengetahuan klasik. Gambar di bawah menunjukkan proses pemangkasan dan penyulingan model tunggal (atas) dan rangkaian pemangkasan dan penyulingan model (bawah). Proses spesifiknya adalah sebagai berikut:

1. NVIDIA memulai dengan model 15B, mengevaluasi pentingnya setiap komponen (lapisan, neuron, kepala, dan saluran penyematan), kemudian mengurutkan dan memangkas model ke ukuran target: model 8B.

2. Kemudian gunakan penyulingan model untuk pelatihan ulang ringan, dengan model asli sebagai guru dan model yang dipangkas sebagai siswa.

3. Setelah pelatihan, gunakan model kecil (8B) sebagai titik awal, pangkas dan saring menjadi model 4B yang lebih kecil.



Proses pemangkasan dan penyulingan dari model 15B.

Satu hal yang perlu diperhatikan adalah sebelum melakukan pemangkasan model, Anda perlu memahami bagian mana dari model yang penting. NVIDIA mengusulkan strategi penilaian kepentingan murni berbasis aktivasi yang secara bersamaan menghitung informasi di semua dimensi yang relevan (kedalaman, neuron, kepala, dan saluran penyematan), menggunakan kumpulan data kalibrasi kecil sebanyak 1024 sampel, dan hanya diperlukan propagasi Maju. Pendekatan ini lebih sederhana dan hemat biaya dibandingkan strategi yang mengandalkan informasi gradien dan memerlukan propagasi mundur.

Selama pemangkasan, Anda bergantian secara berulang antara pemangkasan dan estimasi kepentingan untuk sumbu atau kombinasi sumbu tertentu. Studi empiris menunjukkan bahwa menggunakan estimasi tingkat kepentingan saja sudah cukup dan estimasi berulang tidak memberikan manfaat tambahan.

Pelatihan ulang menggunakan penyulingan pengetahuan klasik

Gambar 2 di bawah menunjukkan proses penyulingan, di mana model siswa lapisan-N (model yang dipangkas) disuling dari model guru lapisan-M (model asli yang tidak dipangkas). Model siswa dipelajari dengan meminimalkan kombinasi penyematan kerugian keluaran, kerugian logit, dan kerugian spesifik encoder Transformer yang dipetakan ke blok siswa S dan blok guru T.



Gambar 2: Kerugian pelatihan distilasi.

Praktik Terbaik Pemangkasan dan Distilasi

Berdasarkan penelitian ablasi ekstensif mengenai pemangkasan dan penyulingan pengetahuan dalam model bahasa ringkas, NVIDIA merangkum hasil pembelajarannya ke dalam praktik terbaik kompresi terstruktur berikut.

Salah satunya adalah mengubah ukuran.

  • Untuk melatih sekumpulan LLM, LLM terbesar dilatih terlebih dahulu, lalu dipangkas dan disaring secara berulang untuk mendapatkan LLM yang lebih kecil.
  • Jika strategi pelatihan multi-tahap digunakan untuk melatih model terbesar, sebaiknya pangkas dan latih ulang model yang diperoleh pada tahap pelatihan terakhir.
  • Pangkas model sumber yang tersedia paling dekat dengan ukuran target.

Yang kedua adalah pemangkasan.

  • Prioritaskan pemangkasan lebar daripada pemangkasan kedalaman, yang berfungsi baik untuk model dengan ukuran parameter 15B.
  • Gunakan estimasi kepentingan satu kali karena tidak ada manfaat dari estimasi kepentingan berulang.

Yang ketiga adalah melatih kembali.

  • Hanya berlatih ulang menggunakan kerugian distilasi daripada pelatihan reguler.
  • Ketika kedalaman berkurang secara signifikan, gunakan logit, keadaan perantara, dan distilasi penyematan.
  • Ketika kedalaman tidak berkurang secara signifikan, distilasi logit saja digunakan.

Llama-3.1-Minitron: Menerapkan praktik terbaik

Meta baru-baru ini meluncurkan rangkaian model sumber terbuka Llama 3.1 yang kuat yang menyaingi model sumber tertutup di banyak tolok ukur. Parameter Llama 3.1 berkisar dari 405B hingga 70B dan 8B.

Dengan pengalaman distilasi Nemotron, NVIDIA mulai menyaring model Llama 3.1 8B menjadi model 4B yang lebih kecil dan lebih efisien, dengan mengambil langkah-langkah berikut:

  • Penyempurnaan guru
  • Pemangkasan hanya pada kedalaman
  • Pemangkasan hanya pada lebar saja
  • Tolok Ukur Akurasi
  • Tolok ukur kinerja

Penyempurnaan guru

Untuk memperbaiki bias distribusi kumpulan data asli yang menjadi dasar pelatihan model, NVIDIA pertama-tama menyempurnakan model 8B yang belum dipangkas pada kumpulan datanya (token 94B). Eksperimen menunjukkan bahwa jika bias distribusi tidak diperbaiki, model guru memberikan panduan yang kurang optimal untuk kumpulan data saat menyaring.

Pemangkasan hanya pada kedalaman

Untuk mengurangi dari 8B ke 4B, NVIDIA memangkas 16 lapisan (50%). Mereka pertama-tama mengevaluasi pentingnya setiap lapisan atau kelompok sub-lapisan yang berurutan dengan menghapusnya dari model dan mengamati peningkatan kehilangan LM atau penurunan akurasi dalam tugas-tugas hilir.

Gambar 5 di bawah ini menunjukkan nilai kerugian LM pada set validasi setelah menghilangkan 1, 2, 8 atau 16 lapisan. Misalnya, plot merah pada lapisan 16 menunjukkan bahwa hilangnya LM terjadi jika 16 lapisan pertama dihapus. Lapisan 17 artinya jika lapisan pertama dipertahankan dan lapisan 2 sampai 17 dihapus, maka terjadi juga kehilangan LM. Nvidia mengamati: Lapisan awal dan akhir adalah yang paling penting.



Gambar 5: Pentingnya pemangkasan lapisan tengah pada kedalaman tertentu.

Namun, NVIDIA mengamati bahwa hilangnya LM ini belum tentu terkait langsung dengan kinerja hilir.

Gambar 6 di bawah menunjukkan akurasi Winogrande dari setiap model yang dipangkas. Hal ini menunjukkan bahwa yang terbaik adalah menghapus lapisan 16 hingga 31, di mana lapisan 31 adalah lapisan kedua dari belakang. Akurasi 5 tembakan dari model yang dipangkas secara signifikan lebih tinggi daripada Akurasi acak (). 0,5). Nvidia mengadopsi wawasan ini dan menghapus lapisan 16 hingga 31.



Gambar 6: Akurasi pada tugas Winogrande ketika 16 lapisan dihilangkan.

Pemangkasan hanya pada lebar saja

NVIDIA memangkas dimensi penyematan (tersembunyi) dan perantara MLP sepanjang sumbu lebar untuk mengompresi Llama 3.1 8B. Secara khusus, mereka menggunakan strategi berbasis aktivasi yang dijelaskan sebelumnya untuk menghitung skor kepentingan untuk setiap kepala perhatian, saluran penyematan, dan dimensi tersembunyi MLP.

Setelah memperkirakan pentingnya, NVIDIA memilih

  • Pangkas dimensi perantara MLP dari 14336 menjadi 9216.
  • Pangkas ukuran tersembunyi dari 4096 menjadi 3072.
  • Latih kembali perhatian nomor kepala dan jumlah lapisan.

Perlu disebutkan bahwa setelah pemangkasan sampel tunggal, kehilangan LM pada pemangkasan lebar lebih tinggi dibandingkan dengan pemangkasan kedalaman. Namun, setelah beberapa waktu pelatihan ulang, trennya berbalik.

Tolok Ukur Akurasi

NVIDIA menyaring model menggunakan parameter berikut

  • Kecepatan pembelajaran puncak = 1e-4
  • Kecepatan pembelajaran minimum = 1e-5
  • Pemanasan awal linier 40 langkah
  • skema peluruhan kosinus
  • Ukuran kumpulan global = 1152

Tabel 1 di bawah menunjukkan perbandingan performa varian model Llama-3.1-Minitron 4B (pemangkasan lebar dan pemangkasan kedalaman) dengan model Llama 3.1 8B asli dan model berukuran serupa lainnya pada tolok ukur di beberapa domain. Secara keseluruhan, NVIDIA sekali lagi menegaskan keefektifan strategi pemangkasan luas dibandingkan dengan pemangkasan mendalam yang mengikuti praktik terbaik.



Tabel 1: Perbandingan akurasi model dasar Minitron 4B dibandingkan dengan model dasar berukuran serupa.

Untuk memverifikasi apakah model sulingan dapat menjadi model instruksi yang kuat, NVIDIA menggunakan NeMo-Aligner untuk menyempurnakan model Llama-3.1-Minitron 4B.

Mereka menggunakan data pelatihan Nemotron-4 340B dan melakukan evaluasi pada IFEval, MT-Bench, ChatRAG-Bench, dan Berkeley Function Calling Leaderboard (BFCL) untuk menguji kemampuan mengikuti instruksi, permainan peran, RAG, dan pemanggilan fungsi. Terakhir, model Llama-3.1-Minitron 4B dipastikan dapat menjadi model instruksi yang andal, dan kinerjanya lebih baik dibandingkan SLM dasar lainnya.



Tabel 2: Perbandingan akurasi model dasar Minitron 4B yang disejajarkan dengan model sejajar yang berukuran sama.

Tolok ukur kinerja

NVIDIA mengoptimalkan model Llama 3.1 8B dan Llama-3.1-Minitron 4B menggunakan NVIDIA TensorRT-LLM, sebuah toolkit sumber terbuka untuk mengoptimalkan inferensi LLM.

Dua gambar berikutnya menunjukkan permintaan throughput per detik pada presisi FP8 dan FP16 untuk model berbeda dalam kasus penggunaan berbeda, dinyatakan sebagai kombinasi panjang urutan input/panjang urutan output (ISL/OSL) dengan ukuran batch 32 untuk model 8B dan model 4B Ukuran batch adalah kombinasi panjang urutan input/panjang urutan output (ISL/OSL) sebesar 64, berkat bobot yang lebih kecil memungkinkan ukuran batch yang lebih besar pada GPU NVIDIA H100 80GB.

Varian Llama-3.1-Minitron-4B-Depth-Base adalah yang tercepat, dengan throughput rata-rata sekitar 2,7 kali lipat dari Llama 3.1 8B, sedangkan varian Llama-3.1-Minitron-4B-Width-Base memiliki throughput rata-rata sebesar tentang Llama 3.1 1.8x 8B. Penerapan di FP8 juga meningkatkan kinerja ketiga model ini sekitar 1,3 kali lipat dibandingkan BF16.





Gambar 8: Kombinasi: Llama 3.1 8B pada BS=32, model Llama-3.1-Minitron 4B pada BS=64.

sebagai kesimpulan

Pemangkasan dan penyempurnaan pengetahuan klasik adalah metode yang sangat hemat biaya untuk secara progresif memperoleh LLM berukuran lebih kecil, mencapai akurasi lebih tinggi daripada pelatihan dari awal di semua domain. Ini adalah pendekatan yang lebih efisien dan hemat data dibandingkan menyempurnakan data sintetis atau pra-pelatihan dari awal.

Llama-3.1-Minitron 4B adalah upaya pertama NVIDIA untuk menggunakan seri Llama 3.1 open source tercanggih. Untuk menggunakan penyempurnaan SDG untuk Llama-3.1 dengan NVIDIA NeMo, lihat bagian /sdg-law-title-generasi di GitHub.

Untuk informasi selengkapnya, lihat sumber daya berikut:

  • https://arxiv.org/abs/2407.14679
  • https://github.com/NVlabs/Minitron
  • https://huggingface.co/nvidia/Llama-3.1-Minitron-4B-Width-Base
  • https://huggingface.co/nvidia/Llama-3.1-Minitron-4B-Depth-Base

https://developer.nvidia.com/blog/how-to-prune-and-distill-llama-3-1-8b-to-an-nvidia-llama-3-1-minitron-4b-model/