Rumah >Peranti teknologi >AI >Kuantisasi untuk model bahasa besar (LLMS): Mengurangkan saiz model AI dengan cekap

Kuantisasi untuk model bahasa besar (LLMS): Mengurangkan saiz model AI dengan cekap

Christopher Nolan
Christopher Nolanasal
2025-03-05 09:10:13789semak imbas

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.

Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently

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). Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently

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:

  • kuantisasi linear: Peta nilai terapung-titik ke julat tetap sama rata. Ia melibatkan pengiraan nilai minimum/maksimum, skala, titik sifar, kuantitatif, dan dequantizing (semasa kesimpulan).

Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently

Persamaan kuantisasi linear.

Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently

Contoh: kuantisasi linear matriks berat.

Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently ralat dequanisasi dan kuantisasi.

    Kuantisasi Blockwise:
  • Mengira berat dalam blok yang lebih kecil, mengendalikan pengagihan bukan seragam dengan lebih berkesan.

  • Berat vs pengaktifan pengaktifan:
  • Kuantisasi boleh digunakan untuk kedua -dua berat (statik) dan pengaktifan (dinamik). Kuantisasi pengaktifan lebih kompleks.

  • Kuantisasi Post-Training (PTQ) vs Latihan Kuantisasi-Aware (QAT):
  • PTQ mengukur model pra-terlatih; QAT mengubah latihan untuk mensimulasikan kesan kuantisasi, yang membawa kepada ketepatan yang lebih baik tetapi meningkatkan masa latihan.

    Teknik penentukuran
Beberapa kaedah memerlukan kesimpulan penentukuran pada dataset untuk mengoptimumkan parameter kuantisasi. Teknik termasuk penentukuran persentil dan penentukuran sisihan min/standard. Kaedah seperti qlora mengelakkan 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:

  1. Muatkan model: Muatkan model pra-terlatih dan tokenizer.
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)
  1. Quantize: Gunakan quantize() untuk menukar model.
from quanto import quantize, freeze
quantize(model, weights=torch.int8, activations=None)
  1. membekukan: Gunakan freeze() untuk menggunakan kuantisasi pada berat.
freeze(model)
  1. Hasil Semak: Sahkan saiz model yang dikurangkan dan kesimpulan ujian. (Nota: adalah fungsi tersuai; lihat DataCamp Datalab untuk pelaksanaan). compute_module_sizes()

Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently

Kesimpulan

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

  • qat vs ptq: qat umumnya melakukan lebih baik tetapi memerlukan lebih banyak sumber semasa latihan.
  • Perpustakaan Quanto:
  • menyokong kedua -dua PTQ dan QAT. termasuk penentukuran tersirat; Kaedah tersedia untuk penentukuran tersuai. quantize() calibration()
  • Precision:
  • INT4 dan INT2 kuantisasi adalah mungkin.
  • Mengakses model muka pelukan:
  • Tukar pembolehubah kepada model yang dikehendaki. Ingatlah untuk menerima terma dan syarat yang memeluk Face. 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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn