乐于分享
好东西不私藏

OpenAI 创始人说"我们用 AI 的方式全错了"——他给出了什么方案?

OpenAI 创始人说"我们用 AI 的方式全错了"——他给出了什么方案?

2026 年 4 月,OpenAI 联合创始人 Andrej Karpathy 发了一个 GitHub Gist,一周内收获 5000+ Star,引爆了整个 AI 社区的大论战。他说:我们一直在用 RAG,但 RAG 的方式根本就是错的。

这篇文章,带你彻底搞懂这场论战背后的核心问题:当信息多到人脑装不下的时候,怎么设计一个好的结构,让 AI 帮你找到你需要的东西?

· · ·

一、一个你每天都在面对的问题

先别管什么 RAG、Wiki、知识图谱这些术语。我们从一个生活场景说起。

假设你是一个疯狂的读书人。过去三年,你读了 500 本书,记了几千条笔记,存了上万篇文章。现在有人问你一个问题:”关于人工智能对就业市场的影响,你怎么看?”

你知道你读过相关的内容,但散落在十几本书、几十篇文章、上百条笔记里。你要怎么找到它们,然后综合出一个有深度的回答?

这不是一个假设性问题。这就是每一个知识工作者每天面对的现实困境——我们很擅长”收集”信息,但很不擅长在需要的时候”找到”信息、”连接”信息。

AI 领域过去几年一直在试图解决这个问题。解决方案经历了好几代演化,各有优劣。今天我们就把这条线彻底梳理清楚。

· · ·

二、最原始的方案:传统 Wiki——”人肉整理,人肉搜索”

在 AI 介入之前,人类解决知识管理问题的经典方案就是 Wiki

最著名的例子是维基百科(Wikipedia)。企业里常见的 Confluence、Notion 的文档功能、飞书文档,本质上都是 Wiki 的变体。

Wiki 的工作方式很简单:

人来写——你读完一篇论文,手动把要点整理成一个页面

人来组织——给页面分类、打标签、建链接

人来搜索——需要信息时,自己去搜关键词、翻目录

这就像一个图书馆:书是人编写的,分类是人做的,找书也要人自己去书架上翻。

Wiki 的问题很致命:全靠人维护。团队一忙起来,没人更新文档,三个月后一半内容就过期了。新员工去搜索,找到的信息可能是两年前的。久而久之,Wiki 就变成了一座”知识坟场”——信息都在,但没人相信它是对的,也没人愿意花时间去更新它。

· · ·

三、第一次进化:RAG——”AI 帮你翻书,但每次都从头翻”

2020 年前后,随着大语言模型(LLM)的崛起,一种叫 RAG(Retrieval-Augmented Generation,检索增强生成) 的技术架构成了行业标准。

RAG 这三个词拆开看:

Retrieval(检索)——从知识库里找到相关内容

Augmented(增强)——用找到的内容增强模型的能力

Generation(生成)——模型基于这些内容生成回答

简单说:你问问题,AI 先去知识库里翻找相关内容,然后带着这些参考资料来回答你。

这就像从”自己去图书馆翻书”升级到了”有一个助手帮你翻书、然后口头给你总结”。

RAG 的具体流程是什么?

业界常说的”RAG 管道(pipeline)”指的就是从提问到回答的整个流水线。典型步骤是:

用户提问:”特斯拉的电池技术和比亚迪比怎么样?”

查询改写:把问题优化成更适合检索的形式

检索:从知识库里找到最相关的文档片段

重排序:对找到的片段按相关性重新排列

拼接上下文:把最相关的片段和原始问题拼在一起

LLM 生成回答:模型读完这些参考资料后生成答案

这条流水线里,“检索”这一步最关键——找不对资料,后面的回答再好也没用。

检索怎么做?——向量数据库登场

传统的关键词搜索有个致命缺陷:你搜”怎么让电动车跑得更远”,它找不到讲”续航里程优化”的文章,因为字面上没有匹配的词

向量数据库解决了这个问题。它的原理是:

把每段文本转化成一串数字(向量),这串数字代表了文本的”含义”

搜索时,把你的问题也转化成向量

然后计算你的问题和所有文档之间的”距离”

距离最近的就是最相关的

这样,”让车跑更远”和”提升续航里程”在向量空间里距离很近,即使字面上完全不同,也能被找到。

向量数据库擅长”模糊匹配”——理解同义词、理解语义。但它也有问题:有时候语义上沾边但实际不相关的东西也会被捞出来,产生”检索噪音”。

RAG 的问题在哪里?

RAG 用了两三年,大家发现了一个根本性的问题:它没有记忆,不会积累。

每次你提问,RAG 都要从头翻原始文档、重新拼凑答案。就像一个考生,每次考试都要从头翻教科书,从来不做笔记,从来不总结。哪怕你昨天刚问过几乎一样的问题,今天它还是要重新走一遍全流程。

更麻烦的是,当答案需要综合五六篇文档里的信息时,RAG 经常力不从心——因为它只是随机捞了几个”碎片”出来,碎片之间的关联是丢失的。

这就是 Karpathy 想解决的问题。

· · ·

四、第二次进化:LLM Wiki——”先做笔记,再开卷考试”

2026 年 4 月,Karpathy 提出了一个看似简单但很有深度的思路:为什么不让 LLM 先把知识整理成一个结构化的百科全书,查询时直接读百科全书,而不是每次都翻原始教材?

他管这个叫 LLM Wiki

它是怎么工作的?

第一步:扔原料。 你把所有原始材料——论文、PDF、网页、笔记——丢进一个 raw/ 文件夹。这些文件永远不会被修改,它们是”真相来源”。

第二步:LLM 编译。 这是核心创新。LLM 读取所有原始材料,然后像一个百科全书编辑一样工作:

为每个关键概念写一篇结构化的 Markdown 文章

在文章之间建立交叉引用(”详见 [[电池技术]] 页面”)

生成一个 index.md 索引文件,相当于目录

比如你扔了三篇关于特斯拉、电池技术和电动车市场的文章进去,LLM 就会分别创建三个词条页面,并且把它们关联起来——特斯拉的页面会引用电池技术页面,电池页面会链接到市场趋势页面。

第三步:查询。 用户提问时,LLM 先读 index.md(目录),判断需要看哪几篇文章,然后只读那几篇,就能回答了。

第四步:持续维护。 定期让 LLM 做”健康检查”——检查有没有过时的内容、断掉的链接、概念之间的矛盾,然后自动修复。

用 Karpathy 的原话来理解

Karpathy 用了一个软件工程的类比来解释这个思路:编译。

写程序时,你不会每次运行都重新解释源代码——你会先编译成可执行文件,然后直接运行。编译这一步虽然费时间,但之后每次执行都很快。

RAG 就像每次都在”解释执行源代码”——每次查询都重新读原始文档。LLM Wiki 就像先”编译”——把原始文档一次性编译成整理好的百科全书,之后每次查询都直接读编译产物。

LLM Wiki 的核心其实是索引设计

说到底,Wiki 的灵魂在于那个 index.md 索引。它本质上是一个精心设计的目录,让 LLM 在查询时能快速定位到相关内容。

如果你仔细想想,RAG 做的事情在逻辑上其实很类似——也是先通过某种索引(向量索引)找到相关内容,再交给 LLM。两者的差异在于:

RAG 的索引指向原始文档碎片——未加工的、可能是 PDF 第 14 页的某一段

Wiki 的索引指向预编译的文章——已经被综合、提炼、交叉引用过的内容

如果有人问你:”Wiki 不就是带预处理的 RAG 吗?”——你可以说:没错,Wiki 可以看作一种”预编译的 RAG”,关键区别在于索引指向的内容质量不同。

LLM Wiki 的局限

规模天花板。 Wiki 的工作方式是把索引和相关页面都塞进 LLM 的上下文窗口,让模型”通读”后回答。但 LLM 的上下文窗口是有限的——大约在 5 万到 10 万 token 的时候,Wiki 就开始吃力了。超过这个规模,要么塞不进去,要么模型对中间部分的内容关注度下降,回答质量变差。

错误会传播。 如果 LLM 在”编译”阶段理解错了某个概念,这个错误会被写进 Wiki 页面,后续所有基于这个页面的回答都会跟着出错。不像 RAG 每次都读原始文档,至少不会”以讹传讹”。

但错误传播不是无解——可以通过溯源追踪(provenance tracking) 来缓解:每篇 Wiki 页面都记录它的内容来自哪些原始文档,出错时可以追溯到源头。配合定期的”健康检查”和版本控制(用 Git),大部分问题是可控的。

单人使用。 Karpathy 原始设计是给个人研究者用的,没有考虑多人协作。两个人同时编辑同一个 Wiki 会冲突。当然,这个问题可以通过 Git 分支、Pull Request 或 CRDT 等技术解决,只是需要额外的工程投入。

· · ·

五、第三次进化:GraphRAG 和知识图谱——”画一张知识地图”

如果说 Wiki 是把知识整理成文章,那 GraphRAG 就是把知识整理成地图

什么是知识图谱?

先理解”图”(Graph)这个概念。这里的”图”不是图片,而是数据结构——由节点(点)和(线)组成的网络。

知识图谱就是专门用来表示知识的图:

节点代表实体:马斯克、特斯拉、锂电池

边代表关系:马斯克 —CEO→ 特斯拉、特斯拉 —使用→ 锂电池

关键在于,边是有明确语义含义的——不只是说”有关系”,而是说清楚这个关系是什么。”马斯克和特斯拉有关”vs”马斯克是特斯拉的 CEO”,后者才是知识图谱的表达方式。

Google 搜一个名人时右侧出现的信息卡片,就是典型的知识图谱应用。

GraphRAG 怎么工作?

GraphRAG 在 RAG 的基础上加了一步:不是直接从原始文档检索碎片,而是先从文档中提取实体和关系,构建知识图谱,然后查询时通过图上的遍历来找到相关内容。

它的”编译”产物是一个结构化的图数据库,里面存的是一个个”三元组”——(实体A, 关系, 实体B)

GraphRAG vs LLM Wiki:图结构 vs 自然语言

两者最本质的区别是知识的表达形式不同:

GraphRAG 用结构化的三元组:

(特斯拉, CEO, 马斯克)(特斯拉, 竞争对手, 比亚迪)(特斯拉, 使用, 锂电池)(锂电池, 可能被替代, 固态电池)

LLM Wiki 用自然语言文章:

特斯拉是全球领先的电动车制造商,由马斯克领导。其核心技术优势之一是电池管理系统,目前主要使用锂电池方案,但业界普遍认为固态电池可能在未来 5-10 年内逐步替代锂电池……

同样的知识,两种完全不同的表达方式。图结构更精确但更刚性,自然语言更灵活但更模糊。

具体来说:

图结构的优势——

精确查询: “马斯克担任 CEO 的所有公司”——沿边一查就出来了,确定性的,不遗漏

多跳推理: “特斯拉的电池供应商的矿产来源国”——图上跳两步就到,Wiki 里这信息可能散落在好几篇文章里

可扩展: 图天然适合扩展,节点越多、关系越丰富,价值越大,不受上下文窗口的限制

图结构的劣势——

表达力受限: “特斯拉可能在 2026 年考虑进入印度市场”——图里可能变成 (特斯拉, 进入, 印度市场),那个”可能””考虑”的不确定性就丢了

构建成本高: 实体识别、关系抽取、消歧……一堆 NLP 任务要做

不直观: 人类读一篇文章比看一张几千个节点的图容易得多

自然语言文章的优势和劣势正好反过来: 保留了完整的语境和微妙含义,人机都能读,构建简单;但不能精确计算,跨文档推理靠”运气”。

一个关键洞察:两者可以结合

一个很自然的想法是:每个概念既有一个图节点,也有一篇 Wiki 文章。

图节点存结构化关系,用于精确查询和多跳推理。Wiki 文章存丰富的自然语言描述,用于深度理解和上下文保留。简单问题查图,复杂问题读文章。

这就像一本教科书——索引和目录是结构化的(图),正文是自然语言的(Wiki)。你找”哪一章讲了光合作用”用目录,真正理解光合作用要读正文。两者并不矛盾,恰恰互补。

已经有开源项目(如 Graphify)在做这样的尝试——从文档中既生成知识图谱,也导出 Wiki 式的 Markdown 文档,两层共存。

· · ·

六、深入探讨:如何设计一个好的知识检索结构?

到这里,我们已经走过了整个技术光谱。现在回到最核心的问题:当信息量很大时,到底怎么设计一个好的结构来检索?

先理解三种基本的组织方式

信息可以用三种基本结构来组织,各有各的性格:

树形结构(分层文件夹)——就像公司的组织架构图。每个信息只属于一个分类,层级清晰,适合”这个东西是什么类别”的问题。缺点是一个东西往往属于多个类别,树形结构处理不好这种情况。

网状结构(知识图谱)——就像人际关系网。任何两个节点之间都可以有关系,适合”这个东西和那个东西有什么关系”的问题。缺点是规模大了以后,网络变得极其复杂,人类很难直接理解。

语义空间(向量数据库)——就像一个高维空间,每个信息是空间里的一个点,距离近的就是含义相似的。适合”和这个最相关的内容有哪些”的问题。缺点是完全是”黑箱”,你不知道为什么模型觉得两个东西相似。

这三种结构不是互斥的,而是可以叠加的。 一个好的检索系统往往同时使用多种结构。

树形 + 网状:可以共存吗?

完全可以,而且效果很好。

文件夹做粗分类(树形),图谱做细关联(网状)。文件夹相当于图书馆的”楼层和区域”,图谱相当于书和书之间的”引用关系”。

举个例子:

/电动车行业/  /公司/    特斯拉.md    比亚迪.md  /技术/    锂电池.md    固态电池.md

这是树形结构。然后在这之上,用图谱表达网状关系:特斯拉 —使用→ 锂电池特斯拉 —竞争→ 比亚迪固态电池 —可能替代→ 锂电池

树形管”归类”,图谱管”关联”。两者解决不同维度的问题。

能不能让文件夹也有”相似度”能力?

文件夹本身只是个存储结构,不具备”相似度”概念。但你可以在文件夹之上叠加一层搜索机制

给文件加标签/元数据:比如 特斯拉.md 标注 tags: 电动车, 美股, 自动驾驶,通过标签重叠度算相似

给文件生成向量嵌入:文件物理上还在文件夹里,但搜索走向量索引

用 LLM 理解文件夹结构:用户搜”续航优化”,LLM 理解这和电池技术相关,自动导航到正确目录

本质上,相似度检索需要某种数学表示(向量、标签权重等),纯文件夹提供不了。但文件夹可以当”存储层”,在上面叠”搜索层”。

关键词匹配 + 语义检索:混合检索为什么是最佳实践?

前面提到的”混合 BM25/向量检索”是目前 RAG 系统公认的最佳实践。

BM25 是经典的关键词匹配算法,可以理解为”高级版的 Ctrl+F”。它根据关键词出现的频率、文档长度等因素打分。优点是精确——搜”锂电池”就找包含这三个字的文档。缺点是死板——搜”让车跑更远”找不到讲”续航”的文档。

向量检索 把文本转成向量,通过计算向量距离找语义相似的内容。优点是理解同义词。缺点是可能过度泛化。

混合检索 两种一起用:BM25 负责精确命中,向量检索负责语义扩展,最后综合排序。

混合检索的缺点是两个分数怎么合并成一个排序没有万能公式,需要根据数据反复调权重。开发上倒不算太难,现在 Elasticsearch、Weaviate 等工具都内置了混合检索能力,不用从零实现。

· · ·

七、灵魂问题:知识图谱能让大模型自己构建吗?

看到这里你可能会想:构建知识图谱这么复杂,一定需要一堆专用模型和工具吧?

不一定。现在的 LLM 完全可以直接干这个活。

你可以给 LLM 这样一个 prompt:

“读这篇文章,提取出所有实体和它们之间的关系,输出 JSON 格式。”

LLM 就能直接输出结构化的图谱数据。这正是 Graphify 等工具的做法。

“重不重”取决于规模

几十篇文档:不重,LLM 跑一遍就行

几百篇文档:有点重,需要并行处理,token 成本不低

几万篇文档:很重,纯靠 LLM 成本太高,这时用轻量专用模型做初步抽取,LLM 做精细化处理更经济

至于图数据库,也不是必须的。小规模场景下,把关系存成 JSON 文件用代码遍历就够了。只有需要复杂的图查询(比如”找所有和特斯拉有两度以内关联的公司”)时,Neo4j 这样的图数据库才值得引入。

总结:小规模用 LLM 一把梭,大规模再引入专用组件。 先跑起来,再优化。

· · ·

八、语义图谱的阴暗面:别只看优点

知识图谱和语义图谱听起来很美好,但缺点同样明显:

构建质量难保证。 “苹果”是水果还是公司?”他”指的是谁?实体识别和关系抽取本身就容易出错,错误会直接污染图的质量。

维护是个无底洞。 一个人换了公司,一个政策被废除,图里的关系就要更新。很多知识图谱项目就是死在维护上——构建容易,保鲜太难。

不擅长模糊知识。 “这篇论文的方法比较有创新性”——这种主观判断很难用三元组表达。图谱更适合事实性的、结构清晰的知识。

冷启动成本高。 构建一个有用的图谱需要大量初始数据和调优,不像 Wiki 那样扔几篇文章就能开始用。

· · ·

九、全景图:这些方案到底怎么选?

梳理完所有方案,我们可以画一张全景图了。这些技术不是互相替代的关系,而是一条从简单到复杂的光谱

纯文本搜索 → RAG → LLM Wiki → Wiki + RAG 混合 → GraphRAG → 企业级知识图谱

从左到右:越来越结构化、越来越精确、越来越可扩展,但也越来越复杂、越来越贵、越来越难维护。

怎么选?看你的场景:

个人笔记/小型知识库(< 100 篇文档)——LLM Wiki 就够了。简单、直接、零基础设施。Karpathy 自己就是这么用的。

中型团队知识库(100-1000 篇文档)——Wiki + RAG 混合方案。Wiki 做预编译提升质量,RAG 做检索解决规模问题。

大型企业知识管理(1000+ 篇文档,多人协作)——GraphRAG 或完整的知识图谱方案。需要精确查询、权限控制、多人并发。

通用问答/客服场景——标准 RAG 管道。成熟、稳定、生态好。

最重要的认知是:不要追求一步到位。 先用最简单的方案跑起来,遇到瓶颈了再升级。从 LLM Wiki 起步,发现规模不够就加 RAG 检索层,发现关系推理不够就加图结构。这些技术本来就是可以渐进叠加的。

· · ·

十、最终思考:我们真正在解决什么问题?

回到开头那个场景:你有 500 本书的知识,怎么在需要时找到并综合它们?

RAG 说:我帮你翻书,每次都翻。 LLM Wiki 说:我先帮你做笔记,以后翻笔记就行。 GraphRAG 说:我帮你画一张知识地图,沿着地图走就能找到。

没有哪个方案是完美的。RAG 不积累,Wiki 有规模上限,GraphRAG 构建成本高。

但有一件事是确定的:我们正在从”人找信息”走向”信息找人”的时代。 过去你得知道去哪儿搜、搜什么关键词,现在你只需要说出你的问题,系统会帮你找到、整理、综合所有相关信息。

Karpathy 的 LLM Wiki 之所以引爆讨论,不是因为它是一个完美的解决方案,而是因为它让大家重新思考了一个根本问题:我们和知识的关系,应该由 AI 来重新设计了。

而你只需要知道这些方案各自擅长什么、不擅长什么,然后根据自己的需求选择最合适的那个——或者,把它们组合起来。

· · ·

如果这篇文章帮你理清了思路,欢迎分享给同样在知识管理道路上挣扎的朋友。关注我们,后续还会深入拆解每种方案的具体实现和踩坑指南。