用 LLaMA-Factory 对 Qwen2.5-3B-Instruct 做一次 LoRA 监督微调(SFT),把「跑通流程 → 看懂评估 → 提升泛化」完整走一遍。这不是官方 README 的摘抄,而是一次可复现实验的方法论复盘。

这个系列讲什么

  • 为什么要微调,而不是直接用基座模型?
  • SFT 和 LoRA 分别指什么?
  • 环境怎么搭、配置怎么写?
  • 训练日志怎么读、轮数怎么选?
  • 评估指标怎么选、失败案例怎么归因?
  • 如何用「数据增强 + 推理侧约束」提升结构化输出的可靠性?

文中示例均为虚构示意,不引用真实业务语料,也不公开任何训练/验证样本。

技术栈(脱敏后)

项目 选型
基座模型 Qwen2.5-3B-Instruct
微调框架 LLaMA-Factory
训练阶段 SFT(监督微调)
训练方法 LoRA
运行环境 Ubuntu + NVIDIA GPU + Docker
数据格式 Alpaca 风格 JSONL(示意)

阅读路线

序号 主题
00 本篇:系列导读
01 为什么要微调,以及整体路线图
02 SFT 与 LoRA:别把两个概念搞混
03 环境搭建:Docker 里跑 LLaMA-Factory
04 训练数据:格式、构造原则与划分
05 第一次训练:从配置到合并模型
06 看日志与选轮数
07 评估与失败分析
08 提升结构化输出的泛化与可靠性
09 部署、复盘与下一步

仓库结构(只讲职责,不讲数据内容)

1
2
3
4
5
6
7
project/
├── configs/ # 训练 / 合并配置
├── scripts/ # 数据准备、评估、推理脚本
├── models/ # 基座模型(本地或挂载)
├── train_data/ # 训练与验证数据(本文不公开内容)
├── output/ # 适配器与合并后的模型
└── docs/ # 操作说明

写作约定

为避免敏感信息泄露,本系列统一遵守:

  1. 不出现具体业务品牌、场地、产品名
  2. 不出现具体 GPU 型号
  3. 不粘贴、不摘录任何真实训练/验证样本
  4. 需要举例时,只用抽象示意(如 {"intent": "xxx"}

语言模型微调实战第 00 篇完。下一篇:先把术语拆开——为什么要微调,以及整条路线图长什么样。