环境准备与安装
1. 检查 GPU 计算能力
微调开始前,先确认一下 GPU 的计算能力。不同架构的 GPU 对 PyTorch 版本有不同要求,这直接决定了 CUDA 功能的可用性。
nvidia-smi --query-gpu=compute_cap --format=csv
第一行命令能直接查询到计算能力版本。Python 代码中也可以通过 torch.cuda 库检测 CUDA 可用性及具体设备信息,这些是后续选择合适 PyTorch 版本的关键依据。
2. 匹配 PyTorch 版本
版本不匹配可能导致性能下降甚至无法运行。根据 NVIDIA 官方对不同架构的支持情况,建议如下:
- 计算能力 < 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 部署
1. 安装工具包
LLaMA-Factory 提供了丰富的微调选项和便捷接口。推荐使用稳定版进行克隆和安装:
git clone -b v0.8.1 https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -e .\[torch,metrics\]
使用 -e 参数以可编辑模式安装,方便后续调试。\[torch,metrics\] 会同时安装 PyTorch 和相关评估指标依赖。
2. 显存优化配置
在资源受限的环境中,LLaMA-Factory 集成了 Unsloth 优化技术,能显著降低训练显存占用。核心组件 liger_kernel 提供了底层的内存优化功能。
pip install liger-kernel==0.5.2
启用后,配合量化技术,消费级显卡也能流畅运行大模型微调。
数据与模型准备
1. 下载模型
大模型文件体积较大,建议使用 Git LFS 管理。例如 Qwen2.5-7B-Instruct 适合进行领域适配:
# 假设路径为 /data/models/Qwen/Qwen2.5-7B-Instruct
若机器配置有限,可选择参数量更小的版本。
2. 数据集处理
LLaMA-Factory 支持内置及自定义数据集。这里以修改模型身份认知的 identity 数据集为例:
- 将 JSON 格式数据集放入
data目录。 - 注册数据集至
dataset_info.json。 - 替换占位符内容:
sed -i 's/{{name}}/XX 智能助手/g; s/{{author}}/XX 科技/g' data/identity.json
对于非内置数据集,需在 dataset_info.json 中添加元信息(路径、格式等),以便训练时正确加载。
微调与评估
1. 基础微调配置
LoRA 是一种参数高效的微调技术,只训练少量额外参数。以下命令展示了基本配置结构:
llamafactory-cli train \
--model_name_or_path <模型路径> \
--dataset identity \
--learning_rate 1e-4 \
--lr_scheduler_type cosine \
--output_dir ./saves/lora/sft
训练过程中会记录损失曲线,便于监控效果。学习率调度器使用余弦衰减策略。
2. 开启 Unsloth 优化
启用 Unsloth 后,可进一步调整参数以获得更好的显存效率,例如增加 4 位量化和梯度累积:
llamafactory-cli train \
--quantization_bit 4 \
--gradient_accumulation_steps 4 \
--lora_rank 64 \
--lora_alpha 16 \
... # 其他基础参数保持一致
lora_rank 和 lora_alpha 控制适配器的容量和缩放因子,影响微调的稳定性和效果。
3. 权重查看与导出
训练完成后,检查生成的 LoRA 权重文件:
ls -lhS ./saves/lora/sft
为了部署,需要将 LoRA 权重与基础模型合并,生成独立模型文件:
llamafactory-cli export \
--model_name_or_path <基础模型路径> \
--adapter_name_or_path ./saves/lora/sft \
--export_dir ./merged_model
这样即可脱离 LLaMA-Factory 环境,直接使用标准推理引擎加载。
测试与部署
1. 推理测试
使用 vLLM 推理引擎部署模型并提供 OpenAI 兼容 API,方便集成测试:
vllm serve ./merged_model
对比微调前后的回答,可以直观看到模型身份认知的变化。
2. 多轮对话交互
除了 API 测试,交互式对话模式能更全面地验证上下文理解能力:
llamafactory-cli chat --model_name_or_path ./merged_model
3. 导入 Ollama
为了在更多设备上部署,可将模型转换为 GGUF 格式:
- 下载 llama.cpp:
git clone https://github.com/ggerganov/llama.cpp.git
- 转换模型(示例):
python convert-hf-to-gguf.py <merged_model_path> --outfile model.gguf
GGUF 格式具有更好的跨平台兼容性。创建 Modelfile 定义加载配置:
FROM ./model.gguf
SYSTEM "You are a helpful assistant."
- 导入 Ollama:
ollama create sunmao -f Modelfile
成功导入后,即可通过 Ollama 进行管理和调用。


