微调不是从头训练
微调是在预训练好的模型上,用你的领域数据再学一轮。全程只更新很小一部分参数(LoRA),所以 8GB 显存也能训 7B 模型。预算有限、又想模型说话带公司味,这是性价比最高的路子。
第一步:准备数据集
LLaMA-Factory 用 alpaca 格式:instruction 是任务描述,input 是输入,output 是期望输出。几十条高质量样本就能看到效果,关键是样本要贴近真实使用场景。
[
{
"instruction": "把下面这句话改写成客服口吻",
"input": "退款要多久到账",
"output": "亲,退款一般 1-3 个工作日到账,请您耐心等待哦~"
}
]把 JSON 存到 data 目录,命名如 my_data.json。中文语料注意用 UTF-8 保存,别用记事本默认的 GBK,不然训练时全是乱码。
第二步:安装并启动
git clone https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -e .[torch,bitsandbytes]
# 启动 WebUI
llamafactory-cli webui第三步:界面里训练
- 模型名称选 Qwen3-7B 或 Llama-3.1-8B,路径填你本地权重
- 训练方法选 LoRA,显存不够就勾 4bit 量化(QLoRA)
- 数据集选刚导入的 my_data,学习率 1e-4,跑 3 个 epoch
- 显存只有 8G 时:batch size 设 1,开梯度累积 8,效果照样能看
第四步:合并导出
训练完的 LoRA 权重要先合并回原模型才能直接部署。合并后就可以用 vLLM 或 llama.cpp 正常加载了。
# 导出合并后的完整权重
llamafactory-cli export \
--model_name_or_path Qwen/Qwen3-7B \
--adapter_name_or_path ./saves/lora/my_data \
--export_dir ./export/my_model几个实用提醒
- 数据质量 > 数据数量:50 条对样本好过 5000 条灌水
- 过拟合看验证集:跑完对比一下训练前后的输出,别只看训练 loss
- LoRA 只改风格和知识面,改不了模型底层能力
- Windows 上 bitsandbytes 装不上就改用纯 LoRA,8G 显存也够
微调的门槛从来不是显卡,而是你有没有一批真实、干净、贴场景的数据。