以下内容来自AI对话生成
简单来说,它们的核心区别是:向量化存储追求“语义上的相似”,而知识图谱追求“逻辑上的关联”。
我们可以用一个经典的例子来区分:
- 问题:“苹果公司的创始人史蒂夫·乔布斯最喜欢吃什么水果?”
- 向量化存储:可能会找到一段描述“史蒂夫·乔布斯饮食习惯”的文本,里面提到他喜欢某种水果。
- 知识图谱:会通过关系路径精准找到
苹果公司 -> 创始人 -> 史蒂夫·乔布斯
,然后再去看史蒂夫·乔布斯 -> 喜欢的水果 -> ?
这个属性。
下面我们从多个维度进行详细对比,并用一个表格和比喻来总结。
核心区别对比表
特性维度 | 向量化存储(Vector Store) | 知识图谱(Knowledge Graph, KG) |
---|---|---|
本质 | 统计学模型 | 符号主义模型 |
数据表示 | 嵌入向量(Embeddings):一段文本或一个概念被表示为高维空间中的一个点。 | 三元组(Triples):(头实体,关系,尾实体),例如:(刘德华,主演,无间道) |
存储内容 | 非结构化/半结构化文本的数值化表示(如PDF段落、Word文档句子)。 | 结构化的、精炼的事实(实体、属性、关系)。 |
检索机制 | 相似性搜索(Similarity Search):计算查询向量与库中所有向量的距离(如余弦相似度),返回最“近”的文本块。 | 图查询/遍历(Graph Query/Traversal):使用图查询语言(如SPARQL、Cypher)遍历关系网络,找到相连的实体和关系。 |
核心优势 | 语义模糊匹配。擅长处理“意思差不多但表达不同”的查询。 | 精确关系推理。擅长回答“谁和谁是什么关系”、“A通过B和C有什么联系”这类问题。 |
典型查询 | “介绍一家由乔布斯创立的公司。” | “苹果公司的创始人是谁?” |
处理复杂查询 | 弱。很难直接回答需要多步逻辑推理的问题。 | 强。天生为多跳推理设计。 |
问:“马云和埃隆·马斯克有哪些共同的认识的人?” | 问:“马云和埃隆·马斯克有哪些共同的认识的人?” | |
答:可能检索出包含“马云”、“埃隆·马斯克”、“投资人”等信息的文本段落,需要LLM自己从中找出共同点。 | 答:可通过查询路径(马云 -> 认识 -> 投资人A) 和(埃隆·马斯克 -> 认识 -> 投资人A) 精确找到“投资人A”。 |
|
缺点 | 1. 幻觉风险:返回的文本片段可能包含无关信息,“污染”LLM的上下文。 2. 黑盒性:无法解释为什么这两个向量是相似的。 3. 不擅长精确查询:比如查询具体日期、名字。 |
1. 构建成本高:需要从文本中抽取和结构化数据,自动化抽取可能出错。 2. 信息丢失:存储的是精炼事实,失去了原始文本的丰富细节和语境。 3. 不灵活:难以处理高度模糊或开放性的查询。 |
一个生动的比喻
向量化存储就像一篇论文的“摘要”或“关键词”:
- 你想找和“气候变化对农业的影响”相关的论文,你会用这些关键词去搜索,搜索引擎会返回一系列语义相关的论文列表。你知道这些论文大概率和你感兴趣的主题有关,但具体内容需要你再去阅读(LLM去生成)。
知识图谱就像一篇论文末尾的“参考文献”章节:
- 它非常精确地告诉你,论文A的结论引用了来自机构B的科学家C在年份D发表的论文E。这是一种明确的、结构化的关系。你想追溯这个结论的源头,按图索骥即可。
对测试工程师的启示
理解这些区别有助于你设计更有针对性的测试策略:
-
测试“检索”环节时,侧重点不同:
- 测试向量检索:你要关注召回率(Recall) 和精度(Precision)。即:
- 查得全吗?(所有相关的文档片段都被检索出来了吗?)
- 查得准吗?(返回的结果里有多少是真正相关的?)
- 测试图谱查询:你要关注准确性和完整性。即:
- 事实对吗?(查询返回的
(实体,关系,实体)
三元组是否100%正确?) - 路径全吗?(多跳查询是否返回了所有可能的路径?)
- 事实对吗?(查询返回的
- 测试向量检索:你要关注召回率(Recall) 和精度(Precision)。即:
-
设计测试用例的思路不同:
- 针对向量库:需要设计大量同义替换的查询用例。例如,文档中是“首席执行官”,用户查询是“CEO”,系统应能正确匹配。
- 针对知识图谱:需要设计多跳推理的查询用例。例如,“请列出我们公司所有在德国工作的后端工程师的经理的名字。” 这需要遍历
(员工) -[工作在]-> (德国)
,(员工) -[职位是]-> (后端工程师)
,(员工) -[汇报给]-> (经理)
等多重关系。
-
评估最终答案的标准也不同:
- 对于源自向量库的答案,要容忍一定的概括和总结性,重点检查是否有事实性错误(幻觉)。
- 对于源自知识图谱的答案,要求必须是精确的事实,不能有任何偏差。
现代架构:协同作战(Hybrid Search)
最重要的一点是,现代高级的RAG系统不会二选一,而是让它们协同作战,称为混合搜索(Hybrid Search)。
- 流程:用户查询同时发送给向量库和知识图谱。
- 向量库返回一组语义相关的文本片段。
- 知识图谱返回一组精确相关的结构化事实。
- 整合:将这两组结果组合成一个更丰富、更准确的上下文窗口,发送给LLM。
- 结果:LLM既能获得详细的背景信息(来自向量库),又能获得准确的数据支撑(来自知识图谱),生成的答案质量显著提升。
你的测试重点就需要扩展到这种混合模式:既要测试各自的结果,也要测试它们合并后作为LLM上下文的有效性,确保1+1>2。