训练偏好模型是RLAIF流程的一个主要步骤。这个模型是RLAIF流程的基础,它能学习对数据集中所包含的偏好进行量化 (quantization),最终为强化学习 (reinforcement learning)阶段提供奖励信号。AI生成的偏好数据集(x,yw,yl)通常包括提示x、偏好的(获胜)响应yw和次优的(失败)响应yl。
模型架构选择
偏好模型的主要作用是为给定的提示-响应对分配一个标量分数rθ(x,y),此分数表示该响应根据所学习的AI偏好有多“受欢迎”。一种常见且有成效的方法是调整你打算对齐 (alignment)的基础LLM的架构,或一个相关的预训练 (pre-training)Transformer模型。
惯常的输入格式是将提示和响应连接起来,通常用一个特殊标记 (token)分隔,然后将这个序列输入到Transformer模型中。对于与提示x对应的偏好对(yw,yl),你通常会进行两次前向传播:一次针对(x,yw),另一次针对(x,yl)。
输入 1: [提示标记] [SEP] [获胜响应标记]
输入 2: [提示标记] [SEP] [失败响应标记]
通常会在对应于某个特定标记(例如,序列的最后一个标记,或在使用BERT风格模型时的专门分类标记)的最终隐藏状态之上添加一个线性层。该层将高维表示映射为一个单一的标量值,表示偏好分数。
使用预训练的基础LLM(或初始SFT或CAI阶段产生的模型)的权重 (weight)来初始化偏好模型通常有益。这借助了模型现有的语言理解能力,使其能够侧重于学习偏好的具体情况,而不是从零开始学习语言建模。使用基础LLM的较小、精炼版本,也可以是降低计算开销的可行方法,尽管可能牺牲一些表达能力。
损失函数 (loss function):学习偏好
偏好模型的标准训练目标与排序学习(learning-to-rank)和RLHF中使用的技术相似。目标是训练模型,使得分配给获胜响应yw的分数高于分配给失败响应yl的分数。这通常被构想为响应对上的二元分类问题。
借鉴Bradley-Terry模型等将成对比较概率与背后强度参数 (parameter)关联起来的模型,我们可以使用它们分数差值通过Sigmoid函数后的结果,对在给定x下yw优于yl的概率进行建模:
Pθ(yw≻yl∣x)=σ(rθ(x,yw)−rθ(x,yl))
这里,σ(z)=1/(1+e−z)是逻辑Sigmoid函数。训练目标是最大化观察数据集中D={(x(i),yw(i),yl(i))}i=1N所包含偏好的对数似然。这对应于最小化负对数似然损失:
L(θ)=−i=1∑Nlog(σ(rθ(x(i),yw(i))−rθ(x(i),yl(i))))
这个损失函数促使模型参数θ为偏好响应赋予更高的分数rθ,为次优响应赋予更低的分数,从而直接优化排序目标。
训练过程与优化
训练过程遵循标准的监督学习 (supervised learning)方法:
- 数据准备: 打乱偏好数据集D。将其划分为训练集、验证集和测试集。最好确保来自相同提示上下文 (context)的对保留在相同的集合中,以避免数据泄露。
- 批处理: 创建批次,其中每个元素包含一个提示x、一个获胜响应yw和一个失败响应yl。
- 前向传播: 对于批次中的每个示例,通过模型传入连接后的输入,计算标量分数rθ(x,yw)和rθ(x,yl)。
- 损失计算: 使用上述成对偏好损失函数 (loss function)计算损失。
- 反向传播 (backpropagation)与优化: 计算梯度,并使用AdamW等优化器更新模型参数 (parameter)θ。采用学习率调度(例如,线性热身接着余弦或线性衰减)和权重 (weight)衰减等常见方法进行正则化 (regularization)。
- 评估: 定期在验证集上评估模型,使用准确率(rθ(x,yw)>rθ(x,yl)被正确预测的对的百分比)和验证损失。
当GPU内存有限时,通常需要梯度累积来模拟更大的批次大小,尤其是在微调 (fine-tuning)大型模型时。
准确率评估
尽管在保留测试集上的准确率是主要指标,其他评估也能提供更深入的认识:
- 损失曲线: 监控训练和验证损失,以发现过拟合 (overfitting)或训练不稳定。
- 校准: 评估预测概率Pθ(yw≻yl∣x)是否反映偏好的真实可能性。校准良好的模型分数更易理解。可靠性图可以展示校准情况。
- 分数分布: 分析常见响应的分数rθ(x,y)分布。分数分布均匀吗?它们是否集中在狭窄区间内?
- 错误分析: 人工检查模型预测偏好错误的示例。模型在哪些特定种类的提示或响应特征(例如,安全性上的细微差异、简洁与详细)上表现不佳?这种分析可以为数据集改进或进一步模型调整提供信息。
偏好模型训练期间的准确率趋势,显示训练准确率可能会趋于平稳,而验证准确率可能会趋于饱和或略有下降,这表明过拟合的开始。
实现考量
- 初始化: 如前所述,强烈建议从预训练 (pre-training)LLM检查点初始化。
- 参数 (parameter)高效微调 (fine-tuning)(PEFT): 像低秩适应(LoRA)这样的技术可以显著降低训练偏好模型的计算和内存要求,尤其是在调整非常大的基础模型时。这涉及只训练少量适配器参数,而不是整个模型。
- 数据质量影响: AI偏好标注器的质量和一致性直接制约偏好模型的表现。偏好标注中的噪声或系统性偏差必然会被偏好模型学习到,从而为后续RL阶段造成有问题的奖励信号。应投入精力确保AI标注器很好地符合预期原则(例如,如果与CAI结合,则符合宪法原则)。
- 归一化 (normalization): 分数rθ(x,y)的绝对值不如它们的相对差值重要。然而,在RL阶段,奖励信号的量级有关。常见做法是在将偏好模型分数用作奖励之前,对其进行归一化(例如,通过减去批次或数据集的均值并除以标准差)。
一旦偏好模型训练并评估满意,其主要作用是为PPO算法提供奖励信号r(x,y)=rθ(x,y)(可能经过归一化或转换),指导LLM策略生成符合所学AI偏好的响应。这个重要环节使我们从监督偏好学习转向在线强化学习 (reinforcement learning)优化。