文本摘要系统可以拆成四个独立环节:准备成对的原文与摘要样本、训练模型或适配器、按部署条件压缩权重、用推理引擎提供服务。DeepSpeed、LoRA、QLoRA、GPTQ 和 vLLM 分别处在不同位置,不能把它们当成一个可互换的“量化训练方案”。
1. 任务与评估先于加速
监督微调样本应明确输入文本、摘要指令和目标摘要。训练、验证、测试集要按来源或文档去重,并检查是否存在同一篇原文的近重复版本跨集合出现。摘要质量不能只看训练损失:可以结合 ROUGE 等自动指标与人工检查,重点查看事实忠实度、关键信息覆盖、长度约束和是否凭空添加细节。
模型选型可以从 Qwen 等具备相应许可的基座开始,但必须固定具体模型版本、分词模板和最大上下文长度。只写“Qwen + LoRA”无法复现实验,也不能推断摘要效果。
2. DeepSpeed:训练侧的显存与并行
数据并行让多个设备各处理不同小批次并同步梯度;张量并行把同一层的计算切到多个设备;流水线并行把不同层或阶段放到不同设备。它们解决的瓶颈不同,均会带来通信成本。
DeepSpeed ZeRO 主要减少数据并行训练状态的冗余:Stage 1 切分优化器状态,Stage 2 再切分梯度,Stage 3 进一步切分参数。更高阶段可能减少单卡模型状态内存,但是否更快取决于通信、设备数量及具体配置;没有通用的“官方固定推荐 Stage 2”。Offload 可以把部分状态移至 CPU 或 NVMe,换取显存空间,也可能增加传输与计算延迟。DeepSpeed ZeRO 文档、Offload 文档
全局批量满足:train_batch_size = 每卡 micro batch × gradient_accumulation_steps × 数据并行设备数。例如单卡、每卡 micro batch 为 2、累积 4 次,全局批量是 8。配置文件应是合法 JSON;JSON 代码块中的 // 注释不能直接用于解析。下面只展示相关字段,具体训练还需模型、数据、优化器和启动脚本:
{
"train_micro_batch_size_per_gpu": 2,
"gradient_accumulation_steps": 4,
"train_batch_size": 8,
"zero_optimization": {"stage": 2}
}
DeepSpeed Engine 负责 backward(loss) 与 step();优化器及梯度累积边界由实际配置管理。混合精度可使用 FP16 或 BF16,选项和稳定性要结合硬件、模型及框架版本测试。DeepSpeed 配置文档
3. LoRA 与 QLoRA:决定训练哪些参数
LoRA 冻结基座权重,只训练所选线性层旁的低秩适配器。QLoRA 进一步以低比特形式保存冻结的基座权重,让梯度穿过它去训练适配器。二者都可以与合适的分布式训练策略结合,但“启用 LoRA”不等于“启用 4-bit 量化”;只在配置中写 quantization_bit: 4 也不足以说明量化后训练已成功。需核对模型兼容性、量化后端和实际加载日志。LoRA 论文、QLoRA 论文
LLaMA-Factory 提供 LoRA 与量化 LoRA 的示例配置。参数如 stage: sft、finetuning_type: lora、lora_rank、lora_target 只描述训练方法的一部分;模型、数据集模板、输出目录、精度、批量、学习率和评估配置也必须明确。应从与当前版本匹配的官方示例出发修改,而不是把片段当作完整可运行配置。
4. GPTQ:训练后权重量化
GPTQ 是一种训练后权重量化方法,利用校准数据近似控制量化误差。它通常面向推理阶段的模型压缩,和训练时以量化基座配合 LoRA 的 QLoRA 不是同一环节。选择校准样本、量化位宽与实际推理后端时,都要比较量化前后的摘要质量与吞吐。GPTQ 论文
5. vLLM:部署与适配器服务
vLLM 的 PagedAttention 使用分块管理 KV cache,以减轻动态生成场景的内存浪费;它处理的是推理时注意力缓存,不是把训练参数或任意进程内存变成分页文件。PagedAttention 论文 vLLM 可以在受支持的模型上加载 LoRA 适配器,并通过服务接口按适配器名称请求。基座权重、量化格式、适配器版本和推理引擎必须互相兼容。vLLM LoRA 文档
上线前应使用真实摘要请求验证:接口返回、摘要事实性、并发吞吐、首 token 延迟和显存占用。训练成功、量化文件存在、服务端口启动,是三个不同的检查点;只有完整请求链路通过,才能说明模型可以对外提供摘要服务。