1. 引言
大模型微调是当下 AI 工程实践中的高频需求,但动辄几十 GB 的模型权重、昂贵的显卡成本,常常让个人开发者望而却步。本文以 AutoDL 云 GPU 租卡 + LLaMA-Factory 框架 + 27B 模型 QLoRA 微调 为主线,带你从零跑通一条完整、可复现的训练链路。
读完本文你将掌握:
- 如何在 AutoDL 上快速租到合适的 GPU 实例并完成环境初始化;
- 如何安装与配置 LLaMA-Factory 及其依赖;
- 如何准备数据集并编写 27B 模型的 QLoRA 训练配置;
- 如何启动训练、监控指标,并在训练完成后导出与推理验证。
2. 方案选型与前置准备
2.1 为什么选择 QLoRA
QLoRA(Quantized Low-Rank Adaptation)在 LoRA 的基础上进一步引入 4-bit 量化,将基座模型的显存占用大幅压缩。对于 27B 量级的模型,全参数微调需要多张 80GB 显卡,而 QLoRA 通常只需 1 张 24GB 或 48GB 显存的显卡 即可启动训练,性价比极高。
2.2 AutoDL 租卡要点
AutoDL 提供按小时计费的 GPU 实例,适合短期训练任务。租卡时注意以下几点:
- 显卡选择:27B 模型 QLoRA 推荐 RTX 4090(24GB)或 A100(40GB/80GB)。若追求更高吞吐,可选多卡实例。
- 镜像选择:优先选择预装 PyTorch 2.x + CUDA 12.x 的官方镜像,可省去大量环境配置时间。
- 数据盘:模型权重与数据集体积较大,建议挂载足够容量的数据盘,并将数据存放于 /root/autodl-tmp 等持久化目录。
下表给出 27B 模型 QLoRA 微调在不同显卡配置下的参考数据(以 4-bit 量化、lora_rank=64、cutoff_len=2048 为基准,实际数值会因模型架构、数据集长度与框架版本略有浮动):
| RTX 4090 | 24GB | 1 | 2048 | 约 18–22GB | 约 1.5–2.5 分钟/百步 |
| A100 40GB | 40GB | 2 | 2048 | 约 28–34GB | 约 1–1.5 分钟/百步 |
| A100 80GB | 80GB | 4 | 4096 | 约 45–60GB | 约 0.6–1 分钟/百步 |
说明:RTX 4090 性价比最高,适合预算有限的个人开发者;A100 40GB 可适当增大 batch size 提升吞吐;A100 80GB 支持更长序列(如 cutoff_len=4096)与更大 batch,适合追求训练速度或处理长文本的场景。
2.3 环境初始化
租到实例后,先做基础检查:
# 查看 GPU 状态
nvidia-smi
# 查看 Python 版本
python –version
# 查看 CUDA 版本
nvcc –version
确认环境无误后,安装必要的系统依赖:
apt-get update
apt-get install -y git git-lfs
3. 安装 LLaMA-Factory
LLaMA-Factory 是一个开源的 LLM 微调框架,支持 LoRA、QLoRA、全参数微调等多种方式,并提供了统一的命令行与 Web UI 接口。
3.1 克隆项目并安装依赖
cd /root/autodl-tmp
git clone https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -e .[torch,bitsandbytes]
提示:bitsandbytes 是 QLoRA 4-bit 量化的核心依赖,务必确保安装成功。
3.2 验证安装
llamafactory-cli version
若输出版本号,说明安装成功。
4. 数据集准备
4.1 数据格式
LLaMA-Factory 支持多种数据格式,最常用的是 ShareGPT 格式 与 Alpaca 格式。这里以 Alpaca 格式为例:
[
{
"instruction": "请解释什么是量子计算。",
"input": "",
"output": "量子计算是一种利用量子力学原理进行计算的技术……"
}
]
4.2 上传数据
将数据集文件上传至实例后,放入 LLaMA-Factory 的 data 目录:
cd /root/autodl-tmp/LLaMA-Factory
mkdir -p data
# 将你的数据集文件上传到 data/ 目录,例如 my_dataset.json
然后在 data/dataset_info.json 中注册该数据集:
{
"my_dataset": {
"file_name": "my_dataset.json",
"formatting": "alpaca",
"columns": {
"prompt": "instruction",
"query": "input",
"response": "output"
}
}
}
5. 编写 QLoRA 训练配置
LLaMA-Factory 支持通过 YAML 配置文件启动训练。下面是一个针对 27B 模型的 QLoRA 配置示例:
5.1 下载 27B 基座模型
训练前需要先准备好 27B 基座模型。推荐从 ModelScope(魔搭) 或 HuggingFace 下载,国内网络环境下 ModelScope 通常更快。以下两种方式任选其一:
方式一:使用 ModelScope 下载
# 安装 modelscope(若未安装)
pip install modelscope
# 下载模型到 /root/autodl-tmp/models/ 目录
modelscope download –model Qwen/Qwen2.5-27B-Instruct \\
–local_dir /root/autodl-tmp/models/Qwen2.5-27B-Instruct
方式二:使用 HuggingFace 下载
# 安装 huggingface_hub(若未安装)
pip install huggingface_hub
# 下载模型到 /root/autodl-tmp/models/ 目录
huggingface-cli download Qwen/Qwen2.5-27B-Instruct \\
–local-dir /root/autodl-tmp/models/Qwen2.5-27B-Instruct
提示:请将上述命令中的模型名替换为你实际使用的 27B 模型(如 Qwen2.5-27B、Yi-1.5-27B 等)。下载完成后,模型权重会保存在 /root/autodl-tmp/models/ 目录下,与下方 YAML 配置中的 model_name_or_path 路径保持一致。
# qlora_27b.yaml
model_name_or_path: /root/autodl–tmp/models/your–27b–model
template: alpaca
stage: sft
finetuning_type: lora
lora_rank: 64
lora_alpha: 128
lora_target: all
quantization_bit: 4
dataset: my_dataset
cutoff_len: 2048
preprocessing_num_workers: 16
per_device_train_batch_size: 1
gradient_accumulation_steps: 8
learning_rate: 1.0e-4
num_train_epochs: 3.0
lr_scheduler_type: cosine
warmup_ratio: 0.1
bf16: true
output_dir: /root/autodl–tmp/output/qlora–27b
logging_steps: 10
save_steps: 500
save_total_limit: 3
关键参数说明:
- quantization_bit: 4:启用 4-bit 量化,这是 QLoRA 的核心。
- lora_target: all:对所有线性层注入 LoRA 适配器,提升微调效果。
- per_device_train_batch_size: 1:27B 模型显存占用大,单卡 batch size 通常设为 1,配合梯度累积弥补 batch 大小。
6. 启动训练
6.1 单卡训练
cd /root/autodl-tmp/LLaMA-Factory
llamafactory-cli train qlora_27b.yaml
6.2 多卡训练(可选)
若租用了多卡实例,可使用 DeepSpeed 加速:
llamafactory-cli train qlora_27b.yaml \\
–deepspeed ds_z3_config.json
6.3 训练监控
训练启动后,终端会实时打印 loss、学习率等指标。建议同时打开另一个终端监控显存占用:
watch -n 1 nvidia-smi
若显存接近上限,可适当降低 cutoff_len 或 per_device_train_batch_size。
7. 模型导出与推理验证
7.1 合并 LoRA 权重
训练完成后,LoRA 适配器与基座模型是分离的。如需合并导出,执行:
llamafactory-cli export \\
–model_name_or_path /root/autodl-tmp/models/your-27b-model \\
–adapter_name_or_path /root/autodl-tmp/output/qlora-27b \\
–template alpaca \\
–finetuning_type lora \\
–export_dir /root/autodl-tmp/output/qlora-27b-merged \\
–export_size 4 \\
–export_legacy_format false
7.2 推理验证
使用 LLaMA-Factory 自带的推理接口快速验证效果:
llamafactory-cli chat \\
–model_name_or_path /root/autodl-tmp/output/qlora-27b-merged \\
–template alpaca
输入测试问题,观察模型输出是否符合预期。
8. 常见问题排查
| 显存不足(OOM) | batch size 过大或序列过长 | 调低 per_device_train_batch_size 或 cutoff_len |
| bitsandbytes 安装失败 | CUDA 版本不匹配 | 确认 PyTorch 与 CUDA 版本,重装 bitsandbytes |
| 训练 loss 不下降 | 学习率过高或数据质量问题 | 调低学习率,检查数据集格式与内容 |
| 推理时输出乱码 | 模板不匹配 | 检查 template 参数是否与模型对应 |
9. 总结
本文从 AutoDL 租卡开始,完整走通了 27B 模型 QLoRA 微调的各个环节:环境准备、框架安装、数据准备、训练配置、启动训练、权重导出与推理验证。QLoRA 以极低的显存成本实现了接近全参数微调的效果,是个人开发者与大模型微调之间的最佳桥梁。
后续你可以进一步尝试:
- 调整 LoRA rank 与 alpha 观察效果变化;
- 使用多卡 + DeepSpeed 提升训练吞吐;
- 接入更多开源数据集,扩展模型能力。
网硕互联帮助中心



评论前必须登录!
注册