一、目标函数类型
- Decoder-only 模型 (如 GPT-3)
- 使用单向上下文嵌入
- 基于最大似然原理训练
- 一次生成一个 token
- Encoder-only 模型 (如 BERT)
- 使用双向上下文嵌入
- 主要训练目标:
- 掩码语言建模(MLM)
- 下一句预测(NSP) - 不过在 RoBERTa 中被移除
- Encoder-decoder 模型 (如 T5, BART)
- 结合了编码器的双向编码和解码器的自回归解码
- BART 主要使用文档掩码和句子打乱作为预训练任务
- T5 将所有 NLP 任务统一为文本到文本的转换框架
二、优化算法
- 基础优化器
- SGD (随机梯度下降)
- Adam (自适应矩估计)
- 引入动量
- 为每个参数维度使用自适应学习率
- 需要 4 倍模型参数的存储空间
- AdaFactor
- 通过只存储行列和来减少内存占用
- 去除动量机制
- 训练技巧
- 混合精度训练
- 主权重使用 FP32,其他操作使用 FP16
- 使用损失缩放避免梯度消失
- 可以减少一半存储空间
- 关键超参数
- 学习率需要预热(warmup)阶段
- 权重初始化很重要,不同模型采用不同的缩放策略
- 批量大小、梯度裁剪等都需要特别调整
这些内容涵盖了大语言模型训练的主要方面,包括目标函数的选择和优化策略的制定。每种方法都有其特点和适用场景。