项目:dmackinnon1.github.io/knaves | 数据集:K-and-K/knights-and-knaves | 论文:NeurIPS 2024 / Logic-RL (MSRA)
一句话:一个1978年的逻辑谜题"骑士与骗子",被改造成了LLM推理能力研究的精确手术刀。它能动态生成任意难度、能自动扰动、能测量"记忆"vs"推理"的边界,还能让7B小模型通过RL训练达到o3-mini水平。
骑士与骗子:一个1978年的逻辑玩具
Raymond Smullyan在1978年把这个谜题写进书里。设定极简:一个岛上只有两种居民。骑士总说真话,骗子总说谎。你听到几个人说话,要判断谁是谁。
Jack说:"Samuel是骑士的话,Lily就是骗子。"
Samuel说:"Jack是骑士的话,Lily就是骗子。"
Lily说:"Jack是骑士。"
三个人,三句话,一个唯一的逻辑解。
dmackinnon1.github.io/knaves 把这个做成了互动网页。用户可以玩、可以解、可以验证。但真正的价值不在游戏,而在它背后的程序化生成引擎被改造成了一个LLM推理研究的基准工具。
数据集的工程精度
K-and-K/knights-and-knaves(Hugging Face)不是静态题库。它是一个动态问题生成器。
可控参数:
- N(人数):2到8人
- D(陈述深度):逻辑嵌套的层级
- W(陈述宽度):每个陈述的复杂度
- 逻辑操作:and、or、not、imply、equivalence
自动生成:
- 问题描述(自然语言)
- 详细推理步骤(Chain-of-Thought)
- 标准答案
- 错误答案(用于训练鲁棒性)
- 错误CoT(含一个错误步骤或步骤乱序)
关键能力——自动扰动(Perturbation):
| 扰动类型 | 层级 | 具体做法 |
|---|---|---|
| 数学结构 | 替换整个陈述 | 把一个陈述换成新采样的一句 |
| 数学结构 | 替换叶子节点 | 改陈述中的某个原子命题 |
| 语言层面 | 改人名 | Oliver/Jacob → Elowen/Osiris |
| 语言层面 | 改角色名 | knight/knaves → saint/sinner |
| 语言层面 | 调顺序 | 打乱陈述的叙述顺序 |
| 语言层面 | 角色翻转 | knight总说谎,knaves总说真话(测试指令遵循) |
扰动后的新题有自动重新计算的答案和推理步骤。这意味着研究者可以精确控制"变了多少",然后看模型还能不能解。
论文一:LLM在背题还是推理?一个定量探针
"On Memorization of Large Language Models in Logical Reasoning"(NeurIPS 2024)
作者:Chulin Xie, Yangsibo Huang, Chiyuan Zhang, et al.(Google, UIUC, Princeton, AI2)
核心问题:LLM在推理benchmark上高分,到底是因为真会推理,还是因为背过类似题?
度量工具——LiMem(Local Inconsistency-based Memorization Score):
LiMem(f, D) = Acc(f; D) × (1 - CR(f; D))
- Acc(f; D):模型在训练集D上的准确率
- CR(f; D):一致性比率——训练集中被正确解答的题,经局部扰动后仍被正确解答的比例
- LiMem高 = 训练集上很准 + 扰动后崩溃 = 记忆主导
- LiMem低 = 训练集上很准 + 扰动后仍稳 = 推理主导
发现:
-
Fine-tune后训练集接近100%。但轻微扰动后失败率飙升。这符合"记忆"假设。
-
但记忆增加的同时,泛化也在提升。模型记忆越多,不仅训练集更准,未见过测试题的准确率也在涨。这说明记忆和推理不是互斥的,而是共生的。
-
高记忆水平下的模型,在扰动测试中也更鲁棒。LLM在"背"的过程中,似乎真的学到了某种可迁移的推理结构。
-
角色翻转(knight变说谎者)对模型是灾难。Llama3-8B在角色翻转下LiMem约80%。模型把"knight=好人=说真话"当成了先验知识,不遵循指令。这暴露了LLM的常识偏见覆盖了指令遵循。
-
模型内部探测:用logistic regression在transformer各层的MLP输出上训练,区分"正确陈述"和"错误陈述"。Fine-tune后的模型在中间层发展出了可探测的推理表征。
-
用错误答案训练也能提升泛化。即使给模型喂错误答案,只要同时给详细推理步骤,模型仍能从中提取推理结构。这跟人类从错题中学习的过程类似。
结论:LLM在K&K上展现了一种记忆与推理的复杂互动。它们不是纯粹的记忆机器,也不是纯粹的推理引擎。两者混在一起,且随着记忆积累,推理能力似乎从记忆中"结晶"出来。
论文二:7B模型RL训练到o3-mini水平
"Logic-RL: Unleashing LLM Reasoning with Rule-Based Reinforcement Learning"
作者:MSRA & Ubiquant
训练设置:
- 数据集:3-7人K&K谜题,<5,000合成样本
- 算法:REINFORCE++(DeepSeek-R1的reward设计)
- 模型:Qwen2.5-7B
- 关键技巧:严格的格式reward + 实用system prompt,防止模型走捷径
结果(准确率,不同人数难度):
| 模型 | 2人 | 3人 | 4人 | 5人 | 6人 | 7人 | 8人(OOD) | 平均 |
|---|---|---|---|---|---|---|---|---|
| o3-mini-high | 0.99 | 0.98 | 0.97 | 0.95 | 0.94 | 0.89 | 0.83 | 0.94 |
| o1-2024-12-17 | 0.83 | 0.51 | 0.38 | 0.38 | 0.35 | 0.30 | 0.20 | 0.42 |
| DeepSeek-R1 | 0.91 | 0.73 | 0.77 | 0.78 | 0.75 | 0.88 | 0.83 | 0.81 |
| GPT-4o | 0.68 | 0.57 | 0.49 | 0.32 | 0.23 | 0.21 | 0.11 | 0.37 |
| Qwen2.5-7B + Logic-RL | 0.99 | 0.99 | 0.94 | 0.92 | 0.91 | 0.80 | 0.67 | 0.89 |
7B模型在7人以内超过或接近o3-mini-high。8人(OOD,训练没见过)仍有0.67,远超GPT-4o的0.11。
涌现现象:
-
形式逻辑公式自发使用:模型在推理中使用了"If P then Q"的蕴含公式("P真Q假时命题才假")。训练数据中没有这些公式,模型自己发展出了形式化推理的表示。
-
语言混码(Language Switching):模型偶尔在推理中插入中文(如"以卡文的方式推理"),然后切回英文给答案。可能是为了获取格式reward,用中文做内部草稿。
-
迁移到数学:仅用逻辑题训练的模型,在数学推理上也有显著提升。逻辑结构的学习跨域迁移了。
K&K在推理生态中的位置
K&K数据集已经成为多个推理项目的标准工具:
| 项目 | 使用方式 |
|---|---|
| Logic-RL (MSRA) | 主训练数据,<5K样本训练7B模型 |
| NVIDIA NeMo Gym | Reasoning Gym 100+任务之一,支持难度配置 |
| Phantom Reasoning | GRPO训练,合成数据生成 |
| DeepSeek R1复现 | 与MATH、Countdown并列为四大训练域 |
| mem-kk-logic | 记忆vs推理基准测试,含扰动数据集 |
| Trae1ounG | 中文版K&K数据集 |
为什么K&K成为理想工具?
-
难度可控:通过N、D、W三个参数精确调节,不像数学题的"难度"难以定义。
-
答案可验证:逻辑题有唯一解,可以自动判定对错。这是RL训练的关键——需要可验证的reward。
-
可扰动:局部修改后自动重新计算答案,让"记忆vs推理"的分离成为可能。
-
领域隔离:K&K不在任何LLM的预训练数据里(不像GSM8K可能泄露),保证测试的纯净性。
-
结构丰富:and、or、not、imply、equivalence覆盖了完整命题逻辑,足以测试复杂推理。
局限
-
K&K只是命题逻辑。不涉及量词(∀、∃)、模态逻辑、或高阶推理。结论不能推广到所有推理类型。
-
角色翻转暴露偏见:模型把"knight=好人"当成常识,不遵循指令。这说明LLM的常识先验有时比指令更强。
-
小模型需要fine-tune/RL:未经训练的7B模型(Qwen2.5-7B-Instruct)在5人题上只有0.11准确率。K&K对未经专门训练的模型仍然很难。
-
o1在K&K上表现不佳:o1-2024-12-17在5人题上只有0.38,远低于o3-mini的0.95。这暴露了不同推理模型的能力差异,也暗示K&K是一个敏感的推理探针。
我的判断
K&K数据集的价值,不在于"逻辑谜题好玩",而在于它提供了一个可控的、可验证的、可扰动的推理实验室。
AI研究长期被"推理"的定义困扰。什么算推理?什么算记忆?K&K用LiMem给出了一个操作性定义:如果你会扰动后的题,你就是在推理;如果你只会原题,你就是在记忆。
更深层的意义:Logic-RL证明了一个重要的scaling方向。不是用更大的模型,而是用更精确的任务设计和RL训练,让小模型在特定推理上达到大模型水平。这7B模型不是更聪明了,它是在逻辑题这个狭窄领域上更专业了。这提示了一种可能的未来:不是一个大模型什么都懂,而是多个小模型各精一行,通过MCP或工具调用协作。
论文二还有一个有趣的细节:模型用错误答案训练也能提升。这暗示LLM的推理学习不是从"正确答案"中直接复制,而是从"推理过程的结构"中抽象。错误的答案如果包含正确的推理步骤(只是最后结论错了),模型仍能提取推理结构。这跟人类学习的过程惊人地相似——看错题解析,理解的是思路,不是结果。
最后,角色翻转测试揭示了一个严肃问题:LLM有不可擦除的常识偏见。当你说"knight总说谎",模型有时不听。它认为knight是好人。这种先验在一般场景下是优势,在需要严格遵循规则的推理任务中是致命缺陷。如何让模型在常识和规则之间灵活切换,是下一个难题。
参考:
- dmackinnon1.github.io/knaves
- K-and-K/knights-and-knaves (Hugging Face)
- Xie et al., "On Memorization of Large Language Models in Logical Reasoning", NeurIPS 2024
- Logic-RL, "Unleashing LLM Reasoning with Rule-Based Reinforcement Learning", arXiv:2502.14768
#LLM推理 #逻辑推理 #强化学习 #数据集 #记忆vs推理 #NeurIPS #LogicRL
讨论回复
0 条回复还没有人回复,快来发表你的看法吧!
推荐
智谱 GLM-5 已上线
我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。