数据污染,即模型在训练过程中接触到评测基准的测试集数据,导致其在自动评测基准的表现被高估。这一问题在业界尚未得到充分重视。许多大模型的训练数据来源复杂,难以完全避免测试数据以及答案的泄露。
一些模型甚至直接在测试集上进行训练,以获得更高的评估分数。这不仅人为地夸大了模型的性能,也可能误导相关研究的方向。
面对数据污染问题,尽管已有工作提出基于同分布数据困惑度平均差值[1]以及模型输出的log-likelihood分布特征[2]检测大模型数据污染情况的存在性,但这些方法应用场景和实际效果受限,特别是难以检测大模型在SFT阶段的数据泄露问题。
北京大学等发布的最新实验结果表明,这些方法在检测预训练阶段的数据泄露相对有效,但在检测SFT阶段数据泄露的准确率接近随机,亦有同期工作[3]得到了相似的结论。因此,构建不易受数据污染影响的评测方法,对于全面而客观地评估大模型性能十分重要。
论文链接:https://arxiv.org/abs/2402.15043
项目主页 & 开源代码:https://zhuohaoyu.github.io/KIEval/
除了数据污染,当前主流的大模型自动评估方法在全面评估模型的真实能力与泛化性能方面也存在不足。
最为主流的基于静态的数据集的评估方法,往往只需大模型生成对于QA任务或选择题的选项答案,这一点不仅与目前大型语言模型的开放式文本生成的主要用途并不匹配,亦无法考察模型在回答质量等方面的表现。
面对这些挑战,需要一种新的评估范式,能够在排除数据污染影响的同时,全面考察模型在知识理解、推理、生成等方面的真实水平,判断模型是具备对于问题的深入理解,还是仅仅「记住」了测试数据的答案。
目前,KIEval已被ACL 2024主会录用,论文已于arXiv公开,团队已经开源了KIEval的全部代码并提供了复现环境,仅需简单修改被评估模型的配置即可快速运行KIEval的完整流程。
KIEval:动态交互式评估框架
KIEval是一个基于知识的动态交互式评估框架,旨在通过引入多轮对话交互,重点考察模型知识的泛化和应用能力,而非简单的模式匹配或知识记忆。
KIEval的核心理念是通过大模型生成的动态的多轮对话,考察被评估大模型在知识泛化和应用方面的能力。
与传统的静态数据集评估不同,KIEval引入了一个「交互者」大模型,与被评估模型进行多轮对话。在每一轮交互中,「交互者」根据先前的对话历史,动态生成新的、更为深入的问题,引导被评估模型灵活运用其知识,生成连贯、相关的回复。
具体而言,KIEval的评估流程如下:首先,从现有的高质量数据集中选取一个初始问题,作为对话的起点。被评估模型需要根据这个问题生成一个回答。
接下来,「交互者」根据这个回答和问题,生成一个后续问题,进一步探究模型在这个话题上的知识深度。这个过程重复多轮,形成一个连贯的对话。
在对话过程中,作者引入「评估者」大模型,重点关注模型回复的相关性、连贯性、逻辑性等指标,而非仅仅考察其回复是否与参考答案匹配。
这种动态交互的评估方式有几个优势:
首先,它能够有效降低数据污染的影响。由于每一轮的问题都是动态生成的,即使模型在训练时见过了初始问题,它也难以简单地「背诵」后续回复。
其次,多轮对话能够更全面地考察模型在知识运用、逻辑推理、语言生成等方面的综合能力,而非仅仅依赖模式匹配。
此外,KIEval可以方便地扩展到不同的领域和语言,只需要选取相应领域的高质量数据集作为知识源即可。
KIEval揭示洞见与实验分析
通过KIEval框架,作者对大模型的评估有了新的认识。这些认识不仅深化了对现有评估方法的理解,也为未来大模型的评估提供了一些启发。
首先,KIEval的实验结果表明,传统的基准测试往往低估了模型之间的真实性能差距。
在静态数据集上,不同模型的得分差异可能并不明显。但将这些模型置于 KIEval的动态对话场景中时,它们在知识运用、逻辑推理等方面的差距被显著放大。这提醒我们,仅依赖静态数据集的评估可能掩盖了模型的真实水平。
KIEval的实验也揭示了数据污染对大模型理解和泛化能力的影响。作者构造了若干「作弊」模型,将评测数据集的一部分测试样本加入到「作弊」模型的训练集中。
作者发现,这些在训练时接触过测试集的模型,虽然在对应的测试集上取得了很高的分数,但在KIEval的动态对话中却表现平平,并未在「作弊」训练中得到正向提升。
这说明,数据污染可能只是提高了模型对特定答案的记忆,而非真正增强其知识理解和运用的能力。
除此之外,作者亦测试了两种对大模型数据污染检测的算法[1,2],发现其虽然可以一定程度上检测出预训练阶段中引入的数据污染问题,其在检测微调阶段的数据泄露准确率接近随机水平。
相比之下,可以通过观察KIEval分数与静态评估数据集准确率的分数关系,推测数据泄露的存在。
当模型在数据集准确率上表现十分优秀,但在交互过程中无法有效地回答根据数据集题目动态生成的问题时,说明其仅仅掌握了题目的答案而并非具备回答问题所需的知识或能力。
这表明,在大模型评估中,可以从单纯地检测数据泄露的存在性或是单纯考察模型回答固定问题的能力,转向更全面地评估模型知识理解的深度。
为了验证KIEval评估结果的有效性,作者对比KIEval分数以及若干传统评估方法结果,与人类评估结果的对齐程度。
通过对人类评分与主流的多种自动评估方法的相关性分析,可以得出KIEval的评分与人类评分的相关性显著高于其他自动评估方法这一结论。
这表明,KIEval更为贴近人类在多轮对话场景下,针对对话质量的主观判断。
最后,考虑到大模型本身可能具有一定偏向性(例如GPT系列模型可能更倾向于自身的输出),作者对大模型本身偏向性对于评估结果的影响亦进行探究。
得益于KIEval设计中分开了「交互者」和「评估者」这两个角色,只需对于一组相同的被评估模型使用相同的交互者,即可通过贪心解码,确保交互的双方输出保持不变。
针对相同的交互输出,仅需使用不同的评估者对被评估模型的输出进行重复评价,即可得到不同模型针对同一被试模型的评估结果。
实验表明,尽管在样本级别上,这一偏向性确实存在,但在总体评估分数上,不同评估者模型给出的分数具有较强的正相关性,因此大模型的偏向性不易影响总体的结论。
FreeEval:灵活高效可靠的大模型评估工具包
为了高效实现KIEval的动态评估流程,并与其他多种评估方法作出公平的比较,还需要一个高效、灵活的评估工具。
这就是作者开发FreeEval的初衷。FreeEval是一个模块化的大模型评估工具包,旨在为研究者快速高效构建新的评估方法并检验评估结果的有效性提供支持。
KIEval就是基于FreeEval构建的评估方法,充分利用了FreeEval的灵活性和效率,并在详尽的实验基础上证明其可靠性以及评估结果的有效性。
FreeEval的设计理念可以用四个关键词概括:模块化、高效率、可信任。
FreeEval将评估流程解构为「数据集」和「评估步骤」两种类型的自由组合,每个模块都有统一的接口定义。这种设计使得不同模块可以灵活自由组合,研究者可通过FreeEval提供的接口快速实现新的评估步骤或是通过对已有数据集和评估步骤的自由组合,轻松定制自己的评估流程。
这样的模块化设计给予了FreeEval极强的可扩展性。FreeEval也提供了完善的开发文档和示例代码,帮助研究者快速上手开发。
对于评估方法的研发过程,提高评估效率是降低成本的关键。FreeEval在效率上做了深度优化,支持开源模型的高效推理和闭源模型的快速调用。
对于开源模型,FreeEval支持在多节点、多GPU上并行评估以及负载均衡,可以充分利用计算资源。
对于闭源模型,FreeEval支持快速的并发调用。同时,FreeEval还实现了缓存机制,避免了不必要的重复计算或接口调用。在完全相同的机器环境下,FreeEval的性能较先前工作具有较大提升。
FreeEval还包含了一系列元评估(Meta-evaluation)工具作为「评估步骤」,来确保评估的可信性。它提供了数据污染检测、人类评估标注、评估结果可视化、评估结果相关性分析等模块,帮助研究者判断评估结果的有效性、可靠性,识别和消除评估中的潜在风险。
FreeEval还支持全流程的日志记录和结果复现,对于全过程中产生的模型请求和推理结果、推理参数等均会保存,保证了评估的透明性和可复现性。
目前,FreeEval已经开源并将持续完善:https://github.com/WisdomShell/FreeEval
总结与展望
在当前人工智能和大语言模型快速发展的背景下,评估模型的真实能力和泛化性能变得越来越重要。KIEval和FreeEval的提出,正是为了应对现有评估方法在数据污染和评估全面性方面的挑战,提供一种更加动态、灵活和可信的评估方式。
KIEval是一种新的大模型评估范式,核心理念是通过知识驱动的多轮对话和交互评估,降低数据污染的影响,并深入考察模型在知识理解、逻辑推理和语言生成等方面的综合能力。
实验结果表明,KIEval不仅揭示了模型在静态数据集上表现不显著的性能差距,还可观察出数据污染对模型理解和泛化能力的影响。相比传统评估方法,KIEval的评估结果与人类评分的相关性更高,显示出更好的评估有效性和可靠性。
FreeEval则提供了一个高效、灵活和可信任的工具包,用于构建和验证新的评估方法。其模块化设计、高效的计算优化和全面的评估工具,使研究者能够快速构建和定制评估流程,并确保评估结果的有效性和可靠性。
FreeEval的性能优化和完善的日志记录机制,为大规模模型评估提供了强有力的支持。
通过KIEval和FreeEval的结合,可以更加全面地评估大模型的真实能力,并为未来的模型改进和研究提供重要的见解。KIEval通过多轮对话评估模型的综合能力,揭示了传统静态评估方法的不足;而FreeEval则通过其高效和灵活的设计,简化了评估流程,提升了评估效率。