Tülu 3:开放语言模型后训练中的前沿推动——算法实现详解

摘要

开放语言模型的后训练(Post-Training)是提升模型行为和解锁新技能的重要步骤。尽管这些技术在闭源模型中得到了广泛应用,但开放资源和具体训练方案相对滞后。为填补这一空白,我们介绍了Tülu 3,作为一系列完全开放的先进后训练模型,配套提供了数据集、代码及训练配方,旨在为现代后训练技术提供全面的指导。Tülu 3基于Llama 3.1模型,通过监督微调(SFT)、直接偏好优化(DPO)以及一种新颖的方法——具有可验证奖励的强化学习(RLVR),实现了在多项基准测试中超越现有开放和闭源模型的性能。本文重点详述了Tülu 3中算法的具体实现过程及其细节。

1. 引言

后训练技术,包括指令调优、基于人类反馈的强化学习(RLHF)等,已成为构建前沿语言模型的关键步骤。然而,这些技术的开放实现和资源相对闭源方法仍有较大差距。Tülu 3的提出旨在通过公开的训练数据、代码和训练配方,推动开放语言模型后训练研究的发展,缩小与闭源方法之间的差距。

2. Tülu 3 概述

Tülu 3采用多阶段的训练流程,逐步优化模型性能,具体包括数据策划、监督微调、偏好调优以及增强的强化学习阶段。以下将详细介绍每个阶段的算法实现和细节。

2.1 数据策划(Data Curation)

数据策划是后训练流程的基础,目标是收集和生成多样化、高质量的指令和响应,以覆盖模型需提升的核心技能,如推理、数学、编程等。

2.1.1 公共数据集来源

通过广泛调研现有公开数据集,选择能够促进多样性和覆盖目标技能的高质量数据集,如WildChat、OpenAssistant、FLAN v2等。数据集的选择基于多样性、质量和许可证的透明度,确保训练数据的合法性和多样性。

2.1.2 针对目标技能的合成数据生成

为了弥补公共数据集在特定技能上的不足,采用基于角色驱动的方法生成合成数据。具体步骤包括:

  1. 定义角色:从Persona Hub中选取约25万个不同的角色描述,如“专注于神经网络的机器学习研究员”。
  2. 生成指令:利用预训练语言模型(如GPT-4)根据角色描述和数据生成提示(prompt)生成相关技能的指令,如精确指令遵循、数学问题、编程任务等。
  3. 确保多样性:通过不同角色和指令类型,避免数据产生重复模式或低多样性。

2.2 监督微调(Supervised Finetuning, SFT)

监督微调阶段旨在通过已有的高质量指令-响应对进一步优化模型,使其能够更好地理解和执行指令。

2.2.1 SFT 数据准备

  1. 现有响应的过滤与选择:保留人类或高性能模型(如GPT-4)的响应,同时过滤掉空响应或包含模型开发者信息的回复。
  2. 生成新的响应:对于缺乏高质量响应的指令,使用GPT-4生成新的响应,确保每条指令至少有一个高质量的响应配对。

2.2.2 Tülu 3 SFT 混合数据集

通过多轮实验优化数据混合比例,确保各类核心技能的均衡提升。具体步骤包括:

  1. 技能专注的数据混合:针对推理、数学、编程等不同技能,分别构建技能特定的数据混合,并训练独立模型评估其对单一技能的提升。
  2. 数据组合与迭代优化:将各技能特定的数据混合组合,进行多轮数据混合调整,包括数据去污染和下采样,优化整体性能。

2.3 偏好调优(Preference Tuning)

偏好调优旨在通过学习人类或模拟偏好,进一步优化模型输出的质量和符合性。Tülu 3采用直接偏好优化(DPO)作为主要方法,并进行了多项优化实验。

2.3.1 偏好数据生成

  1. 提示选择:从SFT阶段的指令中选择用于生成偏好数据的提示,并补充未使用过的提示来源,如未见数据集中的指令。
  2. 响应生成:从多个模型(包括Tülu 3 SFT模型和其他开放模型)随机采样生成对这些提示的多种响应。
  3. 偏好标注:利用GPT-4作为评审器,对生成的响应进行多方面评分(如有用性、指令遵循性、真实性等),生成偏好对(preferred, rejected)。

2.3.2 长度归一化的DPO(Length-Normalized DPO)

为解决偏好优化过程中长度偏差问题,Tülu 3采用长度归一化的DPO方法,其目标函数为:

通过对响应长度进行归一化,减轻了模型在偏好优化中的长度偏差,提升了训练效率和输出质量。

2.4 强化学习与可验证奖励(Reinforcement Learning with Verifiable Rewards, RLVR)

RLVR是一种新颖的方法,旨在通过强化学习仅在模型生成的输出经过验证正确时给予奖励,从而提升模型在特定任务上的性能。

2.4.1 RLVR 数据准备

  1. 任务选择与验证函数定义:选择具有可验证结果的任务,如数学问题解决和精确指令遵循,为每类任务定义相应的验证函数。
  2. 奖励函数设计:定义奖励函数v(x,y)v(x, y)v(x,y),当输出yyy在给定提示xxx下是正确时,给予固定奖励值α\alphaα,否则奖励为零。

2.4.2 RLVR 训练流程

  1. 初始模型选择:选择通过DPO微调的模型作为RLVR训练的初始模型。
  2. PPO 算法应用:使用Proximal Policy Optimization (PPO)算法,优化语言模型策略以最大化可验证奖励。
  3. 训练细节优化
    • 值函数初始化:将值函数初始化为训练中的奖励模型,确保值函数能有效估计奖励。
    • 去除Dropout:在训练过程中禁用Dropout,保证推理过程和学习过程中的一致性。
    • 分离前向传播:分别对选择和拒绝的响应进行前向传播,减少GPU内存占用,提高训练效率。

2.4.3 RLVR 训练细节与优化

通过多轮实验,调整了PPO的关键超参数,如学习率、KL惩罚系数等,确保RLVR训练的稳定性和有效性。此外,引入异步RL训练架构,利用vLLM加速大规模模型的推理过程,提高了训练效率。

2.5 评估与结果

Tülu 3通过广泛的基准测试验证了其性能,具体包括开发集和未见评估集的表现。实验结果显示,Tülu 3在多项核心技能上显著优于现有的开放和闭源模型,尤其在数学推理和精确指令遵循方面表现突出。

3. 结论

Tülu 3作为一系列完全开放的语言模型,展示了现代后训练框架的先进性。通过结合监督微调、直接偏好优化以及具有可验证奖励的强化学习,Tülu 3在多项基准测试中超越了现有的开放和闭源模型。我们详细阐述了Tülu 3中各个算法阶段的具体实现过程及其优化细节,为未来的开放后训练研究提供了宝贵的参考。

致谢

我们感谢John Schulman在项目中的宝贵建议,感谢National Artificial Intelligence Research Resource (NAIRR) Pilot和Microsoft Azure对本工作的支持。此外,感谢Ai2和华盛顿大学NLP社区的无数成员在项目

评论

发表回复

人生梦想 - 关注前沿的计算机技术 acejoy.com