连续潜在空间推理¶
一、任务说明¶
1.1 背景介绍¶
本项目关注基于连续潜在空间的语言模型推理(Latent Reasoning)。
近年来,大语言模型(LLM)在数学、逻辑和常识推理任务上表现出较强能力,其中一种常见做法是通过 Chain-of-Thought(CoT) 让模型显式生成逐步推理过程,再输出最终答案。然而,显式 CoT 通常需要生成较长的自然语言中间步骤,带来较高的推理开销,同时这些中间 token 中并非每一个都对真正的推理计算同等重要。
为此,近期研究开始探索 latent reasoning,即让模型在连续潜在空间中完成中间推理,而不是把每一步都显式解码成自然语言。Coconut 提出了一种代表性的连续潜在推理框架:在 latent reasoning 阶段,不再将上一步 hidden state 映射为离散 token,而是直接将最后 hidden state 作为下一步输入 embedding,从而使模型可以在语言空间之外进行中间推理。
在此基础上,后续工作进一步从训练方式和压缩方式上扩展 latent reasoning。例如,CODI 使用 teacher–student self-distillation,将显式 CoT 的推理能力蒸馏到连续空间;CoLaR 则进一步探讨了将多个 reasoning token 压缩到单个 latent 表征中,并研究压缩率与效率之间的平衡。
本次课程项目将围绕这一方向展开,要求同学们围绕 latent reasoning 方法完成一个 可分析、可比较、可讨论 的课程项目。
1.2 任务目标¶
本项目要求同学们基于 GPT-2 模型,在 GSM8K 数据集上实现并分析连续潜在推理方法,重点关注以下问题:
- 连续潜在推理是否能够在减少显式推理 token 的同时完成数学推理任务;
- latent reasoning 与 Direct Answer、Explicit CoT 相比,在准确率上有何差异;
- latent step 数量对模型性能有何影响;
- latent reasoning 是否能够在显式输出长度上体现一定效率优势;
- 在基础方法之上,是否可以设计简单改进进一步提升性能或效率。
二、数据集说明¶
2.1 数据集¶
本次大作业使用 GSM8K 数学推理数据集。 GSM8K 是一个面向小学数学文字题求解的推理数据集,广泛用于评估语言模型的逐步推理能力,也是多种 latent reasoning 工作常用的实验基准之一。Coconut 的实验中也使用了 GSM8K 来验证 latent reasoning 在数学推理任务上的可行性。
2.2 数据划分¶
原则上使用 GSM8K 的标准训练集与测试集。 如需验证集,可从训练集中划分一部分样本作为验证集,并在报告中明确说明划分方式与随机种子。若课程统一提供验证划分,则以课程提供的划分为准。
2.3 CoT 监督来源¶
本项目中的显式 CoT 监督可直接使用 GSM8K 原始数据中的解答过程文本。 同学们可根据实现需要对原始解答进行适度清洗,例如:
- 去除多余格式符号;
- 统一答案标记;
- 提取最终数值答案。
若对 CoT 文本做了额外处理,需要在报告中说明。
2.4 输出形式与评测方式¶
模型输出为一段文本,其中应包含最终答案。 评测时只提取 最终数值答案 进行比较,并以数值匹配作为 Accuracy 的统计标准。
建议统一使用类似如下格式:
The answer is 42.
这样可以减少不同输出风格带来的评测差异。
三、方法设计规范¶
3.1 基础要求¶
请在统一设置下实现以下三种推理方式,并进行比较:
(1)Direct Answer¶
只输入题目,不生成中间推理过程,直接输出最终答案。
(2)Explicit CoT¶
输入题目后,让模型显式生成自然语言推理过程,再输出最终答案。
(3)Latent Reasoning(Coconut-style)¶
本项目的 latent reasoning 基础版统一参考 Coconut 的核心思路进行实现:
- 在问题输入后插入若干 latent steps;
- 每个 latent step 不对应可读 token,而是使用上一步的最后 hidden state 作为下一步输入 embedding;
- latent reasoning 结束后,再进入语言生成阶段输出最终答案。
也就是说,本项目的 latent reasoning 基线需要明确体现以下思想:
使用连续 hidden representation 替代显式中间推理 token,在潜在空间中完成若干步中间推理后,再解码答案。
3.2 训练建议¶
基础 latent reasoning 的训练建议参考 Coconut 的多阶段训练思路:
- 初始阶段:使用标准 CoT 数据训练模型;
- 后续阶段:逐步用 latent steps 替代部分显式 CoT 步骤;
- 最终阶段:尽可能让模型依赖 latent reasoning 完成答案预测。
训练时不要求同学们完整复现 Coconut 的全部实验细节,但至少应体现“逐步从显式 CoT 过渡到 latent reasoning”的基本思路。
3.3 可参考的进阶方向¶
完成基础版后,可阅读 CODI、CoLaR 等相关工作,了解 latent reasoning 在监督信号、表示压缩和推理效率方面的不同设计思路:
- CODI:通过 teacher–student self-distillation,将显式 CoT 的 hidden activation 对齐到 latent reasoning。
- CoLaR:研究多个 reasoning token 的压缩、动态压缩率以及 latent reasoning 的速度控制。
这些工作主要作为理解 latent reasoning 研究思路的参考。本项目不要求同学们复现现有论文,更鼓励在基础方法之上提出自己的简化改进或分析方案。
3.4 鼓励的改进方向¶
在完成基础 Coconut-style latent reasoning 后,鼓励同学们围绕“如何让 latent reasoning 更有效或更高效”进行开放探索。可以尝试但不限于以下方向:
- 更好的监督信号:例如设计 auxiliary loss、hidden-state alignment、答案一致性约束,或利用显式 CoT 为 latent states 提供额外监督;
- 更好的停止方法:例如根据 hidden state 变化、预测置信度、entropy、相邻 latent step 的相似度等信号,动态决定是否继续 latent reasoning;
- 更好的 latent state transition:例如改进 latent state 的更新方式,加入门控、残差连接、归一化或轻量变换模块;
- 更灵活的 latent length / compression 策略:例如让不同样本使用不同数量的 latent steps,或尝试将多个 reasoning steps 压缩到更少的 latent states;
- 更合理的训练目标或 curriculum:例如比较不同阶段训练策略、不同 CoT 替换比例,或不同答案监督方式对结果的影响;
- 更充分的分析:例如分析 latent step 数量、生成长度、准确率之间的关系,或比较哪些类型的问题更适合 latent reasoning。
四、实验要求¶
4.1 必做实验¶
(1)基线对比实验¶
比较以下三种方法在测试集上的性能:
- Direct Answer
- Explicit CoT
- Latent Reasoning(Coconut-style)
至少报告以下指标:
- Accuracy
- Average Generation Length
其中:
- Accuracy 作为主指标;
- Average Generation Length 用于衡量模型显式输出长度与推理开销。
Coconut 在实验中也分析了新生成 token 数,以衡量 reasoning efficiency。
(2)Latent Step 数分析¶
请至少比较三组不同 latent step 数量,例如:
T = 1T = 2T = 4
分析 latent step 数变化对准确率和显式生成长度的影响。
4.2 鼓励完成的进阶实验¶
在基础 latent reasoning 方法之上,鼓励同学们设计一种简单改进方法,并通过实验验证其有效性。
进阶实验可以从以下两个目标中任选其一:
- 在准确率上优于基础 latent reasoning;
- 在保持相近准确率的前提下,进一步减少 Average Generation Length。
五、实现与资源建议¶
5.1 模型规模¶
本项目统一使用 GPT-2 作为基础模型。 选择 GPT-2 的主要原因在于:
- 模型规模较小,便于课程项目复现;
- Coconut 与 CODI 等工作都在 GPT-2 尺度上进行了验证;
- 相比更大模型,更适合在有限 GPU 资源下完成实验。
5.2 运行资源¶
由于 latent reasoning 训练通常需要多次 forward 或多阶段训练,其训练时间可能长于普通 Direct Answer / CoT 微调。 请同学们根据自己的硬件资源合理设置:
- batch size
- epoch 数
- latent step 数
- 是否使用 gradient accumulation
若训练资源有限,可在报告中说明你所采用的折中方案。
5.3 复现原则¶
本项目更看重:
- 方法实现是否完整;
- 对比是否公平;
- 分析是否清楚;
而不是追求特别高的绝对分数。 如果由于资源限制未能进行大规模训练,也可以通过合理实验与分析展示你对 latent reasoning 的理解。
六、提交内容¶
6.1 实验报告¶
本次大作业仅需提交 实验报告,不要求提交完整代码。报告建议控制在合理篇幅内,重点说明方法、实验和分析结果。
报告需包含以下内容:
-
任务与方法概述 简要说明 latent reasoning 的任务目标,并介绍 Direct Answer、Explicit CoT 和 Coconut-style Latent Reasoning 的基本实现思路。
-
实验设置 说明所使用的数据集、模型、训练设置、latent step 数量以及答案抽取方式。若由于硬件资源限制对训练规模、epoch 数或数据量进行了简化,需要在此说明。
-
实验结果 至少报告 Direct Answer、Explicit CoT 和 Latent Reasoning 的对比结果,并包含 Accuracy 和 Average Generation Length 两个指标。
-
Latent Step 分析与讨论 比较不同 latent step 数量对性能和生成长度的影响,并结合实验结果讨论 latent reasoning 相比显式 CoT 的优点与不足。
-
总结与参考资料 简要总结实验发现。若参考了论文、代码库或开源实现,需要列出对应资料。
6.2 报告要求¶
- 报告应条理清晰,重点突出实验结果与分析;
- 图表需有标题和必要说明;
- 不要求追求特别高的绝对分数,更看重实验是否公平、分析是否合理;
- 若使用了外部代码、论文或开源实现,需要在报告中注明;
- 若因资源限制简化实验,需要如实说明。
七、评分标准¶
| 评分项 | 分值 | 说明 |
|---|---|---|
| 方法理解与实现说明 | 20% | 是否清楚说明 Direct Answer、Explicit CoT 与 Latent Reasoning 的实现思路 |
| 实验设计合理性 | 25% | 是否进行了公平对比,是否包含 latent step 分析 |
| 结果分析深度 | 30% | 是否对实验结果进行了充分讨论,而非仅给出表格 |
| 报告规范性 | 15% | 结构清晰,表达准确,图表规范,引用完整 |
| 创新与扩展 | 10% | 是否尝试并说明合理的进阶改进方法 |
八、参考论文与代码¶
请至少阅读并参考以下工作:
-
Training Large Language Models to Reason in a Continuous Latent Space(Coconut)
提出连续潜在推理的基础框架,在 GPT-2 与 GSM8K 等任务上验证 latent reasoning 的可行性。
参考代码:https://github.com/facebookresearch/coconut -
CODI: Compressing Chain-of-Thought into Continuous Space via Self-Distillation
通过 self-distillation 将显式 CoT 压缩到连续空间中,是 implicit CoT 的重要改进方向。
参考代码:https://github.com/zhenyi4/codi -
Think Silently, Think Fast: Dynamic Latent Compression of LLM Reasoning Chains(CoLaR)
探索多个 reasoning token 的动态压缩、latent reasoning 的速度控制,以及压缩率与性能之间的平衡。
参考代码:https://github.com/xiaomi-research/colar
九、补充说明¶
- 本项目的基础 latent reasoning 统一以 Coconut-style 为准,不要求完整复现所有论文细节,但必须体现连续 latent step 的核心思想。
- 进阶部分为 鼓励完成,不强制要求。
- 若同学们对训练资源、验证集划分或答案抽取方式进行了特殊处理,需要在报告中说明。
- 若参考了其他文献、代码库或开源实现,也请在报告中列出对应参考资料。
祝大家探索顺利。
如有疑问,联系助教罗翔:luoxiang@smail.com,或者在 QQ 群里联系。