Rumah >Peranti teknologi >AI >Kuantisasi untuk model bahasa besar (LLMS): Mengurangkan saiz model AI dengan cekap
Jalankan chatgpt anda sendiri di komputer riba anda: Panduan untuk kuantisasi LLM
pernah bermimpi menjalankan chatgpt anda sendiri secara langsung di komputer riba anda? Terima kasih kepada kemajuan dalam model bahasa besar (LLMS), ini menjadi kenyataan. Kuncinya adalah kuantisasi -teknik yang mengecilkan model -model besar -besaran ini agar sesuai dengan perkakasan pengguna dengan kehilangan prestasi yang minimum (apabila dilakukan dengan betul!). Panduan ini menerangkan kuantisasi, kaedahnya, dan menunjukkan kepada anda bagaimana untuk mengukur model menggunakan perpustakaan Quanto Face yang memeluk dalam dua langkah mudah. Ikuti bersama menggunakan DataCamp Datalab.
saiz llms yang sentiasa berkembang
LLMs telah meletup dalam kerumitan. GPT-1 (2018) mempunyai 0.11 bilion parameter; GPT-2 (2019), 1.5 bilion; GPT-3 (2020), kekalahan 175 bilion; dan GPT-4 mempunyai lebih dari 1 trilion. Pertumbuhan besar -besaran ini mewujudkan kesesakan memori, menghalang kedua -dua latihan dan kesimpulan, dan mengehadkan aksesibiliti. Kuantisasi menyelesaikannya dengan mengurangkan saiz model semasa mengekalkan prestasi.
Memahami kuantisasi
Kuantisasi adalah teknik pemampatan model yang mengurangkan ketepatan berat dan pengaktifan model. Ini melibatkan penukaran data dari jenis ketepatan yang lebih tinggi (mis., Titik terapung 32-bit) ke jenis ketepatan yang lebih rendah (mis., Integer 8-bit). Bit yang lebih sedikit bermaksud model yang lebih kecil, memakan memori, penyimpanan, dan tenaga yang kurang.
Fikirkan pemampatan imej: Imej resolusi tinggi dimampatkan untuk kegunaan web, mengurangkan saiz dan masa pemuatan dengan kos beberapa detail. Begitu juga, mengira LLM mengurangkan tuntutan pengiraan, membolehkannya berjalan pada perkakasan yang kurang kuat.
pemampatan imej untuk pemuatan web yang lebih cepat.
Kuantisasi memperkenalkan bunyi (ralat kuantisasi), tetapi penyelidikan memberi tumpuan kepada meminimumkan ini untuk mengekalkan prestasi.teori di sebalik kuantisasi
Kuantisasi biasanya mensasarkan berat model -parameter yang menentukan kekuatan hubungan antara neuron. Berat ini pada mulanya rawak dan diselaraskan semasa latihan. Contoh mudah adalah berat membulat ke tempat perpuluhan yang lebih sedikit.
Contohnya: matriks berat (kiri) dan versi kuantitinya (kanan).
Perbezaan antara matriks asal dan kuantitatif ialah ralat kuantisasi.
Matriks ralat kuantisasi.
Dalam amalan, kuantisasi melibatkan perubahan jenis data (downcasting). Sebagai contoh, menukar dari float32 (4 bait per parameter) hingga int8 (1 byte per parameter) dengan ketara mengurangkan penggunaan memori.
titik terapung otak (BF16) dan downcasting
BF16, yang dibangunkan oleh Google, menawarkan keseimbangan antara jarak dinamik Float32 dan kecekapan Float16. Downcasting-converting dari ketepatan yang lebih tinggi ke jenis data yang lebih rendah-ketepatan kelajuan tetapi boleh menyebabkan kehilangan data dan penyebaran kesilapan, terutama dengan jenis data yang lebih kecil.
Jenis kuantisasi
Beberapa jenis kuantisasi wujud:
Persamaan kuantisasi linear.
ralat dequanisasi dan kuantisasi.
Teknik penentukuran
alat untuk kuantisasi
Beberapa perpustakaan python menyokong kuantisasi, termasuk pytorch dan tensorflow. Memeluk Perpustakaan Quanto Face memudahkan proses untuk model pytorch.
Mengira model dengan memeluk Face's Quanto
inilah panduan langkah demi langkah menggunakan model Pythia 410m:
from transformers import AutoModelForCausalLM, AutoTokenizer model_name = "EleutherAI/pythia-410m" model = AutoModelForCausalLM.from_pretrained(model_name, low_cpu_mem_usage=True) tokenizer = AutoTokenizer.from_pretrained(model_name)
quantize()
untuk menukar model. from quanto import quantize, freeze quantize(model, weights=torch.int8, activations=None)
freeze()
untuk menggunakan kuantisasi pada berat. freeze(model)
compute_module_sizes()
Kuantisasi menjadikan LLM lebih mudah dan cekap. Dengan memahami tekniknya dan menggunakan alat seperti memeluk Face's Quanto, anda boleh menjalankan model yang kuat pada perkakasan yang kurang kuat. Untuk model yang lebih besar, pertimbangkan untuk menaik taraf sumber anda.
LLM Kuantisasi Soalan Lazim
quantize()
calibration()
model_name
Atas ialah kandungan terperinci Kuantisasi untuk model bahasa besar (LLMS): Mengurangkan saiz model AI dengan cekap. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!