新智元报道
编辑:乔杨
随着 LLM 不断迭代,偏好和评估数据中大量的人工标注逐渐成为模型扩展的显著障碍之一。Meta FAIR 的团队最近提出了一种使用迭代式方法「自学成才」的评估模型训练方法,让 70B 参数的 Llama-3-Instruct 模型分数超过了 Llama 3.1-405B。
LLM 在开发周期的每个阶段都依赖强大的评估模型,比如训练阶段用于对齐人类偏好或迭代自我改进的奖励模型,以及推理阶段作为人类评估的替代方案。
构建评估模型往往依赖大量的高质量人类偏好数据,不仅耗时长、成本高,而且在模型扩展到新任务或评估标准时造成了阻碍。
此外,随着新模型不断迭代改进时,现有的标注数据往往会过时,因为其中的评估是基于旧有的、性能较差的模型相应。这意味着需要不断重复上述的数据标注和收集流程。
最近,Meta FAIR 发表的一篇研究就尝试使用合成数据的方法来解决这个问题。他们提出了一种迭代的自我训练方法,在训练循环中完全不使用人类标注的偏好数据,而是纯粹依赖合成数据。
论文地址:https://arxiv.org/abs/2408.02666
实验中,这种方法将 Llama-3-70B-Instruct 在 RewardBench 上的准确率从 75.4 提升至 88.7,超过了使用人类标注数据的方法。
arXiv 页面显示,这篇论文最后修订于 8 月 8 日,目前作者还没有公开相关代码。
方法概述
整个 pipeline 的流程大致如下(图1):
- 初始化:收集大量人类编写的用户指令,这在生产系统中较为常见,以及初始的种子 LLM
- 指令选择:用 LLM 从数据集中选择出具有挑战性的、平衡的用户指令分布
- 响应对构建:对每个用户指令,通过提示创建 LLM 模型响应偏好对,让其中一个的质量(被拒绝响应)略低于另一个(被选择响应)
- 迭代训练:每次迭代包括两个步骤,判断标注和模型微调。
(i) 对每条数据采样N个 LLM-as-a-Judge 生成的推理链和判断结果。如果其中包含正确判断,则将该数据加入训练集,否则丢弃这条数据。
(ii) 在本次迭代构建的训练集上微调模型
值得注意的是,每次训练迭代中,训练集大小取决于当前模型的质量。预计随着模型能力的提升,能够生成更多正确的判断,训练集大小也会逐步增加,从而构成了一个自学过程。
指令选择
之所以要进行指令选择,是因为生产系统中收集的用户数据可能存在大量噪音,模型响应的主题、多样性、难度和能力都有很大程度的不平衡。
因此,这一步骤的目标是筛选出特定分布的指令子集,用于生成高质量的响应和判断结果。
如图 7 所示,先给出精确的提示让 LLM 对每个输入进行分类,构建数据集时就可以在这些类别中「按需取用」。
响应对构建
经过前两步我们得到了一个精心构建的训练数据池。这一步骤就是要对其中每个输入 xi,生成涉及到两个响应 yiw、yil 的偏好数据,其中前者 yw(winning)的质量预计会优于后者 yl(losing)。
但这一步完全使用合成数据而非依赖人工标注,那么如何保证 yw 和 yl 的响应质量差异?
论文提出了一种比较巧妙的方法,即先让 LLM 根据指令 xi 生成基线响应 yiw;然后指示模型生成一个「嘈杂」版本的指令 xi′=ϕ(xi) 。xi'与 xi 语义高度相关但不完全相同,之后生成对应 xi'的模型高质量响应 yil。
对于同一个指令 xi 而言,yil 的质量预计会低于 yiw。由此,我们构建出了一条完整的训练数据:
ei := xi, yiA, yiB
其中,w=A或w=B是随机分布的,且在最后的训练集构建中保证两种情况出现次数均衡,这对消除 LLM-as-a-Judge 的位置偏见非常重要。
判断标注
对于每条训练数据 ei,LLM-as-a-Judge 模型都会生成N个多样化的评价 :={ji1, …, jiN},然后应用拒绝采样过滤掉中与事实标签不一致的判断结果。实验中,N被设置为 15。
若过滤后为空,该条数据在本次迭代中直接被丢弃。
若不为空,则从正确判决中随机选择一个,构建最终用于微调的训练数据:
(xi, yiA, yiB, ji)
实验中还尝试使用多数投票机制代替单个模型进行 LLM-as-a-Judge 判断,根据之前的研究结论,这可以带来性能改进。
实验及评估
初始模型 M0 从 Llama-3-70B-Instruct 进行初始化,每轮迭代i=1,…T中,使用 Mi-1 生成偏好数据并作为 LLM-as-a-Judge 模型进行判断,然后再次微调 M0 模型(即 Llama-3-70B-Instruct)。
其中,指令微调利用了 fairseq2 库,并使用 vLLM 进行推理。
大量人类编写的指令数据{xi}来自 WildChat 数据集,指令选择步骤中使用 Mixtral 22B×8 进行分类,共筛选出了 20,582 个有挑战性的指令。响应生成步骤同样使用 Mixtral 22B×8 模型。
评估结果
在 RewardBench 上的分数如表 1 所示。与种子模型相比,总分从 75.4 显著提升至 88.7,超过了 GPT-4 和 Gemini 1.5 Pro,甚至也超过了 405B 参数的 Llama 模型,而且好于使用人类标注数据集 HelpSteer2 的 85.6 分。
4 个类别分别来看,Chat Hard 和 Safety 的分数随着每轮迭代都有稳步上升,但 Reasoing 和 Chat 类别较为波动。Chat 类别在训练后的分数甚至低于种子模型,作者推测,这是由于筛选的合成数据过于偏重困难任务。
此外可以发现,在 LLM-as-a-Judge 模型生成判断时使用 32 个样本进行多数投票的确可以提升整体性能。
HelpSteer2 由英伟达和 ScaleAI 合作创建,是一个帮助模型响应变得更加事实正确且连贯的开源数据集。
仓库地址:https://huggingface.co/datasets/nvidia/HelpSteer2
在 MT-Bench 上的评估结果如表 2 所示。虽然分数在第 4 轮迭代出现一些波动,但训练后的分数依旧有小幅度提升,与 GPT-4 相当。
根据在 HelpSteer2 上的评估结果(表3),在合成数据上的训练也提升了模型作为 judge 进行判断时的平均精度和位置一致精度,但似乎最佳结果出现在第 4 轮迭代,多一轮迭代后反而降低了性能。
结论
总体来看,本文提出了一种可扩展的方法,在不使用任何人工标注数据的情况下构建响应偏好对,在此基础上训练的「自学评估模型」相比种子模型有显著的性能提升。
作者提出,该研究还存在一些未讨论的问题和局限:
- 第一轮训练迭代时,直接使用种子模型生成第一批偏好数据,但这背后的假设是 Llama-3-70B-Instruct 已经有生成合理评估的能力;论文并没有验证该假设是否成立
- 只使用了 Llama-3-70B-Instruct 作为种子模型进行实验,没有探究该方法对较小模型的适用性
- 在 LLM-as-a-Judge 的判断中,只研究了成对评估这一种模式;其实模型也可以直接评估单个响应的指令的质量
- 相比只输出分数的奖励模型,生成式的 LLM-as-a-Judge 还需要输出推理链,更长的输出会提升推理成本
作者介绍
Tianlu 是 Meta FAIR 的一名研究科学家,她本科毕业于浙江大学计算机科学专业,博士毕业于弗吉尼亚大学。Tianlu 的研究主要关注机器学习模型中有关公平性、稳健性和问责制的主题,特别是在计算机视觉和自然语言处理系统中。
参考资料: