Giới thiệu AutoRound- Lượng tử hóa nâng cao của Intel cho LLM và VLM

AutoRound là một phương pháp lượng tử hóa mới của Intel cho LLM và VLM.

  • 7 min read
Giới thiệu AutoRound- Lượng tử hóa nâng cao của Intel cho LLM và VLM
AutoRound là một phương pháp lượng tử hóa mới của Intel cho LLM và VLM.

Giới thiệu AutoRound: Lượng tử hóa nâng cao của Intel cho LLM và VLM

Khi các mô hình ngôn ngữ lớn (LLM) và mô hình ngôn ngữ-thị giác (VLM) tiếp tục tăng về kích thước và độ phức tạp, việc triển khai chúng một cách hiệu quả ngày càng trở nên khó khăn. Lượng tử hóa cung cấp một giải pháp bằng cách giảm kích thước mô hình và độ trễ suy luận. AutoRound của Intel nổi lên như một công cụ lượng tử hóa tiên tiến, cân bằng độ chính xác, hiệu quả và khả năng tương thích.

AutoRound là một phương pháp lượng tử hóa sau đào tạo (PTQ) chỉ trọng số được phát triển bởi Intel. Nó sử dụng gradient descent có dấu để tối ưu hóa chung việc làm tròn trọng số và phạm vi cắt, cho phép lượng tử hóa bit thấp chính xác (ví dụ: INT2 - INT8) với tổn thất độ chính xác tối thiểu trong hầu hết các trường hợp. Ví dụ: ở INT2, nó vượt trội so với các baseline phổ biến với độ chính xác tương đối cao hơn tới 2.1 lần. Hình ảnh dưới đây cung cấp một cái nhìn tổng quan về thuật toán cốt lõi trong AutoRound. Để biết thêm chi tiết, vui lòng tham khảo bài báo của chúng tôi.

Mặc dù có hiệu suất mạnh mẽ, AutoRound vẫn nhanh và nhẹ - lượng tử hóa một mô hình 72B chỉ mất 37 phút trên GPU A100 ở chế độ light. Nó cũng hỗ trợ điều chỉnh bit hỗn hợp, lượng tử hóa lm-head, xuất định dạng GPTQ/AWQ/GGUF và các công thức điều chỉnh linh hoạt.

Ưu điểm chính

Độ chính xác vượt trội ở độ rộng bit thấp

AutoRound mang lại kết quả rất hứa hẹn, đặc biệt là trong các tình huống lượng tử hóa bit thấp. Các đánh giá trên nhiều tác vụ khác nhau cho thấy nó vượt trội so với các phương pháp phổ biến với biên độ rộng ở độ chính xác 2 bit (nguồn). Ở 4 bit, AutoRound tiếp tục giữ vững lợi thế cạnh tranh trong hầu hết các trường hợp, như đã được chứng minh trên Bảng xếp hạng LLM mở Bit thấp.

2. Khả năng tương thích rộng

Mô hình

LLM: AutoRound hỗ trợ gần như tất cả các kiến trúc LLM phổ biến, bao gồm các mô hình nổi tiếng như Qwen, LLaMA và DeepSeek. Các mô hình lượng tử hóa sẵn sàng sử dụng có sẵn trên Hugging Face thông qua các bộ sưu tập như OPEA, Kaitchupfbaldassarri.

VLM: AutoRound hỗ trợ hơn 10 mô hình ngôn ngữ-thị giác (VLM), bao gồm Mistral-Small-3.1, Gemma3, v.v. Bạn có thể tìm thấy danh sách đầy đủ trong README và các mô hình lượng tử hóa sẵn sàng sử dụng có sẵn trong bộ sưu tập OPEA Hugging Face. Đối với các mô hình chưa được hỗ trợ, bạn vẫn có thể áp dụng phương pháp RTN của chúng tôi với --iters 0. Không cần điều chỉnh, nhưng dự kiến sẽ có một số mất mát độ chính xác.

Thiết bị

  • CPU
  • Intel GPU
  • CUDA

Cấu hình lượng tử hóa

  • Int8 chỉ trọng số
  • Int4 chỉ trọng số
  • Int3 chỉ trọng số
  • Int2 chỉ trọng số
  • Bit hỗn hợp chỉ trọng số

Định dạng xuất

  • AutoRound
  • GPTQ
  • AWQ
  • Một số GGUF

3. Lượng tử hóa linh hoạt/hiệu quả

AutoRound chỉ yêu cầu 200 bước điều chỉnh và một tập dữ liệu hiệu chuẩn nhỏ (chỉ 128 mẫu) để đạt được độ chính xác cao. Hiệu quả này chuyển thành thời gian lượng tử hóa nhanh hơn và giảm tiêu thụ tài nguyên so với các phương pháp int2 khác, vốn tốn nhiều công sức tính toán hơn.

Bắt đầu với AutoRound

Cài đặt

pip install auto-round

Lượng tử hóa và tuần tự hóa

Hiện tại, chỉ hỗ trợ chế độ ngoại tuyến để tạo các mô hình lượng tử hóa.

Sử dụng dòng lệnh

auto-round \
    --model Qwen/Qwen3-0.6B \
    --bits 4 \
    --group_size 128 \
    --format "auto_round,auto_awq,auto_gptq" \
    --output_dir ./tmp_autoround

AutoRound cũng cung cấp hai công thức khác, auto-round-bestauto-round-light, được thiết kế để có độ chính xác tối ưu và cải thiện tốc độ tương ứng.

auto-round-best \
    --model Qwen/Qwen3-0.6B \
    --output_dir ./tmp_autoround

Đối với 2 bit, chúng tôi khuyên bạn nên sử dụng auto-round-best hoặc auto-round. Để so sánh ba công thức, vui lòng tham khảo bảng bên dưới.

Độ chính xác trung bình W4G128 của 13 tác vụ (mmlu-pro, if_eval, gsm8k, v.v.) và Kết quả chi phí thời gian (Thử nghiệm được thực hiện trên Nvidia A100 80G bằng phiên bản PyTorch 2.6.0 với enable_torch_compile):

Sử dụng API AutoRound

Cài đặt này cung cấp sự đánh đổi tốt hơn giữa độ chính xác và chi phí điều chỉnh, và được khuyến nghị trong mọi tình huống.

from transformers import AutoModelForCausalLM, AutoTokenizer
from auto_round import AutoRound

model_name = "Qwen/Qwen3-0.6B"
model = AutoModelForCausalLM.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)
bits, group_size, sym = 4, 128, True
autoround = AutoRound(
    model,
    tokenizer,
    bits=bits,
    group_size=group_size,
    sym=sym,
    # enable_torch_compile=True,
)

output_dir = "./tmp_autoround"
autoround.quantize_and_save(output_dir, format='auto_round,auto_awq,auto_gptq')

Để có các cài đặt tốt nhất/ánh sáng của AutoRound để sử dụng API hoặc cấu hình bit hỗn hợp, vui lòng tham khảo AutoRound README

Suy luận

AutoRound tự động chọn backend khả dụng tốt nhất dựa trên các thư viện đã cài đặt và nhắc người dùng cài đặt thêm thư viện khi tìm thấy backend tốt hơn. Để biết thêm chi tiết, vui lòng tham khảo HF README hoặc AutoRound README.

CPU/Intel GPU/CUDA

from transformers import AutoModelForCausalLM, AutoTokenizer

model_name = "OPEA/Qwen2.5-1.5B-Instruct-int4-sym-inc"
model = AutoModelForCausalLM.from_pretrained(model_name, device_map="auto", torch_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]))

Chuyển đổi GPTQ/AWQ sang AutoRound

Hầu hết các mô hình GPTQ/AWQ có thể được chuyển đổi sang định dạng AutoRound để có khả năng tương thích và hỗ trợ tốt hơn với các thiết bị Intel. Xin lưu ý rằng cấu hình lượng tử hóa sẽ thay đổi nếu mô hình được tuần tự hóa.

from transformers import AutoModelForCausalLM, AutoTokenizer, AutoRoundConfig

model_name = "ybelkada/opt-125m-gptq-4bit"
quantization_config = AutoRoundConfig()
model = AutoModelForCausalLM.from_pretrained(model_name, device_map="cpu", torch_dtype="auto",
                                             quantization_config=quantization_config)
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]))

Kết luận

AutoRound mang đến một bước cải tiến có ý nghĩa trong lượng tử hóa sau đào tạo cho các mô hình ngôn ngữ lớn và ngôn ngữ-thị giác. Bằng cách kết hợp độ chính xác cao, hiệu quả vượt trội và khả năng tương thích rộng với các mô hình, thiết bị và định dạng xuất phổ biến, AutoRound giúp lượng tử hóa bit thấp trở nên thiết thực và mạnh mẽ. Cho dù bạn đang triển khai LLM ở quy mô lớn hay thử nghiệm suy luận biên trên VLM, AutoRound đều cung cấp các công cụ và tính linh hoạt bạn cần để đạt được hiệu suất tối ưu với chi phí tối thiểu. Chúng tôi mời bạn dùng thử và tham gia cộng đồng ngày càng phát triển, đẩy lùi ranh giới của việc triển khai AI hiệu quả.

Các đóng góp cho AutoRound được hoan nghênh và đánh giá cao! Cho dù đó là sửa lỗi, cải thiện tài liệu, thêm các tính năng mới hay đề xuất cải tiến, sự giúp đỡ của bạn luôn được coi trọng.

Nếu bạn gặp bất kỳ vấn đề nào với auto-round, vui lòng mở một vấn đề trên kho lưu trữ AutoRound.

Lời cảm ơn

Chúng tôi xin cảm ơn các thư viện độ chính xác thấp mã nguồn mở bao gồm AutoGPTQ, AutoAWQ, GPTQModel, Triton, Marlin và ExLLaMAV2, có kernel CUDA được sử dụng trong AutoRound.

Recommended for You

Các tác nhân nhỏ một tác nhân được hỗ trợ bởi MCP trong 50 dòng mã

Các tác nhân nhỏ một tác nhân được hỗ trợ bởi MCP trong 50 dòng mã

Bảng xếp hạng tiếng Ả Rập Giới thiệu hướng dẫn bằng tiếng Ả Rập, cập nhật AraGen và hơn thế nữa

Bảng xếp hạng tiếng Ả Rập Giới thiệu hướng dẫn bằng tiếng Ả Rập, cập nhật AraGen và hơn thế nữa

Bài viết này giới thiệu bảng xếp hạng hướng dẫn bằng tiếng Ả Rập, cập nhật AraGen và hơn thế nữa.