FineTuneX 现已支持对微调后的模型进行量化,提供以下功能:
finetunex/quantization/)__init__.py - 模块导出quantize.py - 量化实现
quantize_to_gguf() - GGUF 格式量化quantize_to_awq() - AWQ 量化quantize_to_gptq() - GPTQ 量化quantize_model() - 统一量化接口utils.py - 量化工具
get_model_size() - 获取模型大小estimate_quantized_size() - 估算量化后大小compare_models() - 比较模型大小print_model_info() - 打印模型信息save_quantization_report() - 保存量化报告scripts/quantize_model.py - 通用量化脚本
examples/quantize_awq.py - AWQ 量化示例examples/quantize_gptq.py - GPTQ 量化示例examples/quantize_gguf.py - GGUF 量化示例examples/quantization_workflow.py - 完整工作流程示例docs/quantization.md - 完整的量化指南
# 1. 微调模型
python examples/qwen3.5_0.8b_local_finetune.py
# 2. 量化模型(选择一种方法)
# AWQ 量化(推荐)
pip install autoawq
python examples/quantize_awq.py --model_path ./outputs/qwen3.5-0.8b-finetuned
# GPTQ 量化
pip install auto-gptq
python examples/quantize_gptq.py --model_path ./outputs/qwen3.5-0.8b-finetuned
# GGUF 量化
python examples/quantize_gguf.py --model_path ./outputs/qwen3.5-0.8b-finetuned --quant_type Q4_K_M
# 通用量化脚本
python scripts/quantize_model.py \
--model_path ./outputs/qwen3.5-0.8b-finetuned \
--method awq \
--bits 4
# 仅估算大小
python scripts/quantize_model.py \
--model_path ./outputs/qwen3.5-0.8b-finetuned \
--estimate_only
from finetunex.quantization import quantize_model, get_model_size
# 查看原始大小
original_size = get_model_size("./outputs/qwen3.5-0.8b-finetuned")
print(f"原始大小:{original_size['total_size_formatted']}")
# 执行量化
result = quantize_model(
model_path="./outputs/qwen3.5-0.8b-finetuned",
output_path="./outputs/qwen3.5-0.8b-awq",
method="awq",
bits=4,
)
# 查看量化后大小
quantized_size = get_model_size("./outputs/qwen3.5-0.8b-awq")
print(f"量化后大小:{quantized_size['total_size_formatted']}")
| 方法 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| AWQ | 快速、精度高 | 需要额外依赖 | GPU 推理 |
| GPTQ | 精度高、压缩好 | 量化慢 | GPU 推理 |
| GGUF | 支持 CPU、生态好 | GPU 加速有限 | CPU 推理 |
| 版本 | 大小 | 显存 | 速度 |
|---|---|---|---|
| FP16 | 3.5 GB | 7 GB | 100% |
| AWQ 4bit | 1.1 GB | 3 GB | 120% |
| GPTQ 4bit | 1.0 GB | 2.5 GB | 110% |
| GGUF Q4_K_M | 1.1 GB | CPU | 80% |
pip install autoawq
pip install auto-gptq
# 编译 llama.cpp
git clone https://github.com/ggerganov/llama.cpp.git
cd llama.cpp
make
# Python binding
pip install llama-cpp-python
finetunex/quantization/
├── __init__.py # 模块导出
├── quantize.py # 量化实现
└── utils.py # 工具函数
examples/
├── quantize_awq.py # AWQ 示例
├── quantize_gptq.py # GPTQ 示例
├── quantize_gguf.py # GGUF 示例
└── quantization_workflow.py # 完整流程
scripts/
└── quantize_model.py # 量化脚本
docs/
└── quantization.md # 量化文档
1. 微调模型
↓
2. 检查模型大小
↓
3. 估算量化大小
↓
4. 选择量化方法
↓
5. 执行量化
↓
6. 比较模型大小
↓
7. 测试和使用
from transformers import AutoTokenizer
from awq import AutoAWQForCausalLM
model = AutoAWQForCausalLM.from_quantized(
"./outputs/qwen3.5-0.8b-awq",
device_map="auto",
)
tokenizer = AutoTokenizer.from_pretrained("./outputs/qwen3.5-0.8b-awq")
prompt = "你好"
inputs = tokenizer(prompt, return_tensors="pt")
outputs = model.generate(**inputs, max_new_tokens=100)
print(tokenizer.decode(outputs[0]))
# 命令行
./llama.cpp/main -m ./outputs/qwen3.5-0.8b-Q4_K_M.gguf -p "你好" -n 512
FineTuneX 现在提供完整的量化支持,包括:
量化可以将模型大小减少 75%,推理速度提升 20%,是部署大模型的重要工具!
添加日期: 2026-03-30 版本: 0.1.0