云计算百科
云计算领域专业知识百科平台

AutoDL 租卡 + LLaMA-Factory 27B QLoRA 训练全流程

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 为基准,实际数值会因模型架构、数据集长度与框架版本略有浮动):

显卡配置显存batch sizecutoff_len预计显存占用训练速度参考
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/autodltmp/models/your27bmodel
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/autodltmp/output/qlora27b
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 提升训练吞吐;
  • 接入更多开源数据集,扩展模型能力。
赞(0)
未经允许不得转载:网硕互联帮助中心 » AutoDL 租卡 + LLaMA-Factory 27B QLoRA 训练全流程
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!