今天是2023年12月2日,星期六,北京,天气晴,今天没刮风,所有感觉暖和些,见了两个朋友,参加了个活动做分享,很充实。
本文主要讲三个事情,我们在前面的文章《ChatGPT一周年之际:谈谈自己的一些大模型研发思考及中文开源预训数据集》中有说到,其中评估是一个很细节的事情。
最近的anthropic的发现,也引起发了自己在实际工作中的一些思考,所以我们先谈谈使用选择题方式进行模型评估是否要打问号?这个话题,这是第一件事。
最近的工作《Trends in Integration of Knowledge and Large Language Models: A Survey and Taxonomy of Methods, Benchmarks, and Applications 》,地址:https://arxiv.org/abs/2311.05876,对知识融合大模型(RAG)这一话题做了详细的综述,读下来很有启发,所以我们会讲讲其中所提到的RAG上下文冲突问题以及一些常见的评测基准,分别对应第二、第三件事儿。
供大家一起思考。
一、使用选择题方式进行模型评估是否要打问号?
最近文章《Challenges in evaluating AI systems》,地址https://www.anthropic.com/index/evaluating-ai-systems中,提到两个一个很明显的问题,就是使用选择题进行模型评估的随机性。
以MMLU为例,对评估进行简单的格式更改,例如将选项从(A)更改为(1)或将括号从(A)更改为[A],或在选项和答案之间添加额外的空间,可能会导致评估准确性改变约5%。
而在我们的评估实验中发现,在小参数模型比如2B或者7B模型,在只吞下几十Btoken的情况下,MMLU、CEVAL、CMMLU等同类型评测(尤其是标准化成选择题形式)之后,回答近似于随机,要么全选A,要么全选B,然后在进行模型性能比对后,发现无法得到很置信的结果。比如,四选一的问题,得分的期望是25分【假设测试集ABCD的选项分布是一致的】,那么得分在30分以下的,可以近乎考虑是波动。
初步猜想,有几个思考,为什么会出现这样的问题:
1、做题,本质上是一个生成任务,这个生成任务和下游真实场景的形式是不一样的,这就直接导致这种评测方式是有偏的。为什么转换成选择题,是为了更快速、更简单地进行评测。
2、CEVAL等选择题,对于pretrain模型,由于指令不遵循,所以需要用ICL,做fewshot,但这个ICL中答案可能会造成后面问题答案造成干扰,比如会照抄前面出现的选项。
3、选择题方式,本身存在着一个映射问题,前文会说A.答案nB.答案C.答案,然后后续,再让其输出答案,如果模型并不足够聪明,直接让它输出ABCD,其无法做到准确映射时候,也就是,它并不知道A是啥,B是什么的时候,也就会瞎答。
4、所谓的涌现现象,本质上并不存在,这跟评测方式有很大的问题,只是评测任务不敏感,所有才会得出,在训练token数达到某B的量级之后,才能有指标的大幅度提升。而在小参数量的模型而言,很有可能,其前期知识模仿能力,并没有太强的理解能力,所以在选择题这种题型上,也会产生随机现象。
因此,这就涉及到怎么去缓解这个问题,比如说,直接用生成的方式去做,这样可以解决映射问题,使用随机多样化的ICL,可以解决问题2,反复尝试并找到更为敏感的数据集,这样可以解决问题4。
当然,这些讨论是针对小参量模型+小训练数据上实验所能得到的一些思考【依赖于实验环境】。
二、也看RAG中的知识冲突问题Knowledge Conflict
此外,这个工作还提到一个很现实的发现,就是RAG知识冲突,即我们在召回文本时候可以预见的问题,如下图5所示包括两种知识冲突。
内部冲突(internal conflict):大型语言模型中的知识与检索到的文档中的知识不一致,这类方法面临着一个挑战,即LLM可能会坚持记忆事实而忽略所提供的语境。
外部冲突(External Conflict):检索到的多个文档之间不一致。这种情况常见于一些段落被更新为新信息,而另一些段落仍然过时的情况。当段落被逆向编辑为包含虚假信息时,或者当段落由对答案有不同意见的多人撰写时,也会发生此类冲突。
研究发现,当不同段落提出多个相互冲突的答案时,模型更倾向于选择与其参数知识相匹配的答案。
三、再看RAG评估常用基准Benchmark
最近在关注大模型评估,因此,我们重点来看看RAG评估基准方面的数据集。
知识敏感型任务是评估检索增强型大模型的理想选择,因为解决知识敏感型任务需要获取大量信息,该工作可以按任务类型将其分为以下几类。
1、单跳问答Single-hop QA
单跳问题的结构相对简单,可以使用段落中包含的信息来回答。常用的数据集包括自然问题(NQ)、琐事问答(TriviaQA)和流行问答(PopQA)。
其中:
NaturalQuestions由谷歌搜索引擎汇总的问题组成,答案由人类专家标注。
地址:https://direct.mit.edu/tacl/article/doi/10.1162/tacl_a_00276/43518/Natural-Questions-A-Benchmark-for-Question
TriviaQA由爱好者撰写的问题组成,证据文档则是从维基百科和网络上回溯收集而来。
地址:https://doi.org/10.18653/v1/P17-1147
PopQA是一个以实体为中心的大规模质量保证数据集,在构建时更多地从尾部进行采样,并且有明显更多的低流行度实体。
地址:https://aclanthology.org/2023.acl-long.546/
2、多跳问答Multi-hop QA
多跳问题解答是质量保证的一个具有挑战性的子领域,它涉及到无法通过单一来源或段落的直接答案来解决的问题。为了回答一个问题,模型需要执行多个再分析步骤。有几个常用的数据集,包括Hot-PotQA、2WikiMultiHopQA、MuSiQue和Bam-boogle。
其中:
HotPotQA是通过明确地组成问题来收集的,要求重新获取多个支持性上下文文档。
地址:https://aclanthology.org/2020.coling-main.580
2WikiMultihopQA也是通过组合来构建的,但他们使用的是一套有限的手写组合规则。
MuSiQue是通过精心挑选和组合单跳问题,以自下而上的方式构建的。与HotPotQA和2WikiMultihopQA相比,MuSiQue有六种组成结构,更具挑战性,不易作弊。
地址:https://arxiv.org/abs/2108.00573
Bamboogle由作者撰写的2跳问题,所有问题都非常困难,无法通过流行的互联网搜索引擎进行搜索,但可以在维基百科中找到支持证据。
地址:https://arxiv.org/abs/2210.03350
2、事实核查Fact Verification
事实验证,也称事实检查,是一项具有挑战性的任务,需要从纯文本中检索相关证据,并使用证据来验证给定的说法。有几个常用的数据集,包括Fever、Feverous和FoolMeTwice(FM2)。
其中:
Fever是一个用于事实验证的大型数据集,需要检索句子级证据来支持或反驳某个主张。除了非结构化文本证据外,Feverous还将维基百科表格视为一种证据形式。
地址:https://aclanthology.org/N18-1074/
Feverous的证据检索考虑的是维基百科文章的全部内容,因此证据可以在文章的任何部分找到,参考文献部分除外。Fever-ous是均衡的,几乎同等数量的实例都包含文本、表格或两者作为证据。
地址:https://aclanthology.org/2021.fever-1.1/
FoolMeTwice(是通过一个有趣的多人游戏收集的,该游戏鼓励对抗性考试,与其他数据集相比,大大降低了使用捷径解决问题的实例数量。
地址:https://aclanthology.org/2021.naacl-main.32/
2、复杂推理Complex Reasoning
复杂推理包括不同类型的推理,如常识推理、表格推理等。常识推理是人类理解的基础,它植根于日常生活和社会实践中积累的基础知识和生活经验,概括了关于世界如何运作的实用知识。常识推理任务评估模型在物理世界中的推理能力。StrategyQA、Com-monsenseQA和CommonsenseQA2.0是广泛使用的常识推理数据集。
StrategyQA侧重于开放领域的问题,其中所需的推理步骤隐含在问题中,应使用策略来推断。
地址:https://arxiv.org/abs/2101.02235
CommonsenseQA和CommonsenseQA2.0旨在探索大型语言模型的常识理解能力,其中包括有关日常常识的是/否问题(或断言)。
CommonsenseQA地址:https://aclanthology.org/N19-1421/
CommonsenseQA2.0地址:https://arxiv.org/abs/2201.05320
CSQA是一种长式问答,旨在为寻求复杂信息的问题生成全面的答案。
地址:https://cdn.aaai.org/ojs/11332/11332-13-14860-1-2-20201228.pdf
TempQuestions旨在研究时间推理。该数据集包含1,271个时态问题,分为四类:显性时态、隐性时态、时态答案和顺序约束。
地址:https://arxiv.org/abs/2208.06501
INFOTABS包含23738个基于从维基百科信息框中提取的表格形式前提的人工撰写的文本假设。
地址:https://aclanthology.org/2020.acl-main.210/
总结
本文主要介绍了三个事情,主要还是评估为导向,包括评测数据集、评测方式等等,都有很多值得关注的地方,文中也给到相关工作的链接,感兴趣的可以去跟进,会有更多收获。
参考文献
1、https://arxiv.org/abs/2311.05876
2、https://www.anthropic.com/index/evaluating-ai-systems
关于我们
老刘,刘焕勇,NLP开源爱好者与践行者,主页:https://liuhuanyong.github.io。
老刘说NLP,将定期发布语言资源、工程实践、技术总结等内容,欢迎关注。
对于想加入更优质的知识图谱、事件图谱、大模型AIGC实践、相关分享的,可关注公众号,在后台菜单栏中点击会员社区->会员入群加入。