Kertas 6 halaman Microsoft meletup: ternary LLM, sangat lazat!
Ini adalah kesimpulan yang dikemukakan oleh Microsoft dan Akademi Sains Universiti China dalam kajian terkini -
Semua LLM akan menjadi 1.58 bit.
Secara khusus, kaedah yang dicadangkan dalam kajian ini dipanggil BitNet b1.58, yang boleh dikatakan bermula daripada parameter "root" model bahasa besar.
Storan tradisional dalam bentuk nombor titik terapung 16-bit (seperti FP16 atau BF16) telah ditukar kepada ternary , iaitu {-1, 0, 1}.
Perlu diingat bahawa "1.58 bit" tidak bermakna setiap parameter menduduki 1.58 bait ruang storan, tetapi setiap parameter boleh dikodkan dengan 1.58 bit maklumat.
Selepas penukaran sedemikian, pengiraan dalam matriks hanya akan melibatkan penambahan integer, sekali gus membolehkan model besar mengurangkan ruang storan dan sumber pengkomputeran yang diperlukan dengan ketara sambil mengekalkan ketepatan tertentu.
Sebagai contoh, BitNet b1.58 dibandingkan dengan Llama apabila saiz model ialah 3B Walaupun kelajuan meningkat sebanyak 2.71 kali, penggunaan memori GPU hampir hanya satu perempat daripada asal. Dan apabila saiz model lebih besar(contohnya, 70B) , peningkatan kelajuan dan penjimatan memori akan menjadi lebih ketara!
Idea subversif ini benar-benar menarik perhatian netizen, dan kertas itu juga mendapat perhatian tinggi tentang Jenaka lama kertas itu:1 bit sahaja yang ANDA perlukan.
Tukar semua parameter kepada ternaryJadi bagaimanakah BitNet b1.58 dilaksanakan? Jom teruskan membaca.
Penyelidikan ini sebenarnya adalah pengoptimuman yang dilakukan oleh pasukan asal berdasarkan kertas yang diterbitkan sebelum ini, iaitu, nilai tambahan 0 ditambahkan pada BitNet asal.
(Transformer)
, menggantikan nn.Linear dengan BitLinear.Bagi pengoptimuman terperinci, perkara pertama ialah "menambah 0" yang baru kami sebutkan, iaitu,
(pengkuantiti berat).
Berat model BitNet b1.58 dikuantasikan ke dalam nilai terner {-1, 0, 1}, yang bersamaan dengan menggunakan 1.58 bit untuk mewakili setiap berat dalam sistem binari. Kaedah kuantifikasi ini mengurangkan jejak ingatan model dan memudahkan proses pengiraan.
Kedua, dari segireka bentuk fungsi kuantisasi
, untuk mengehadkan berat kepada -1, 0 atau +1, penyelidik menggunakan fungsi kuantisasi yang dipanggil absmean.Fungsi ini mula-mula menskalakan mengikut purata nilai mutlak matriks berat, dan kemudian membundarkan setiap nilai kepada integer terdekat (-1, 0, +1).
Langkah seterusnya ialahkuantisasi pengaktifan
.
Kuantisasi nilai pengaktifan adalah sama seperti pelaksanaan dalam BitNet, tetapi nilai pengaktifan tidak diskalakan kepada julat [0, Qb] sebelum fungsi tak linear. Sebaliknya, pengaktifan diskalakan kepada julat [−Qb, Qb] untuk menghapuskan pengkuantitian titik sifar. Perlu dinyatakan bahawa untuk menjadikan BitNet b1.58 serasi dengan komuniti sumber terbuka, pasukan penyelidik menggunakan komponen model LLaMA, seperti RMSNorm, SwiGLU, dll., supaya ia boleh disepadukan dengan mudah ke dalam arus perdana terbuka. perisian sumber. Akhir sekali, dari segi perbandingan prestasi percubaan, pasukan membandingkan BitNet b1.58 dan FP16 LLaMA LLM pada model yang berbeza saiz. Hasilnya menunjukkan bahawa BitNet b1.58 mula memadankan LLaMA berketepatan penuh LLM dalam kebingungan pada saiz model 3B, sambil mencapai peningkatan ketara dalam kependaman, penggunaan memori dan daya pemprosesan. Dan apabila saiz model menjadi lebih besar, peningkatan prestasi ini akan menjadi lebih ketara. Seperti yang dinyatakan di atas, kaedah unik kajian ini telah menyebabkan banyak perbincangan hangat di Internet. Pengarang DeepLearning.scala Yang Bo berkata: Berbanding dengan BitNet asal, ciri terbesar BitNet b1.58 ialah ia membenarkan 0 parameter. Saya berpendapat bahawa dengan mengubah sedikit fungsi pengkuantitian, kita mungkin dapat mengawal perkadaran parameter 0. Apabila perkadaran 0 parameter adalah besar, pemberat boleh disimpan dalam format yang jarang, supaya purata memori video yang diduduki oleh setiap parameter adalah kurang daripada 1 bit. Ini bersamaan dengan MoE peringkat berat. Saya rasa ia lebih elegan daripada KPM biasa. Pada masa yang sama, dia juga membangkitkan kekurangan BitNet: Kelemahan terbesar BitNet ialah walaupun ia boleh mengurangkan overhed memori semasa inferens, keadaan pengoptimum dan kecerunan masih menggunakan nombor titik terapung, dan latihan masih sangat memakan ingatan. Saya fikir jika BitNet boleh digabungkan dengan teknologi yang menjimatkan memori video semasa latihan, maka berbanding dengan rangkaian separuh ketepatan tradisional, ia boleh menyokong lebih banyak parameter dengan kuasa pengkomputeran dan memori video yang sama, yang akan mempunyai kelebihan yang besar. Cara semasa untuk menyimpan overhed memori grafik bagi keadaan pengoptimum sedang memunggah. Satu cara untuk menyimpan penggunaan memori kecerunan mungkin ReLoRA. Walau bagaimanapun, percubaan kertas ReLoRA hanya menggunakan model dengan satu bilion parameter, dan tidak ada bukti bahawa ia boleh digeneralisasikan kepada model dengan puluhan atau ratusan bilion parameter. . Netizen: Ada kemungkinan untuk menjalankan model besar 120B pada GPU gred pengguna
Jadi apa pendapat anda tentang kaedah baharu ini?
Atas ialah kandungan terperinci Kertas 6 halaman Microsoft meletup: ternary LLM, sangat lazat!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tidak ada XML percuma yang mudah dan langsung ke alat PDF di mudah alih. Proses visualisasi data yang diperlukan melibatkan pemahaman dan rendering data yang kompleks, dan kebanyakan alat yang dipanggil "percuma" di pasaran mempunyai pengalaman yang buruk. Adalah disyorkan untuk menggunakan alat sampingan komputer atau menggunakan perkhidmatan awan, atau membangunkan aplikasi sendiri untuk mendapatkan kesan penukaran yang lebih dipercayai.

Mengapa lelaran peta di GO menyebabkan semua nilai menjadi elemen terakhir? Dalam bahasa Go, ketika berhadapan dengan beberapa soalan wawancara, anda sering menemui peta ...

Pengindahan XML pada dasarnya meningkatkan kebolehbacaannya, termasuk lekukan yang munasabah, rehat garis dan organisasi tag. Prinsipnya adalah untuk melintasi pokok XML, tambah lekukan mengikut tahap, dan mengendalikan tag dan tag kosong yang mengandungi teks. Perpustakaan XML.Etree.ElementTree Python menyediakan fungsi Pretty_XML yang mudah yang dapat melaksanakan proses pengindahan di atas.

Mengapa menggunakan kunci menyebabkan panik sekali -sekala? Mari kita lihat soalan yang menarik: mengapa pergi, walaupun kunci ditambah dalam kod, kadang -kadang ...

Tips Penambahan Nod XML: Buat nod baru menggunakan fungsi subelement Perpustakaan ElementTree dengan memahami struktur pokok dan mencari titik sisipan yang sesuai. Senario yang lebih kompleks memerlukan penyisipan selektif atau penambahan batch berdasarkan atribut atau kandungan nod, yang memerlukan penghakiman logik dan gelung. Untuk fail besar, pertimbangkan untuk menggunakan perpustakaan LXML yang lebih cepat. Berikutan gaya kod yang baik, anotasi yang jelas membantu pembacaan dan pemeliharaan kod.

Pengesahan format XML melibatkan memeriksa struktur dan pematuhannya dengan DTD atau skema. Parser XML diperlukan, seperti ElementTree (pemeriksaan sintaks asas) atau LXML (pengesahan yang lebih kuat, sokongan XSD). Proses pengesahan melibatkan parsing fail XML, memuatkan skema XSD, dan melaksanakan kaedah AssertValid untuk membuang pengecualian apabila ralat dikesan. Mengesahkan format XML juga memerlukan pengendalian pelbagai pengecualian dan mendapat gambaran mengenai bahasa skema XSD.

Dalam bahasa Go, bagaimana untuk menentukan antara muka yang sama dan menghalang kaedah yang dilaksanakan oleh antara muka, dan pada masa yang sama mengendalikan kaedah yang sama antara muka yang berbeza tetapi jenis parameter yang berbeza ...

Mengubah XML dengan SAX adalah strategi berasaskan acara yang melibatkan langkah-langkah berikut: Baca kandungan XML dan dengar untuk acara elemen. Tentukan sama ada elemen perlu diubah suai. Ubah suai dalam acara teks. Tulis kandungan yang diubahsuai dalam acara Elemen Akhir.
