使用llama-factory进行模型量化

581 阅读1分钟

使用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"

运行的结果:

image.png

观察显存占用

image-1.png

可以看到显存使用量实际大于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"

简单测试一下:

image-3.png