使用llama-factory进行模型量化
安装llama-factory
1. 下载llama-factory源码
git clone https://github.com/hiyouga/LLaMA-Factory.git
2. 安装llama-factory
cd llama-factory
pip install -e .
pip install optimum>=1.17.0
pip install auto_gptq>=0.5.0
下载模型
新建一个python文件,输入以下代码,下载模型
#模型下载
from modelscope import snapshot_download
model_dir = snapshot_download('deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B',cache_dir='./models')
进行模型量化时需要的显存计算
原始模型显存(FP16)
1.5B参数 × 2 bytes = 3 GB
4-bit量化需求
理论最低:1.5B × 0.5 bytes = 0.75 GB
实际需求 = 理论值 × 安全系数(通常2-3倍)≈ 1.5-2.5 GB
转换过程峰值显存
原始模型加载 + 量化副本 = 3 GB + 1.5 GB ≈ 4.5 GB
进行模型量化
llamafactory-cli export \
--model_name_or_path "/mnt/workspace/models/deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B" \
--export_dir "/mnt/workspace/models/deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B-Q4_BNB" \
--export_quantization_bit 4 \
--export_quantization_dataset "/mnt/workspace/LLaMA-Factory-main/data/c4_demo.json" \
--export_size 5 \
--export_device "auto"\
--template "deepseek3"\
--quantization_method "bitsandbytes"
运行的结果:
观察显存占用
可以看到显存使用量实际大于4.5GB,这是因为框架也需要一些显存来进行模型的加载和转换。
量化完成后,观察模型文件大小:
$ du -sh /mnt/workspace/models/deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B-Q4_BNB
1.6G /mnt/workspace/models/deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B-Q4_BNB
进行模型推理
llamafactory-cli chat \
--model_name_or_path "/mnt/workspace/models/deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B-Q4_BNB" \
--template "deepseek3"
简单测试一下: