Qwen3-8B 模型从转换(SpinQuant)→ 量化(RTN/GPTQ)→ 评测的完整自动化流程。
推荐方式:使用 uv
./install_env.sh
# 或手动执行:
uv sync -i https://pypi.tuna.tsinghua.edu.cn/simple
source ./.venv/bin/activate使用 pip
pip install -r requirements.txt方式1:使用默认配置 运行pipline中文件夹内的yaml配置
python run_pipeline.py方式2:指定配置文件
python run_pipeline.py \
--trans-config pipline/1-trans/spinquant-r1r2.yaml \
--quant-config pipline/2-quant/rtn-w8a8-dynamic.yaml \
--eval-config pipline/3-eval/mmlu_gsm8k.yaml方式3:运行示例配置
./run_example.shpipline/3-eval/mmlu_gsm8k.yaml:
dataset_name: mmlu_gsm8k_128
base_model: ./data/models/Qwen/Qwen3-8B # 模型路径
gpu_resources:
devices: [0,1,2,3]
pipeline_parallel_size: 1 # PP=1时每个任务用1个GPU,PP=2时用2个GPUpipline/
├── 1-trans/ # 转换配置(SpinQuant等)
├── 2-quant/ # 量化配置(RTN/GPTQ)
│ └── example/ # 示例配置
└── 3-eval/ # 评测配置(MMLU/GSM8K)
data/ # 模型和数据集文件
results/ # CSV结果汇总
logs/ # 临时脚本和日志
outputs/ # 评测报告
# CSV结果
results/results_{dataset_name}.csv
# 评测报告
outputs/{dataset_name}/reports/{model_name}/- ✅ 自动跳过已存在的模型和结果
- ✅ 量化和评测任务并行执行,一键完成复杂量化测评流程
- ✅ 临时py脚本保存到logs目录,可debug
- ✅ GPU自动并行分配(按pipeline_parallel_size, R4与tensor_parallel不兼容)
- ✅ 从文件名自动提取配置名称,无需在 YAML 中重复指定
如果你想测试已有的转换或量化模型,可以按照以下步骤操作:
- 在
pipline/1-trans/目录下创建一个空的 YAML 文件,文件名即作为转换名称(例如my-custom-trans.yaml) - 在
data/models/目录下创建对应的模型文件夹,文件名需要加上-前缀(例如Qwen/Qwen3-8B-my-custom-trans) - 将你已有的转换模型文件放入该文件夹中
- 运行流程,系统会自动跳过转换步骤,直接使用已有模型进行量化和评测
- 在
pipline/2-quant/目录下创建一个空的 YAML 文件,文件名即作为量化名称(例如my-custom-quant.yaml) - 在
data/models/目录下创建对应的模型文件夹,路径需要是基础模型路径-转换名称-量化名称(例如Qwen/Qwen3-8B-r1r2-my-custom-quant) - 将你已有的量化模型文件放入该文件夹中
- 运行流程,系统会自动跳过量化步骤,直接评测已有模型
示例:
# 目录结构
data/models/Qwen/
├── Qwen3-8B # 原始模型
├── Qwen3-8B-r1r2 # 已有的转换模型
└── Qwen3-8B-r1r2-w4a8-custom # 已有的量化模型
# 配置文件
pipline/1-trans/r1r2.yaml # 空文件或仅包含配置
pipline/2-quant/w4a8-custom.yaml # 空文件或仅包含配置
系统会自动检测模型文件夹是否存在,如果存在则跳过对应的转换或量化步骤。