一、LLaMA Factory 训练监控体系概览
LLaMA Factory 通过模块化设计实现了全面的指标监控功能,主要覆盖训练稳定性、模型性能和资源利用三大维度。系统默认在 src/llamafactory/train/sft/metric.py 中实现基础评估逻辑,同时支持通过配置文件扩展自定义指标。
核心监控指标包括:
- 训练稳定性:损失值、梯度范数、学习率变化
- 模型性能:准确率、困惑度、ROUGE 分数
- 文本质量:生成内容的流畅性和相关性
- 资源利用:GPU 内存占用、训练速度
指标数据通过标准化流程采集:计算层→评估层→存储层→展示层,最终在各种可视化工具上呈现。
二、Ubuntu 22.04 环境准备
在开始之前,确保你的 Ubuntu 22.04 系统已准备好基础环境:
# 创建并激活虚拟环境
conda create -n llama-factory-monitor python=3.10
conda activate llama-factory-monitor
# 安装 LLaMA Factory 及依赖
git clone https://github.com/hiyouga/LLaMA-Factory
cd LLaMA-Factory
pip install -e ".[torch,metrics,swanlab]"
# 安装 TensorBoard
pip install tensorboard
如果网络环境对 HuggingFace 下载不友好,可以设置国内镜像源:
# 下载源改为魔搭社区
export USE_MODELSCOPE_HUB=1
# 或者改为魔乐社区
export USE_OPENMIND_HUB=1
三、四大监控工具实战详解
1. LlamaBoard:内置 WebUI 监控
LlamaBoard 是 LLaMA Factory 自带的 Web 可视化界面,开箱即用,适合快速上手。
启动方式:
llamafactory-cli webui
启动后访问 http://127.0.0.1:7860 即可进入界面。
功能特点:
- 实时损失曲线显示:训练过程中自动更新损失曲线
- 基础训练指标:当前 epoch、学习率等关键参数
- 模型加载状态:实时显示模型和数据加载进度
- 简易参数配置:通过 Web 界面调整训练参数
优势:无需额外配置,适合初学者快速验证训练过程。局限性:功能相对基础,缺乏多实验对比能力。
2. SwanLab:国产开源训练看板
SwanLab 是国内新兴的开源训练可视化工具,与 LLaMA Factory 有深度集成。
配置步骤:
首先注册账号并获取 API 密钥:
swanlab login
在 LLaMA Board 的 Web 界面中,找到「SwanLab 参数设置」卡片,勾选「使用 SwanLab」并配置:
- 项目名称(swanlab_project)
- 实验名称(swanlab_run_name)
- 工作区等参数
或者通过 YAML 配置文件启用:
### swanlab 配置
use_swanlab: true
swanlab_project: llamafactory
swanlab_run_name: Qwen2-VL-7B-Instruct
核心功能:
- 多实验对比:不同超参数配置的训练结果对比
- 硬件资源监控:实时显示 GPU 内存、利用率等系统指标
- 训练指标追踪:损失、准确率等指标的自动记录
- 云端存储:实验结果自动同步到云端,便于团队协作
SwanLab 对中文环境的支持良好且延迟较低。
3. TensorBoard:经典强大的可视化工具
TensorBoard 是 TensorFlow 生态中的经典可视化工具,PyTorch 也通过 torch.utils.tensorboard 模块提供了原生支持。
在 Ubuntu 22.04 上的配置:
确保已安装 TensorBoard:
pip install tensorboard
在 LLaMA Factory 中启用 TensorBoard 支持:
# 训练时添加--report_to 参数
python src/train.py \
--config examples/train_lora/llama3_lora_sft.yaml \
--report_to tensorboard
启动 TensorBoard 服务:
tensorboard --logdir=./runs --port=6006
访问 http://localhost:6006 查看可视化界面。
关键监控面板:
- Scalars 面板:损失、准确率等标量指标的曲线图
- Graphs 面板:模型计算图结构可视化
- Distributions 面板:参数分布变化情况
- Histograms 面板:参数直方图统计
高级技巧:多实验对比
将不同实验的日志存储在同一父目录下,TensorBoard 会自动识别并支持对比:
# 目录结构
runs/
├── exp1_lr1e-5
├── exp2_lr3e-5
└── exp3_lr5e-5
# 启动 TensorBoard 时指定父目录
tensorboard --logdir=./runs --port=6006
在 Scalars 面板中勾选不同实验名称,即可在同一图表中对比相同指标的变化趋势。
4. Weights & Biases(W&B):企业级实验跟踪
Weights & Biases 是功能强大的实验跟踪平台,适合企业级应用和团队协作。
安装和配置:
pip install wandb
wandb login
在训练配置中启用 W&B 支持:
# 在训练配置 YAML 文件中添加
report_to:
- wandb
wandb_project: my-llama-project
wandb_run_name: experiment-1
核心特性:
- 高级实验对比:丰富的筛选和分组功能
- 团队协作功能:项目共享和权限管理
- 自动化超参数搜索:与超参数优化工具集成
- 模型版本管理:训练结果与模型版本关联
W&B 特别适合需要精细实验管理和团队协作的生产环境。
四、实战案例:多工具协同监控训练过程
下面我们以一个具体的 Qwen2.5B 模型微调任务为例,展示如何综合使用多种监控工具。
训练配置:
# examples/train_lora/qwen2_lora_sft.yaml
model_name_or_path: Qwen/Qwen2.5-1.5B-Instruct
dataset: alpaca_zh_demo
finetuning_type: lora
# 监控配置
report_to:
- tensorboard
- swanlab
- wandb
use_swanlab: true
swanlab_project: qwen2.5b-demo
swanlab_run_name: first-experiment
wandb_project: llama-factory-demo
关键监控指标设置:
# 在 metric.py 中添加自定义指标
eval_metrics = ["accuracy", "perplexity", "rouge-1", "rouge-2", "rouge-l"]
训练启动命令:
llamafactory-cli train examples/train_lora/qwen2_lora_sft.yaml
五、训练异常诊断与调优
通过监控工具识别常见训练问题:
1. 损失曲线异常分析
- 持续震荡:通常表示学习率过高,建议降低学习率至 1e-5 或启用学习率预热
- 下降缓慢:可能是优化器不匹配,可尝试切换至 AdamW 优化器
- 验证损失上升:过拟合迹象,需要增加早停机制或数据增强
2. 梯度监控
设置梯度范数阈值监控,防止梯度爆炸:
# 在配置中添加梯度裁剪
gradient_clip_val: 1.0
gradient_norm_threshold: 10.0
3. 资源瓶颈诊断
- GPU 内存溢出:减小 batch size 或启用梯度检查点
- CPU 内存不足:优化数据加载流程,使用更高效的数据格式
六、工具对比与选择建议
| 工具特性 | LlamaBoard | SwanLab | TensorBoard | Weights & Biases |
|---|---|---|---|---|
| 安装配置难度 | 简单 | 中等 | 中等 | 复杂 |
| 功能丰富度 | 基础 | 中等 | 丰富 | 非常丰富 |
| 多实验对比 | 不支持 | 支持 | 支持 | 强大支持 |
| 团队协作 | 不支持 | 支持 | 有限支持 | 强大支持 |
| 本地部署 | 是 | 支持混合 | 是 | 云端为主 |
| 学习曲线 | 平缓 | 中等 | 中等 | 陡峭 |
选择建议:
- 初学者/快速验证:LlamaBoard
- 个人项目/国内用户:SwanLab
- 科研实验/多参数对比:TensorBoard
- 企业级/团队协作:Weights & Biases
七、总结
LLaMA Factory 配合四大监控工具,为大模型微调提供了全方位、多层次的训练可视化方案。在 Ubuntu 22.04 系统上,这些工具都能稳定运行,满足从实验跟踪到性能分析的各种需求。
最佳实践建议:
- 起步阶段:从 LlamaBoard 开始,快速验证训练流程
- 进阶使用:结合 SwanLab 和 TensorBoard,获得更全面的监控视角
- 生产环境:考虑 W&B 的企业级功能,满足团队协作需求
- 问题诊断:善用多工具协同分析,快速定位训练异常
通过有效的监控和分析,不仅能及时发现训练问题,还能积累调优经验,为后续实验提供数据支持。

