2.5.1 预训练目标与数据构成
学习导航
- 本章主题:2.5.1 预训练目标与数据构成
- 前置知识:建议先完成第 1 章核心内容。
- 建议用时:41-61 分钟
- 阅读顺序:先看概念框架,再看公式/代码,最后做自测。
大模型训练的第一阶段是预训练。核心任务不是“学会某个单一任务”,而是通过海量数据学习通用表示与条件生成能力。
2.5.1.1 自回归目标与多模态扩展
语言模型最常见目标是 next-token prediction:
\[ \mathcal{L}{\text{AR}}(\theta) = -\sum{t=1}^{T}\log p_\theta(x_t\mid x_{<t}). \]
在 VLA 场景中,可以把文本、视觉 token、动作 token 拼接成统一序列,仍然使用相同的自回归损失。这样做的好处是训练目标统一,坏处是不同模态的统计特性差异很大,容易出现“强模态压制弱模态”(通常是文本压制动作)。
2.5.1.2 数据混合策略(Data Mixture)
预训练数据通常由多来源组成:
- 通用文本语料。
- 图文对齐数据。
- 机器人示教轨迹与状态-动作序列。
常见做法是设置混合权重:
\[ \mathcal{L} = \lambda_{\text{text}}\mathcal{L}{\text{text}} + \lambda{\text{vl}}\mathcal{L}{\text{vl}} + \lambda{\text{act}}\mathcal{L}_{\text{act}}. \]
工程上不要只看总 loss。建议分别记录每个子损失与每类样本占比,否则很难定位“模型退化到底来自哪一类数据”。
2.5.1.3 数据质量控制
预训练阶段,数据质量常比模型结构更关键。建议最少做三类清洗:
- 去重:减少重复样本导致的过拟合和记忆偏差。
- 规则过滤:去除损坏样本、错配图文、越界动作。
- 分布校验:保证任务、机器人、场景覆盖不过度偏斜。
2.5.2 训练基础设施与稳定性
当模型规模上升后,“能否稳定训练”本身就是主要挑战。
2.5.2.1 全局批量、学习率与 warmup
大模型通常使用较大的全局 batch,并配合 warmup + 衰减调度。一个常见策略是:
- 前若干 step 线性 warmup 到目标学习率。
- 中后期使用 cosine decay 或分段衰减。
如果 batch、学习率、梯度累计步数不一致地变动,训练曲线会明显抖动,甚至出现 loss 突然发散。
2.5.2.2 混合精度与分布式训练
在大模型训练中,BF16/FP16 与分布式并行几乎是必需项:
- 数据并行:提升吞吐。
- 张量并行:切分大矩阵计算。
- 流水线并行:切分层级降低显存峰值。
无论采用何种并行方式,都建议固定记录以下信息:
- 有效 tokens/s。
- 每卡显存峰值。
- 梯度范数与 loss scale。
2.5.2.3 稳定训练的最小防线
最常见的稳定性手段:
- 梯度裁剪:
\[ g \leftarrow g \cdot \min\left(1, \frac{\tau}{|g|}\right) \]
- 激活与 loss 的 NaN 监控。
- 周期性 checkpoint 与自动恢复。
在机器人场景中,训练稳定性直接影响后续真实部署安全性。离线训练阶段若存在不稳定区间,往往会在在线推理时放大为异常动作。
2.5.3 指令微调与参数高效微调
预训练得到的是“通用能力”,微调阶段才决定它“听谁的话、做什么事”。
2.5.3.1 监督微调(SFT)
SFT 的核心是用高质量指令-响应(或观测-动作)对模型进行任务对齐:
\[ \mathcal{L}{\text{SFT}} = -\sum_t \log p\theta(y_t\mid y_{<t}, x). \]
其中 (x) 可以是文本指令、图像与状态,(y) 可以是文本动作描述或离散动作 token。
2.5.3.2 LoRA / QLoRA
LoRA 将权重更新写成低秩分解:
\[ \Delta W = BA, \]
其中 (A\in\mathbb{R}^{r\times d})、(B\in\mathbb{R}^{k\times r}),(r\ll\min(k,d))。
优势:
- 可训练参数少。
- 显存压力小。
- 可快速多任务切换(不同 adapter)。
QLoRA 在低比特量化基座模型上做 LoRA,可进一步降低资源消耗,适合实验室级 GPU 资源。
2.5.3.3 微调数据的设计原则
比“数据量大”更重要的是“任务边界清晰”:
- 指令表达尽量一致,减少同义混乱。
- 失败样本要保留并标注,避免模型只学习“理想轨迹”。
- 多机器人数据要显式带 embodiment 条件。
2.5.4 偏好对齐与安全约束
SFT 之后,模型通常还需要偏好对齐,减少“看起来合理但不安全”的输出。
2.5.4.1 偏好学习基本范式
常见方式是收集成对偏好样本 ((y^+, y^-)),让模型更偏好高质量行为。
两条主路线:
- 奖励模型 + RL(RLHF)。
- 直接偏好优化(如 DPO)。
2.5.4.2 DPO 直观理解
DPO 可以在不显式训练奖励模型的情况下,直接优化偏好对比目标。它在实现复杂度与稳定性上通常优于完整 RLHF 流程,适合工程落地。
对机器人系统而言,偏好并不只包含“任务完成”,还应包含:
- 动作平滑。
- 安全距离。
- 对约束指令的服从性。
2.5.4.3 安全数据与红队测试
对齐阶段建议单独构建安全集:
- 危险指令样本。
- 传感器异常样本。
- 边界动作样本(速度/力矩/关节限位附近)。
上线前应做红队测试:用“高风险输入组合”反复压测,而不是只看常规 benchmark 分数。
2.5.5 评测、压缩与部署前准备
训练结束不代表可部署。最后一步是验证“性能、成本、安全”三者平衡。
2.5.5.1 分层评测指标
建议分三层评测:
- 离线指标:困惑度、token 准确率、回归误差。
- 仿真指标:任务成功率、轨迹质量、恢复能力。
- 在线指标:延迟、稳定性、异常率、安全触发率。
2.5.5.2 模型压缩与蒸馏
常见压缩路径:
- 量化(8bit/4bit)。
- 蒸馏(teacher-student)。
- 结构裁剪(层数/宽度/头数)。
实践中通常先蒸馏再量化,避免精度损失过大。
2.5.5.3 部署前检查清单
建议在部署前完成以下清单:
- 固定随机种子可复现。
- 关键实验可一键重跑。
- 推理延迟满足控制频率预算。
- 安全过滤器与急停策略已联调。
- 失败案例库已建立并可回放。
到这一步,2.5 章节的核心目标才算达成:你不仅“训练了一个大模型”,而且建立了可复现、可评测、可部署的完整微调流水线。
2.5 小结
- 预训练阶段决定上限,微调阶段决定行为边界。
- 训练稳定性、数据质量、偏好对齐是三根主线。
- 真实机器人部署前,必须把性能指标和安全指标同等对待。
2.5.6 参考阅读(集中)
- Transformer 原始论文:https://arxiv.org/abs/1706.03762
- LoRA:https://arxiv.org/abs/2106.09685
- QLoRA:https://arxiv.org/abs/2305.14314
- DPO:https://arxiv.org/abs/2305.18290
- RLHF 概览:https://arxiv.org/abs/2203.02155
本章小结与自测
三行小结
- 本章建立深度学习训练与 Transformer 的工程认知。
- 核心是结构、目标函数、优化与稳定性联动理解。
- 学完后应能从训练日志定位主要问题来源。
检查题
- 用你自己的话总结本章最核心的一个公式/机制。
- 给出一个“如果要落地到项目里,你会怎么用”的具体例子。
常见误区
- 只看模型结构,不看训练配置。
- 出现 NaN 时只降学习率而不查数据。
- 把单次结果当作稳定结论。
公式到代码(最小示例)
import torch
model = torch.nn.Linear(16, 4)
opt = torch.optim.AdamW(model.parameters(), lr=1e-3)
x = torch.randn(8, 16)
y = torch.randint(0, 4, (8,))
loss = torch.nn.CrossEntropyLoss()(model(x), y)
loss.backward()
torch.nn.utils.clip_grad_norm_(model.parameters(), 1.0)
opt.step(); opt.zero_grad()
本章外部参考(集中)
- 本章暂无外部链接,建议优先完成本章自测与代码实践。