概述

隐式推理(Latent Reasoning)是近年来大语言模型(LLM)领域的重要突破。与传统的链式推理(Chain-of-Thought, CoT)在离散token空间中进行显式推理不同,隐式推理在连续隐空间中完成推理过程,通过隐状态向量而非文本token来传递和操作推理信息。1

核心洞察:语言模型不必”说出来才能思考”——在隐空间中,推理可以更加高效、灵活且富有表达力。

核心问题

传统CoT方法存在三个根本性局限:

  1. 语言瓶颈:推理过程必须被压缩为自然语言文本,很多推理模式难以用语言精确表达
  2. 信息密度低:每个推理步骤需要生成多个token,隐状态中已蕴含的丰富信息被”稀释”
  3. 计算效率低:大量算力消耗在文本生成而非实际推理

隐式推理通过在连续隐空间中进行推理,从根本上解决了这些问题。

隐式推理的定义

形式化定义

设语言模型为 ,其参数为 。对于输入 ,传统CoT推理过程为:

其中 是显式推理token序列,最终答案 由最后的状态生成。

隐式推理则定义为:

其中 是第 步的连续思维(Continuous Thought),推理完全在隐空间中进行。

连续思维的特性

连续思维 具有以下特性:

特性描述
高维连续性,可取连续值
信息叠加性可同时编码多个潜在的推理方向
压缩表示一个向量蕴含多个token的信息
可微性端到端梯度可传

显式CoT vs 隐式推理

离散token vs 连续向量

┌─────────────────────────────────────────────────────────────────────────┐
│                          推理范式对比                                    │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                         │
│  显式CoT (Chain-of-Thought)          隐式推理 (Latent Reasoning)       │
│  ─────────────────────────           ──────────────────────────        │
│                                                                         │
│  输入 ──→ "因此" ──→ "所以" ──→ ...  输入 ──→ h₀ ──→ h₁ ──→ ... ──→  │
│           ↓         ↓                      ↑         ↑                 │
│        token₁    token₂                 连续向量  连续向量              │
│                                                                         │
│  Token空间 ℝᵛ (v=词表大小)        隐空间 ℝᵈ (d=隐藏维度)              │
│                                                                         │
└─────────────────────────────────────────────────────────────────────────┘

关键差异对比

维度显式CoT隐式推理
推理空间离散token空间 连续隐空间
表示粒度细粒度(token级)粗粒度(向量级)
多路径推理难以并行探索可自然叠加多个方向
可解释性高(显式文本)低(需解码查看)
计算成本O(T·L)(L为token长度)O(T)(仅状态更新)
语言约束必须符合语法无语法约束

信息密度分析

设隐状态维度为 ,每个token平均用2个字节编码,则:

这意味着一个连续思维向量蕴含的信息量约等于256个token,隐式推理的信息密度是显式CoT的百倍以上。

信息效率对比

理论分析

设推理问题需要编码 比特的信息:

显式CoT

  • 每个token携带 比特信息(香农熵)
  • 推理链长度 需满足
  • 总计算量:

隐式推理

  • 每个隐状态向量携带 维浮点数的全部信息
  • 推理深度 远小于
  • 总计算量:,其中

实验数据

COCONUT论文的实验表明2

问题类型CoT步数隐式推理等效步数信息压缩比
逻辑推理123
数学证明2454.8×
规划问题1844.5×
多跳问答82

关键优势

  1. 信息压缩:一个连续向量可编码多个推理方向
  2. 无语法开销:无需生成符合语法的文本
  3. 并行探索:隐状态可同时包含多个潜在路径
  4. 端到端优化:梯度直接传回推理过程

隐式推理架构设计

COCONUT架构

COCONUT(Chain of Continuous Thought)是最具代表性的隐式推理方法,由Meta AI提出。

┌──────────────────────────────────────────────────────────────────────────┐
│                         COCONUT 推理流程                                   │
│                                                                          │
│  问题 ──→ Embedding                                                     │
│               │                                                          │
│               ↓                                                          │
│         ┌─────────────┐                                                 │
│         │   LLM层      │                                                 │
│         │ (处理输入)   │                                                 │
│         └─────────────┘                                                 │
│               │                                                          │
│               ↓ h₀                                                      │
│         ┌─────────────┐     ┌─────────────┐     ┌─────────────┐        │
│         │ 连续思维 1   │────→│ 连续思维 2   │────→│ 连续思维 T   │        │
│         │ h₁          │     │ h₂          │     │ h_T         │        │
│         └─────────────┘     └─────────────┘     └─────────────┘        │
│               │                  │                  │                   │
│               │     跳过解码器    │                  ↓                   │
│               │        ←─────────┼────────────  最终输出                │
│               └─────────────────┘                                        │
└──────────────────────────────────────────────────────────────────────────┘

核心机制

class COCONUTReasoner:
    """
    COCONUT 隐式推理器
    """
    def __init__(self, llm, num_latent_steps: int = 5):
        self.llm = llm
        self.num_latent_steps = num_latent_steps
    
    def forward(self, question: str) -> str:
        # Step 1: 将问题编码为初始隐状态
        h = self.llm.get_hidden_state(question)
        
        # Step 2: 连续隐空间推理(不解码为token)
        for t in range(self.num_latent_steps):
            h = self.llm.latent_step(h)  # 纯隐状态更新
        
        # Step 3: 解码最终答案
        answer = self.llm.decode_from_hidden(h)
        
        return answer

训练目标

COCONUT的训练采用多任务学习

其中:

  • :标准语言建模损失
  • :隐状态重建损失
  • :推理一致性损失

架构变体

方法隐状态来源更新机制特点
COCONUT最后隐藏层递归传递端到端可训练
COT-XKV CacheAttention无需训练
Reasoner推理器输出强化学习策略优化

动态推理压缩方法

CoLaR框架

CoLaR(Compressed Latent Reasoning)提出了一种两阶段训练方法来实现动态推理压缩。3

┌─────────────────────────────────────────────────────────────────────────┐
│                         CoLaR 两阶段训练                                 │
│                                                                         │
│  ┌────────────────┐                              ┌────────────────┐   │
│  │  阶段1: SFT    │                              │ 阶段2: RL训练   │   │
│  │  ────────────  │                              │ ──────────────  │   │
│  │  学习压缩映射   │                              │ 优化推理策略    │   │
│  │                │                              │                │   │
│  │ CoT序列 ──→   │                              │ 压缩轨迹 ──→   │   │
│  │ 压缩表示       │                              │ 奖励信号        │   │
│  └───────┬────────┘                              └───────┬────────┘   │
│          │                                                │            │
│          ↓                                                ↓            │
│  ┌─────────────────────────────────────────────────────────────┐        │
│  │                    隐式推理控制器                            │        │
│  │                                                              │        │
│  │   压缩器 ──→ 隐状态 ──→ 压缩器 ──→ 隐状态 ──→ ... ──→ 解码 │        │
│  │   Compress    h₁     Compress    h₂              Dec      │        │
│  └─────────────────────────────────────────────────────────────┘        │
└─────────────────────────────────────────────────────────────────────────┘

阶段一:监督微调

在SFT阶段,CoLaR超越简单的下一个token预测,引入辅助解码器

其中辅助损失为:

阶段二:强化学习优化

使用RL进一步优化压缩质量和推理效率:

其中 是推理轨迹 的奖励, 是轨迹长度(用于惩罚过长的推理)。

压缩效果

数据集CoT长度CoLaR压缩后压缩率
GSM8K48 tokens8 隐状态
MATH96 tokens12 隐状态
ARC-Challenge32 tokens4 隐状态

Switch-Thinking双模式切换

SwiReasoning框架

SwiReasoning(Swi tch-Reasoning)是一种无需训练的推理框架,核心思想是动态切换显式推理和隐式推理两种模式。4

┌─────────────────────────────────────────────────────────────────────────┐
│                    SwiReasoning 推理流程                                 │
│                                                                         │
│  ┌─────────────────────────────────────────────────────────────────┐   │
│  │                        推理控制器                                 │   │
│  │  ┌──────────┐    判断条件    ┌──────────┐                     │   │
│  │  │ 显式模式  │ ←────────────→│ 隐式模式  │                     │   │
│  │  │ (CoT)    │   切换信号      │ (Latent) │                     │   │
│  │  └────┬─────┘                └────┬─────┘                     │   │
│  │       │                             │                           │   │
│  │       ↓                             ↓                           │   │
│  │  文本输出 ─────────────────→ 隐藏状态                         │   │
│  │       ↑                             │                           │   │
│  │       └────────────┬────────────────┘                           │   │
│  │                    ↓                                              │   │
│  │              切换判断                                            │   │
│  └─────────────────────────────────────────────────────────────────┘   │
│                                                                         │
│  切换信号 = f(当前状态, 目标状态, 置信度)                               │
└─────────────────────────────────────────────────────────────────────────┘

动态切换机制

class SwiReasoning:
    """
    SwiReasoning: 显式/隐式推理动态切换
    """
    def __init__(self, llm, switch_threshold: float = 0.7):
        self.llm = llm
        self.switch_threshold = switch_threshold
    
    def forward(self, question: str, max_switches: int = 50) -> str:
        state = question
        mode = "explicit"  # 初始为显式模式
        switch_count = 0
        
        for step in range(max_switches):
            # Step 1: 推理一步
            if mode == "explicit":
                next_token = self.llm.explicit_step(state)
                state += next_token
            else:
                state = self.llm.latent_step(state)
            
            # Step 2: 判断是否切换模式
            should_switch = self.should_switch(state, question)
            
            if should_switch:
                mode = "implicit" if mode == "explicit" else "explicit"
                switch_count += 1
            
            # Step 3: 检查是否完成
            if self.is_complete(state):
                break
        
        return self.extract_answer(state)
    
    def should_switch(self, state: str, question: str) -> bool:
        """
        决定是否切换推理模式
        """
        # 计算当前推理的置信度
        confidence = self.compute_confidence(state, question)
        
        # 简单问题:保持在显式模式
        if self.is_simple(question):
            return False
        
        # 高置信度:切换到隐式(加速)
        if confidence > self.switch_threshold + 0.2:
            return True
        
        # 低置信度:切换到显式(验证)
        if confidence < self.switch_threshold - 0.2:
            return True
        
        return False

切换策略分析

问题类型推荐策略典型切换次数
简单算术保持显式0-2
数学证明显式→隐式→显式4-8
复杂规划多次切换20-50
多跳推理隐式为主5-15

实验结果

SwiReasoning在AIME 2024和AIME 2025等基准上展现出显著优势:

模型AIME 2024AIME 2025Token效率
标准CoT20.0%15.0%1.0×
隐式推理(固定)25.0%18.0%0.7×
SwiReasoning35.0%28.0%1.5×

数学公式推导

隐式推理的状态空间模型

将隐式推理形式化为一个状态空间模型:

其中:

  • :第 步的隐状态
  • :问题上下文
  • :状态转移函数

状态转移的矩阵形式

为线性变换加非线性激活:

连续思维的信息论解释

从信息论角度,隐式推理可以被理解为信息压缩与恢复的过程:

其中 是与 对应的显式推理步骤。

通道容量分析

设隐空间的通道容量为 为量化级别),则:

时,压缩比约为 5.1×。

训练稳定性分析

隐式推理训练的梯度动力学:

深层递归可能导致梯度消失或爆炸。通过残差连接层归一化可以缓解:

贝叶斯推理视角

将隐式推理视为贝叶斯推断:

其中 是最终隐状态,包含了所有推理步骤的信息。

关键论文与参考文献

核心论文

论文作者年份主要贡献
COCONUT2Hao et al., Meta2024连续思维链范式
SwiReasoning4Shi et al.2025动态模式切换
CoLaR3Luan et al.2025动态推理压缩
Latent Reasoning Survey1Zhu et al.2025系统性综述

论文详解

1. COCONUT (NeurIPS 2025)

论文:Training Large Language Models to Reason in a Continuous Latent Space

核心发现

  • 连续思维可以编码多个潜在的推理方向
  • 在需要回溯的规划问题上表现优于CoT
  • 训练后模型自动学习最优的隐式推理长度

实验结果

任务CoTCOCONUT提升
逻辑回归45.2%51.8%+6.6%
规划问题38.0%44.5%+6.5%
数学推理52.1%50.3%-1.8%

2. SwiReasoning (arXiv 2025)

论文:Switch-Thinking in Latent and Explicit for Pareto-Superior Reasoning LLMs

核心发现

  • 动态切换比固定模式效果更好
  • 在AIME等竞赛数学上,中位切换次数44-69次
  • 比CoT提前约50%达到最高准确率

方法特点

  • 完全无需训练
  • 基于置信度的自适应切换
  • 可应用于任意LLM

3. CoLaR (NeurIPS 2026)

论文:Dynamic Latent Compression of LLM Reasoning Chains

核心发现

  • 两阶段训练实现高效压缩
  • 在MATH数据集上实现8×压缩率
  • 压缩后的隐状态仍保持完整推理能力

方法特点

  • 辅助解码器保证压缩质量
  • RL优化推理效率
  • 可应用于模型蒸馏

综述论文

A Survey on Latent Reasoning (arXiv 2025)

论文:A Survey on Latent Reasoning1

主要内容

  • 系统梳理隐式推理的发展脉络
  • 提出统一的分类框架
  • 分析隐式推理的理论基础

分类体系

隐式推理方法
├── 基于隐藏状态
│   ├── COCONUT
│   ├── COT-X
│   └── LaVC
├── 基于KV Cache
│   ├── H2O
│   └── FastWeigh
└── 混合方法
    ├── HybridCoT
    └── SwiReasoning

相关主题

未来展望

当前局限

  1. 可解释性:隐式推理的中间过程不可直接观察
  2. 可控性:难以精确控制推理方向
  3. 理论完备性:缺乏严格的理论基础

潜在方向

  1. 可解释隐式推理:开发隐状态解码技术
  2. 可控生成:引导隐空间推理沿特定方向进行
  3. 理论突破:建立隐式推理的完备理论框架
  4. 多模态融合:将视觉、音频等信息融入隐空间推理

参考文献

Footnotes

  1. Zhu, R., et al. (2025). A Survey on Latent Reasoning. arXiv:2507.06203. https://arxiv.org/abs/2507.06203 2 3

  2. Hao, S., et al. (2024). Training Large Language Models to Reason in a Continuous Latent Space. NeurIPS 2025. https://arxiv.org/abs/2412.06769 2

  3. Luan, J., et al. (2025). Dynamic Latent Compression of LLM Reasoning Chains. NeurIPS 2026. https://arxiv.org/abs/2505.16552 2

  4. Shi, D., et al. (2025). SwiReasoning: Switch-Thinking in Latent and Explicit for Pareto-Superior Reasoning LLMs. arXiv:2510.05069. https://arxiv.org/abs/2510.05069 2