Transformers documentation

AutoRound

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.2).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

AutoRound

AutoRound adalah algoritma kuantisasi canggih yang memberikan akurasi tinggi, bahkan pada presisi 2-bit. Algoritma ini memanfaatkan sign gradient descent untuk menyetel ulang nilai pembulatan dan ambang batas pemotongan min-max hanya dalam 200 langkah. Dirancang untuk kompatibilitas yang luas, algoritma ini mendukung berbagai LLM secara mulus dan terus diperluas untuk mencakup lebih banyak VLM. Algoritma ini juga mendukung kuantisasi dan inferensi di berbagai platform perangkat keras, termasuk CPU, XPU, dan CUDA.

AutoRound juga menyediakan berbagai fitur yang berguna, termasuk penyetelan dan inferensi mixed-bit otomatis, dukungan untuk tipe data MXFP4 dan NVFP4, kuantisasi tanpa model, ekspor ke format seperti GPTQ, AWQ, GGUF, dan LLM-Compressor, serta resep penyetelan yang fleksibel. Untuk gambaran menyeluruh dan pembaruan terbaru, lihat README AutoRound.

AutoRound awalnya dikembangkan sebagai bagian dari Intel Neural Compressor, berfungsi sebagai pustaka kompresi model serbaguna untuk pembelajaran mendalam. Sejak itu, AutoRound telah berkembang menjadi pustaka mandiri yang berfokus secara khusus pada optimasi presisi rendah untuk model bahasa besar (LLM). AutoRound tetap terintegrasi sepenuhnya dengan Intel Neural Compressor, dan Anda dapat menjelajahi repositori untuk detail lebih lanjut.

Instalasi

pip install auto-round

Konfigurasi Kuantisasi yang Didukung

AutoRound mendukung konfigurasi kuantisasi berikut:

  1. Weight-Only INT2–INT8
  2. Bobot Saja Campuran-Bit
  3. GGUF Q*_K
  4. MXFP (dukungan terbatas)
  5. NVFP4 (dukungan terbatas)

Kompatibilitas Perangkat Keras

CPU, XPU, dan CUDA untuk kuantisasi maupun inferensi.

Kuantisasi dan Serialisasi (offline)

Saat ini, hanya mode offline yang didukung untuk menghasilkan model terkuantisasi.

cmd kuantisasi
auto scheme cmd
kombinasi alg
quantization auto-round api
quantization auto-round-best
quantization auto-round-light

Penggunaan Baris Perintah

auto-round \
    --model Qwen/Qwen3-0.6B \
    --scheme "W4A16" \
    --group_size 128 \
    --output_dir ./tmp_autoround

AutoRound juga menyediakan empat resep lainnya, auto-round-best, auto-round-light,auto-round-opt-rtn,auto-round-rtn, yang dirancang untuk akurasi optimal dan peningkatan kecepatan, masing-masing. Untuk 2 bit, kami merekomendasikan penggunaan auto-round-best dengan --enable_alg_ext.

Rata-rata Akurasi W4G128 untuk 13 tugas (mmlu-pro, if_eval, gsm8k, dll.) dan Hasil Biaya Waktu (Pengujian dilakukan pada Nvidia A100 80G menggunakan versi PyTorch 2.6.0 dengan enable_torch_compile):

ModelQwen2.5-0.5B-InstructFalcon3-3BQwen2.5-7B-InstructMeta-Llama-3.1-8B-InstructFalcon3-10BQwen2.5-72B-Instruct
16bits0.41920.52030.64700.62120.61510.7229
Terbaik0.4137(7m)0.5142(23m)0.6426(58m)0.6116(65m)0.6092(81m)0.7242(575m)
Default0.4129(2m)0.5133(6m)0.6441(13m)0.6106(13m)0.6080(18m)0.7252(118m)
Terang0.4052(2m)0.5108(3m)0.6453(5m)0.6104(6m)0.6063(6m)0.7243(37m)

Inferensi

AutoRound secara otomatis memilih backend terbaik yang tersedia berdasarkan pustaka yang terpasang dan meminta pengguna untuk menginstal pustaka tambahan ketika backend yang lebih baik ditemukan.

inference cpu
inference xpu
inference cuda
backend inferensi
konversi format

CPU

Mendukung 2, 4, dan 8 bit. Kami merekomendasikan penggunaan backend AutoRound Kernel (ARK) untuk inferensi. PyTorch 2.8.0 atau lebih baru diperlukan untuk ARK.

from transformers import AutoModelForCausalLM, AutoTokenizer

model_name = "OPEA/Qwen2.5-1.5B-Instruct-int4-sym-inc"
model = AutoModelForCausalLM.from_pretrained(model_name, device_map="cpu", dtype="auto")
tokenizer = AutoTokenizer.from_pretrained(model_name)
text = "There is a girl who likes adventure,"
inputs = tokenizer(text, return_tensors="pt").to(model.device)
print(tokenizer.decode(model.generate(**inputs, max_new_tokens=50, do_sample=False)[0]))

Isu

Jika Anda mengalami masalah dengan integrasi transformers, silakan buka issue di repositori transformers.
Jika Anda mengalami masalah dengan auto-round, silakan buka issue di repositori AutoRound.

Pengakuan

Ucapan terima kasih khusus kepada pustaka presisi rendah open-source seperti AutoGPTQ, AutoAWQ, GPTQModel, Triton, Marlin, dan ExLLaMAV2 yang menyediakan kernel CUDA presisi rendah, yang dimanfaatkan dalam AutoRound.

Kontribusi

Kontribusi untuk AutoRound sangat diterima dan dihargai! Baik itu memperbaiki bug, meningkatkan dokumentasi, menambahkan fitur baru, atau mengusulkan perbaikan, bantuan Anda selalu dihargai.

Update on GitHub