ICLR 2024 Spotlight | DyVal: 首个大语言模型的动态测试评测协议

创业   科技   2024-02-21 14:38   沙特阿拉伯  

大语言模型(LLMs)通常在海量数据上训练过,这造成了潜在的测试数据污染问题[1, 2, 3],即公开的测试数据如MMLU等会不可避免地被加入训练集或有针对性地overfit测试集的问题。如何保证测试数据能够合理且正确的评估大语言模型这一问题引起了学术界的广泛关注。本文提出了DyVal [1] (Dynamic Evaluation,动态评测协议),利用有向无环图(Directed Acyclic Graphs, DAGs)动态生成测试数据,减少了测试数据被模型记忆的可能。此外,DyVal生成的评测数据还可以作为语言模型的数据增强,如,在DyVal上生成的数据微调Llama2-7b可以有效的提升其在众多reasoning数据集上的表现(GSM8K、FOLIO等)。动态评测是大语言模型评测的新方向,我们期待越来越多的工作出现在这一领域,帮助人们更好地理解模型的真实能力。

  • 论文标题:DyVal: Dynamic Evaluation of Large Language Models for Reasoning Tasks

  • 论文链接:https://arxiv.org/abs/2309.17167https://https://arxiv.org/abs/2309.171677

  • 代码链接:https://github.com/microsoft/promptbenchhttps://https://github.com/microsoft/promptbenchomptbench

  • 文章第一作者是微软亚洲研究院实习生朱凯捷和佐治亚理工博士生陈家傲,通讯作者是微软亚洲研究院高级研究员王晋东。其他作者来自斯坦福大学、杜克大学和微软亚洲研究院。

背景介绍

大语言模型在各种任务中取得了前所未有的表现,引发了人们对其成为人工通用智能先驱的可能性的积极猜测,因此有必要对其进行全面而细致的评估。尽管人工智能测评benchmark不断涌现,但其面临着两个根本性的挑战。

  1. 数据污染。许多benchmark数据来源于互联网,这可能会导致与训练模型的大量语料重叠,从而引发 "泛化与记忆 "的争论:模型的出色表现是源于其真正的能力还是仅仅是对训练数据的记忆?[1,2,3,4]

  2. 静态数据集和固定复杂度。随着模型的飞速发展,现有的静态数据集通常无法与模型不断发展的能力相匹配。由于静态benchmark无法自动、动态地提高复杂性级别,因此其不能用于准确地选择、比较和提升大语言模型。有的动态benchmark,如DynaBench和DynaBoard依赖于昂贵的众包来持续收集评估数据。

动态评测协议

动态评测是对抗数据污染和静态复杂度的有效武器。本文我们将介绍一种新颖、通用且灵活的评估协议--DyVal,该协议的核心是动态地即时地生成评估样本,而不是收集一组固定的数据。DyVal由三个部分组成:1) 生成算法:用于生成具有多样性的测试样本;2) 约束 用于调节测试样本的复杂性和约束其有效性;3) 描述函数 用于将生成的测试样本翻译成自然语言。基于这个框架,我们提出了一种基于图的方法(graph-informed dynamic evaluation),使用有向无环图为推理任务动态生成测试数据。具体而言,受编译原理中的解析树(parsing tree)启发,我们采用有向无环图(DAG)将复杂的任务分解为单元问题,每个单元都是图中的一个节点。图生成的可扩展性和随机性可以有效地调节生成的测试样本复杂程度。此外,图的层次属性也适合用于多步骤推理任务,如算术和逻辑。图1展示了一个算数题的例子。其中,叶节点表示数学题中的前置条件(premises),例如,节点可以表示为小明有3元钱。根节点表示最终答案,非叶节点则表示“推理步骤”,例如节点可以表示为小红的钱是小明钱数的平方倍。

DyVal

动态测评协议的一般描述语言

我们首先介绍动态测评协议的一般描述语言。如图2所示,给定一个任务,动态评估算法的公式为=(())

  1. 是测试样本生成算法,包含随机性以保证每个样本的唯一性。随机性在不同的任务中可能会有所不同,例如数学问题中,可以使每个节点中的数字以及计算符号不同。

  2. ={,} 表示  上的约束,其中  是任务  的合法性约束,例如在数学任务中,需要保证除数不为0等等。而是生成过程的复杂性约束,例如,生成DAG的节点个数、边个数等等。

  3. ={,}是将  生成的原始测试样本转化为自然语言描述的描述函数。 阐明了由  生成的样本的特征和属性。 是对任务  的描述,如任务目标等。

总的来说,使用上述描述语言,一个评估样本可以表示为 eval=((,))) 。 首先生成一个样本,该样本遵守复杂度约束和任务约束。然后通过描述函数  转换为自然语言格式,最后通过任务描述函数 添加对任务的描述。动态评测协议(1)通过的动态生成避免了数据污染,(2)通过保证了动态数据集和可控的复杂性。

推理任务的基于图的动态测试

在本节中,我们将按照通用评估描述语言,从图结构中汲取灵感,为推理任务实现动态评测。鉴于推理任务固有的多步骤推理性质,它们本质上表现出结构特征,这使得有向无环图(DAG)成为这些任务建模的自然选择。有向无环图还可以通过调节内部结构来动态生成样本,并通过调整结构复杂度来精细控制问题难度。基于DAG,我们构建了3大类,共7种不同类型的推理问题。表1给出了种问题的总结。

DAG 生成算法

我们将 DAG 分成树状 DAG(T-DAG)和一般 DAG(G-DAG),如图3所示。T-DAG 本身具有层次性,因此适合用于从一组初始前提到最终推论的任务,如算术问题和逻辑推理任务。T-DAG 中的每个节点代表一个基础子问题。这些子问题通过节点之间的链接串联起来,最终形成一个复杂问题。而 G-DAG 擅长映射错综复杂的关系,因此对于涉及复杂依赖关系的算法问题,G-DAG 是理想的选择。

DAG 生成过程中的随机性: T-DAG 的随机性来自分配给节点的操作和叶节点的初始值。例如,在算术运算中,运算可以是+,,,/,而叶节点可以分配任意随机数。对于 G-DAG 来说,每个节点都被赋予一个随机值(如果某些问题需要的话)。而每个节点的子节点数都是随机确定的,最大子节点数取决于输入。并且,我们通过随机选择目标子节点来建立每个节点之间的连接。

DAG生成的约束条件 

任务约束 

任务约束因任务而异。以节点创建为例:1) 节点值应遵守怎样的分布?2) 允许哪些操作集?3) 如何根据节点的子节点值计算节点值?在算术任务中, 包括确保除数不为零、避免溢出等。这里我们集中讨论两个一般任务约束:

  1. 叶子节点的值域:指定叶节点值的允许范围或分布。例如,在逻辑推理任务中,前提(叶节点)要么分配为 True ,要么分配为 False 。

  2. 操作算符 :DAG 中非叶节点所允许的操作符。操作符号约束通常用于 T-DAG。例如,在算术任务中,允许的操作集可以定义为基本算术操作 {+,,×,/}

复杂度约束 

我们研究了将4 种改变 DAG 的复杂度的方法。

  1. 改变T-DAGs的深度和宽度:控制树复杂度的自然方法。

  2. 改变 G-DAG 的节点数和链接数:我们控制 G-DAG 中节点的总数量,此外,每个节点的连接数都是从预定范围内随机选择的,例如 [1,5]

  3. 添加随机连接:对于每个节点,我们可以引入一个额外的链接到另一个随机节点。

  4. 嵌入随机(但无关)的描述:在原 DAG 的描述中添加随机描述。

描述函数 

在构建了具有一定约束条件的 DAG 之后,我们需要使用描述函数  将其转换为可理解的自然语言描述。

DAG 描述函数 

我们逐个节点地描述 DAG,然后将节点描述组成序列。每个节点在自然语言中的解释取决于其位置和任务。对于代表主要输入或前提的叶节点,可将其描述为 [名称]的值是[值]}。例如,表示数字 5 的节点可以表示为 节点 A 的值是 5。对于 T-DAG 来说,中间节点通常表示对其子节点执行的操作,这种描述可以表述为:通过对[子节点名称]的值进行[操作]得出[名称]的值。对于 G-DAG,中间节点通常描述为节点之间的连接:[名称]指向[子名称]。需要注意的是,自然语言描述可以根据自定义需求进行替换。同时也可以加对抗噪声使问题更难[5,6,7]。此外,复杂性还受节点描述顺序的影响。我们设计了三种顺序:拓扑顺序(从叶子结点开始对DAG进行描述)、反向拓扑顺序和随机顺序(随机打乱描述)。

任务描述函数 

 的构造在很大程度上取决于任务的上下文。下面我们将分别介绍 T-DAG 和 G-DAG 中具有代表性的算术任务和可达性任务的任务描述函数。介其余 5 个任务的细节和示例请参见论文。

  1. 算术题:四则运算。给定一个 T-DAG,DAG 描述函数已经提供了前提(叶节点)和推理的中间步骤(非叶节点)。接下来,我们选择根节点作为需要求解的变量,我们将问题 [Root]的值是多少?附加到描述中。

  2. 算法题:可达性。可达性任务旨在模拟图中两个节点是否相连。对于 G-DAG 来说,DAG 描述函数已经证明了节点之间的连接。可达性任务的任务描述是:[节点i]能否从[节点j]出发到达?,其中节点i和节点j可以从 G-DAG 中的节点中随机选择。

实验结果

图4显示了所有任务在三种生成顺序和三种随机种子下的平均结果(完整结果见论文附录)。可见,在7种任务上,GPT-4表现最好,GPT-3.5紧随其后。Llama2的表现不佳,Vicuna-v1.3的表现偶尔会超过Llama2-13b-chat。

我们的结果表明了:

  1. LLMs在现有静态benchmarks和DyVal之间的性能大不一致。 例如,phi-1.5、Xwin和Wizard模型,在现有的基准测试中取得了优异的成绩,但是它们在我们的评估中表现不佳,这凸显了仅在静态基准测试中评估llms的潜在问题,以及可能存在的低训练数据质量或数据污染问题。

  2. 难以应付复杂数据集: 从 D1 到 D4,模型性能急剧下降,这凸显了大语言模型在复杂性不断增加的情况下所面临的困难。例如,随着复杂度的增加,GPT4算术任务的性能下降了23%。值得注意的是,对于所有模型而已,归纳逻辑(从结论推断前提)的表现比演绎逻辑(从前提推导结论)的表现要低得多,这一点也证实了大模型推断"A -> B "中比 "B -> A "要好 [3]。此外,GPT-4 和 GPT=3.5 之间的表现差异虽然在像 D1 这样的简单任务中微乎其微,但在复杂任务中却变得很突出。这表明了我们需要更复杂多任务来有效和评估模型的能力。

Case-study

为了全面了解大模型的行为,我们仔细研究了其错误案例。特别的,我们对算术、演绎逻辑、归纳逻辑和可达性任务数据集中GPT-4的错题进行了随机采样,并总结了常见的错误模式,如图5所示。更详细的错误实例请参见论文的附录部分。

  1. 部分计算错误:GPT-4偶尔会在中间步骤出错,但其余步骤都是正确的。要注意这些错误可能只是很简单的计算,例如 20/7=37.28。这与\citep{dziri2023faith}注意到LLMs有时会给出部分正确的多位数乘法结果是一致的。

  2. 不正确的推理和自我矛盾:在推理任务中,我们可能会误解规则。例如,给定一个归纳逻辑 并给定  为假,那么我们很容易知道,前提  和  一定为假。然而,GPT-4错误地归纳出A或B可能为假。此外,我们还发现GPT-4在类似推理步骤中,给出了两种不同的推理思路。

  3. 未经推理证实的回应:在推理任务和算法任务中,GPT-4经常在没有任何推论或理由的情况下回答问题,表明它可能是在死记硬背或理解得很肤浅。

  4. 指令疏忽:偶尔情况下,GPT-4能得出正确的计算结果,但在遵守提示中的输出指令时,例如,数学计算的相对精度要求时,就会出现磕磕绊绊的情况。

利用DyVal生成的数据微调

在本节中,我们展示如何进一步利用DyVal生成的数据对LLMs进行微调,以提高它们解决复杂任务的能力。具体来说,我们生成了7种任务的训练数据对Llama2进行微调。微调和训练样本生成的细节见论文附录。我们在 现有流行benchmarks上对模型进行了测试,用GSM8K 和 SVAMP 以评估数学能力、 FOLIO 和 RACO 用于评估逻辑推理能力,DP 和 LCS 用于评估算法能力。其结果如图6所示。

结果表明,微调模型的性能在所有任务中都有所提高。这表明,DyVal不仅能有效地作为基准,还能通过对其生成的样本进行微调,提高LLMs在现有benchmarks上的性能。这种改进可能源于各种benchmarks与 DyVal 生成的样本之间的相似性。例如,GSM8K 样本可以解释为深度为 2 或 3 的计算树。有趣的是,即使在我们的微调中没有动态编程任务,微调后的模型在 DP 和 LCS 数据集上的性能也有所提高。这凸显了大语言模型的潜在学习能力和DyVal生成的训练样本的有效性。我们进一步利用了OpenAI提公的微调接口对GPT-3.5进行了微调,并检验了它在一般自然语言理解方面的能力。结果表明,在我们生成的数据集上进行微调并不一定会损害自然语言理解能力,这一点在论文附录中进行了全面讨论。

总结与展望

我们提出了一种动态评估协议--DyVal,以减轻现有benchmarks可能存在的数据污染和静态复杂性问题。我们为推理任务设计了基于图的DyVal。该方法的优势在于它能动态生成样本,并能灵活调整难度。在使用我们的基准进行的实验中,我们观察到了几个有趣的发现。更重要的是,该方法生成的样本不仅可以作为评估样本,还可以作为微调数据,以提高它们在现有benchmarks上的性能。我们期待未来在这一方向有更多的成果出现。

[1] Zhu, Kaijie, et al. "Dyval: Graph-informed dynamic evaluation of large language models." ICLR 2024.

[2] Zečević, Matej, et al. "Causal parrots: Large language models may talk causality but are not causal." arXiv preprint arXiv:2308.13067 (2023).

[3] Berglund, Lukas, et al. "The Reversal Curse: LLMs trained on" A is B" fail to learn" B is A"." arXiv preprint arXiv:2309.12288 (2023).

[4] Magar, Inbal, and Roy Schwartz. "Data contamination: From memorization to exploitation." arXiv preprint arXiv:2203.08242 (2022).

[5] Zhu, Kaijie, et al. "PromptBench: Towards Evaluating the Robustness of Large Language Models on Adversarial Prompts." arXiv preprint arXiv:2306.04528 (2023).

[6] Li, Jinfeng, et al. "Textbugger: Generating adversarial text against real-world applications." arXiv preprint arXiv:1812.05271 (2018).

[7] Li, Linyang, et al. "Bert-attack: Adversarial attack against bert using bert." arXiv preprint arXiv:2004.09984 (2020).

[8] Dziri, Nouha, et al. "Faith and fate: Limits of transformers on compositionality." Advances in Neural Information Processing Systems 36 (2024).


王晋东不在家
分享科研与研究生活的点点滴滴,包括但不限于:机器学习、迁移学习、元学习等,以及研究生、博士生生活的经验教训。
 最新文章