AI 知识库技术演进拆解:从 RAG 到 NotebookLM,再到 LLM Wiki

NoteBookLM 是我比较推崇的一款 AI 知识库产品,他是一款基于用户上传资料的 AI 笔记与研究助手。

AI 知识库技术演进拆解:从 RAG 到 NotebookLM,再到 LLM Wiki

与 ChatGPT 或 Gemini 直接回答不同,它的核心逻辑是:只根据你喂给它的资料来回答,极大地降低了 AI 幻觉。

根据我的测试,NoteBookLM 无论从内容检索精准,还是输出精准都已经勉强达到了数字分身/同事.skill的最低要求:

AI 知识库技术演进拆解:从 RAG 到 NotebookLM,再到 LLM Wiki

严格来说,一套好的 AI 知识库大概率是一套 RAG 系统,但在 NoteBookLM 这套工具上我又看不到 RAG 存在的痕迹,作为 AI 知识库专研者,我一直对其技术路径非常感兴趣,于是揭秘者就出现了:

Karpathy 在 2026 年 4 月 4 日发布了 GitHub Gist《LLM Wiki》

他的核心观点是:传统 RAG / NotebookLM / ChatGPT 文件上传,大多是:

上传资料 → 查询时召回相关片段 → 临时综合回答

但问题是:每次问问题,模型都在重新从碎片里现拼答案,知识没有持续沉淀。Karpathy 提出的 LLM Wiki 则是:

原始资料不动 → LLM 读取资料 → 增量维护一个结构化 Wiki → 不断更新实体页、主题页、交叉引用、矛盾点和综合结论

也就是说,它不是查询时拼答案,而是提前把知识编译成一个可持续演化的知识结构,这就跟我们之前做深度 AI 知识库所用到的知识很类似了:

AI 知识库技术演进拆解:从 RAG 到 NotebookLM,再到 LLM Wiki

NotebookLM 的技术路径

这里需要说明的是 Karpathy 并没有 Google 内部技术路径图,他也是在自己做推衍,但其文档是有一定价值的,提供了一些思路。

更进一步 Google 官方其实已经公开过一些关于 NoteBookLM 非常关键的技术线索:

AI 知识库技术演进拆解:从 RAG 到 NotebookLM,再到 LLM Wiki

NotebookLM 是一个基于用户上传 sources 的 AI 笔记与研究助手,它可以根据用户提供的资料进行摘要、问答、生成 study guide,并且回答会带有引用,方便用户回到原文核查;

然后在 2025 年 10 月,更关键的信息产生了:

Google 明确提到了 NotebookLM 内部存在一个 Retrieval and Ranking 过程,会从不同角度探索用户的 sources,再综合生成回答

这几个信息已经足够关键了。因为它基本说明 NotebookLM 不是一个简单的文件上传 + 大模型回答工具,而至少包含了几层能力:

Source 管理
    ↓
文档解析
    ↓
检索与排序
    ↓
长上下文组织
    ↓
基于资料生成
    ↓
引用与可追溯

所以 NotebookLM 其本质也是 RAG,只不过他不是我们常见的低配 RAG,而是一套被长上下文、检索排序、上下文工程、结构化笔记、source grounding 包装过的高阶知识库系统。

传统 RAG 的存在感很强,因为它的链路暴露得很明显:

分块 → 向量化 → 检索 → 重排 → 拼上下文 → 回答

但所有可以配置 RAG 的产品,比如 Coze、Dify,其数据处理(包括数据清晰、分块)都是很复杂,很令人头疼的存在,于是大家在 NotebookLM 的产品体验里,你看不到这些东西了,包括:

  1. 知识库配置
  2. TopK
  3. 向量召回
  4. 重排模型
  5. score 阈值

但这并不代表它没有这些东西,而是因为 Google 把这套工程链路自动化、黑盒化了,但如果将他隐藏的工程化部分打开,应该是这么一套系统:

用户上传资料 Sources
        ↓
文档解析与结构化
        ↓
多粒度索引
        ↓
Retrieval and Ranking
        ↓
长上下文装配
        ↓
Gemini 基于资料生成
        ↓
引用、摘要、问答、报告、音频

接下来,我们继续做展开:

RAG 产品化

既然 NotebookLM 本质上仍然是 RAG,为什么我们使用的时候完全感受不到 RAG 的存在?

这里我只能根据很多文档以及自己这三年的实践做猜测了:

传统 RAG 是一套开发者工具链,而 NotebookLM 更像一套被高度产品化之后的知识系统

传统 RAG 是什么感觉?

你要自己准备资料,自己清洗,自己分块,自己选择 embedding 模型,自己建向量库,自己决定 TopK,自己决定是否上 BM25,自己决定是否上 rerank,自己写 prompt 约束模型,自己处理资料不足时的拒答逻辑。

这一整套链路非常工程化,也非常折磨人,比如一个最普通、也是最恼火的问题:怎么分块?

  1. 你按固定长度分块,可能会把一个完整观点切碎;
  2. 你按标题分块,遇到结构不清晰的文档又会崩;
  3. 你按段落分块,可能 chunk 太碎,语义不完整;
  4. 你 chunk 太大,召回不准;
  5. 你 chunk 太小,回答没有上下文;
  6. ……

这里单单还是技术层面的问题,还不说数据怎么集合的问题,所以现在很多企业根本玩不起知识库,全部还在工作流的范畴左右横跳,原因无他,AI 知识库的工程细节过多了。

所以,如何将这套 RAG 工程链路产品化、黑盒化就是 NoteBookLM 类知识库产品在思考的问题了:把各种复杂的工程配置项变成系统默认能力

从用户视角,只需要关心三点:

  1. 我上传了哪些资料?
  2. 我想问什么问题?
  3. 我是否能回到原文核查?

至于背后的:

  1. 怎么解析?
  2. 怎么清洗?
  3. 怎么切块?
  4. 怎么建索引?
  5. 怎么召回?
  6. 怎么排序?
  7. 怎么拼上下文?
  8. 怎么做引用?

全部由系统完成,整个黑盒是把知识库工程收进系统内部了。

那问题来了,如果 NotebookLM 把这些复杂工程都藏到了产品后面,那它背后的系统到底可能是什么样?

我认为可以先用一张整体技术架构来理解,可以将整个链路分为七层:

AI 知识库技术演进拆解:从 RAG 到 NotebookLM,再到 LLM Wiki

一、Source 接入

NotebookLM 的入口是 sources,这背后是有点逻辑的,名字不同意义就不同。

普通文件上传是:

我给模型一些上下文,让它临时读一下

sources 的话,意味着:

我把这些资料加入一个 Notebook,后续所有问答、摘要、报告都围绕这些 sources 展开

所以,NoteBookLM的对象展开就不是单个文件了,而是一个资料节点:

Notebook
  ├── Sources:用户上传的资料
  ├── Notes:用户笔记
  ├── Conversations:历史对话
  ├── Indexes:索引系统
  └── Settings:Notebook 配置

这里的核心是产品抽象,也就是把资料当成可以被引用和追溯的事实来源。

二、文档理解

很多 RAG 的第一步都是PDF 转文本,但如果你真做过企业知识库就知道,这一步工作量非常大,也容易处理得很粗糙。因为一份资料里真正有价值的不只是正文,还有:

标题层级
章节关系
页码
表格
图片
图注
目录
脚注
参考文献
时间
作者
来源

而我们在整理的时候,很容易把这些弄丢,于是我们糊弄文档后,就轮着 AI 来糊弄我们了,比如一份报告里有一个结论:

企业落地 Agent 最大的风险不是模型能力,而是业务流程不可观测

这句话如果单独切出来,模型就不可能知道它属于哪个章节、对应哪个案例、是不是作者结论、有没有限定条件。

如果要做 RAG 产品的话,在文档理解层就要下功夫,要做的不只是抽文本,而是恢复结构:

原始文件
    ↓
文本抽取
    ↓
版面分析
    ↓
标题层级识别
    ↓
表格 / 图片 / 图注处理
    ↓
章节树构建
    ↓
元数据绑定

这一步决定了知识库的上限,因为后面的 chunk、索引、引用、上下文扩展,都依赖这里的结构。

如果这里做得很差,后面就只能在一堆碎片里硬搜

所以这里 RAG 产品第一个难点也可能是最大的难点也就来了:把原始资料还原成机器可处理、可切分、可索引、可引用的结构化文档。

这也是很多企业知识库效果差的根源。大家太早进入了向量库和 embedding,却忽略了前面的 document understanding。

这里我也补一句:

就算我们知道了这是 NoteBookLM 技术路径的核心,但我们其实也是做不出来的

因为 Google 本来在信息搜索这块就是世界 T0 级别的,所以他们在文档处理这边会很屌,一般的公司技术力没有那个位置

比如同样的知识库产品 腾讯IMA,他们技术路径应该是类似的,但效果就会差很多,原因就出在文档理解这里

最难:文档理解

这里可以再展开一点,因为我现在越来越觉得,文档理解可能是整个 RAG 产品里最难的一层。

很多人以为 RAG 的难点在向量库,在 embedding,在 rerank,但这些东西更多是检索算法层的问题;真正决定知识库上限的,往往是前面的资料有没有被正确理解。

因为他们本质上都是在已经被处理好的材料上做优化

如果文档理解做得不好,后面就会进入一种很尴尬的状态:

垃圾解析
    ↓
垃圾切块
    ↓
垃圾向量化
    ↓
垃圾召回
    ↓
模型一本正经地基于垃圾回答

这也是为什么很多企业知识库一开始 demo 看起来还行,但一进入真实资料就崩。

因为真实企业资料不是干净的 Markdown,而是 PDF、Word、PPT、扫描件、表格、合同、财报、产品手册、培训材料、客服记录的混合体,他们会烂到你看不下去…

人类读文档的时候,会天然理解页面结构。我们知道哪个是标题,哪个是正文,哪个是脚注,哪个是表格,哪个是图注,哪个是附录,哪个是引用来源。

这里的所谓文档理解其实就是要去模拟着整个部分,但现阶段用 AI 做文本抽取,很容易把这些结构全部打平:

AI 知识库技术演进拆解:从 RAG 到 NotebookLM,再到 LLM Wiki

这里最核心的是两个字:还原。不是把文档转成文本,而是尽可能还原文档原本的知识结构。比如一份公司年报里写:

7 经营情况讨论与分析
  7.2 收入与成本
    7.2.1 毛利及毛利率

如果系统只抽出了

2024 年公司毛利率为 38.4%

那么这个片段本身当然有用,但它的语境已经丢了一半,它属于哪个章节?是不是管理层讨论?是不是财务报表注释?有没有同比解释?有没有影响因素?这些信息都需要通过章节结构才能找回来。

再比如表格,很多企业知识库真正有价值的信息都在表格里。合同金额、项目周期、产品参数、财务指标、医学推荐等级、实验结果,往往都不是自然段,而是二维结构。如果表格被解析成一串混乱文本:

年份 收入 毛利率 2023 100亿 35.2% 2024 120亿 38.4%

模型虽然可能猜出来,但这就已经进入不稳定状态了,更好的做法是把表格转成结构化对象(markdown或者HTML都行):

Table
  ├── title:经营指标
  ├── columns:年份 / 收入 / 毛利率
  ├── rows:2023 / 100亿 / 35.2%
  ├── rows:2024 / 120亿 / 38.4%
  └── page:46

这样后面无论是检索、引用,还是回答2024 年毛利率是多少,都会稳定很多。

所以我猜 NotebookLM 这类产品,在文档理解层一定不是简单 OCR,而是会做非常重的 document understanding。它至少要知道:

这一段属于哪个 source
属于哪个章节
在第几页
前后文是什么
是不是表格
是不是图注
是不是脚注
是否能作为引用证据

这也是为什么 Google 做 NotebookLM 有天然优势。因为 Google 本来就是搜索、OCR、文档解析、网页理解、多模态理解领域最强的公司之一。它在文档理解这层的积累,普通创业公司很难复刻。

至于说如何实现,我觉得 PageIndex 这种技术思路也值得关注:

AI 知识库技术演进拆解:从 RAG 到 NotebookLM,再到 LLM Wiki

它的核心不是直接把文档切成一堆 chunk,而是先把长文档解析成类似目录树的结构,再基于树搜索去定位相关章节,这个思路其实很接近人读文档的方式:

# 7 经营情况讨论与分析(MD&A)
## 7.2 收入与成本
### 7.2.1 毛利及毛利率
... 2024 财年,公司毛利率为 **38.4%**(见合并利润表注释 3)...

本身的文档是很大的,他解析出来变成了这样:

{
  "title""Management’s Discussion and Analysis",
"node_id""0004",
"page_index": 35,
"nodes": [
    {
      "title""Results of Operations",
      "node_id""0005",
      "page_index": 40,
      "nodes": [
        {
          "title""Gross Margin",
          "node_id""0006",
          "page_index": 45,
          "summary""2024 年毛利率及同比变动,影响因素为产品结构与成本控制..."
        }
      ]
    }
  ]
}

思路肯定是对的,但实际使用起来就差点意思了,而且从底层结构来说,它更适合结构化长文档,不一定适合客服记录、聊天记录、碎片化 FAQ、短文章合集这类弱结构资料。

真实系统里,更可能是混合策略,这里就能体现出 RAG 产品的工程复杂度了:

结构化长文档 → 文档树 / PageIndex / 树搜索
碎片化知识 → 向量检索 + BM25 + Rerank
表格型资料 → 表格结构化 + 字段查询
多模态资料 → OCR / ASR / 图表理解 / 多模态摘要

好了,我们这里不展开,继续打开 NoteBookLM 的七层黑盒:

三、Chunk

传统 RAG 喜欢讨论 chunk size,RAG 产品一定不会只有一种 chunk,它更可能维护多种粒度:

Source 级别
Chapter 级别
Section 级别
Paragraph 级别
Chunk 级别
Sentence 级别

为什么要多粒度?因为不同问题需要不同粒度的证据:

  1. 用户问一个细节问题时,需要 paragraph 或 chunk;
  2. 用户问一个章节观点时,需要 section;
  3. 用户问几份材料的整体结论时,需要 source summary 或 chapter summary;

所以系统不可能只存一种 chunk。更合理的结构是:

Document Tree
  ├── Source
  │    ├── Chapter
  │    │    ├── Section
  │    │    │    ├── Paragraph
  │    │    │    └── Chunk

这里最关键的依旧是:还原,也就是chunk 不能和原文结构脱钩。一个 chunk 应该知道:

它来自哪个 source
属于哪个章节
前后文是什么
页码是多少
原文位置在哪里
能不能回溯引用

这里的 chunk 就是带结构的逻辑单元了,可以粗略理解成:

Chunk
  ├── text:文本内容
  ├── source_id:来自哪个资料
  ├── section_id:属于哪个章节
  ├── position:原文位置
  ├── page_range:页码范围
  └── citation_ref:引用回溯信息

这里是可溯源的关键,证据早就准备好了。

四、索引

与之前一样,如果要做 RAG 产品,那么所有可能的索引形式,什么时候适合什么就全部要熟悉了:

Vector Index
处理语义相似。

Keyword / BM25 Index
处理关键词精确匹配。

Metadata Index
处理来源、时间、类型、作者、页码等过滤。

Document Tree Index
处理章节层级和上下文扩展。

Citation Index
处理引用回溯。

Conversation / Note Index
处理用户笔记和历史对话。

所以这里可以将整个入库流程串起来了:

Source
  ↓
文档解析
  ↓
结构化文档树
  ↓
多粒度切分
  ↓
生成向量索引
  ↓
生成关键词索引
  ↓
生成元数据索引
  ↓
生成引用映射
  ↓
写入 Notebook

这一步对比传统 RAG 时候要注意:高阶 RAG 不是不要向量库,而是不能只有向量库。甚至一轮走下来,可能多数情况下可能真的用不上向量库…

因为向量检索适合找语义相似,但不适合解决所有问题,甚至多数时候都不适合

比如这些场景下,关键词索引往往更稳定:

某个专有名词
某个产品名
某个公式
某个引用页码
某个明确标题
某个用户笔记里的关键词

所以 NotebookLM 的 Retrieval and Ranking,很可能不是单一路径,而是混合检索。

五、Retrieval and Ranking

到了这里,才进入我们熟悉的 RAG 核心环节。

但 NotebookLM 和低配 RAG 的相比,肯定不可能把用户问题直接丢给向量库搜一下。

它大概率会先做问题理解,这里又是一连串 RAG 工程改写了,比如用户问:

这几份资料里,对 AI 知识库未来发展最重要的判断是什么?

这个问题其实包含多个子任务:

找出每份资料里的核心判断
比较不同资料之间的共同点
识别冲突观点
提炼长期趋势
给出综合结论

所以系统需要先生成一个 query plan:

用户问题:
这几份资料里,对 AI 知识库未来发展最重要的判断是什么?

Query Plan:
  1. 找出资料中关于 AI 知识库未来趋势的内容
  2. 找出资料中对 RAG 局限的判断
  3. 找出关于知识结构化、Wiki 化、知识图谱的内容
  4. 找出 NotebookLM 与传统知识库的差异
  5. 找出数字分身 / 同事.skill 相关技术路径

然后系统再做多路召回:

每个子问题
  ↓
向量检索
  ↓
关键词检索
  ↓
元数据过滤
  ↓
候选内容合并
  ↓
去重

再进入排序:

候选证据
  ↓
相关性评分
  ↓
可信度评分
  ↓
引用质量评分
  ↓
覆盖度判断
  ↓
最终排序

这里影响 Ranking 的条件可就多了,除了相关性以外还有:

是否来自可信 source
是否覆盖多个 source
是否有足够上下文
是否和问题意图匹配
是否与其他证据重复
是否包含明确结论
是否适合作为引用

这一连串工程动作下来,大家就会认为 NoteBookLM 回答得很靠谱了,只不过还是那个逻辑,在整个文档理解那块其实就决定了这里能回答得怎么样,前置数据处理才是上限。

六、Context Engineering

NotebookLM 这种系统,在这里会进入 Context Engineering:它要把候选证据组织成一个模型真正能用的上下文包。

这个 Context Package 可能包含:

用户问题
问题意图
候选证据
证据所属 source
章节上下文
前后文扩展
多份资料摘要
历史对话
用户笔记
引用映射
回答约束
资料不足时的处理规则
AI 知识库技术演进拆解:从 RAG 到 NotebookLM,再到 LLM Wiki

有些同学可能就会说了,现在模型不都号称百万 Token 了吗,管他这么多干嘛,直接全塞进去不行?

只不过,百万上下文不是让你无脑塞全文,而是让你在证据之外,还能放入更多结构化辅助信息。比如:

证据前后文
章节摘要
source 摘要
历史对话
用户笔记
冲突观点
引用映射

模型底层也是具有注意力机制的,千万不要把模型当垃圾场。

七、答案生成

最后就是生成了,这类 AI 知识库产品,一般要遵守几个规则:

只基于资料回答
资料不足时保守回答
回答中的关键结论要能绑定证据
不同 source 有冲突时要指出冲突
不要把推断说成事实

所以生成链路大概是:

AI 知识库技术演进拆解:从 RAG 到 NotebookLM,再到 LLM Wiki

其实核心就是可溯源,也就是:

这句话来自哪个 source?
依据是哪几个 evidence block?
能不能回到原文?
如果没有依据,要不要删掉或弱化?

技术路径的最终演进

把上面全部串起来,一个 NotebookLM 类系统的完整回答流程大概是:

AI 知识库技术演进拆解:从 RAG 到 NotebookLM,再到 LLM Wiki

所以,如果我们把 NotebookLM 拆开,它并不神秘,它仍然是 RAG。

但它不是低配 RAG,而是把 RAG 的前处理、检索、排序、上下文组织、引用追溯和知识产品输出做成了一套完整系统,说实话一般公司应该做不了这东西,挺复杂的…

讲到这里,再回头看 Karpathy 的 LLM Wiki,整个链路就会更加完整了:

  1. NotebookLM 主要解决的是:资料如何被可信地问答和研究?
  2. LLM Wiki 进一步解决的是:资料如何被持续沉淀成结构化知识?

所以系统自动清洗、切块、索引、检索这件事,不能直接叫 Wiki 化,它应该叫:

RAG 工程自动化

而 Wiki 化是下一层:

知识结构沉淀

可以看到,NotebookLM 已经有一些 Wiki 化倾向,比如摘要、Study Guide、Briefing Doc、用户笔记、引用回溯。

这里可能也回答了后续 RAG 类 AI 知识库项目的技术路径会如何演进:

AI 知识库技术演进拆解:从 RAG 到 NotebookLM,再到 LLM Wiki

AI 知识库的技术路径大概会经历三个阶段:

  • 第一阶段:低配 RAG

资料切块 → 向量化 → 检索 → 回答

  • 第二阶段:NotebookLM 类产品化 RAG

文档理解 → 多索引 → Retrieval and Ranking → Context Engineering → Source Grounding → 知识产品输出

  • 第三阶段:LLM Wiki / 深度知识库

知识抽取 → 实体识别 → 主题页生成 → 关系链接 → 冲突检测 → 增量更新 → 持续演化

这三个阶段是一个逐层叠加的过程:

  1. 低配 RAG 是底座。
  2. NotebookLM 把这个底座产品化、自动化、可信化。
  3. LLM Wiki 再进一步,把知识结构沉淀为长期资产。

所以回到最开始的问题:NotebookLM 的核心实现逻辑,是不是就是系统帮我们做掉了清洗、切块、向量化?

答案可能是,但各位依旧逃离不了 RAG…

行业动态

Skill Factory:三天手搓面向Harness设计的技能工厂(附AI coding实践)

2026-5-14 8:32:36

行业动态

Agent 从一问一答到自主执行面临哪些挑战?

2026-5-15 18:31:09

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧