|
传统RAG(检索增强生成)技术利用向量知识库,基于大模型的语义理解能力,通过对问题的拆解和向量搜索从知识库筛选内容。但该方法存在明显瓶颈: 1. 召回不完全:关键信息可能遗漏; 2. 召回不精准:返回大量无关内容; 3. 上下文超限:召回内容超出模型处理能力。 这些问题会导致大模型理解偏差,最终输出不精准的答案。
更关键的是,垂直领域的答案往往隐藏在文本深层。我们将答案分为四类: 1. 表面问答:答案直接显现在单段文本中(如“某政策发布日期”); 2. 总结问答:答案分散在多段文本,需总结(如“某方案的三大优势”); 3. 深度问答:答案需结合背景知识推理(如“某实验失败的根本原因”); 4. 关系问答:答案依赖实体、属性、关系的关联链(如“某故障对上下游系统的影响”)。
传统RAG在垂直领域效果有限,原因有二: 1. 通用大模型缺乏领域专业知识; 2. 专业答案常隐藏在文本中,需关联复杂前提知识。
知识问答的终极形态应模拟人类思考模式: 1. 双轨知识存储 1.1、向量库:存储原始文本(论文、手册等); 1.2、知识图谱:通过领域大模型提取文本中的**实体、属性、关系三元组**,存储于图数据库(如Neo4j),构建结构化知识网络。 2. 深度问题解析 拆解问题中的实体(如“设备A”)、属性(如“温度阈值”)、关系(如“导致”)、场景(如“高温环境”)及核心问题(如“故障原因”)。 3. 多模态答案生成 根据问题类型,动态组合: * 向量搜索(表面/总结型问题); * 图谱查询(深度/关系型问题,如路径推理、属性过滤); * 大模型总结与推理。 4. 可解释性为核心 输出完整思考链,包括: * 问题解析逻辑; * 知识检索路径; * 推理依据与计算过程。 (信任源于透明:人类需监督AI决策,必须理解其工作原理)
这里我们举一个医疗诊断场景的通俗案例: 用户问题: “患者服用降压药A后肌酐升高,他有糖尿病和肾结石,可能是什么原因?该如何调整用药?” 传统RAG的局限: - 可能只召回“药A的副作用说明书”(漏掉糖尿病关联); - 无法从“肾结石”推理到“肾功能代谢能力下降”; - 难以整合“药A+糖尿病+肾结石→肾功能风险→肌酐升高”的逻辑链。
终极形态的解决流程: 1. 知识存储 - 向量库:药品说明书、临床指南、病例报告; - 知识图谱: 2. 问题解析 - 实体:`患者`、`药A`、`肌酐`、`糖尿病`、`肾结石`; - 属性:`当前症状=肌酐升高`、`病史=糖尿病+肾结石`; - 关系:`药A→可能引起→肌酐升高`、`糖尿病/肾结石→加重→肾功能下降`; - 问题:归因分析 + 用药调整建议。 3. 答案生成 - 图谱推理: - 查询“药A”的副作用→确认“肌酐升高”; - 关联“糖尿病”和“肾结石”→二者均指向“肾功能下降”; - 结合医学规则:**肾功能下降者禁用可能损伤肾脏的药物**。 - **向量补充**:检索“药A替代方案”文献,发现“药B”适用但需评估肾功能。 4. 可解释性输出,思考过程: 4.1、 关键识别: - 核心问题:药A与肌酐升高的因果关系 + 用药调整建议 - 患者风险因素:糖尿病(损伤肾小球)、肾结石(阻塞尿路)→ 均导致**肾功能基础薄弱** 4.2、 知识检索: - 图谱路径:药A →[副作用]→ 肌酐升高 ←[风险因素]← 肾功能下降 ←[病因]← 糖尿病/肾结石 - 文献补充:药B可作为替代,但需满足eGFR(肾小球滤过率)>60ml/min 4.3、 推理结论: - 肌酐升高很可能源于药A对脆弱肾脏的额外负担; - 建议行动: (1) 立即停用药A; (2) 检测当前eGFR值; (3) 若eGFR>60,可换用药B(需监测血压); (4) 若eGFR<60,需重新评估用药方案(如药C)。 4. 风险提示: - 忽略肾功能直接换药B可能引发急性肾损伤! 该方案的核心价值: - 深度推理:串联药物副作用、病史、生理机制,而非机械匹配关键词; - 可解释性:医生可验证“药B推荐”是否基于当前肾功能数据,避免盲目依赖AI; - 动态决策:结合检测结果(eGFR)触发不同用药分支,实现个性化方案。
最后放出一张生成的卡片 |