大语言模型的时间推理能力怎么样?
我们先来看一道幼儿园的题目:
给出切尔西历年的主教练名单,向模型提问:Pochettino之前的教练是谁?
此时,LLM能够给出正确的回答(Lampard),——貌似有点实力?
但是,如果我们把人名来个变量代换(E1~E5),其他内容保持不变,LLM瞬间就降智了:
事实上,在第一次的题干里,我们并没有说明Lampard教练叫什么名字,而答案里直接就出现了Frank。
所以LLM有可能只是碰到了原题?
于是小编用这两道题分别测试了Gemini 1.0 pro、Claude 3 Sonnet、Llama 3和ChatGPT。
从结果来看,上面被公开处刑的应该是ChatGPT。
而Gemini 1.0 pro和Claude 3 Sonnet甚至还不如ChatGPT,两题全错(虽然也给出了全名),估计是刷题的时候懈怠了。
相比之下,Llama 3的回答则呈现出智力上的优越:
在如此简单的问题上,不同的LLM却「各显神通」,看来是时候搞个权威的考核指导一下了。
近日,来自谷歌DeepMind的研究人员,推出了专门用于评估大语言模型时间推理能力的基准测试——Test of Time(ToT)。
论文地址:https://arxiv.org/pdf/2406.09170
值得注意的是,ToT是基准测试的名字,不是颜文字表情
ToT由两门考试组成:
第一关:ToT-semantic,考验LLM在进行时间推理时,对于语义和逻辑的理解。
第二关:ToT-arithmetic,考验LLM进行时间相关算术的能力。
ToT-semantic中的问题是合成的,保证LLM在考试中不会遇见原题;
而ToT-arithmetic采取众包的形式,保证了问题的深度和广度。
基准测试和数据集:https://huggingface.co/datasets/baharef/ToT
ToT的数据集分为三个子集:ToT-semantic包含1850个示例,ToT-arithmetic包含2800个示例,另外还有一个ToT-semantic-large,包含46480个示例,能够在更大的尺度上衡量时间理解的语义和逻辑。
ToT的使用方法很简单,先安装Huggingface数据集,然后两行代码导入即可:
from datasets import load_dataset
dataset = load_dataset("baharef/ToT")
数据格式
ToT-semantic和ToT-semantic-large数据集包含以下字段:
- question:包含问题的文本。
- graph_gen_algorithm:图生成器算法的名称。
- question_type:对应于数据集中的7种问题类型之一。
- sorting_type:对应用于事实的排序类型。
- prompt:包含用于评估LLM任务的完整提示文本。
- label: 问题的标准答案。
而ToT-arithmetic数据集包含question、question_type和label三个字段。
Test of Time
LLM的时间推理最近获得了极大的关注,许多研究集中在增强LLM对时间概念的理解上,通过预训练和微调策略来提高他们的时间推理能力。
而相应的基准测试则大多以知识图谱为中心:比如TempTabQA提供了基于维基百科信息框的众包问题,而TGQA是一个源自YAGO11k知识图谱的数据集。
为防止数据泄露,TGQA将每个实体名称更改为GPT3.5生成的名称,保证名称与实体类型一致,并且不会以其他方式出现在YAGO11k中。
但这种策略有两个问题:首先是会引入虚假的实体名称相关性,其次可能会产生事实不正确或违反常识的声明。
于是,本文选择了合成数据的方式来建立LLM的评估基准。
同时,研究人员将时间推理能力拆分成两个不同的维度:理解时间的语义和逻辑,以及执行准确的时间算术。
两个维度分别建立任务,独立进行评估,能够更好地展现LLM的优势和劣势。
ToT-semantic
ToT-semantic能够分离和分析一个LLM的核心推理能力,同时避免依赖预先存在的知识。
ToT-semantic的创建过程如下图所示:
第 1 步:生成随机结构,然后使用这些结构来创建时间问题。为了确保随机结构的多样化,这里参考图结构的生成。
研究人员采用几种现有的算法来生成具有不同属性的图结构,包括ER图、无标度网络(SFN)、遵循BA模型和随机块模型(SBM)的图,以及星形图。
每种图生成算法都表现出不同的属性,对应于不同的应用场景。例如,ER图通常是稀疏的,平均度数较低,而BA图是密集的,表现出幂律分布。
建立出世的图结构之后,我们就为边缘分配关系。对于每个图,我们首先确定要分配给边的多个关系类型,并将这些关系类型中的每个类型分配给一对一、一对多、多对一和多对多之一。
第 2 步:问题生成。这里考虑了以下八种类型的问题,常见于日常生活中,以及各种基准测试中。
EventAtTimeT:询问在T时刻哪个实体与实体E有某种关系R
EventAtWhatTime:询问两个实体E1和E2之间的关系R在什么时间开始/结束
NumberOfEventsInTimeInterval:询问有多少实体在T1到T2之间与实体E有关系R
BeforeAfter:询问在E1之前/之后哪个实体与E2有关系R
EventAtTimeOfAnotherEvent:询问当E1与E2有关系R1时,哪个实体与E3有关系R2
FirstLast:询问哪个实体是第一个与E建立关系R的实体
RelationDuration:询问E1和E2之间第k次建立关系R时,持续了多长时间
Timeline:要求按时间顺序对与E有关系R的实体进行排序
ToT-Arithmetic
ToT-Arithmetic将任务从合成数据转移到了现实世界。
创建ToT-Arithmetic数据集的步骤如下图所示:
下面分别介绍每个步骤的工作:
种子集:检查现有基准中出现的时间算术问题类型,并通过网络搜索,来收集一小部分初始问题。
扩展:向15名注释者展示种子集,注释者负责提出不在种子集中的新问题,或者提供与其他场景或问题模板相对应的问题。
过滤器:人工浏览所有问题,并过滤那些专注于极端情况、或者需要广泛知识的问题。
分类:将合格的问题分为七类,如下表所示:
AddSubtract:从日期或时间中添加或减去一个数字
Compare:按时间顺序比较以不同格式提供的日期/时间
Duration:计算两个日期/时间之间的差值
Schedule:在多块时间内找到相互空闲点
Timezone:涉及处理不同的时区
Trick:有一点脑筋急转弯
MultiOp:涉及需要上述多个操作的问题
函数化:将问题写成函数,以便为每个问题抽取不同的值并根据这些值进行求解。
抽样:从函数中抽取问题和答案,保证样本数量与属于每个类别的不同问题的数量成正比。
具体来说,AddSubtract采样了350个,Compare采样了350个,Duration采样了200个,Schedule采样了250个,Timezone采样了100个,Trick采样了250个,MultiOp采样了350个——构成了总共包含1850个问题的数据集。
实验分析
实验评估了三个前沿的大语言模型,他们是:Claude-3-Sonnet、GPT-4和Gemini 1.5 Pro。
另外,由于ToT-Semantic任务需要较长的上下文,所以使用GPT4-Turbo代为出战。
通过实验,我们可以探讨以下几个问题:
1:时间结构对LLM性能有什么影响?
2:什么样的时间问题更容易/更难回答?
3:模型提示中事实的顺序有多重要,对事实进行排序的最佳方式是什么?
4:前沿模型在时间推理的两个方面(语义和算术)的表现如何?
如下表所示,时间关系的图结构会显著影响LLM性能。
比如GPT-4的准确率因图的类型而异,从完整图的40.25%到AWE图的92%。
以前的研究基本上都盯着知识图谱,而这个实验结果表明,图的结构很重要。
那么,不同的图大小是否会影响结果呢?
如下图所示,增加ToT-Semantic数据集中的边或节点数量会导致LLM性能下降。
下面的实验研究了不同时间任务(类型)对LLM推理能力的影响。这里通过评估模型在各种任务中的性能来量化这种影响
与需要整合多个事实的任务相比,LLM在需要检索单个事实的任务上始终表现出卓越的性能。
单事实问题主要依赖于相关信息的识别和提取,而多事实问题则要求对检索到的信息进行更深入的理解和综合。
另外,即使在零阶推理任务中,LLM也表现出不同程度的性能。例如,EventAtTimeT和EventAtWhatTime在结构上相似,但LLM往往擅长后者。
原因可能是EventAtTimeT需要简单的时间算术运算来识别时间戳T落在时间间隔 [T1,T2]内,而EventAtWhatTime不需要任何时间算术运算。