与现代方法的关系
本页说明符号主义这条线为什么没有死:它的核心思想以 RAG、神经符号 AI 等形式嵌入了今天的深度学习与 LLM 系统。2025 年,神经符号 AI 被称为”第三次 AI 浪潮”——第一次是基于逻辑的符号 AI(1980s—2000s),第二次是连接主义(Connectionism,即神经网络与深度学习,2015 至今),第三次正是两者的融合。
Kahneman 在《思考,快与慢》中把人类思维分为两个系统:
- System 1(快思考)= 直觉、模式识别——你一眼认出朋友的脸,不用思考。≈ 深度学习:擅长感知(perception),快但不可解释。
- System 2(慢思考)= 推理、规划、逻辑——你算 要一步步推导。≈ 符号推理:慢但精确、可验证。
从工程角度看,两者各有硬伤:纯神经网络(如 LLM)会出现幻觉(Hallucination,模型生成看似合理但实际错误的内容),因为它只是在拟合统计模式、没有真正的逻辑约束;纯符号系统(如经典专家系统)则过于刚性、无法处理模糊的感知输入。今天的 AI 正在把两者结合:用神经网络做感知(System 1),用符号方法做推理和验证(System 2)。这就是”神经符号 AI(Neuro-Symbolic AI)“的核心动机——用神经网络的泛化能力弥补符号系统的脆弱性,用符号推理的精确性约束神经网络的随意性。
Gary Marcus 的观点很有代表性:他说”如果不掌握符号操作的工具,我们就无法构建稳健的、知识驱动的 AI”,因为”大量有用的知识是抽象的,而迄今唯一能可靠操作这些抽象知识的机制就是符号操作”。
RAG 流程:知识库思想的延续
Section titled “RAG 流程:知识库思想的延续”RAG(Retrieval-Augmented Generation,检索增强生成)把”知识”从模型参数中搬到了外部检索库——这正是专家系统”知识库与推理机分离”思想在 LLM 时代的延续:
理解 RAG 的关键是区分两种”知识存储”方式:
- 参数化知识(Parametric Knowledge):知识编码在神经网络的权重参数中。优点是查询快;缺点是更新困难——要修改一个事实就必须重新训练或微调整个模型,而且无法精确控制模型”知道”什么。
- 非参数化知识(Non-parametric Knowledge):知识存储在外部结构中(数据库、文档、知识图谱),通过检索访问。优点是更新只需改文档,且可以精确引用来源;缺点是依赖检索质量。
传统 LLM 把知识”烤”进参数里(更新知识要重新训练),RAG 把知识放在外部库中(更新只需改文档)。这和 MYCIN 把诊断规则存在知识库中而非硬编码在推理机里,是同一个设计哲学。MYCIN 的推理机只负责推理流程,规则可独立增删;RAG 的 LLM 只负责语言理解和生成,知识也可独立增删。
动手实践:RAG 核心流程
Section titled “动手实践:RAG 核心流程”用 scikit-learn 的 TF-IDF(Term Frequency-Inverse Document Frequency,词频-逆文档频率,一种衡量词语对文档重要程度的统计方法)+ 余弦相似度(Cosine Similarity,通过计算两个向量夹角的余弦值来衡量相似度,值越接近 1 越相似)实现一个最小 RAG(实际生产用 embedding 模型替代 TF-IDF):
from sklearn.feature_extraction.text import TfidfVectorizerfrom sklearn.metrics.pairwise import cosine_similarityimport numpy as np
# 1. 准备知识库——在实际 RAG 系统中,这些文档来自 PDF、网页、数据库等,# 需要经过清洗、分块(chunking)后存入向量数据库docs = [ "Transformer 是大语言模型的基础架构,由 Google 于 2017 年提出", "CNN 卷积神经网络擅长图像识别", "RAG 通过检索外部知识库来增强生成质量", "强化学习通过奖励信号学习最优策略",]vectorizer = TfidfVectorizer()doc_vecs = vectorizer.fit_transform(docs) # 文档向量化:每篇文档变为一个高维向量
# 2. 检索:找到与问题最相关的文档# 核心思路:把问题也转为向量,然后计算与每个文档向量的相似度def retrieve(query, top_k=2): q_vec = vectorizer.transform([query]) # 用同样的词表将查询向量化 scores = cosine_similarity(q_vec, doc_vecs).flatten() # 计算与每篇文档的余弦相似度 top = np.argsort(scores)[-top_k:][::-1] # 按相似度降序排列,取前 top_k 个 return [docs[i] for i in top]
# 3. 生成:把上下文 + 问题拼接(实际交给 LLM)# 生产系统中,这里会调用 GPT/Claude 等模型的 APIdef answer(query): ctx = retrieve(query) # 提示词工程的关键:明确告诉 LLM "根据以下信息回答",减少幻觉 prompt = f"根据以下信息回答:\n{ctx[0]}\n\n问题:{query}" return f"[模拟 LLM]\n检索到: {ctx[0]}"
print(answer("Transformer 是什么?"))# 检索到: Transformer 是大语言模型的基础架构...为什么 TF-IDF 只是教学示例? TF-IDF 基于词频统计,无法理解语义——“汽车”和”轿车”是不同的词,相似度为 0。实际 RAG 使用 embedding 模型(如 OpenAI text-embedding-3、BGE 等),它将文本映射到连续向量空间,语义相近的文本向量距离也近,因此能匹配同义但不同字面的文档。
神经符号 AI:System 1 + System 2
Section titled “神经符号 AI:System 1 + System 2”以下系统都属于神经符号混合架构。Henry Kautz 在 AAAI 2020 的演讲中提出了一个经典的六类分类法,根据神经和符号组件的组合方式区分这些架构——下表列出的是其中最具代表性的工业级系统:
| 系统 | 神经部分(System 1) | 符号部分(System 2) | 效果 |
|---|---|---|---|
| AlphaGo | 卷积网络评估棋盘价值 | MCTS(Monte Carlo Tree Search,蒙特卡洛树搜索)符号搜索 | 击败围棋世界冠军 |
| LLM 工具调用 / Agent | LLM 理解用户意图 | 调用 PDDL 规划器、代码解释器 | 精确计算、多步规划 |
| AlphaGeometry | 语言模型提出辅助构造(如”作一条辅助线”) | 符号推理引擎(DDAR)严格验证每一步推导 | IMO 金牌水平 |
| AlphaProof Nexus | 语言模型生成证明思路 | Lean 定理证明器形式化验证 | 证明多个 Erdős 开放问题 |
| 推理模型(o3 / DeepSeek-R1) | Transformer 生成候选推理步骤 | RL 训练的搜索与验证机制 | 数学/编程竞赛级推理 |
神经符号集成的深层原理
Section titled “神经符号集成的深层原理”以上系统之所以能超越纯神经网络,关键在于分工互补:
- 神经网络负责”猜”:LLM 或 CNN 从海量数据中学到了模式和启发式知识(heuristics),擅长在巨大搜索空间中快速提出有希望的候选方向——比如 AlphaGeometry 中语言模型建议”在 A 点作一条平行线”。
- 符号引擎负责”验”:定理证明器、约束求解器等符号工具基于严格的数学规则,能保证推理的每一步都正确——比如 AlphaGeometry 的符号引擎验证那条辅助线确实能导出结论。
- 闭环迭代:如果符号引擎验证失败,反馈结果交给神经网络重新提出新思路,如此反复直到成功或资源耗尽。这种”生成-验证”循环(generate-and-verify loop)是当前神经符号架构的核心范式。
推理模型:System 2 的新范式(2024—2025)
Section titled “推理模型:System 2 的新范式(2024—2025)”2024 年以来出现了一批推理模型(Reasoning Models)——OpenAI o1/o3、DeepSeek-R1 等,代表了 LLM 向 System 2 思考的跨越。
传统 LLM 是”快思考”:输入问题后直接逐 token 生成回答,中间没有显式的推理过程。推理模型则引入了测试时计算(Test-time Compute):模型在给出最终答案前,先生成大量的”思考 token”——展开思维链、自我纠错、尝试不同策略,本质上是把推理过程从”隐式参数计算”变成了”显式搜索”。
其训练方法的核心是强化学习(Reinforcement Learning, RL):用数学题和编程题的正确性作为奖励信号,训练模型学会”如何思考”而非仅仅”记住答案”。这与强化学习与 LLM 训练中讨论的 RLHF 方法一脉相承,但奖励不再是人类偏好,而是可精确验证的正确性——这本身就是一种符号验证。
推理模型可以看作神经符号融合的一种特殊形式:神经网络负责生成推理步骤(System 1 的感知与联想能力),RL 训练的搜索与验证机制约束推理的正确性(System 2 的逻辑与规划能力)。与 AlphaGeometry 不同的是,推理模型把这种搜索-验证循环”内化”到了单一神经网络中,而非依赖外部符号引擎。
- RAG 比纯 LLM 优势在哪:知识可随时更新(改文档不用重新训练)、可引用来源(回答有据可查)、适合私有数据(不泄露给公开模型)。
- RAG 的检索质量是瓶颈:如果检索器找不到正确的文档,再强的 LLM 也答不对。实际生产中检索器的调优(embedding 模型选择、chunk 策略、重排序)比生成模型更重要。
- GraphRAG(2024):把知识图谱的精确关系查询和向量检索的模糊语义匹配结合起来——这是符号主义与深度学习融合的最新实践。
- 神经符号是前沿方向:纯神经网络仍不擅长多步逻辑推理(数学证明、复杂规划),符号引擎在这些场景有不可替代的价值。
AI 搜索与企业知识库
- RAG 问答系统:Perplexity AI 搜索引擎用 RAG 架构检索实时网页内容后由 LLM 生成带引用的回答,企业知识库 AI 助手(如 Glean、钉钉 AI 助理)用 RAG 在公司内部文档中检索答案,员工问”差旅报销标准是多少”即可获得精确到文档段落的结果。
- GraphRAG 复杂关系分析:微软 GraphRAG 在传统向量检索之上叠加知识图谱关系查询,能回答”公司 A 的供应商和公司 B 的投资方是否有共同关联”这类需要多跳关系推理的问题,纯向量检索无法胜任。
智能 Agent
- LLM 工具调用 Agent:ChatGPT、Claude 等通过 function calling 调用外部计算器、数据库、代码解释器等符号工具——LLM 负责理解用户意图(System 1),工具负责精确计算和逻辑验证(System 2),这正是神经符号架构在产品中的落地。
- 代码生成与验证:GitHub Copilot、Cursor 等 AI 编程助手在 LLM 生成代码后调用编译器和测试用例做符号验证,神经网络负责”猜”代码、符号引擎负责”验”正确性,形成完整的生成-验证闭环。
典型类库与工具
Section titled “典型类库与工具”| 类库 | 语言 | 说明 |
|---|---|---|
| LangChain | Python/JS | 最流行的 LLM 应用开发框架,内置 RAG 流水线、工具调用(Agent)与文档加载组件 |
| LlamaIndex | Python | 专注数据连接与 RAG 的框架,提供文档索引、检索与查询引擎的完整抽象 |
| Z3 | Python/C++ | 微软的 SMT 求解器,可用于 LLM Agent 的约束验证与形式推理模块 |
| Lark | Python | 轻量级解析库,适合为 LLM 工具调用构建自定义语法解析与结构化输出验证 |
| Neo4j + GraphRAG | Cypher/Python | 图数据库配合微软 GraphRAG 方案,将知识图谱关系查询嵌入检索增强生成 |
| 术语 | 英文 | 解释 |
|---|---|---|
| 检索增强生成 | Retrieval-Augmented Generation (RAG) | 先从外部知识库检索相关文档,再拼入提示词交给 LLM 生成回答的架构 |
| 神经符号 AI | Neuro-Symbolic AI | 将神经网络(感知)与符号推理(逻辑验证)结合的混合架构 |
| 快慢思考 | System 1 / System 2 | Kahneman 提出的二元认知框架,常用于类比神经网络与符号推理的分工 |
| 工具调用 | Tool Use / Function Calling | LLM 通过调用外部工具(计算器、数据库、代码解释器)完成精确推理的能力 |
| GraphRAG | Graph-based RAG | 在向量检索之上叠加知识图谱关系查询的 RAG 变体,能处理多跳推理问题 |
| 思维链 | Chain-of-Thought | 引导 LLM 逐步展开推理过程的提示技术,模拟 System 2 的慢思考 |
- RAG:Lewis et al., NeurIPS 2020;Microsoft GraphRAG(2024)直接把知识图谱嵌入检索增强生成。RAG 在生成分类中的位置详见其他交叉分支。
- 神经符号 AI 分类:Kautz(AAAI 2020 主席)的分类体系是常用的参考框架。
- Kahneman System 1 / System 2:出自《思考,快与慢》(Thinking, Fast and Slow, 2011),这一二元框架常被用来描述神经符号混合架构的动机。