NumSeqBench:通过数字序列对语言模型中的归纳推理进行基准测试
[注:我是在10个月前写的这篇文章。那时,我们还没有推理模型。我曾计划完善实验的严谨性,并将其润色成预印本。但我没有时间。我希望发布的基准测试对于非推理模型和推理模型仍然具有相关性。]
Ken Tsui
1. 引言
归纳推理对人类认知至关重要。它是一种逻辑思维形式,我们从中从特定观察中得出一般性结论。它的美妙之处在于它使我们能够从经验中学习,而无需被告知原理,并将该知识应用于新情况。
大型语言模型(LLM)在归纳推理方面表现如何?少样本提示发现,通过增加样本数量,任务性能会提高。这是LLM可以进行归纳推理的早期迹象。
我们引入了一个名为 NumSeqBench 的基准数据集,以评估 LLM 在数字序列中进行归纳推理的能力。“找到数字序列中的下一个项”在大多数认知测试中都很常见。然而,我们认为它本身存在两个局限性:
- 它在网络上并不少见,加剧了数据污染的风险
- 找到下一个项与下一个词元预测的预训练目标接近,因此可能表现良好。然而,短期模式识别不一定意味着模型理解序列生成函数。

为了解决这些局限性,我们提出了两个额外的测试——“下一个第 n 项(nth)”和“前一个项(previous)”任务,以评估 LLM 进行长程推理和逆向推理的能力。如果模型能够通过归纳推断出序列生成函数,那么它就可以推断出任何任意位置(下一个、第 n 个和前一个)的项。此外,它还可以判断这种生成函数是否存在。为了测试这一点,我们增加了一个新颖的测试——包含“单调随机”序列,以评估 LLM 是否能确定它是随机序列并拒绝回答一个数字。
2. 数据集描述
共有 2,121 个独特问题。以下是其细分。



在参数化不同函数时,我们通过限制其范围来避免答案值过大。详见代码。
下面展示了答案分布在合理范围内。
百分位数 | 值 |
---|---|
10 | 10 |
25 | 17 |
50 | 38 |
75 | 729 |
90 | 49,512 |
95 | 2,032,340 |
我们使用提示模板
Consider the following sequence: {X1, X2, X3, X4, X5}
[What is the next number in this sequence?|What is the {nth}th number in this sequence?|What is the previous number in this sequence?]
Output your answer in JSON with key "answer". If you are not able to provide, answer "null"
3. 评估
LLM 在零样本设置下进行提示,温度设为 0.0。未设置系统提示。由于此基准测试包含所有开放式问题,因此随机基线的准确率为零。
3.1 指标
主要有两个衡量指标
准确率
定义为不同问题类型(即“下一个”、“第 n 个”和“前一个”)的准确率。弃权 F1
定义为“单调随机”问题的 F1 分数。
我们从“answer”: [answer] 中提取 LLM 的聊天完成结果来计算准确率,并回退到精确匹配 LLM 生成的最后一个数字。我们添加回退机制的原因是:1) 经过我们手动检查无法解析的 LLM 输出后,我们发现它们的答案是正确的,我们不想错过正确答案。2) 本研究的范围是归纳推理能力,而非格式遵循。
尽管如此,我们还在附录中展示了考虑指令遵循能力的准确性。
3.2 结果和分析
3.2.1 准确率
总的来说,观察到一些 LLM 在基准测试中表现不佳,这意味着该基准测试具有一定的难度。Claude 3.5 Sonnet 以 89.7% 的准确率位居榜首,紧随其后的是 gpt-4o (88.0%) 和 Llama3.1 405B (85.1%)。
3.2.2 弃权 F1
Llama3.1 405B 在给定随机序列时拒绝回答的表现最佳,紧随其后的是 Claude 3.5 Sonnet、Qwen2-7B-Instruct 和 DeepSeek coder 和 chat。尽管准确率和弃权 F1 之间存在高度相关性(0.709),但并非所有表现出色的模型都能成功拒绝回答,例如,gpt-4o-mini 的 F1 分数仅为 0.42,而其准确率却高达 78.4%。
3.2.3 下一个、第 n 个与前一个的鲁棒性
gpt-4o-mini、Llama3.1 70B、gpt-4o 和 Llama3.1 450B 在长程推理和逆向推理方面表现最为鲁棒。一些模型的准确率在被要求找到前一个项时下降了近 100%。我们认为这既是由于缺乏此类训练数据,也是因为训练中的下一个词元目标自然地限制了 LLM 进行尤其是逆向归纳的能力。
3.2.4 不同函数
期望强大的模型在不同函数上表现出鲁棒性,但实际上每个 LLM 都有其弱点,斐波那契数列是最困难的,因为它的大部分值都依赖于前一个值和前一个之前的值。只有 Claude 3.5 Sonnet 能够表现得相当好。另一方面,阶乘函数的值取决于所有先前的值。但也许它的模式更明显,变量不多,很容易被 LLM 捕获。素数是另一种有趣的题型。尽管计算困难,但它的准确率相对较高。LLM 是否像人类一样记住它,而无需实际计算?
3.2.5 模型大小
本小节只研究了开源模型,因为闭源模型的模型大小未知。Llama3.1 405B 表现最佳。尽管准确率与模型大小之间存在中等相关性(0.66),但这并不意味着准确率随着模型大小的增加而增加。例如,模型大小 <= 10B 的模型性能差异很大,其中 gemma-2-9b-it 在其模型大小下表现最佳。 同样,在弃权 F1 分数中没有发现强烈的关系(相关性为 0.44)。在某些情况下,小型模型表现优于大型模型。
3.2.6 数据污染
虽然整个测试都可以通过编程生成,而无需参考网络数据,但阶乘、素数和三角序列可能面临更高的污染风险,因为这些函数的参数化程度较低。
4. 结论
我们引入了 NumSeqBench 来评估 SOTA LLM 在数字序列中的归纳推理能力,包括它们在给定随机序列时拒绝回答的能力。SOTA 模型(Claude 3.5 Sonnet)以 89.7% 的准确率位居榜首,紧随其后的是 gpt-4o (88.0%) 和 Llama3.1 405B (85.1%)。尽管 SOTA 表现出色,但这仍然是一项具有挑战性的任务。特别是,我们观察到许多 SOTA 模型在寻找下一个项时取得了高准确率,但在要求它们找到下一个第 n 项和前一个项时,准确率显著下降。这包括开放式 LLM 排行榜上的顶尖模型。我们认为这既是由于缺乏此类训练数据,也是因为训练中的下一个词元目标自然地限制了 LLM 进行逆向归纳和长期归纳的能力。我们乐观地认为,NumSeqBench 可以帮助研究人员和从业者进一步评估和推进语言模型中的归纳推理能力。
引文
@misc{numseqbench2024,
title={NumSeqBench: Benchmarking Inductive Reasoning in Language Models via Number Sequences},
author={Ken Tsui},
url={https://huggingface.co/blog/kenhktsui/numseqbench},
year={2025}
}
最后但并非最不重要的一点
我们将来会继续构建更多程序生成的基准测试,以评估 LLM 推理能力的不同方面。敬请期待!
附录
A. 已测试模型列表
模型名称 | 参数 (B) | 开放/闭源 模型权重 | 使用的API提供商 |
---|---|---|---|
claude-3-5-sonnet-20240620 | ? | 闭源 | Anthropic |
claude-3-haiku-20240307 | ? | 闭源 | Anthropic |
databricks/dbrx-instruct | 132 (MoE) | 开放 | DeepInfra |
deepseek-chat | 236 (MoE) | 开放 | 深度求索 |
deepseek-coder | 236 (MoE) | 开放 | 深度求索 |
gemini-1.5-flash | ? | 闭源 | |
gemini-1.5-pro | ? | 闭源 | |
google/gemma-2-27b-it | 27 | 开放 | DeepInfra |
google/gemma-2-9b-it | 9 | 开放 | DeepInfra |
gpt-3.5-turbo | ? | 闭源 | OpenAI |
gpt-4o | ? | 闭源 | OpenAI |
gpt-4o-mini | ? | 闭源 | OpenAi |
HuggingFaceH4/zephyr-orpo-141b-A35b-v0.1 | 141 (MoE) | 开放 | DeepInfra |
meta-llama/Meta-Llama-3-70B-Instruct | 70 | 开放 | DeepInfra |
meta-llama/Meta-Llama-3-8B-Instruct | 8 | 开放 | DeepInfra |
meta-llama/Meta-Llama-3.1-405B-Instruct | 405 | 开放 | DeepInfra |
meta-llama/Meta-Llama-3.1-70B-Instruct | 70 | 开放 | DeepInfra |
meta-llama/Meta-Llama-3.1-8B-Instruct | 8 | 开放 | DeepInfra |
microsoft/Phi-3-medium-4k-instruct | 14 | 开放 | DeepInfra |
microsoft/WizardLM-2-7B | 7 | 开放 | DeepInfra |
microsoft/WizardLM-2-8x22B | 141 (MoE) | 开放 | DeepInfra |
mistralai/Mistral-7B-Instruct-v0.3 | 7 | 开放 | DeepInfra |
mistralai/Mixtral-8x22B-Instruct-v0.1 | 141 (MoE) | 开放 | DeepInfra |
mistral-large-latest | 123 | 开放 | Mistral AI |
Qwen/Qwen2-72B-Instruct1 | 72 | 开放 | DeepInfra |
Qwen/Qwen2-7B-Instruct | 7 | 开放 | DeepInfra |
reka-core-20240501 | ? | 闭源 | Reka AI |
reka-flash-20240226 | ? | 闭源 | Reka AI |
yi-large | ? | 闭源 | 01.ai |
yi-large-turbo | ? | 闭源 | 01.ai |