模型领域的人员和知识流动太过活跃,单靠模型本身难以建立核心竞争力,通过将整个系统更紧密地耦合,挖掘出更高的效率、更好的效果,拉开与基于通用基础设施搭建的系统的差距,是顶尖团队积累长期竞争力的一种选项。中国在推荐系统领域已经吊打美国,这或许能成为中国在大模型领域反超美国的切入点。
一般的Transformer中FFN占了模型体积的2/3,但里面存在大量的边缘知识,比如 Doubao-1.5-vision-pro-32k 和 DeepSeek-R1 模型能够直接准确回答“马克思的生日”这一问题,而根据直观判断,这种边缘知识对大模型的逻辑、语言等核心能力没有贡献。如果能够基于一个没有太多边缘知识的核心模型,分别嵌入不同领域的知识,从而组成一套混合专家模型,此混合专家模型应该能够获得更优的效率与结果。另外,将模型与知识库深度结合,也能够看到工程上的显著效率提升。
知识外移
如何能够获得一个没有太多边缘知识的核心模型?从训练数据角度出发是一个方向,另一种可能的思路是对预训练模型进行裁剪。有许多对预训练模型进行裁剪的研究,或许其中部分算法可以实现这个效果,这里提出一种验证方法:首先基于一个完整的预训练模型抽取出里面的知识构建一个知识库,然后对预训练模型进行裁剪,最后对新模型结合知识库一起测试推理效果,如果推理效果没有损失,就证明裁剪算法只去掉了模型的边缘知识,裁剪完的模型就是我们想要的核心模型,抽取出的知识库在后文中仍然有用。
知识嵌入
得到核心模型之后,需要把知识分别嵌入不同的专家模型,组成目标的混合专家模型。清华艾清遥团队苏炜航的论文 Parametric Retrieval Augmented Generation 提供了一种把知识参数化嵌入到FFN的方法,而不是简单地将文档附加到输入上下文中,从而实现更高效、效果更好的RAG。
为了减少知识嵌入对模型其它能力的影响,对于重要性不够高的知识,可以只把知识的索引信息参数化并嵌入到模型中,靠多轮推理中查询知识库获取完整信息。
知识预编码
现在市面上的向量数据库是在大模型之前设计的,常规的RAG方案并没有在存储侧为大模型做专门的优化,查找到的内容还是以文本的形式传给大模型,比如这篇艾清遥团队董骞的论文:
知识编码
- 使用LLMs对每个外部知识文档进行编码,计算其KV表示,并将这些表示缓存起来。
- 缓存的知识表示可以离线存储,以便在推理时快速使用。
知识聚合
- 在推理时,将缓存的知识表示与上下文表示通过跨注意力机制结合。
- 通过一个可学习的权重矩阵控制外部知识的影响,初始时将该权重矩阵设置为零矩阵,以确保在训练初期LLMs依赖于其内部知识,随着训练的进行逐渐学习如何整合外部知识。
知识重组
大部分人在学习知识时,不会直接记忆文本,而是会把知识按照自己的理解重新组织,按照自己大脑重组的结构记忆,数据写入知识库是否也应如此?
大模型在微调阶段可以使用DeepSeek的强化学习方法增强知识结构化重组和针对自己组织的知识生成查询的能力。基于此增强,新知识加入时,由大模型对知识进行结构化重组、生成索引、Parametric RAG需要的文档增强以及参数化、计算内容的KV表示,按重组后的结构存入数据库。
系统架构
专家模型根据路由算法分组,每个分组内的专家完全一致。
系统全局共用一个全量知识库,知识库采用专门面向RAG的接口和架构设计,图结构+向量索引可能是最合适的。
每个推理服务内集成一个知识库客户端,客户端支持GPU RAM、CPU RAM、SSD等本地多级缓存,同一个专家分组内的客户端汇总热点索引和数据,然后通过P2P方式在分组内广播,查询时可以指定缓存内检索或者全局检索。
模型应该强化任务规划、动态决策能力,知识库的查询计划应该由模型生成。路由最好本身就是一个Agentic AI,负责最初的意图理解和任务规划、分发。
系统自我迭代
系统最初的专家分组和知识嵌入往往不是最优的状态,而且随着知识库内容的增加、用户兴趣的变化,表现会越来越差,所以需要一种机制能够让系统朝着更优的方向调整。
前文中提到,每个专家分组内会统计知识库的热点索引和数据,这显然应该成为Parametric RAG选择嵌入知识的来源:每个专家分组内定期将热点索引和数据计算成ΔW,替换掉专家模型中旧的ΔW。
总结
本文吸收了部分学术界的研究成果,提出了一种将agent、模型、知识库耦合成一套紧密完整的推理系统,预期在效率和效果上能够获得显著收益。