胶囊系统不是把资料存成一条条记录,而是要维护一组可以持续演化的知识页。这一节只处理三类页面:主题页、概念页和综合页。为了让结构更容易理解,下面只围绕一个例子展开:Embedding 向量。
4.1 为什么要区分三类知识页
上一节把胶囊系统拆成了几层:资料从交互层进入,证据层固定正文,索引层记录状态,理解层判断关系,演化层维护 Wiki。这里还需要继续追问一个问题:演化层到底在维护什么?
如果只说“维护 Wiki”,这个说法还是太粗。Wiki 里面不是只有一种页面。不同页面承担的职责不一样,写法也不一样。
有的页面负责长期维护一条知识线。它不是词条,也不是资料列表,而是一篇会随着新资料不断融合、校正和扩展的知识文章。
有的页面只负责解释一个基础概念。它不一定需要很长,但必须把定义、边界和典型用法讲准确。
还有一些页面来自用户的具体问题。它们会综合多个主题、多个概念和多份证据,整理出一篇可以复用的回答。
放到 Embedding 这个例子里,可以先这样理解:
| 页面类型 | 主要作用 | Embedding 例子 |
|---|---|---|
| 主题页 | 长期维护一条知识线 | Embedding 向量 |
| 概念页 | 解释一个基础概念 | Token、向量空间、语义相似度 |
| 综合页 | 回答一个组合问题 | 为什么 Embedding 能用于语义检索 |
这三类页面不是为了制造复杂分类。它们的作用,是让 Hermes 在融合资料时知道:这份资料应该改变哪一类页面。
4.2 三类页面放在一起是什么样子
单独解释主题页、概念页和综合页,还是容易显得抽象。可以先看一组完整例子。
假设用户陆续存入了五份资料:
| 资料 | 内容 |
|---|---|
| 资料 A | 什么是 Embedding |
| 资料 B | 词向量为什么能表示语义 |
| 资料 C | 向量空间和余弦相似度 |
| 资料 D | Embedding 在语义检索里的作用 |
| 资料 E | RAG 为什么需要 Embedding |
这些资料进入胶囊系统以后,不应该变成五篇孤立摘要。它们应该长成一组互相连接的知识页。
Embedding 向量(主题页)
├─ 引用:Token(概念页)
├─ 引用:向量空间(概念页)
├─ 引用:语义相似度(概念页)
└─ 派生:为什么 Embedding 能用于语义检索(综合页)
这组页面里,“Embedding 向量”是主题页。它负责维护一条长期知识线:Embedding 是什么,它为什么要把文本变成向量,向量为什么能承载语义关系,它和检索、推荐、RAG 有什么关系。
“Token”“向量空间”“语义相似度”是概念页。它们不负责解释完整的 Embedding,只负责把某个基础概念讲准确。主题页讲到这些概念时,可以链接过去,而不是在每篇文章里重复解释一遍。
“为什么 Embedding 能用于语义检索”是综合页。它来自一个具体问题,需要同时引用 Embedding、向量空间、语义相似度和检索召回。它不是资料列表,而是一篇围绕问题写出的综合回答。
这样组织以后,用户看到的不是五份资料,也不是五个摘要,而是一组有主次、有链接关系的知识页。
4.3 主题页是一篇长期维护的知识文章
主题页是胶囊系统里最重要的一类页面。
这里的“主题”,不是标签,也不是分类目录。主题页更像一篇长期维护的知识文章。它围绕一个相对明确的问题或领域展开,后面有新资料进来时,Hermes 会把有用内容融合进去,让这篇文章变得更完整。
比如“Embedding 向量”可以是一篇主题页。它可以包含这些内容:
| 部分 | 说明 |
|---|---|
| 基本解释 | Embedding 是什么,为什么要把文本变成向量 |
| 直观理解 | 向量不是文字本身,而是模型用来表示意义的数字位置 |
| 关键概念 | Token、向量空间、维度、距离、相似度 |
| 工作方式 | 相似文本为什么会在向量空间里更接近 |
| 使用场景 | 语义检索、推荐、聚类、RAG |
| 边界和误区 | Embedding 不是“真正理解”,也不是万能语义压缩 |
一份新的资料进入以后,如果里面讲了余弦相似度,那么它不应该被追加到页面末尾,变成“新增资料一”。Hermes 应该重新阅读“Embedding 向量”这篇主题页,把余弦相似度融合进原来的“向量距离和语义相似度”部分。用户再次打开主题页时,看到的仍然是一篇完整文章,而不是按时间堆起来的资料摘录。
主题页的关键,是它有持续演化空间。它不是一次写完的文章,而是一条知识线。新资料可能让它增加一个例子,也可能让它修正一个误区,还可能让原来不够清楚的一段重新组织。
4.4 主题页的粒度不能太粗,也不能太细
主题页最容易出问题的地方,是粒度。
粒度太粗,页面会变成资料仓库。比如只建一个“大模型基础原理”主题页,把 Token、Embedding、Transformer、注意力机制、上下文窗口、训练目标全部塞进去,后面一定会越来越乱。
粒度太细,又会退化成标签系统。比如把“向量维度”“余弦距离”“向量归一化”全部单独做成主题页,页面之间会变得很碎。读者要理解 Embedding,反而需要在很多小页面之间跳来跳去。
比较合适的标准,是看它能不能形成一篇可以长期维护的知识文章。
| 判断问题 | 如果答案是肯定的 |
|---|---|
| 它能不能展开成一篇完整文章? | 可以考虑做主题页 |
| 它以后会不会不断吸收新资料? | 可以考虑做主题页 |
| 用户写作、学习时会不会反复调用它? | 可以考虑做主题页 |
| 它有没有清楚的边界,知道自己不讲什么? | 可以考虑做主题页 |
如果一个东西只能解释几句话,它通常不是主题页,而是概念页。如果一个东西覆盖范围太大,里面包含很多不同问题,就应该拆成多个主题页。
所以主题页的粒度,可以先按这个原则处理:宁可一开始稍微大一点,也不要切得太碎。等某个小节积累出足够多资料,再拆成新的主题页或概念页。
4.5 概念页负责解释基础概念
概念页比主题页小。
它的任务不是维护一条很长的知识线,而是把一个基础概念讲准确。很多主题页都会用到这些概念,所以概念页更像 Wiki 里的基础积木。
在 Embedding 这一组内容里,这些都可以是概念页:
| 概念页 | 需要讲清楚什么 |
|---|---|
| Token | 模型处理文本时看到的基本单位 |
| 向量空间 | 为什么可以用空间位置表示关系 |
| 余弦相似度 | 怎样比较两个向量方向是否接近 |
| 语义相似度 | 为什么两个句子意思接近时,向量可能更接近 |
| RAG | 为什么检索增强生成需要先找到相关材料 |
概念页不需要把所有相关知识都讲进去。比如“余弦相似度”这篇概念页,不需要展开整个 Embedding,也不需要讲完 RAG。它只需要回答几个问题:
-
这个概念是什么意思?
-
它和相近概念有什么区别?
-
它在 Embedding 里怎么使用?
-
有没有一个足够典型的例子?
概念页写清楚以后,主题页就不用反复解释同一个基础概念。比如“Embedding 向量”“语义检索”“RAG 基础原理”这些主题页,都可以引用“余弦相似度”这个概念页。
这会让知识结构更干净。主题页负责讲一条知识线,概念页负责把基础概念讲准。
4.6 综合页来自具体问题
综合页和前两类页面不一样。
主题页通常围绕一条知识线长期演化。概念页通常围绕一个基础概念展开。综合页则来自一个具体问题。
比如用户问:
为什么 Embedding 能用于语义检索?
这个问题不只属于“Embedding 向量”,也不只属于“语义检索”。Hermes 要回答它,可能需要同时参考这些内容:
| 资料来源 | 作用 |
|---|---|
| Embedding 向量主题页 | 说明文本为什么会被表示成向量 |
| 向量空间概念页 | 解释向量之间为什么可以比较距离 |
| 余弦相似度概念页 | 解释相似度计算方式 |
| RAG 主题页 | 说明检索结果怎样进入生成过程 |
| 原始证据页 | 核对具体说法、实验和例子 |
Hermes 最后整理出来的回答,就可以沉淀成一篇综合页。
综合页适合处理这类内容:
| 问题类型 | 例子 |
|---|---|
| 解释型问题 | 为什么 Embedding 能表示语义 |
| 对比型问题 | Embedding 检索和关键词检索有什么区别 |
| 应用型问题 | RAG 为什么需要先做向量检索 |
| 误区澄清 | Embedding 是不是等于模型真正理解了文本 |
综合页的价值在于,它保留了用户自己的问题。很多知识真正进入思考,不是因为资料被保存了,而是因为用户围绕这些资料提出了一个好问题。这个问题如果只留在聊天记录里,很快就会消失;写成综合页以后,它就能成为后续写作和复盘的材料。
4.7 用户怎么阅读这套 Wiki
知识页设计不能只考虑系统怎么写,还要考虑用户怎么读。
普通知识库很容易只剩一个搜索框。搜索当然重要,但如果一套 Wiki 只能搜索,它就没有真正形成知识结构。用户有时候知道自己要找什么,可以直接搜;但更多时候,用户只是隐约记得某个方向,或者想沿着一个主题继续看下去。
所以胶囊系统至少要支持三种阅读方式。
| 阅读方式 | 适合场景 |
|---|---|
| 搜索进入 | 用户已经知道要找什么,比如“Embedding 语义相似度” |
| 主题索引进入 | 用户只知道大方向,比如“大模型基础原理” |
| 页面链接进入 | 用户读到某个概念后,沿着内部链接继续阅读 |
搜索进入
搜索是最直接的入口。
比如用户搜索:
Embedding 语义相似度
系统不应该只返回原始资料,而应该优先返回知识页:
| 返回结果 | 为什么返回 |
|---|---|
| Embedding 向量主题页 | 里面包含 Embedding 的定义、用途和误区 |
| 语义相似度概念页 | 解释语义相近和向量接近之间的关系 |
| 余弦相似度概念页 | 解释常见相似度计算方式 |
| 为什么 Embedding 能用于语义检索综合页 | 回答 Embedding 和检索之间的关系 |
主题索引进入
胶囊系统还需要一个全局主题索引。它不是文件夹目录,而是一张知识地图。
比如:
大模型基础原理
├─ 文本表示
│ ├─ Token
│ ├─ Embedding 向量
│ └─ 向量空间
├─ 语义检索
│ ├─ 语义相似度
│ ├─ 余弦相似度
│ └─ 向量召回
└─ RAG
├─ 检索增强生成
├─ Chunk
└─ 召回与重排
这个索引页的作用,是让用户知道当前 Wiki 已经长出了哪些主要知识线。用户不一定每次都从搜索开始,也可以从这里进入一个方向,再沿着主题页继续阅读。
页面链接进入
每一篇知识页内部也应该有链接关系。
比如“Embedding 向量”主题页讲到文本进入模型之前的处理时,可以链接到:
Token
分词
上下文窗口
讲到向量之间的关系时,可以链接到:
向量空间
余弦相似度
语义相似度
这样用户读的就不是一篇孤立文章,而是一张可以继续展开的知识网。
4.8 页面之间应该保留什么链接
三类页面之间要有链接关系,否则它们只是分散的文档。
主题页应该链接到相关概念页和综合页。比如“Embedding 向量”主题页可以链接到“Token”“向量空间”“语义相似度”,也可以链接到“为什么 Embedding 能用于语义检索”。
概念页应该反向链接到使用它的主题页。比如“余弦相似度”概念页,可以列出哪些主题页正在使用这个概念。这样用户读完概念以后,可以回到具体场景里看它怎么用。
综合页应该列出它引用过的主题页、概念页和关键证据。综合页不是凭空生成的回答,它应该让用户知道这个回答来自哪些页面和材料。
可以先用这张表约束页面链接:
| 页面类型 | 应该链接到什么 |
|---|---|
| 主题页 | 相关概念页、相关综合页、关键证据页 |
| 概念页 | 使用这个概念的主题页、相近概念页 |
| 综合页 | 引用过的主题页、概念页、证据页 |
| 全局主题索引 | 主要主题页和重要概念页 |
还要区分两个索引。
全局主题索引负责整个 Wiki 的入口。它告诉用户:现在系统里有哪些主要知识线。
单个主题页目录负责一篇文章内部的定位。比如“Embedding 向量”主题页比较长时,页面顶部应该有目录,让用户直接跳到基本解释、关键概念、使用场景或常见误区。
4.9 新资料进入以后,应该更新哪类页面
理解了三类页面以后,新资料进入系统时,Hermes 就不应该只问“它属于哪个主题”。更完整的判断应该是:它应该改变哪一类知识页。
可以先用一个简单规则:
| 判断结果 | 处理方式 |
|---|---|
| 它能让某条知识线更完整 | 融合进主题页 |
| 它解释了一个基础概念 | 新建或更新概念页 |
| 它回答了一个具体组合问题 | 写成综合页 |
| 它对当前任何页面都没有帮助 | 标记为不被采纳 |
这里仍然要强调“融合”。如果一份资料被使用,它不应该只是被附在某个页面后面。Hermes 要根据页面原来的结构重新组织内容。主题页要继续像文章,概念页要继续像词条,综合页要继续像一个完整回答。
这也是胶囊系统和普通收藏夹的分界线。
收藏夹保存的是资料。胶囊系统维护的是知识页。资料只是输入,知识页才是用户以后真正会反复阅读、引用和修改的东西。
4.10 ■ 学点英语
| 中文 | English | 音标 | 说明 |
|---|---|---|---|
| 知识页 | Knowledge Page | /ˈnɑːlɪdʒ peɪdʒ/ | 围绕主题组织概念、材料和回答的页面 |
| 综合回答 | Synthesis Answer | /ˈsɪnθəsɪs ˈænsər/ | 整合多个来源后形成的结构化回答 |
| 概念节点 | Concept Node | /concept noʊd/ | 知识结构中表示一个概念的节点 |
| 答案合成 | Answer Synthesis | /answer ˈsɪnθəsɪs/ | 把多个材料中的信息组织成一个回答 |