在人工智能领域,大语言模型(LLMs)展现出了强大的推理、语言理解及创意能力。然而,如何高效整合外部知识,始终是一大挑战。
传统的微调与检索增强生成(RAG)方法各有弊端,微调成本高昂,RAG则因引入独立检索模块增加了复杂度。而随着知识库规模扩大,上下文学习的效率也愈发低下。在这样的背景下,微软推出的知识库增强语言模型(KBLaM),为这一难题提供了新的解决方案。
KBLaM 如何运作
1. 知识表示:KBLaM 将知识三元组(实体 - 属性 - 值)通过预训练的句子编码器和轻量级线性适配器,转化为连续的键值向量对,就像是给知识穿上了模型能读懂的“外衣” 。
2. 集成机制:它采用特殊的 “矩形注意力机制”(不妨理解为一种更高效的信息筛选方式),将知识直接集成到模型的注意力层中,而不像RAG那样把知识作为外部文本添加到提示里。这种方式就如同在模型内部搭建了一条直接获取知识的“高速通道” 。
3. 检索方式:在推理过程中,模型能学会动态检索相关知识向量,无需单独的检索步骤,实现了端到端的知识运用,大大简化了流程。
与RAG的显著差异
KBLaM 的卓越性能
KBLaM 在存储和处理知识方面表现出色,它能在单GPU上存储和处理超过10,000个知识三元组,这相当于大约200,000个文本token,差不多是一本中型书籍的信息量。
与传统上下文学习方法因自注意力机制导致的二次方内存增长不同,KBLaM的线性内存占用使得其能在处理大规模知识库时,资源消耗依然可控。例如,在响应时间上,KBLaM处理4096个知识三元组时的首token生成时间,比传统RAG处理5个知识三元组时还要短;在显存占用方面,KBLaM处理512个知识三元组时的显存使用量,与RAG处理5个知识三元组时相近。
可解释性与可靠性提升
KBLaM 的注意力权重能够清晰展示模型对知识的运用,增强了模型的可解释性。同时,当知识库中缺少必要信息时,模型能学会拒绝回答问题,有效减少了大语言模型常见的幻觉问题,在医疗、金融和科研等对准确性和可信度要求极高的领域,具有巨大的应用潜力。
未来展望与开源计划
KBLaM 为结构化知识与大语言模型的融合迈出了重要一步,为AI系统紧跟时代步伐、提供可靠知识驱动的回答奠定了基础。不过,目前该模型主要基于事实性问答对进行训练,未来还需拓展其在更复杂推理任务和多样知识领域的能力。
为推动研究进展,微软将发布KBLaM的代码和数据集,并计划与 Hugging Face transformers 库进行集成,期待更多研究者参与,共同推动AI迈向更准确、适应性更强、与现实世界深度融合的新阶段。
项目地址:github.com/microsoft/KBLaM
技术报告:arxiv.org/abs/2410.10450
领取专属 10元无门槛券
私享最新 技术干货