Transformers documentation
Optimum Quanto
Optimum Quanto
Quanto là backend lượng tử hóa PyTorch cho Optimum. Nó hỗ trợ lượng tử hóa tuyến tính cho trọng số (float8, int8, int4, int2) với độ chính xác rất tương tự so với các mô hình độ chính xác đầy đủ. Quanto tương thích với mọi chế độ mô hình và thiết bị, giúp việc sử dụng trở nên đơn giản bất kể phần cứng.
Quanto cũng tương thích với torch.compile để tạo nhanh hơn.
Cài đặt Quanto bằng lệnh sau.
pip install optimum-quanto accelerate transformers
Thực hiện lượng tử hóa một mô hình bằng cách tạo một QuantoConfig và chỉ định tham số weights để lượng tử hóa. Cách này hoạt động với bất kỳ mô hình nào trong bất kỳ chế độ nào, miễn là mô hình đó chứa các lớp torch.nn.Linear.
Tích hợp Transformers chỉ hỗ trợ lượng tử hóa trọng số. Sử dụng thư viện Quanto trực tiếp nếu bạn cần lượng tử hóa kích hoạt, hiệu chuẩn hoặc QAT.
from transformers import AutoModelForCausalLM, AutoTokenizer, QuantoConfig
quant_config = QuantoConfig(weights="int8")
model = transformers.AutoModelForCausalLM.from_pretrained(
"meta-llama/Llama-3.1-8B",
dtype="auto",
device_map="auto",
quantization_config=quant_config
)torch.compile
Bọc một mô hình Quanto bằng torch.compile để tạo nhanh hơn.
import torch
from transformers import AutoModelForSpeechSeq2Seq, QuantoConfig
quant_config = QuantoConfig(weights="int8")
model = AutoModelForSpeechSeq2Seq.from_pretrained(
"openai/whisper-large-v2",
dtype="auto",
device_map="auto",
quantization_config=quant_config
)
model = torch.compile(model)Tài nguyên
Đọc bài đăng trên blog Quanto: a PyTorch quantization backend for Optimum để tìm hiểu thêm về thiết kế thư viện và các bài kiểm tra hiệu năng.
Để xem thêm các ví dụ thực hành, hãy xem notebook của Quanto.
Update on GitHub