GPT-4、Bloom、LaMDA 等大型语言模型 (LLM) 在生成类似人类的文本方面表现出了令人印象深刻的能力。然而,它们在事实准确性和推理能力等方面仍然面临限制。这是因为,虽然它们的基础是从大量文本数据中提取统计模式,但它们缺乏结构化的知识源来为其输出提供依据。
最近,我们探索了利用外部知识源(如知识图谱和数据库)来增强 LLM,以解决这些差距。一种有前途的技术是将向量数据库(在向量空间中对实体和关系进行编码)与 LLM 集成。在这篇博文中,我将全面概述向量数据库如何增强 LLM 的功能以及这一新兴领域的当前研究状况。
矢量数据库概述
矢量数据库将人物、地点、组织等实体表示为高维语义空间中的矢量或嵌入。实体之间的关系也被编码为矢量,以捕获语义连接。一些从网络规模语料库创建的流行矢量数据库包括 Pinecone、Chroma、Qdarant、Milvus、Weaviate、Faiss、ConceptNet、Word2Vec 和 GloVe。
每个实体向量都充当压缩知识表示,用于对语义属性和使用上下文进行建模。这允许向量运算(如向量算术和相似度计算)发现关系和类比。例如,向量(“国王”) — 向量(“男人”) + 向量(“女人”)在向量空间中产生接近向量(“女王”)的向量。
通过将实体和关系置于向量空间中,这些数据库可以增强 LLM 的世界知识和推理能力。向量表示对事实和常识概念进行编码,而这些事实和常识概念可能不会直接表达在 LLM 的训练数据中。下一节将讨论集成的具体技术。
将向量与 LLM 进行整合的方法
有两种主要的集成策略允许 LLM 利用存储在矢量数据库中的信息:
- 使用向量进行检索和排序。向量可以跟踪 LLM 的相关上下文和可检索知识。
- 通过参数更新或训练将向量直接注入 LLM。这会将向量知识更内在地铭刻到模型中。
检索集成
LLM 与向量数据库索引配对,该索引将实体向量与相关上下文(如文本片段、关系图、图像和其他相关知识表示)相关联。当 LLM 处理带有标记实体的提示时,相应的实体向量用于查询此索引并检索基础信息。
例如,在向量索引中查询