这是一份专为 AMD 显卡 (ROCm 环境) 打造的大模型量化微调 SOP(标准作业程序)操作手册。它完整记录了你从零开始,直到成功跑通第一个大模型 QAT 训练的全部实战步骤,方便你日后独立操作时随时查阅。
📑 大模型量化微调标准作业程序 (SOP)
环境基准:Linux 容器环境 + AMD GPU (ROCm) + Qwen1.5-1.8B-Chat 模型
第一阶段:编译与构建底层量化环境
步骤 1:编译安装 ROCm 版 bitsandbytes
目的:为实验 2 (QLoRA) 提供 AMD 显卡底层 4-bit/8-bit 算子支持。
-
克隆官方源码仓库(包含子模块):
bash
git clone --recurse-submodules https://github.com请谨慎使用此类代码。
-
进入源码目录并清理旧缓存:
bash
cd bitsandbytes && rm -rf build请谨慎使用此类代码。
-
使用 CMake 配置编译参数(关键:需根据实际显卡架构修改
BNB_ROCM_ARCH,如gfx928):bash
cmake -DCOMPUTE_BACKEND=hip -DBNB_ROCM_ARCH="gfx928" -S .请谨慎使用此类代码。
-
多核并行编译并安装到 Python 环境中:
bash
make -j$(nproc) && pip install .请谨慎使用此类代码。
步骤 2:安装量化感知训练 (QAT) 依赖
目的:为实验 1 (QAT) 引入模拟量化与节点插入能力。
-
退回主工作目录(如
/ai/test):bash
cd ..请谨慎使用此类代码。
-
一键安装 Intel 神经网络压缩器及核心生态库:
bash
pip install neural-compressor transformers torch accelerate datasets请谨慎使用此类代码。
第二阶段:基础模型资产获取
步骤 3:国内加速下载开源大模型
目的:利用魔搭社区 (ModelScope) 极其稳定的国内带宽,将千问大模型拉取到本地平级目录中。
-
安装 ModelScope 命令行工具:
bash
pip install modelscope请谨慎使用此类代码。
-
执行 Python 一行命令,将模型精准下载到当前工作目录(
./)下:bash
python -c "from modelscope import snapshot_download; snapshot_download('qwen/Qwen1.5-1.8B-Chat', cache_dir='./models', local_dir='Qwen1.5-1.8B-Chat')"请谨慎使用此类代码。
第三阶段:源码排雷与安全训练
步骤 4:代码排雷(防止训练 PPL 溢出闪退)
目的:解决小样本训练时,因损失值较高导致
math.exp(avg)触发OverflowError崩溃的问题。
-
在工作目录下双击打开
ex1_qat_train.py。 -
找到计算困惑度(PPL)的代码块,将原有的单行代码删除,替换为带有异常捕获的安全代码结构:
python
# ==== 替换前 (直接运行会崩溃) ==== # ppl = math.exp(avg) if avg < 20 else float("inf") # ==== 替换后 (安全自适应结构) ==== try: ppl = math.exp(avg) if avg < 20 else float("inf") except OverflowError: ppl = float("inf")请谨慎使用此类代码。
-
按下
Ctrl + S保存文件。
步骤 5:启动实验 1 (QAT 量化感知训练)
目的:正式启动模型,将原生线性层(Linear)替换为自定义的量化线性层(QLinear),完成 5 条核心知识点的微调注入。
-
在终端内执行无错版安全启动命令(通过手动将
--log_every放大,彻底绕过潜在的溢出风险点):bash
python ex1_qat_train.py \ --model_path "./Qwen1.5-1.8B-Chat" \ --output_dir "./Qwen1.5-1.8B-Chat-QAT-demo" \ --epochs 1 \ --lr 2e-5 \ --batch_size 1 \ --log_every 100请谨慎使用此类代码。
-
预期输出:终端将依次打印模型显存占用(约 6.84GB)、
🔧 注入伪量化层、✅ 训练完成,并在最下方测试生成对 QAT 和 AWQ 知识点的回答,最终完美保存模型资产。
🔮 进阶防丢指南(独立开发避坑金句)
- 资产隔离:下次自己在云平台(如 AutoDL)开机时,务必将整个
test目录创建在平台提供的持久化数据盘(如/root/autodl-tmp)中。这样即使机器到期自动释放,你的代码和下载好的千问模型也不会丢失! - 断网无忧:微调大模型耗时较长时,记得在终端先敲
tmux开启后台虚拟窗口,再运行微调命令。即使关掉浏览器,训练依然会在云端悄悄运行。