环境准备与 PyTorch 安装
在开始微调之前,确认 GPU 计算能力至关重要。不同架构的 GPU 对 PyTorch 版本有不同要求,这直接决定了 CUDA 功能的可用性和性能表现。
首先查询 GPU 的计算能力:
nvidia-smi --query-gpu=compute_cap --format=csv
根据查询结果匹配 PyTorch 版本:
- 计算能力 < 7.0 (如 Maxwell 架构):使用较老版本
- 计算能力 7.x (Volta/Turing):PyTorch 1.8+
- 计算能力 8.x (Ampere):PyTorch 1.10+
- 计算能力 9.x (Ada Lovelace):PyTorch 2.0+
若当前版本不匹配,建议访问 PyTorch 官网获取最新的安装命令,确保 CUDA 版本完全对应。正确的版本匹配是训练稳定性的基础。
安装 LLaMA-Factory
LLaMA-Factory 是一个专为微调大语言模型设计的工具包,提供了丰富的选项和便捷接口。推荐使用稳定版进行安装:
git clone -b v0.8.1 https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -e ".[torch,metrics]"
-e . 表示以可编辑模式安装,方便后续调试。针对显存受限的环境,LLaMA-Factory 集成了 unsloth 优化技术。若要进一步降低显存占用,建议安装 liger_kernel 0.5.2 版本,它能通过底层内存优化显著减少资源消耗。
数据集准备
LLaMA-Factory 支持内置数据集,简化了数据准备工作。我们可以利用内置的 identity 数据集来修改模型的自我认知。
- 将 json 格式的数据文件放入
data目录。 - 注册数据集到
data/dataset_info.json(内置数据集通常已注册)。 - 替换占位符内容:
sed -i 's/{{name}}/XX 智能助手/g; s/{{author}}/XX 科技/g' data/identity.json
对于自定义数据集,需在 dataset_info.json 中补充文件路径和格式说明,确保训练时能正确加载。
模型微调
基本配置
使用 LoRA 方法进行参数高效微调,只训练少量额外参数而非全量模型。学习率调度器采用 cosine 衰减,便于监控损失曲线。
llamafactory-cli train \
--stage sft \
--model_name_or_path path_to_base_model \
--dataset identity \
--template default \
--finetuning_type lora \
--output_dir saves/lora/sft
启用 Unsloth 优化
当显存紧张时,可以结合 4 位量化和梯度累积技术:
llamafactory-cli train \
--quantization_bit 4 \
--gradient_accumulation_steps 4 \
--lora_rank 64 \
--lora_alpha 16 \
--output_dir saves/lora/sft_unsloth
lora_rank 和 lora_alpha 控制适配器的容量和缩放因子,影响微调效果与稳定性。
权重检查与导出
训练完成后,查看生成的 LoRA 权重文件:


