8809 种药品知识库:GraphRAG VS VectorRAG 大拼比

B站影视 2024-12-19 08:40 2

摘要:王豫翔,拥有20余年编程经验,Microsoft AI MVP,一直致力于分享 Azure AI 相关技术。曾在多个大型研讨会担任讲者,包含 TechEd、Tech Summit、Ignite China、Al Bootcamp 等。专注人工智能领域技术创新,

M

作者:王豫翔 - 微软最有价值专家(MVP)

排版:Alan Wang

王豫翔

微软最有价值专家(MVP)

王豫翔,拥有20余年编程经验,Microsoft AI MVP,一直致力于分享 Azure AI 相关技术。曾在多个大型研讨会担任讲者,包含 TechEd、Tech Summit、Ignite China、Al Bootcamp 等。专注人工智能领域技术创新,尤其是自然语言对话方向的颠覆性机会。

在上次进行《水浒传》全本 GraphRAG 验证后,我猜测对故事性复杂,人物众多,别名又多的场景下,GraphRAG 可能不是最好的选择,因此我和一家医药机构合作对 8809 种药品说明书构建知识库,在基本相同的条件下对 GraphRAG 和 VectorRAG 进行测试。

本次参与测试的药品文件的内容全本由医药专家进行人工检验,纯文本文件,内容及其干净,简单排版。

所有药品文件内容格式统一为如下:

通用名称:

商品名称:

汉语拼音:

药品性质:

相关疾病:

性状:

主要成份:

适应症:

规格:

不良反应:

用法用量:

禁忌:

注意事项:

孕妇及哺乳期妇女用药:

儿童用药:

老人用药:

药物相互作用:

药理毒理:

药代动力学:

贮藏:

有效期:

对任何大模型来讲,这都是难得的优质的训练语料。

文件个数:8809

文件总大小:13.5 MB(14,202,342 字节)、占用空间:34.6 MB(36,356,096 字节)

推理模型:Azure Open AI GPT-4o

向量模型:text-embedding-ada-002

向量库:Milvus

本次参与测试的文件都是小文件,每一个文件都是一个药品的说明书,而且每一个文件不超过 1000 字符,基本不会涉及切块的复杂度。在完成的模型上,每个 PK 场景都设计了 30 道问题在两套 RAG 上进行询问,要求在回答准确度、效率和多次提问回答相似度进行对比。

第一回合:建模效率

本场 PK 的目的是计算双方的建模速度。使用 VectorRAG 方案,通过 text-embedding-ada-002 编码后进入 Milvus 大约半小时完成。使用 GraphRAG 大约耗费了 72 小时,因为 create_base_extracted_entities 时间非常长,而且在 create_summarized_entities 多次失败。

建模效率上 VectorRAG 明显有优势,并且时间进度可以预估,GraphRAG 的时间几乎无法预估,一旦失败了,又需要重新做。

第二回合:单一产品回答

本场 PK 的目的是验证 RAG 的检索(召回)的正确性,只要召回的内容对,大模型的推理肯定没有问题。如果回答错误,则证明检索(召回)的内容有误。

提问都是精心设计的直白的问题:比如:

某某某药品有哪些成分

某某某药品不良反应有哪些

某某某药品的禁忌

某某某药品的使用事项

某某某药品对孕妇用药情况

某某某药品对儿童用药情况

某某某药品对老人用药情况

某某某药品的有效期

某某某药品的存储要求

某某某药品是否处方药

某某某药品的对应的疾病和适应症

这些问题在知识源中是明确进行了描述,无需复杂推理。

最终测试结果:

GraphRAG

VectorRAG

效率

较低,有较长延时

较快

准确度

只对了2次

30题全部正确

相同问题的两次回答

无论对错,两次返回都不同

两次返回内容都可以接受

这个结果完全超出了我的预估,对直接简单的问题,GraphRAG 没有给出好的表现。

第三回合:成分相关性回答

本场 PK 的目的是验证全局知识的构建能力,验证 RAG 是否可以对所有文件内容进行关联性统计。本回合分两个子场景进行测试。

子场景一

刻意选择回答需要的知识内容在极少的文件中可以找到,确保检索(召回)到的信息量较少,这是考虑到大模型的 Token 窗口有效,向量检索到的无关信息可能太多,可能因为 Token 窗口不足引发推理失败。

我们选择了几个比较特殊的成分(使用该成分的药品比较少)然后提出问题:

有哪些药品中有某某某成分

某某某成分被哪些药品使用

某某某成分在不同药品中的地位是一样的吗

A 药品和 B 药品是否都有某某某成分

最终测试结果:

效率

较低,有较长延时

较快

准确度

全部错误

全部正确

相同问题的两次回答

无论对错,两次返回都不同

两次返回内容都可以接受

子场景二

刻意选择在大量的药品中都具有的共同信息,考验向量模型召回排序和图谱的检索质量。问题有:

有哪些药品目前对儿童的用药情况未明确的

某某某成分在哪些药品的老人使用情况未明确的

某某某成分被哪些药品使用(这是一个常见的成分,在很多药品中被使用)

某症状在不考虑其他因素下,有哪些药品能有效治疗

非处方药有哪些药品

有效期在 n-m 之间的药品有哪些

最终测试结果:

效率

较低,有较长延时

较快

准确度

全部错误

部分错误

相同问题的两次回答

无论对错,两次返回都不同

错误的内容每次都返回不同

本次大拼比结论

从目前来看,GraphRAG 无论是时间成本,费用成本和最后的效果,在复杂的生产环境下,还是没有达到预期。主要原因是图谱的构建质量影响了其最后的检索。单纯的依赖大模型构建图谱,在复杂的生产环境下还是一个极大的挑战。没有万能的技术,没有银弹,脚踏实地做实验,光靠转发朋友圈别人的文章是做不好技术的。

微软最有价值专家(MVP)

微软最有价值专家是微软公司授予第三方技术专业人士的一个全球奖项。31年来,世界各地的技术社区领导者,因其在线上和线下的技术社区中分享专业知识和经验而获得此奖项。

MVP 是经过严格挑选的专家团队,他们代表着技术最精湛且最具智慧的人,是对社区投入极大的热情并乐于助人的专家。MVP 致力于通过演讲、论坛问答、创建网站、撰写博客、分享视频、开源项目、组织会议等方式来帮助他人,并最大程度地帮助微软技术社区用户使用 Microsoft 技术。

更多详情请登录官方网站:https://mvp.microsoft.com/zh-cn

新浪微博|微软中国MSDN

来源:opendotnet

相关推荐