微软刚发了一篇论文 KBLaM,可以将外部知识引入大模型
(我简单读了一下应该就是把知识库扔进大模型里面了,不过它的存储是线性增长而非二次方增长,但我估计如果知识库足够大,还是会吃很多显存)
KBLaM 是一种将结构化知识库直接集成到预训练 LLM 中的方法,与传统 RAG 有很大不同:
知识表示方式:KBLaM 将知识三元组(实体-属性-值)转换为连续的键值向量对(使用预训练的句子编码器和轻量级线性适配器)
集成机制:通过特殊的"矩形注意力机制"(rectangular attention)将知识直接集成到模型的注意力层中,而不是像 RAG 那样作为外部文本添加到提示中
检索方式:模型在推理过程中学会动态检索相关知识向量,无需单独的检索步骤 与 RAG 的主要区别
RAG 需要单独的检索模块,将检索到的文档片段附加到提示中,架构复杂 KBLaM 将知识直接集成到模型中,通过注意力机制实现隐式检索,是端到端的解决方案

0