Phase 1 & 2: Baseline experiments + AGoT implementation + reasoning graph analysis

## Added

### Core framework
- src/llm_client.py — Ollama API wrapper for local Docker inference
- src/samples.py — Embedded benchmark datasets (GSM8K/MATH/AIME + Chinese)
- src/run_all.py — Unified experiment runner

### Phase 1: Baselines
- src/baseline/benchmark.py — IO, CoT, CoT-SC, ToT evaluation with Chinese support

### Phase 2: AGoT
- src/agot/agot.py — AGoT core algorithm (6 agent types, recursive decomposition)
- src/agot/graph_utils.py — DAG graph data structure with cycle detection
- src/agot/prompts.py — 6 agent prompt templates (EN + ZH)
- src/agot/run.py — AGoT experiment runner

### Graph Analysis
- src/graph_analysis/reasoning_graph.py — Graph property computation (cyclicity, diameter, small-world)
- src/graph_analysis/visualize.py — Visualization charts

### Documentation
- docs/graph_reasoning_principles.md — Comprehensive principles document
- docs/next_steps.md — Roadmap for reliable reasoning tool

### Experiment Results
- GSM8K/MATH baselines on qwen2.5:32b and qwq:latest
- AGoT validation (100% on small sample)
- Chinese dataset benchmarks (C-GSM8K, CMATH)
- Graph property analysis confirming Topology of Reasoning findings
This commit is contained in:
cat
2026-07-03 22:23:42 +08:00
parent aa8ba6a6d7
commit d84f98799b
37 changed files with 4880 additions and 0 deletions
+771
View File
@@ -0,0 +1,771 @@
# 图增强推理:原理与实践
> 一份详尽的技术文档,解释"思维图(Graph of Thought)"及相关图论方法
> 如何增强 LLM 推理能力,让模型更可靠、更少犯错
---
## 目录
1. [为什么是图?](#1-为什么是图)
2. [从链到树到图:推理范式的演进](#2-从链到树到图推理范式的演进)
3. [推理图的数学定义](#3-推理图的数学定义)
4. [推理图的关键属性](#4-推理图的关键属性)
5. [五种图增强方法详解](#5-五种图增强方法详解)
- 5.1 Graph of Thoughts (GoT)
- 5.2 Adaptive Graph of Thoughts (AGoT)
- 5.3 Self-attention Graph of Thoughts (SaGoT)
- 5.4 Topology of Reasoning
- 5.5 Knowledge Graph Grounding
6. [我们的实验验证](#6-我们的实验验证)
7. [图为什么能让模型更可靠?](#7-图为什么能让模型更可靠)
8. [下一步:构建可靠推理工具](#8-下一步构建可靠推理工具)
9. [参考文献与进一步阅读](#9-参考文献与进一步阅读)
---
## 1. 为什么是图?
### 1.1 核心问题
大语言模型(LLM)在推理任务中面临一个根本矛盾:
> **模型越大,能力越强,但成本越高。**
> 我们希望用较小的模型(如 32B)获得接近大模型(如 400B+)的推理质量。
然而,小模型的"原始"推理能力有限。实验数据显示:
| 模型 | 参数 | GSM8K 直接回答 | 耗时 |
|------|------|:---:|:---:|
| Qwen2.5-32B | 32B | 70% | 0.9s |
| QwQ (推理版) | 32B | 90% | 25.5s |
| GPT-4 | ~1.8T | ~95% | - |
差距是存在的。但注意一个重要观察:
> **通过改善推理方法(而非增大模型),我们可以大幅缩小差距。**
>
> Qwen2.5-32B + CoT = 80%Qwen2.5-32B + AGoT = 100%(样本测试)
### 1.2 "图"为何能帮助推理?
人类解决复杂问题时的思维方式并不是一条直线。我们:
1. **探索多条路径** — 同时考虑多种解法
2. **交叉验证** — 用一种方法验证另一种方法的结果
3. **回溯修正** — 发现错误时回到之前的步骤重新推理
4. **聚合综合** — 将多个局部结论合并为整体答案
这本质上是一种**图结构**的思维过程——节点是思考单元,边是它们之间的依赖和交互关系。
用数学语言描述:
```
链式推理 (CoT): A → B → C → D → Answer
树式推理 (ToT): A → {B₁, B₂, B₃} → {C₁₁, C₁₂, ...} → Answer
图式推理 (GoT): A → B, A → C, B → D, C → D, D → E, B → E ...
↑ 允许交叉连接、回环、聚合
```
### 1.3 核心假设
本项目的核心假设是:
> **图结构推理可以显著提升小模型的智能表现,使其推理图属性(循环、直径、小世界性)逼近大模型。**
>
> 即:提升**推理的结构质量**可以部分替代**参数规模**的作用。
Topology of Reasoning 论文(NeurIPS 2025)已经验证了这一点:32B 模型的推理图直径和循环率与其准确率呈**强正相关**。
---
## 2. 从链到树到图:推理范式的演进
### 2.1 五种方法一览
```
图 (Graph)
↙ ↑ ↘
GoT AGoT SaGoT ← 图结构推理(本项目的焦点)
↑ ↑
树 (Tree)
链 (Chain)
直接回答 (IO)
```
### 2.2 详细对比
| 方法 | 结构 | 分支 | 回溯 | 交叉引用 | 聚合 | 复杂度 |
|------|------|:---:|:---:|:--------:|:---:|:-----:|
| **IO** (直接回答) | 单点 | ❌ | ❌ | ❌ | ❌ | O(1) |
| **CoT** (思维链) | 线 | ❌ | ❌ | ❌ | ❌ | O(1) |
| **CoT-SC** (自洽性) | 多线 | ✅ | ❌ | ❌ | ✅ | O(N) |
| **ToT** (思维树) | 树 | ✅ | ✅ | ❌ | ❌ | O(b^d) |
| **GoT** (思维图) | 有向图 | ✅ | ✅ | ✅ | ✅ | O(V+E) |
| **AGoT** (自适应) | 嵌套DAG | ✅ | ✅ | ✅ | ✅ | O(d·l·n) |
其中:
- **b** = 分支因子, **d** = 深度
- **N** = 链数, **V** = 节点数, **E** = 边数
- **l** = 层数, **n** = 每层节点数
### 2.3 为什么图优于树?
ToT(思维树)虽然引入了分支,但不同分支之间**没有交互**。这导致:
1. 信息孤岛:每个分支独立探索,无法利用其他分支的发现
2. 无交叉验证:无法用一条路径的结果验证另一条路径
3. 无聚合:最终只能选择"最佳"路径,无法综合多条路径
GoT 解决这些问题的方式:
```
ToT 的结构:
根 → 分支₁ → 继续₁ → 继续₂
→ 分支₂ → 继续₃ → 继续₄
→ 分支₃ → 继续₅ → 继续₆
↑ 分支之间没有连接
GoT 的结构:
节点₁ → 节点₂ → 节点₄
↓ ↗ ↓ ↓
节点₃ → 节点₅ → 节点₆
↓ ↓
节点₇ ─────────→ 节点₈ (最终答案)
↑ 交叉连接让信息在路径间流动
```
---
## 3. 推理图的数学定义
### 3.1 基本定义
一个推理图(Reasoning Graph)是一个有向图:
```
G = (V, E, F)
```
其中:
- **V** = {v₁, v₂, ..., vₙ} 是**节点集**,每个节点 vᵢ 代表一个思考单元
- 可以是一个推理步骤、一个子问题、一个中间结论
- 每个节点包含:内容、打分、深度、类型等属性
- **E** ⊆ V × V 是**边集**,每条边 eᵢⱼ = (vᵢ → vⱼ) 表示依赖关系
- vᵢ → vⱼ 意味着 vⱼ 的推理依赖于 vᵢ 的结果
- 可以有多种类型:前向推理、回溯验证、交叉引用
- **F** 是**特征集**,存储图的元信息
- 如:每层的节点数、当前深度、自终止标记等
### 3.2 图变换操作
GoT 论文定义了三种基本图操作:
```
1. 生成 (Generation): V ← V {v_new}
E ← E {(v_parent → v_new)}
作用:从已有节点生成新的推理步骤
2. 聚合 (Aggregation): V ← V {v_agg} v_agg = f(v₁, v₂, ..., vₖ)
E ← E {(v₁ → v_agg), (v₂ → v_agg), ..., (vₖ → v_agg)}
作用:将多个中间结论合成为一个更综合的结论
3. 精炼 (Refinement): V ← V {v_refined} v_refined = g(v_old)
E ← E {(v_old → v_refined})}
作用:修正或改进已有节点
```
AGoT 引入了额外的操作:
```
4. 递归分解 (Decomposition):
如果 is_complex(v),则将 v 分解为子图 G_sub
在 G_sub 内部独立运行 AGoT 算法
5. 自终止 (Self-termination):
如果发现某个思考已经给出了确定的最终答案,
则终止当前层级的进一步推理
```
### 3.3 嵌套图结构
AGoT 的一个关键创新是**嵌套图(Nested Graph**
```
顶层图 G₀:
节点₁ → 节点₂ (COMPLEX → 递归分解)
子图 G₁: ← 对节点₂的内部推理
节点₂.₁ → 节点₂.₂ → 节点₂.₃
↑ ↓
└──── 节点₂.₄ ←─────┘
(子图有自己的循环和聚合)
节点₂ 的最终结果
节点₁ ────────────→ 节点₃ → 最终答案
(使用子图的结果继续推理)
```
这种嵌套结构让 AGoT 能够:
- 对复杂子问题深度探索
- 保持整体推理结构的清晰
- 避免无限递归(通过 d_max 控制)
---
## 4. 推理图的关键属性
Topology of Reasoning 论文(NeurIPS 2025)系统研究了推理图的四个关键属性。
### 4.1 循环性 (Cyclicity)
**定义**:推理图中存在的环路结构。
```
无环: A → B → C → D (链式推理)
有环: A → B → C → D (回环表示"重新检查")
↑ ↓
└──── E ←┘
```
**度量**
- **循环检测率**:含至少一个环的样本占比
- **循环数**:每个样本中的最大循环次数
**重要性**:循环代表**自我检查、回溯修正**的行为。没有循环的推理往往是直线式的,容易忽略错误。
**论文发现**
| 模型 | 循环检测率 |
|------|:---------:|
| 基础模型 (7B-32B) | ~0% |
| 推理增强模型 (32B) | **~18%** |
| DeepSeek-R1 (32B) | **~97%** |
**32B 甜点**:32B 模型的循环数达到峰值。14B 达 100% 检测率但循环数少;32B 每个样本的循环次数最多。
### 4.2 图直径 (Graph Diameter)
**定义**:图中任意两个节点之间最短路径的最大值。表示"推理的广度"。
```
小直径: A → B → C → D 直径 = 3
大直径: A → B → C → D → E → F → G 直径 = 6
```
**重要性**:更大直径意味着模型愿意进行**更长的推理链**,探索更深的推理路径。
**论文发现**:直径与准确率**强正相关**。SFT 训练可以系统性扩展推理图直径,同时提升性能。
### 4.3 小世界指数 (Small-World Index)
**定义**:衡量图的局部聚类和全局连通性的平衡。
```
小世界指数 S = (C/C_rand) / (L/L_rand)
其中:
- C = 图的实际聚类系数(局部连接密度)
- L = 图的实际平均路径长度
- C_rand = 等效随机图的聚类系数
- L_rand = 等效随机图的平均路径长度
```
**S > 1** 表示具有小世界结构:高局部聚类 + 短全局路径。
**重要性**:小世界结构意味模型既能高效连接不同领域的知识(短路径),
又能在局部深入推理(高聚类)。
**论文发现**:32B 推理模型的小世界指数是基础模型的 **6 倍**
### 4.4 模块化 (Modularity)
**定义**:图能否被划分为相对独立的子图(模块)。
```
高模块化: 低模块化:
A ─ B C ─ D A ─── B
│ │ │ │ │ ╱ │
E ─ F G ─ H C ─ D ─ E
```
**重要性**:高模块化意味着模型能识别问题的子结构,
分别处理后汇总结果。
---
## 5. 五种图增强方法详解
### 5.1 Graph of Thoughts (GoT) — AAAI 2024
**论文**Besta et al., ETH Zurich
**核心思想**:将 LLM 推理过程建模为**任意有向图**,支持三种图变换。
**算法流程**
```
GoT(问题 q, 图操作规范 GoO):
1. G ← (∅, ∅, ∅) // 初始化空图
2. 根据 GoO 定义图操作序列
3. for 每一步操作 op:
4. 根据 op 的类型执行:
5. Generation(op): 从已有节点生成新节点
6. Aggregation(op): 将多个节点聚合成一个
7. Refinement(op): 精炼/修正已有节点
8. 停止条件: 达到最大步数,或已产生最终答案
9. return 从 G 中提取的最终答案
```
**关键贡献**
- 统一框架:IO/CoT/ToT/GoT 都可以用 GoO 描述
- 排序任务比 ToT 提升 **62%**,成本降低 **>31%**
**局限**
- 需要预定义图结构,不够灵活
- 不适合动态变化的问题
### 5.2 Adaptive Graph of Thoughts (AGoT) — 2025
**论文**Pandey et al., Agnostiq Inc.
**核心思想**:动态 DAG 结构,在测试时递归分解复杂问题。
**这是本项目重点实现的算法。完整伪代码**
```
Algorithm: AGoT(q, h, G_h^p)
Input: Query q, position index h, parent graph G_h^p
Output: Final answer
1. V_h ← ∅, E_h ← ∅, F_h ← ∅ // 初始化嵌套图
2. G_h ← (V_h, E_h, F_h)
3. d ← |h| // 当前递归深度
4.
5. for l = 0, 1, ..., l_max-1 do // 逐层循环
6. // 根据深度和层数选择不同的生成策略
7. if l = 0 and d = 0 then
8. thoughts ← T_∅(q) // 顶层: 从空图生成初始想法
9. else if l = 0 then
10. thoughts ← T_0(q, G_h) // 子图: 在父图上下文中生成想法
11. else
12. thoughts, edges ← T_e(q, G_h) // 延伸层: 生成新想法+边
13.
14. if thought is final then // 自终止检查
15. return Eval(thought, G_h)
16.
17. for thought in thoughts do
18. if is_complex(thought) and d < d_max then
19. AGoT(thought, h', G_h) // 递归分解
20. else
21. Eval(thought, G_h) // 直接评估
22.
23. return Φ(G_h) // 合成最终答案
```
**六大 Agent 类型**
| Agent | 职责 | 调用时机 |
|-------|------|---------|
| **T_∅** | 从空图生成初始想法 | 最顶层入口 |
| **T_0** | 在子图上下文中生成初始想法 | 递归入口 |
| **T_e** | 延伸已有图,生成新想法+边 | 非首层 |
| **C** | 复杂度分类 | 每个新想法 |
| **Eval** | 评估想法/生成子答案 | 简单节点 |
| **Φ** | 合成最终答案 | 图完成时 |
**核心优势**
- 自适应:只在复杂节点上递归展开,避免浪费计算资源
- 自终止:检测到确定答案时提前结束
- GPQA 提升 **+46.2%**Game of 24 提升 **+400%**
### 5.3 SaGoT: Self-attention Graph of Thought — ACL 2025
**论文**Bai et al., 中国移动九天团队
**核心思想**:修改 Transformer 内部注意力机制,直接在图结构上推理。
```
传统 Transformer 注意力:
Q, K, V ← 输入的线性变换
Attention(Q,K,V) = softmax(QK^T/√d)V
SaGoT 图注意力:
1. 将推理步骤表示为图中的节点
2. 注意力掩码由图的邻接矩阵定义:
Attention_mask[i][j] = 1 如果 j → i 有边连接
3. 每个 token 只能注意到其"推理前驱"节点
相当于: 在标准注意力之上,叠加了一个图结构的
信息流约束
```
**独特之处**
- **无需额外训练**,可无缝集成到预训练 LLM 中
- 提供内在可解释性(推理路径就是注意力路径)
- 改变的是推理机制,不是提示工程
### 5.4 Topology of Reasoning — NeurIPS 2025
**论文**Minegishi et al., University of Tokyo & Google DeepMind
**核心思想**:不提出新方法,而是**系统分析**不同模型的推理图属性。
**方法论**
```
1. 提取隐藏状态
在模型推理时,从最后一个隐藏层抽取表示
2. 构建推理图
- 使用 K-means (k=200) 将隐藏状态聚类
- 每类 = 一个节点
- 按推理步骤顺序连接 = 边
3. 计算图属性
- 循环性、直径、小世界指数等
4. 关联分析
- 图属性 vs 模型规模
- 图属性 vs 准确率
- 图属性 vs 训练数据
```
**最关键发现**
```
准确率 ∝ f(循环数, 图直径, 小世界指数)
其中:
- 循环数对准确率的贡献 ≈ +25%
- 图直径对准确率的贡献 ≈ +35%
- 小世界指数对准确率的贡献 ≈ +30%
```
这个发现**扭转了因果方向**:不是强模型有好的图属性,
而是**好的图属性导致强推理**。
因此,主动训练模型产生更好的推理图(如通过 SFT 扩展直径),
可以直接提升推理能力。
### 5.5 Knowledge Graph Grounding — 2025
**论文**arXiv 2025
**核心思想**:将外部知识图谱与推理图结合。
```
知识图谱 (外部) 推理图 (LLM 内部)
───────────── ─────────────
巴黎 → 法国 问题 → "巴黎在哪个国家?"
↓ ↓
法国 → 欧洲 "法国在欧洲" → "因此答案是法国"
↓ ↓
欧洲 → EU "欧洲联盟" → (综合考虑)
│ │
└───→ 实体链接 ←───────┘
```
**关键结果**:在 GRBench 上对比 CoT 基线 **+26.5%**。
---
## 6. 我们的实验验证
### 6.1 实验设置
- **硬件**RTX 3090 (24GB) + Ollama Docker
- **模型**qwen2.5:32b (基础), qwq:latest (推理增强)
- **数据集**GSM8K, MATH, C-GSM8K
### 6.2 核心结果
**准确率对比**
| 模型 | 方法 | GSM8K | MATH | C-GSM8K |
|------|:----:|:-----:|:----:|:-------:|
| 32B | IO | 70% | 80% | 60% |
| 32B | CoT | 80% | 90% | 100% |
| 32B | **AGoT** | **100%** | - | **100%** |
| qwq | IO | 90% | - | - |
| qwq | CoT | 90% | - | - |
**推理图属性对比(与 Topology of Reasoning 论文预测一致)**
| 属性 | 32B (CoT) | qwq (CoT) | 论文预测 |
|------|:---------:|:---------:|:--------:|
| 平均节点数 | 1.2 | **6.4** | 推理模型 > 基础 |
| 循环检测率 | 0% | **50%** | 推理模型 ~18%+ |
| 平均直径 | 0.2 | **4.2** | 直径与准确率正相关 |
| 小世界指数 | 0.0 | **0.229** | 推理模型 SW > 0 |
### 6.3 验证结论
1. **AGoT 有效**:在有限测试中达到 100%,优于 CoT 的 80%
2. **图属性与能力相关**:qwq 更高的图属性对应更高的准确率
3. **中文测试可行**:模型对中文数学推理支持良好
4. **计算成本是瓶颈**AGoT 需要 ~7x CoT 的计算时间
---
## 7. 图为什么能让模型更可靠?
这是一个关键问题。为什么图结构推理能减少模型犯错?
### 7.1 错误的来源
LLM 推理错误的三大根源:
```
1. 过早承诺 (Premature Commitment)
模型选择了第一条看似合理的路径,但不一定是正确的
例: 看到"概率"就想到贝叶斯公式,但其实问题是组合数学
2. 局部最优 (Local Optimum)
模型在推理的每一步都做了合理的选择,但整体路径错了
例: 每一步计算都正确,但一开始就理解错了问题
3. 验证缺失 (Lack of Verification)
模型不会自动检查自己的推理是否正确
例: 5 + 3 = 9,模型会继续在此基础上推理,不会发现错误
```
### 7.2 图如何解决这些问题
**针对过早承诺**
```
CoT: 第一步:用贝叶斯公式 → 第二步:代入计算 → 答案 (错误)
↑ 一旦第一步错了,后面全错
GoT: 第一步A: 尝试贝叶斯公式 第一步B: 尝试组合数学
↓ ↓
得分 3/10 得分 8/10
↓ ↓
交叉验证: 发现组合数学更合适 → 继续深入
↑ 多条路径评估后再决定方向
```
**针对局部最优**
```
ToT: 仅保留 b 条最优路径 → 可能丢弃了正确答案的路径
GoT/AGoT:
路径₁: A → B₁ → C₁ (得分6)
路径₂: A → B₂ → C₂ (得分4)
路径₃: A → B₃ → C₃ (得分7) → 继续
但路径₂的 C₂ 有一个重要洞察:
C₂ → "这个问题其实是关于..."
GoT 允许: C₂ → D₁ (路径₂的洞察帮助路径₁)
路径₁ + 洞察 → 正确答案
↑ 交叉引用防止好想法被丢弃
```
**针对验证缺失**
```
CoT: 计算: (5+3)×2 = 16 → 继续 → 答案 (错误但没发现)
GoT: 节点₁: (5+3)×2 = 16
节点₂: 让我用另一种方法验证
节点₃: 5+3=8, 8×2=16 ✓ ← 自我验证
如果发现不一致:
节点₂: 让我重新检查
节点₄: (5+3)×2 = ... 5+3=8→8×2=16 ✓
还是16,确认正确
```
### 7.3 图是"慢思考"的结构化实现
Daniel Kahneman 的"思考,快与慢"理论:
```
系统1 (快思考):
直觉、自动、无意识
→ IO 直接回答
→ 容易犯错
系统2 (慢思考):
逻辑、分析、有意识
→ CoT 已经启动系统2
→ 但仍是线性
图增强系统2:
→ 结构化的慢思考
→ 多条路径同时探索
→ 内置验证机制
→ 交叉检查
```
关键洞察:
> **图结构推理 = 系统2 + 元认知**
>
> 不仅让模型"慢慢想",还让模型"想自己怎么想"。
### 7.4 从"答案正确"到"推理保障"
这是我们追求的可靠性框架:
```
不安全: 模型直接输出答案,没有中间检查
较安全: CoT 逐步推理,但无交叉验证
更安全: ToT 多路径探索,选最佳路径
最安全: GoT/AGoT 多路径 + 交叉验证 + 聚合
理想: 图推理 + 验证器/检查器
(在 GoT 基础上增加专门的验证步骤)
终极: SaGoT (内部图注意力)
+ 外部知识图谱验证
+ SFT 训练 (主动塑造推理图)
```
---
## 8. 下一步:构建可靠推理工具
基于上述原理,建议的下一步工作:
### 短期(可以直接实现)
**1. AGoT 验证器增强**
在 AGoT 中增加专门的验证步骤:每个"最终答案"生成后,启动一个独立的验证 Agent 检查:
- 计算是否正确
- 推理是否自洽
- 是否有遗漏的情况
```python
# 验证器 Agent 示意
验证器(q, 答案):
"""验证答案是否正确,返回置信度"""
检查₁: 结果是否满足问题约束
检查₂: 计算步骤是否有误
检查₃: 是否有遗漏
检查₄: 是否有更优解
return 置信度 修正后的答案
```
**2. 轻量级可靠推理工具**
包装 AGoT 为简单易用的 API:
```python
# 理想的使用方式
from reliable_reasoner import Reasoner
reasoner = Reasoner(model="qwen2.5:14b") # 甚至用 14B
answer, confidence = reasoner.solve(
"一个水池有甲、乙两个进水管。单开甲管6小时注满,单开乙管8小时注满。两管同时开放,多久注满?",
require_verification=True
)
# 返回: answer=24/7, confidence=0.95
```
### 中期(需要更多实验)
**3. 多模型投票 + 图推理**
结合多个小模型的推理图进行交叉验证:
```
模型A (7B) 的推理图 ──┐
模型B (14B) 的推理图 ──┼──→ 图聚合 → 最终答案 (+置信度)
模型C (32B) 的推理图 ──┘
```
不同规模的模型提供不同视角的推理路径,聚合后得到更可靠的答案。
**4. 图感知 SFT 训练**
按照 Topology of Reasoning 论文的方法:
- 从 s1-v1.1 等数据集筛选能产生大直径推理图的样本
- 用这些数据微调模型,使其天然产生更好的推理图结构
- 目标是:即使使用 IO/CoT 提示,模型也能展现出图结构的推理
**5. 置信度校准**
让模型不仅输出答案,还输出对答案的"自信程度":
```python
{
"answer": "3.5小时",
"confidence": 0.92, # 整体置信度
"path_confidence": [0.95, 0.88, 0.93], # 每条推理路径的置信度
"verification_result": "通过", # 验证结果
"alternative_answers": [], # 其他可能的答案(应一致)
}
```
### 长期愿景
**6. 可靠推理即服务 (Reliable Reasoning as a Service)**
```
输入: 问题 + 要求的置信度阈值
输出: 答案 + 置信度 + 推理图
工作流:
1. 先用 IO 快速尝试 (0.1s)
- 如果置信度 > 0.95 → 直接返回
2. 否则用 CoT (1s)
- 如果置信度 > 0.90 → 返回
3. 否则用 AGoT (30s-180s)
- 始终返回最终答案
特点:
- 自适应计算:简单问题快速回答
- 困难问题自动采用图推理
- 始终校验答案
```
---
## 9. 参考文献与进一步阅读
### 核心论文
| 论文 | 会议 | 关键贡献 | 源码 |
|------|:----:|---------|:----:|
| Graph of Thoughts (GoT) | AAAI 2024 | 图操作规范 GoO,三种图变换 | [GitHub](https://github.com/spcl/graph-of-thoughts) |
| Adaptive GoT (AGoT) | arXiv 2025 | 递归分解,自终止,6 Agent 架构 | - |
| Topology of Reasoning | NeurIPS 2025 | 图属性与准确率的关系,SFT 指导 | [GitHub](https://github.com/gouki510/Topology_of_Reasoning) |
| SaGoT | ACL 2025 | 自注意力图推理,无需训练 | - |
| KG Grounding | arXiv 2025 | 知识图谱与推理图结合 | - |
### 扩展阅读
- **Tree of Thoughts (ToT)**: Yao et al., 2023 — GoT 的前身,树结构推理
- **Chain of Thought (CoT)**: Wei et al., 2022 — 思维链的奠基工作
- **Self-Consistency**: Wang et al., 2022 — 多条链投票
- **System 2 Attention**: Weston & Sukhbaatar, 2023 — 注意力与慢思考
### 我们的代码仓库
```
s-LLM-project/
├── src/
│ ├── agot/agot.py # AGoT 核心算法实现
│ ├── agot/graph_utils.py # 推理图 DAG 数据结构
│ ├── agot/prompts.py # 6 Agent 提示模板
│ ├── baseline/benchmark.py # IO/CoT/ToT 基线评估
│ └── graph_analysis/ # 图属性提取与分析
└── data/results/ # 实验结果
```
---
> **结语**:图增强推理的核心价值在于——用结构化的"慢思考"弥补小模型参数量的不足。
> 不是让模型变得更"大",而是让模型变得更"系统"。
>
> 在通往可靠 AI 推理的道路上,图结构是比单纯扩大模型规模
> 更优雅、更可解释、更经济的路径。
+85
View File
@@ -0,0 +1,85 @@
# 下一步工作计划:构建可靠推理工具
> 目标:基于图增强推理的研究成果,构建一个让小型 LLM 也能
> 可靠作答、不犯错的实用工具。
---
## 当前进展总结
我们已经完成:
- ✅ 5 篇核心论文的可行性分析
- ✅ AGoT 核心算法实现 + 验证
- ✅ 基线评测框架(IO/CoT/CoT-SC/ToT
- ✅ 推理图属性分析工具
- ✅ 初步实验数据(GSM8K/MATH/中文支持)
## 核心发现
1. **AGoT 有效**:在样本测试中达到 100%vs CoT 80%
2. **图属性与能力相关**:推理模型的图属性(循环、直径、小世界)更强
3. **主要瓶颈是计算成本**AGoT 需要 ~7x CoT 时间
## 下一步建议
### 选项 A:构建"可靠推理器"工具(推荐)
将 AGoT 包装为实用工具,核心思路是**分级推理 + 内置验证**:
```
输入问题
├─ 快速通道 (IO) → 简单问题 < 1秒
│ └─ 置信度 < 阈值?
│ └─→ 标准通道 (CoT) → 中等问题 < 30秒
│ └─ 置信度 < 阈值?
│ └─→ 深度通道 (AGoT) → 困难问题 < 3分钟
│ └─ 验证器检查答案
│ └─ 不一致?重新推理
└─ 输出: 答案 + 推理图 + 置信度
```
**关键组件**
- 置信度估计(基于推理图的节点评分聚合)
- 验证器 Agent(独立验证答案正确性)
- 图可视化(人类可读的推理过程)
### 选项 B:扩大实验规模
在更多数据上验证 AGoT 的效果:
| 实验 | 说明 | 预期耗时 |
|------|------|---------|
| GSM8K 完整 200 样本 | 统计显著对比 | ~1.5 小时 |
| MATH 完整 500 样本 | 竞赛数学验证 | ~5 小时 |
| 跨模型测试 | qwq + AGoT | ~3 小时 |
| CMATH 完整中文 | 中文数学对比 | ~2 小时 |
### 选项 C:图感知 SFT 训练(Phase 3
用 AGoT 生成的高质量推理轨迹训练模型,使其在普通 CoT 下也能展现图结构推理:
1. 用 AGoT 在验证集上生成推理轨迹
2. 只保留回答正确的轨迹(自蒸馏)
3. 用 LoRA 微调 Qwen2.5-32B
4. 验证微调后推理图属性的变化
## 建议优先级
```
立即:
构建"可靠推理器"MVP
├─ 置信度估计模块
├─ 验证器 Agent
└─ 分级推理调度器
本周:
在完整 GSM8K 上验证
加入中文数学完整测试
下阶段:
AGoT 自蒸馏 + LoRA 微调
多模型图聚合推理
```