增强LLM的方法
增强LLM的方法
- 让 LLM 自己“想得更好” —— 思维链、思维树、思维图、Self-Consistency、ReAct 等。
- 给 LLM “外挂知识” —— 知识图谱、RAG、GraphRAG、知识库 + LLM 等。
如果给学生讲,我建议不要一上来讲复杂公式,而是把 LLM 想成一个**“很聪明但有时候会一本正经胡说的学生”**。增强 LLM,本质上就是想办法让这个学生:
想得更清楚、查得更准、记得更多、做事更可靠。
一、先建立一个最简单的认识
假设我们问 LLM:
“小明有10元钱,买了一本3元的书,又买了2支2元的笔,他还剩多少钱?”
普通 LLM 可能直接回答:
10 - 3 - 2 × 2 = 3元。
这个题很简单。
但是如果问题变成:
“某公司今年营收增长20%,利润下降10%,员工数量增加30%,问公司的经营状况怎么样?”
这时候就不能简单地“看到问题就回答”,而需要:
问题 → 分解 → 分析 → 比较 → 得出结论
所以就出现了各种“增强 LLM 推理能力”的方法。
二、思维链 Chain-of-Thought,CoT
1. 什么是思维链?
思维链就是让 LLM 一步一步地想。
可以把它理解成:
不要直接给答案,先把解题步骤走一遍。
例如问:
小王有20元,买了一个8元的本子,又买了3支2元的笔,还剩多少钱?
普通回答:
6元。
思维链式回答:
第一步:20 - 8 = 12元 第二步:3支笔需要 3 × 2 = 6元 第三步:12 - 6 = 6元 所以还剩6元。
2. 为什么思维链有效?
因为很多复杂问题不是“一步”能够解决的。
例如:
“孔子为什么强调‘仁’?这种思想对今天的教育有什么启示?”
LLM如果直接回答,可能想到什么说什么。
如果让它分步骤:
第一步:解释“仁”的含义
↓
第二步:分析孔子为什么强调“仁”
↓
第三步:结合《论语》中的相关思想
↓
第四步:联系现代教育
↓
第五步:总结启示
回答通常就会更加完整。
一句话理解
思维链 = 一条路走到底。
三、思维树 Tree of Thoughts,ToT
思维链虽然很好,但是有一个问题:
如果第一步就走错了,后面可能全部错。
这时候可以让 LLM:
不要只走一条路,而是同时想几条路。
这就是思维树。
1. 举个非常简单的例子
比如问:
“大学生应该如何提高自己的就业竞争力?”
思维链可能这样:
就业竞争力
↓
学习专业知识
↓
参加项目
↓
参加实习
↓
提高就业能力
但是思维树会这样:
就业竞争力
/ | \
/ | \
专业能力 实践能力 综合能力
/ \ / \ / \
编程 算法 项目 实习 沟通 英语
LLM可以对不同方案进行评价:
方案A:只学习理论
评分:★★★
方案B:理论 + 项目
评分:★★★★★
方案C:理论 + 项目 + 实习
评分:★★★★★
最后选择最好的路径。
2. 思维树和思维链的区别
非常简单:
| 方法 | 通俗理解 |
|---|---|
| 思维链 CoT | 一条路走到底 |
| 思维树 ToT | 同时想几条路,再选一条 |
| 思维图 GoT | 不仅可以分叉,还可以互相连接 |
所以:
CoT = 线ToT = 树GoT = 图
这个比喻特别适合给学生讲。
四、思维图 Graph of Thoughts,GoT
思维树再往前一步。
现实中的问题往往不是简单的:
A → B → C → D
而可能是:
A ───→ B ───→ D
│ ↓ ↑
│ C ─────┘
↓
E ───→ F
不同思路之间可以:
- 合并
- 交叉
- 相互引用
- 互相验证
- 重新组合
这就是思维图。
举个例子:写一篇论文
比如让 LLM:
“设计一个知识图谱 + 大模型的研究方案。”
思维图可能是:
研究方案
/ | \
/ | \
数据 模型 实验
↓ ↓ ↓
知识图谱 LLM 指标
↓ ↓ ↓
RAG ←── GraphRAG ──→ 对比实验
\ ↑ /
\______|_______/
这里的特点是:
数据、模型、实验不是独立的,它们之间会相互影响。
所以思维图比单纯的思维树更加灵活。
五、Self-Consistency:让 LLM “多想几遍”
还有一种非常直观的方法:
同一道题,让 LLM 做很多遍,然后投票。
例如问:
“一个班有多少种排队方式?”
让模型产生5个推理结果:
答案1:120
答案2:120
答案3:240
答案4:120
答案5:120
最终:
120出现次数最多。
因此选择120。
这叫:
Self-Consistency(自洽性/一致性)
可以把它理解为:
不是问一个学生,而是让5个“平行世界里的学生”分别做题,然后投票。
六、ReAct:让 LLM 不只是“想”,还可以“做”
这是另外一个非常重要的方向。
传统 LLM:
问题
↓
思考
↓
答案
ReAct:
问题
↓
思考
↓
行动
↓
观察结果
↓
继续思考
↓
继续行动
↓
最终答案
例如问:
“今天北京天气怎么样?”
LLM自己可能不知道。
于是:
思考:
我需要最新天气信息
↓
调用天气工具
↓
得到:
北京今天25℃,小雨
↓
思考:
根据最新数据组织答案
↓
回答用户
所以:
ReAct = Reasoning + Acting
即:
推理 + 行动
七、到这里,可以总结第一类方法
这些方法主要解决的是:
如何让 LLM 更会“思考”。
| 方法 | 通俗理解 | 主要作用 |
|---|---|---|
| CoT | 一步一步想 | 提高复杂问题推理能力 |
| ToT | 想几条路再选 | 多方案搜索 |
| GoT | 思路之间互相连接 | 复杂推理 |
| Self-Consistency | 多做几遍然后投票 | 降低偶然错误 |
| ReAct | 一边想一边做 | 调用工具、搜索、执行任务 |
八、第二大类:知识图谱 + LLM
前面解决的是:
“怎么想得更好?”
但是还有一个非常大的问题:
“你知道得够不够?”
LLM有一个天然问题:
它的知识主要来自训练数据,而且存在:
- 知识过时
- 专业知识不足
- 企业内部知识不知道
- 容易产生幻觉
- 很难保证事实准确
怎么办?
一个非常重要的思路就是:
给 LLM 接一个“外部知识库”。
九、知识图谱是什么?
可以把知识图谱理解成:
把知识整理成一张“关系网”。
例如:
孔子
│
├──出生于→ 鲁国
│
├──弟子→ 颜回
│
├──弟子→ 子贡
│
└──思想→ 仁
再复杂一点:
孔子
↓
提出
↓
仁
↓
强调
↓
人与人之间的关系
↓
影响
↓
儒家思想
知识图谱最重要的东西其实就是:
实体 + 关系 + 属性
例如:
孔子 ——弟子→ 颜回
孔子 ——思想→ 仁
孔子 ——出生地→ 鲁国
十、知识图谱 + LLM,第一种:KG-RAG
这是现在非常值得讲的一个方向。
传统 RAG:
用户问题
↓
搜索知识库
↓
找到几个相关文本
↓
交给 LLM
↓
回答
例如:
“孔子有哪些主要弟子?”
系统去知识库找:
孔子
├── 颜回
├── 子贡
├── 子路
├── 曾子
└── 冉有
然后把这些信息交给 LLM。
十一、为什么知识图谱 RAG 比普通文本 RAG有优势?
普通文本 RAG更像:
从书架上找几页书。
知识图谱 RAG更像:
直接把“人物关系网”拿出来。
例如问:
“颜回和孔子是什么关系?”
普通 RAG可能找到:
《论语》中出现颜回的几个段落。
知识图谱可以直接得到:
孔子
↓
弟子
↓
颜回
然后 LLM负责把它说成人话:
颜回是孔子最重要的弟子之一,也是孔子非常推崇的学生。
十二、第二种:知识图谱作为 LLM 的“外挂记忆”
可以把 LLM 想象成:
一个非常聪明的大脑。
知识图谱:
一个结构化的外部记忆。
两者结合:
用户问题
↓
┌───────────────┐
│ LLM │
│ 大脑 │
└───────┬───────┘
↓
查询知识图谱
↓
┌────────────────┐
│ Knowledge │
│ Graph │
└───────┬────────┘
↓
返回事实
↓
LLM
↓
答案
这样就变成:
LLM负责理解和推理,知识图谱负责提供事实。
这是一个非常好的分工。
十三、第三种:GraphRAG
如果知识图谱进一步和 RAG 深度结合,就出现:
GraphRAG
简单理解:
传统 RAG:
问题
↓
找相关文本
↓
LLM
GraphRAG:
问题
↓
理解问题
↓
找到相关实体
↓
沿着关系扩展
↓
构建相关子图
↓
结合文本
↓
LLM推理
↓
答案
十四、举一个非常适合你研究方向的例子
假设用户问:
“狄仁杰和武则天是什么关系?狄仁杰为什么能够得到武则天的信任?”
普通 LLM可能直接回答。
但知识图谱可以建立:
狄仁杰
│
├──官职→ 大理寺丞
│
├──时期→ 武周
│
├──效忠→ 武则天
│
├──任职→ 宰相
│
└──参与→ 平反案件
再加入:
武则天
│
├──身份→ 皇帝
│
├──任用→ 狄仁杰
│
└──信任→ 狄仁杰
然后系统沿着图谱进行查询。
最终 LLM可以组织:
狄仁杰是武则天时期的重要官员,后来成为宰相。武则天之所以重用他,与其处理政务能力、敢于直谏以及处理案件时表现出的公正性有关。
这里:
知识图谱负责“事实关系”。
LLM负责“理解和表达”。
十五、第四种:让 LLM 帮助构建知识图谱
其实关系是双向的。
不是只有:
知识图谱 → LLM
还可以:
LLM → 知识图谱
例如给 LLM一段文本:
“孔子名丘,字仲尼,春秋时期鲁国人,是儒家学派创始人。”
LLM可以自动抽取:
实体:
孔子
丘
仲尼
鲁国
儒家
关系:
孔子 ——名→ 丘
孔子 ——字→ 仲尼
孔子 ——籍贯→ 鲁国
孔子 ——创始→ 儒家
然后写入知识图谱。
所以:
LLM 可以成为知识图谱构建的“自动化工人”。
十六、第五种:让知识图谱帮助 LLM “纠错”
这是一个非常重要的方向。
例如 LLM回答:
“孔子是秦朝人。”
知识图谱里面有:
孔子
出生时间:公元前551年
死亡时间:公元前479年
时期:春秋时期
系统发现:
LLM回答:秦朝 ❌
知识图谱:春秋时期 ✅
于是可以进行:
LLM生成
↓
知识图谱验证
↓
发现冲突
↓
重新推理
↓
修正答案
这可以理解成:
给 LLM 配一个“事实检查员”。
十七、知识图谱 + LLM 的几种主要组合
可以把它整理成这张非常重要的表:
| 组合方式 | 谁负责什么? | 通俗理解 |
|---|---|---|
| KG → LLM | KG提供知识 | 给LLM外挂知识库 |
| LLM → KG | LLM抽取知识 | LLM帮忙建知识图谱 |
| KG + RAG + LLM | KG帮助检索 | 不仅找文字,还找关系 |
| KG + LLM推理 | KG提供结构关系 | 给LLM一张“关系地图” |
| KG验证LLM | KG负责事实检查 | 给LLM配一个“裁判” |
| LLM更新KG | LLM发现新知识 | 自动维护知识图谱 |
| GraphRAG | 图谱+文本+LLM | 综合利用结构化和非结构化知识 |
十八、把所有方法放到一张“大地图”里
如果给学生讲,我特别推荐画成这样:
大语言模型 LLM
│
┌──────────────┴──────────────┐
│ │
如何想得更好? 如何知道更多?
│ │
┌──────┼──────┐ ┌─────┼─────┐
│ │ │ │ │ │
CoT ToT GoT RAG KG GraphRAG
│ │ │ │ │ │
思维链 思维树 思维图 文本 关系 图+文本
│ │ │ │ │ │
└──────┼──────┘ └─────┼─────┘
│ │
↓ ↓
推理增强 知识增强
│ │
└──────────────┬──────────────┘
↓
更可靠的 LLM
十九、再往前一步:推理增强 + 知识增强
真正有意思的系统,其实不是只用一种方法。
而是:
让 LLM 一边查知识,一边推理。
例如:
问题:
“为什么某历史人物能够成为某位皇帝信任的大臣?”
系统可以这样工作:
① LLM理解问题
↓
② 找到人物A、人物B
↓
③ 查询知识图谱
↓
④ 找到人物之间的关系
↓
⑤ 检索相关历史文本
↓
⑥ 构建证据子图
↓
⑦ LLM进行思维链推理
↓
⑧ 多路径验证
↓
⑨ 生成最终答案
这就已经不是简单的:
“LLM + 知识图谱”
而是:
LLM + KG + RAG + Agent + 推理
二十、如果进一步加入 Agent
这就进入现在比较热门的:
Agent + LLM + Knowledge Graph
例如让一个智能体回答:
“帮我分析孔子思想对现代教育的影响。”
Agent可以自己决定:
用户问题
↓
Agent
↓
┌────────┼────────┐
↓ ↓ ↓
查询知识图谱 搜索文献 阅读资料
↓ ↓ ↓
└────────┼────────┘
↓
LLM推理
↓
形成结论
↓
事实验证
↓
最终报告
所以 Agent 本质上又增加了一层:
“让 LLM 自己决定下一步该做什么。”
二十一、最终可以形成一个非常清晰的知识体系
如果从研究角度来看,我建议把“增强 LLM”分成 5个方向:
① Prompt / Reasoning Enhancement
解决:
怎么让 LLM 想得更好?
包括:
- CoT 思维链
- ToT 思维树
- GoT 思维图
- Self-Consistency
- ReAct
② Knowledge Enhancement
解决:
怎么让 LLM 知道更多、更准确?
包括:
- RAG
- Knowledge Base
- Knowledge Graph
- GraphRAG
- KG-RAG
③ Tool Enhancement
解决:
让 LLM 不只是说,还能做。
例如:
- 搜索
- Python
- 数据库
- API
- 计算器
- 外部系统
④ Agent Enhancement
解决:
让 LLM 自己规划任务。
例如:
目标
↓
任务分解
↓
选择工具
↓
执行
↓
观察
↓
重新规划
↓
完成任务
⑤ Verification / Safety Enhancement
解决:
怎么让 LLM 少犯错?
例如:
- 知识图谱验证
- 多模型交叉验证
- Self-Consistency
- Citation / Evidence
- Rule-based checking
- Fact checking
二十二、一句话把整个体系讲明白
如果你是给计算机专业的大二、大三学生讲,我建议最后用下面这段话收尾:
增强大语言模型,本质上就是给一个“聪明的大脑”增加几种能力:
思维链让它学会一步一步思考; 思维树让它能够同时考虑多种方案; 思维图让不同思路能够相互连接; RAG让它能够随时查资料; 知识图谱让它掌握清晰的实体和关系; GraphRAG让它既能查文字,又能利用知识之间的关系; Agent让它能够自己规划和执行任务; 验证机制则像一个老师,检查它有没有答错。
最终形成的就不再是一个单纯的“聊天机器人”,而是一个:
“会思考、会查知识、会调用工具、会执行任务、还能自己检查”的智能系统。
如果把它画成一句最直观的话,就是:
LLM
│
┌───────┼────────┐
↓ ↓ ↓
会思考 有知识 会行动
│ │ │
CoT/ToT KG/RAG Agent
GoT GraphRAG Tools
│ │ │
└───────┼────────┘
↓
智能应用系统
↓
更强、更准、更可靠
这套框架其实也很适合进一步整理成一张**“LLM增强技术全景图”**,把 CoT → ToT → GoT → RAG → KG → GraphRAG → Agent → LLM+KG+Agent 的演进关系画出来,用来做课程 PPT 会非常直观。
