[ PROMPT_NODE_22826 ]
Optimization Gptq 故障排查
[ SKILL_DOCUMENTATION ]
# GPTQ 故障排除指南
GPTQ 量化与推理的常见问题及解决方案。
## 安装问题
### CUDA 不匹配
bash
# 检查 CUDA 版本
nvcc --version
python -c "import torch; print(torch.version.cuda)"
# 安装匹配版本
pip install auto-gptq --extra-index-url https://huggingface.github.io/autogptq-index/whl/cu118/ # CUDA 11.8
### 构建错误
bash
# 安装构建依赖
pip install auto-gptq --no-build-isolation
# 在 Ubuntu 上
sudo apt-get install python3-dev
## 运行时问题
### 推理缓慢
python
# 尝试不同的后端
model = AutoGPTQForCausalLM.from_quantized(
model_name,
use_exllama=True # 最快 (尝试 v1 或 v2)
)
# 或使用 Marlin (Ampere+ GPU)
model = AutoGPTQForCausalLM.from_quantized(
model_name,
use_marlin=True
)
### 推理时显存溢出 (OOM)
python
# 减小批处理大小
outputs = model.generate(**inputs, batch_size=1)
# 使用 CPU 卸载
model = AutoGPTQForCausalLM.from_quantized(
model_name,
device_map="auto",
max_memory={"cpu": "100GB"}
)
# 减小上下文长度
model.seqlen = 1024 # 原为 2048
### 输出质量差
python
# 使用更好的校准数据重新量化
# 1. 使用更多样本 (256 而非 128)
# 2. 使用领域特定数据
# 3. 降低阻尼系数: damp_percent=0.005
# 4. 启用 desc_act=True
## 量化问题
### 量化速度极慢
bash
# 预期时间 (7B 模型):
# - A100: 10-15 分钟
# - RTX 4090: 20-30 分钟
# - CPU: 2-4 小时
# 加速方法:
# 1. 使用 GPU
# 2. 减少样本数 (64 而非 256)
# 3. 禁用 desc_act
# 4. 使用多 GPU
### 量化崩溃
python
# 减少内存使用
model = AutoGPTQForCausalLM.from_pretrained(
model_name,
device_map="auto",
max_memory={"cpu": "100GB"} # 卸载到 CPU
)
# 或逐层量化 (较慢但更稳定)
model.quantize(calibration_data, batch_size=1)