聚焦思维链 (F-CoT): 先整理再推理,token 减少 2-3 倍

聚焦思维链 (F-CoT): 先整理再推理,token 减少 2-3 倍

ArXiv ID: 2511.22176
作者: Lukas Struppek, Dominik Hintersdorf, Hannah Struppek, Daniel Neider, Kristian Kersting
机构: TU Darmstadt, Fraunhofer IAIS
发布日期: 2025-11-27
内容级别: Quick


摘要

标准思维链(CoT)让模型在推理过程中同时处理信息理解和逻辑推导,导致冗余 token 生成。受认知心理学中注意聚焦理论启发,本文提出 F-CoT(Focused Chain-of-Thought),一种免训练的输入导向方法。F-CoT 在推理前先将查询中的关键信息组织为简洁的结构化上下文,将信息提取与推理过程分离。在算术问题上实现2-3 倍 token 生成量减少,同时保持与标准 CoT 相当的性能。


问题背景

CoT 的低效问题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
标准 CoT 的问题:

用户问题(50 tokens):
"小明有 5 个苹果,他给了小红 2 个,然后又买了 3 倍于剩余数量的苹果,
请问他现在有多少个苹果?"

标准 CoT 输出(200+ tokens):
"让我来解决这个问题。首先,小明一开始有 5 个苹果。
然后他给了小红 2 个,所以他剩下 5-2=3 个苹果。
然后他又买了 3 倍于剩余数量的苹果,剩余数量是 3 个,
所以 3 倍就是 3×3=9 个苹果。
他原来有 3 个,又买了 9 个,所以总共是 3+9=12 个苹果。
答案是 12 个苹果。"

问题:
- 信息提取和推理混在一起
- 大量重复题目中的信息
- 冗余的解释性文字

认知心理学启示

注意聚焦理论(Attentional Focus Theory)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
人类解决问题的两阶段过程:

阶段 1:信息整理
┌─────────────────────────────────┐
│ 已知条件: │
│ • 初始:5 个苹果 │
│ • 给出:2 个苹果 │
│ • 购买:3 倍于剩余数量 │
└─────────────────────────────────┘

阶段 2:逻辑推理
┌─────────────────────────────────┐
│ 步骤 1: 5 - 2 = 3 (剩余) │
│ 步骤 2: 3 × 3 = 9 (新购买) │
│ 步骤 3: 3 + 9 = 12 (最终) │
└─────────────────────────────────┘

优势:
- 分离认知负荷
- 减少工作记忆负担
- 提高推理准确性

F-CoT 方法

整体流程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
┌─────────────────────────────────────────────────────────┐
│ F-CoT Pipeline │
│ │
│ 原始问题 │
│ │ │
│ ▼ │
│ ┌─────────────────┐ │
│ │ 阶段 1: 信息提取 │ │
│ │ • 识别关键数据 │ │
│ │ • 过滤无关信息 │ │
│ │ • 结构化组织 │ │
│ └─────────────────┘ │
│ │ │
│ ▼ │
│ 结构化上下文 (简洁) │
│ │ │
│ ▼ │
│ ┌─────────────────┐ │
│ │ 阶段 2: 聚焦推理 │ │
│ │ • 基于结构化输入 │ │
│ │ • 逐步推导 │ │
│ │ • 生成答案 │ │
│ └─────────────────┘ │
│ │ │
│ ▼ │
│ 最终答案 │
└─────────────────────────────────────────────────────────┘

阶段 1:信息提取与结构化

Prompt 模板

1
2
3
4
5
6
7
8
9
10
11
12
13
请分析以下问题,提取关键信息并组织为结构化格式。

问题:{原始问题}

请按照以下格式输出:
【已知条件】
- 列出所有相关的数值和关系

【求解目标】
- 明确需要回答的问题

【忽略信息】
- 列出无关或冗余的描述(如有)

示例输出

1
2
3
4
5
6
7
8
9
10
【已知条件】
- 初始苹果数量:5 个
- 给出数量:2 个
- 购买倍数:3 倍于剩余数量

【求解目标】
- 计算最终苹果总数

【忽略信息】
- 人物名称(小明、小红)不影响计算

阶段 2:聚焦推理

Prompt 模板

1
2
3
4
5
基于以下结构化信息进行推理:

{结构化上下文}

请逐步推导并给出最终答案。

示例输出

1
2
3
4
5
6
7
8
9
10
步骤 1: 计算剩余数量
5 - 2 = 3 个

步骤 2: 计算新购买数量
3 × 3 = 9 个

步骤 3: 计算最终总数
3 + 9 = 12 个

答案:12 个苹果

完整 F-CoT 实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
def focused_cot_inference(llm, problem):
"""
F-CoT 两阶段推理

Args:
llm: 语言模型
problem: 原始问题
"""
# 阶段 1: 信息提取
extract_prompt = f"""
请分析以下问题,提取关键信息并组织为结构化格式。

问题:{problem}

请按照以下格式输出:
【已知条件】
- 列出所有相关的数值和关系

【求解目标】
- 明确需要回答的问题

【忽略信息】
- 列出无关或冗余的描述(如有)
"""

structured_context = llm.generate(extract_prompt, max_tokens=200)

# 阶段 2: 聚焦推理
reason_prompt = f"""
基于以下结构化信息进行推理:

{structured_context}

请逐步推导并给出最终答案。
"""

final_answer = llm.generate(reason_prompt, max_tokens=300)

return {
'structured_context': structured_context,
'answer': final_answer,
'total_tokens': estimate_tokens(structured_context) + estimate_tokens(final_answer)
}

实验结果

实验设置

数据集

  • GSM8K:小学数学题
  • SVAMP:变量置换算术问题
  • MultiArith:多步算术题
  • AddSub:加减法应用题

基线方法

  • Standard CoT
  • Zero-shot CoT
  • Auto-CoT
  • Complex CoT

评估指标

  • 准确率(Accuracy)
  • 生成 token 数(Generated Tokens)
  • 压缩率(Compression Ratio)

主要结果

GSM8K 数学推理

方法 准确率 平均 Token 相对 CoT
Standard CoT 78.5% 215 1.0x
Zero-shot CoT 75.2% 180 0.84x
Auto-CoT 79.1% 195 0.91x
F-CoT 78.2% 85 0.40x

关键发现:F-CoT 在保持准确率的同时,token 使用量减少 2.5 倍

SVAMP 算术问题

方法 准确率 平均 Token 相对 CoT
Standard CoT 82.3% 185 1.0x
Complex CoT 83.1% 220 1.19x
F-CoT 82.5% 75 0.41x

AddSub 加减法问题

方法 准确率 平均 Token 相对 CoT
Standard CoT 88.5% 145 1.0x
F-CoT 88.2% 62 0.43x

Token 效率分析

1
2
3
4
5
6
7
8
9
10
11
12
13
14
各方法 Token 使用对比(GSM8K):

Token 数

│ ■ Standard CoT: 215

│ ■ Auto-CoT: 195

│ ■ Zero-shot: 180

│ ■ F-CoT 阶段 1: 45
│ ■ F-CoT 阶段 2: 40
│ └─ 总计:85 (2.5x 减少)
└─────────────────────────

分题型效果

题型 样本数 CoT Token F-CoT Token 压缩比
单步运算 150 120 55 2.2x
两步运算 280 185 75 2.5x
多步运算 320 265 95 2.8x
含干扰信息 130 290 80 3.6x

关键发现:问题越复杂、干扰信息越多,F-CoT 优势越明显

噪声鲁棒性

含干扰信息的问题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
原始问题(含噪声):
"小明昨天在超市买了 5 个苹果,超市的促销活动是买三送一,
但是小明只想要红苹果,绿苹果他不考虑。他给了收银员 2 个苹果的钱,
后来又决定把剩下的 3 倍数量的苹果也买下来。
请问小明最终买了多少个苹果?"

干扰信息:
- "昨天"、"超市"(时间地点,不影响计算)
- "买三送一"(无关促销)
- "红苹果/绿苹果"(无关偏好)

F-CoT 处理:
【已知条件】
- 初始:5 个苹果
- 支付:2 个苹果的钱(相当于给了 2 个)
- 追加:3 倍于剩余

【忽略信息】
- 时间地点描述
- 促销活动
- 苹果颜色偏好

结果对比

方法 标准问题 含噪声问题 性能下降
Standard CoT 78.5% 71.2% -7.3%
F-CoT 78.2% 77.5% -0.7%

结论:F-CoT 对噪声信息具有天然鲁棒性


消融实验

结构化格式影响

格式 准确率 Token 数
无结构化(直接推理) 78.5% 215
自由格式提取 77.8% 95
列表格式 78.2% 85
键值对格式 78.0% 82
表格格式 77.5% 90

推荐:列表格式在准确性和效率之间最佳平衡

两阶段必要性

配置 准确率 Token 数
单阶段(仅推理) 75.2% 180
两阶段(F-CoT) 78.2% 85
三阶段(额外验证) 78.5% 120

结论:两阶段设计是最佳平衡点


实践指南

API 调用示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
from openai import OpenAI

client = OpenAI()

def focused_cot_call(problem):
# 阶段 1: 信息提取
extract_response = client.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "system", "content": "你是一个信息提取专家。"},
{"role": "user", "content": f"""
请分析以下问题,提取关键信息:

问题:{problem}

输出格式:
【已知条件】
- ...

【求解目标】
- ...
"""}
],
max_tokens=200
)

structured_context = extract_response.choices[0].message.content

# 阶段 2: 聚焦推理
reason_response = client.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "system", "content": "你是一个逻辑推理专家。"},
{"role": "user", "content": f"""
基于以下信息进行推理:

{structured_context}

请逐步推导并给出答案。
"""}
],
max_tokens=300
)

return {
'context': structured_context,
'answer': reason_response.choices[0].message.content,
'total_tokens': (
extract_response.usage.total_tokens +
reason_response.usage.total_tokens
)
}

# 使用示例
result = focused_cot_call(
"小明有 5 个苹果,给了小红 2 个,又买了 3 倍于剩余数量的苹果..."
)
print(f"总 Token: {result['total_tokens']}")
print(f"答案:{result['answer']}")

最佳实践

场景 建议
简单算术 单阶段 Zero-shot 即可
多步推理 使用 F-CoT 两阶段
含干扰信息 必须使用 F-CoT
极高准确率要求 F-CoT + Self-Consistency

成本节约估算

1
2
3
4
5
6
7
8
9
10
11
12
13
假设场景:每日处理 10,000 个数学问题

Standard CoT:
- 每问题 215 tokens
- 每日 2,150,000 tokens
- 每月成本($10/1M tokens): $215

F-CoT:
- 每问题 85 tokens
- 每日 850,000 tokens
- 每月成本:$85

月度节约:$130 (60% 成本降低)

与其他 CoT 变体对比

方法 核心思想 Token 效率 准确率 适用场景
Standard CoT 逐步推理 1.0x 基准 通用
Zero-shot CoT 无示例推理 0.84x -3% 简单任务
Auto-CoT 自动生成示例 0.91x +1% 中等任务
Complex CoT 复杂推理 1.19x +2% 困难任务
F-CoT 结构化输入 0.40x ±0% 信息密集
F-CoT + SC F-CoT + 自洽性 1.2x +4% 高准确要求

总结

F-CoT 通过”先整理再推理”的两阶段设计,实现了高效的思维链推理:

核心贡献

  1. 受认知心理学启发的信息 - 推理分离设计
  2. 2-3 倍 token 效率提升
  3. 对噪声信息的天然鲁棒性
  4. 免训练、即插即用

实际价值

  • API 调用成本降低 60%
  • 响应延迟降低
  • 适合信息密集型任务

资源


评分: 4.0/5.0 ⭐⭐⭐⭐

推荐度: 推荐。成本敏感场景的实用选择,特别适合信息密集推理任务。

© 2026 Generative AI Discovery All Rights Reserved.
Theme by hiero