想象一位老中医带刚毕业的实习生。实习生脑子灵光、说话利索,可一旦被问“这个方子凭什么开给发热三天的病人”,他就支支吾吾,甚至编出个不存在的“古方”。老中医不慌,转身从药柜里翻出泛黄的医案,指着其中一页说:“看,1921 年这本《温病条辨》里就记着这个证型,用的是银翘散加减。” 实习生恍然大悟——原来高手看病,不是靠死记硬背,而是先查证、再开方,还顺手把出处指给人看。 这个故事里藏着今天的主角:检索增强生成(RAG)。大模型就像那个实习生,知识面广却容易“信口开河”;老中医的医案库,就是循证医学里的文献知识库;“先翻书再回答”是检索;“指出出处”是引用约束;“查不到就说不确定”是幻觉抑制。RAG 要做的,就是让 AI 在回答医学问题时,每一步都有据可依、标得出处、敢说“不知道”。
掌握 RAG 是 AI 医疗从业者的必备技能:它能显著降低大模型幻觉,让临床问答系统达到“可用、可信、可追溯”的落地标准,是连接大模型与真实医学知识库的关键桥梁。
可视化演示
演示RAG在循证医学问答中的应用:知识库构建、检索策略与引用约束抑制幻觉,实现有据可依。
本节配有交互动效(进入视口后自动加载,约 3KB)。
知识库构建 文献 切分 Doc→Chunk 将医学文献切分为检索块
RAG基本原理
实习生跟诊第一天,患者问“反复头痛该吃什么药”,实习生张口就答“布洛芬”。老中医却皱起眉头:“病人还没查体、没看舌苔,你怎么敢定药?” 第二天,实习生学会了:先问诊、再翻书、后开方。这就是 RAG 的灵魂——先检索再生成,让模型不凭记忆“裸答”,而是带着材料作答。
把这一幕映射到技术上:患者的问题是用户的查询(query),医案库是外部知识库(knowledge base),老中医的大脑是大语言模型(LLM)。RAG(Retrieval-Augmented Generation,检索增强生成)先用检索器(retriever)找到与问题最相关的几篇文档片段,再把它们拼进提示词,最后让大模型基于这些“医案”生成答案。比起直接让大模型硬答,RAG 相当于给模型配了一位图书管理员,随时递上参考资料。
在循证医学场景中,这一步的意义怎么强调都不为过。医生问的是“这个症状最可能是什么病”,如果模型凭训练数据里的粗略印象回答,很容易给出过时或片面的结论。而 RAG 要求模型“先看书再说话”——检索到的文献本身就带着时效性(比如最新版指南),答案自然更贴近临床真实需求。
实习生终于明白,师傅的“翻书”不是装样子——那是在循证。每一次作答前先检索,本质上是在用最权威的证据做决策支撑,这正是循证医学“慎重、准确、明智地应用当前最佳证据”精神的技术实现。
- 候选集合知识库中共有 \(D\) 篇文档,每一篇都是潜在的参考材料。
- 相似度打分计算查询 \(q\) 与文档 \(d_i\) 的相关程度,分数越高越相关。
- 取前 K 个\(\arg\max\) 表示“找出使式子最大的那些”,这里就是取分数最高的前 \(K\) 篇。
知识库构建
老中医的药柜不是随便堆的:每味药贴好标签、按科目分抽屉、发霉的及时清理。实习生问:“师傅,您这柜子怎么收拾得这么整齐?” “病人等着救命,乱糟糟的柜子,关键时刻找不着药,那不是害人么?”
知识库构建就是整理药柜。在循证医学场景里,“药材”是论文、指南、病例报告和药品说明书。第一步是文献采集——从 PubMed、Cochrane、UpToDate 等权威来源抓取文献;第二步是清洗——去掉重复发表、撤稿、格式错乱的文档;第三步是文本切分(chunking)——论文太长(动辄几千字),而模型一次能“吃”的上下文有限,必须切成几百字的片段;第四步是向量化(embedding)——把每个片段变成一串数字向量,让计算机能算“哪段文字和问题最接近”。
切分不是拿刀乱砍。段落中缝切开,意思就断了——前一半说“阿司匹林有效”,后一半说“但出血风险高”,模型只读到前一半就可能误判。所以切分通常设置重叠窗口,让相邻片段保持一部分重合,像连环锁扣一样保住上下文连贯性。
药柜整理好了,还要定期检查——撤稿的论文要移除,新版指南要上架。知识库的质量直接决定了检索的上限:柜子里全是霉变的假药,再厉害的抓药师傅也抓不出一剂好方。维护一个“干净、新鲜、分好类”的医学知识库,是 RAG 系统的地基。
- 切分单元把一篇长文献拆成多个小片段,每个片段 \(c_j\) 是独立可检索的最小单位。
- 窗口大小\(s\) 控制每个片段的长度,太短丢失语义,太长浪费上下文空间。
- 重叠长度\(o\) 让相邻片段共享边界文字,防止一句话被从中间切断。
检索策略
药柜整理得井井有条,接下来考验的是“怎么找”。老中医教实习生:找药有三层功夫——先凭直觉锁定抽屉(向量检索),再顺着药名索引精确核对(关键字检索),最后把候选药方摊开逐一比对,选出最贴证的(重排序)。
向量检索是主力。每个文档片段被编码成一个向量(一堆数字),查询问题也被编码成向量,然后在向量空间里找“方向最接近”的邻居。这就像凭“清热解毒”的感觉在药柜里找药材,不需要说出确切药名。余弦相似度是最常用的度量。
关键字检索(BM25) 则像查字典:计算查询词在文档中出现频率、逆文档频率等,擅长精确匹配“阿司匹林”“心肌梗死”这类专有名词。混合检索把向量和关键字分数加权合并,兼顾语义理解与精确命中。重排序(rerank)是在第一轮粗筛出几十篇后,用更强的模型逐篇精读打分,最后只留 Top-3 到 Top-5。
实习生感慨:师傅找药不是蛮力翻柜子,而是“粗筛 + 精挑”层层递进。检索策略的每一层优化,都是在“快”与“准”之间寻找最佳平衡——这也是 RAG 系统设计中最见功力的一环。
- 向量点积逐维度相乘再相加,衡量两个向量在每一维上的一致程度。
- 向量模长每个向量的长度,把点积结果归一化,消除文本长短的影响。
- 余弦相似度夹角余弦值,只看方向不看长短,范围在 -1 到 1 之间。
引用约束
老中医开方有个规矩:每味药后都要注明“《伤寒论》第三十五条”“《温病条辨》某卷某条”。实习生不解:“师傅,病人只看病,看什么出处?” 老中医摇头:“没有出处的方子,病人不敢吃;出了事,更没人担得起。”
引用约束就是给大模型的答案上“户口”。在 RAG 生成阶段,提示词里会明确要求:“只能基于提供的参考材料作答,且每句话末尾必须标注引用编号,如 [1][2]。” 模型输出的每个论断,都要能找到它依据的那篇原文片段。更进一步,系统会在后处理时做上下文锚定——检查答案关键句和引用片段是否真的吻合,防止模型“张冠李戴”。
循证医学对引用的要求近乎苛刻:医生看一句话要能反查到原始研究、看一个结论要能追溯到 Meta 分析。这就要求 RAG 输出除了自然语言,还要附带机器可读的引用元数据(文献 ID、段落位置、发表年份),让“证据链”完整闭环。若某一句找不到对应出处,宁可删掉那句话,也不能留着无源之水。
有了强制引用,实习生再也不敢随口编“古方”了——没标出处的句子根本过不了师傅的审核关。引用约束本质上是给模型戴上了“紧箍咒”,让每一句医学论断都接受证据的检验。
- 单篇证据分每篇被引用的文献都与查询算一次相似度,得到单篇证据分。
- 累加求和把 \(K\) 篇文献的证据分加起来。
- 取平均值除以 \(K\) 得到平均水平,避免因为检索到一篇超高相关文献就过度自信。
幻觉抑制
这天实习生单独坐诊,病人问了个冷门问题。他大脑一片空白,但嘴比脑子快:“这个……可能是罕见的 XXX 综合征。” 老中医在旁边听着,等他讲完,把人送走,语重心长:“不知道就说不知道。编一个病名,病人可能在回家的路上就吓坏了。”
大模型和实习生一个毛病:上下文缺乏时,它会“逻辑自洽地编造”。这种看似合理实则错误的内容,AI 圈叫“幻觉(hallucination)”。RAG 的检索环节已经大幅减少了幻觉,但还不够——幻觉抑制措施必须跟上。
第一道防线是置信度阈值:如果证据强度 \(S_{\text{cite}}\) 低于某个阈值 \(\tau\),模型必须选择“拒答”,比如回答“目前知识库中未找到充分依据,建议就诊线下门诊”。第二道防线是无据拒答:提示词里明确要求,参考材料里没有的信息,一律回答“不知道”。第三道防线是溯源核查:输出后用专门的校验模型,把每个关键句与参考文献做一次语义匹配,匹配不上的句子直接过滤掉。
老中医的教诲在系统里化作了代码:每个答案都带着“信心值”,信心不足就主动闭嘴。医学 AI 最可贵的不是“什么都能答”,而是“知道什么不该答”——拒答机制,是保护患者安全最后一道闸门。
- 证据强度计算先算检索到的文献与问题的平均相似度,即证据强度。
- 阈值判断\(\tau\) 是预先设定的门槛,像老中医定的规矩“没有九成把握不说断定的话”。
- 条件分支满足条件走正常回答分支,不满足走拒答分支。
性能调优
药柜越来越大,从一墙柜子变成了三间库房。实习生发现师傅翻书变慢了,皱着眉说:“师傅,您这书是越囤越多,病人可等不起啊。” 老中医一笑,转身让徒弟在柜门上加标签索引,把常用的药挪到前排。
RAG 系统的性能瓶颈,第一个就是检索延迟。知识库动辄几十万片段,逐一计算相似度太慢。工程上是给向量建索引——常见的 HNSW(分层可导航小世界图)算法像给书加目录,先粗翻目录再精读页面,检索从秒级降到几十毫秒。第二个瓶颈是答案质量,需要用指标持续评估:召回率衡量“该找到的相关文献找到了多少”,精确率衡量“找到的结果里真正相关的占多少”,两者综合成 F1 分数。
调优还有一层“保鲜”问题:医学知识更新快,指南每几年就修订一次。系统要有在线增量更新能力——新论文发布当天就能进入知识库,旧版本自动降权。老中医把常用药放在前排、定期上架新药,RAG 系统同样要把“快速、准确、常新”这三个目标同时伺候好。
- 精确率检索返回的结果中,真正相关的比例。
- 召回率知识库中所有相关文献里,被成功检索出来的比例。
- 调和平均对两者取倒数平均后再取倒数,防止某一指标畸高掩盖另一指标很差。
局限展望
再厉害的老中医也有力所不及之处。实习生问起一种从未见过的热带寄生虫病,老中医坦言:“我行医四十年,没见过这个病,你容我翻遍藏书,可能也是两眼一抹黑。” 实习生明白了:再丰富药柜,也有装不下的药材。
RAG 的局限首先在于知识库覆盖:如果源头文献本身缺失或质量低,检索再强也是“无米之炊”;某些罕见病的英文资料寥寥,中文资料更少,检索召回率天然受限。其次是资源开销:向量化需要 GPU/CPU 计算,海量向量的存储与索引需要内存,检索+生成的双阶段调用增加了每次问答的延迟与成本。第三是法规伦理:医疗决策责任划分、患者隐私保护(知识库里可能含病历数据)、以及“AI 给出的建议谁来承担法律责任”——这些问题远超技术范畴。
展望未来,RAG 正朝着多模态检索(不只查文字,还能查影像、心电图数据)和知识图谱增强(把药物相互作用、疾病分类层级建模成图结构)方向演进。可以想象,未来的 AI 医生不仅有医案柜,还有解剖图谱墙和影像胶片库,问诊时“图、文、数”三管齐下。
实习生合上那本泛黄的笔记,望着满墙的书柜,想起师傅第一天说的话:“医学的本质是敬畏。书是工具,心是根本。” 技术也一样——RAG 再强,也只是辅助医生决策的工具,永远替代不了医者的审慎与担当。
AI 应用场景
临床决策支持系统
阶段:知识库构建 + 检索策略 + 引用约束
解决的问题:传统临床决策支持系统(CDSS)依赖专家人工维护规则库,更新慢且覆盖有限。医生输入“发热伴血小板减少”,系统往往只能给出宽泛列表,无法定位到最新指南和具体证型。RAG 将最新循证指南、药物说明书、本院诊疗规范向量化入库,医生提问后实时检索并生成带引用的建议,每个结论可一键跳转原文。
具体案例:某三甲医院呼吸科接入 RAG 问答系统。医生问“慢阻肺急性加重期抗菌药物选用”,系统返回引用 2024 GOLD 指南的推荐方案、备选药物及禁忌说明,每句话标注指南章节号。医生阅读 30 秒即可判断,替代了过去翻阅 PDF 指南十分钟的工作。
罕见病辅助诊断问答
阶段:幻觉抑制 + 性能调优
解决的问题:罕见病种类繁多(全球约 7000 种),任何医生都难以全记。传统搜索返回大量良莠不齐的信息,难以判断可信度。RAG 系统只检索权威罕见病数据库(如 Orphanet、OMIM),且设置高置信阈值——检索证据不足时明确回答“未找到匹配证据”,而不是硬凑一个诊断方向,避免误导医生。
具体案例:一位患者长期乏力、反复发热,多位医生未确诊。AI 医生助手将患者症状与 Orphanet 数据库中数千种罕见病比对,检索到“成人斯蒂尔病”的临床特征高度吻合,并附上 5 篇相关文献。虽未直接确诊,但为医生提供了新的排查方向,最终经风湿免疫科会诊确认。
患者科普与导诊
阶段:检索策略 + 引用约束
解决的问题:患者上网查病真假难辨,百度一下“头疼”可能吓出脑瘤。医院面向患者的科普机器人使用 RAG,只从小范围审核过的科普库里检索,同时强制引用——“为什么我常反酸?”回答后附 [1][2] 指向医院消化科官方科普文章。超出知识库的个性化诊疗问题(如“我的 CT 片子有什么问题”)直接拒答并引导挂门诊。
具体案例:某互联网医院上线“AI 导诊助手”,3 个月内处理 12 万次咨询。95% 的常见病科普问题得到带引用的回答,患者对回答的信任度评分高达 4.6/5;所有涉及具体诊断的建议都被安全拦截,转人工服务。
Python 演示
import math # 知识库:模拟经过清洗和切分的医学文献片段DOCUMENTS = [ {"id": "D001", "text": "Aspirin reduces fever and relieves pain but increases bleeding risk in elderly patients."}, {"id": "D002", "text": "Ibuprofen is effective for fever and pain but should be avoided in patients with kidney disease."}, {"id": "D003", "text": "Paracetamol is safe for most adults with fever, with a maximum daily dose of 3000 mg."}, {"id": "D004", "text": "Amoxicillin is a first-line antibiotic for bacterial pneumonia in adults."}, {"id": "D005", "text": "Cough persisting over three weeks requires chest imaging to rule out tuberculosis."}] STOP_WORDS = {"a", "an", "the", "for", "with", "in", "of", "on", "is", "and", "or", "but", "to", "should", "be", "that", "this", "as", "by", "from", "it"} def tokenize(text: str) -> list: return [w for w in text.lower().replace(",", "").replace(".", "").split() if w not in STOP_WORDS] def vectorize(text: str) -> dict: vec = {} for w in tokenize(text): vec[w] = vec.get(w, 0) + 1 return vec def cosine_sim(v1: dict, v2: dict) -> float: dot = sum(v1.get(w, 0) * v2.get(w, 0) for w in set(v1) | set(v2)) n1 = math.sqrt(sum(v * v for v in v1.values())) n2 = math.sqrt(sum(v * v for v in v2.values())) if n1 == 0 or n2 == 0: return 0.0 return dot / (n1 * n2) def bm25_overlap(query_vec: dict, doc_vec: dict) -> int: return sum(doc_vec.get(w, 0) for w in query_vec) def retrieve(query: str, top_k: int = 2) -> list: qv = vectorize(query) scored = [] for doc in DOCUMENTS: dv = vectorize(doc["text"]) semantic = cosine_sim(qv, dv) keyword = bm25_overlap(qv, dv) hybrid = 0.7 * semantic + 0.3 * keyword scored.append({"doc": doc, "score": hybrid}) scored.sort(key=lambda x: x["score"], reverse=True) return scored[:top_k] def generate_answer(query: str) -> str: hits = retrieve(query) if not hits or hits[0]["score"] < 0.05: return "无法给出有据可依的答案,请咨询医生。" * 0 # 拒答分支 if len(hits) < 1: return "抱歉,知识库中没有找到足够依据,请就医确诊。" refs = " ".join('[' + str(i + 1) + ']' for i in range(len(hits))) evidence = " ".join(d["doc"]["text"] + " [" + d["doc"]["id"] + "]" for d in hits) answer = "根据知识库中的资料," + evidence + " 参考以上证据," + refs return answer def main(): question = "fever and pain relief for elderly" print("Q:", question) print(hits_info := "检索到 {} 篇相关文献".format(len(retrieve(question)))) print("A:", generate_answer(question)) if __name__ == "__main__": main()
def vectorize(text: str) -> dict:将文本转为词频字典,相当于把文献片段变成“数字向量”。def cosine_sim(v1, v2) -> float:计算两个向量的余弦相似度,判断语义接近程度。semantic = cosine_sim(qv, dv)语义检索部分,捕捉“意思相近但用词不同”的匹配。keyword = bm25_overlap(qv, dv)关键字检索部分,保证专有名词精确命中。hybrid = 0.7 * semantic + 0.3 * keyword混合加权合并两种检索得分。scored.sort(... reverse=True)按综合得分降序排列,取出 Top-K 作为证据。if hits[0]["score"] < 0.05:置信阈值判断,证据不足时走拒答分支。evidence = ... doc["text"] + " [" + doc["id"] + "]"生成答案时拼接原文和文献 ID,实现引用约束。
常见误区
误区我一开始以为 RAG 就是在模型前面放一个 Google 搜索框,搜到什么粘贴给模型就行。简单省事,哪需要什么知识库工程?搜索 API 一接,万事大吉。
正解把 RAG 等同于“网页搜索 + 喂提示词”,会踩三个坑:一是网页搜索返回的是整篇网页,噪音巨大,模型被无关信息带偏;二是公网搜索没有医学专业性,搜到的可能是养生号文章;三是没有引用约束,模型还是会编。真正的 RAG 需要对知识库做清洗、切分、向量化、重排序,并对答案做引用校验——这是一整套工程,而不是一个搜索 API。
为何常见:RAG 的流程图看起来就是“搜索→拼接→生成”三步,很多人看到这个简化图,就误以为实现起来也只是调三个接口。
误区库里的文献越多,模型能参考的证据就越多,答案一定更全面、更准确。所以我要把所有能爬到的论文全塞进去,几百万篇都不嫌多。
正解知识库并非越大越好,而是“越精越好”。检索 Top-K 通常只有 3-5 篇,如果库里混入大量低质量、重复、过时的文献,检索器可能把宝贵的名额分给“看似相关实则无用”的内容——这就像药柜塞满杂草,抓药时反而找不到真药材。更重要的是,向量索引的体积过大会拖慢检索速度、增加内存开销。正确的做法是:宁缺毋滥,只收录经过同行评议、时效性强的权威文献,并定期清理撤稿和旧版本。
为何常见:“数据越多 AI 越强”是深度学习时代的惯性思维,但 RAG 是“检索+生成”架构,检索质量的权重远大于数据量,规模不等于精度。
误区RAG 已经把相关文献片段给模型了,模型照着抄还不会吗?我觉得有了检索增强,幻觉问题就彻底解决了,不用再做任何防幻觉处理。
正解检索增强大幅减少幻觉,但不能完全消除。模型可能忽略证据去“自由发挥”;也可能检索结果本身相关但内容被断章取义;还可能证据之间相互矛盾,模型“挑顺眼的”说。2023 年 Meta 的研究显示,即使提供了正确上下文,LLM 仍可能产生约 10% 的事实错误。所以必须叠加幻觉抑制措施:强制引用、置信阈值、输出后校验。RAG 是“减少幻觉的必要不充分条件”,不是“充分必要条件”。
为何常见:人们容易把“有了参考资料”等同于“一定会参考资料”,忽略了模型自身生成机制的不确定性——实习生面前摆着书,也可能懒得翻。
误区系统给出的答案有文献引用,看起来和医生写的病历一样专业,那就可以直接拿来做诊断结论,患者自己也能照着抓药。
正解RAG 的输出本质是“信息检索 + 文本生成”的结果,只是参考信息,不是诊断结论。医学诊断需要结合患者完整病史、查体、检验检查结果,而检索片段只覆盖了知识库中的部分信息;且引用文献可能是过时的(指南几年一改),也可能与患者特殊情况冲突。合规的医疗 AI 系统必须声明“仅供参考,不构成诊疗建议”,对具体用药、剂量类问题必须拒答并引导线下就医。RAG 是医生的工具,不是医生的替代品。
为何常见:LLM 输出的语言流畅、结构完整,加上“引用”这种学术形式后,会产生一种“权威感”的错觉,让非专业人士高估其可靠性。
面试题
Q1. RAG 中的 "R" 代表什么?
- A.检索(Retrieval)← 正确答案
- B.重写(Rewrite)
- C.推理(Reasoning)
- D.强化(Reinforce)
答案:A。RAG 全称 Retrieval-Augmented Generation,R 是 Retrieval(检索),核心是“先检索再生成”。就像老中医先翻医案再开方,检索环节是 RAG 区别于普通提示词工程的本质特征。
Q2. 在 RAG 中,知识库里的长文献通常需要先做什么处理?
- A.压缩成一段摘要
- B.切分为短片段← 正确答案
- C.翻译成英文
- D.加密存储
答案:B。长文献必须切分为数百字的片段(chunking),因为大模型上下文窗口有限,且检索单元越小定位越精准。切分时还要设置重叠,防止语义被切断。压缩成摘要会丢失细节,翻译和加密与检索无关。
Q3. RAG 中“引用约束”的主要目的是什么?
- A.让模型回答更流畅
- B.让每个结论可溯源← 正确答案
- C.减少计算资源
- D.加快检索速度
答案:B。引用约束要求模型每句话标注所依据的文献编号,目的是让答案可溯源、可核查。在循证医学中,引用是“证据链”的体现,也是审核者判断结论可靠性的基础。它不是为了让回答更流畅,也不直接减少计算量。
Q4. 余弦相似度的取值范围是多少?
- A.0 到 1
- B.-1 到 1← 正确答案
- C.0 到 100
- D.1 到 10
答案:B。余弦相似度是两个向量方向夹角的余弦值,范围为 -1 到 1。1 表示方向完全一致,-1 表示完全相反。在文本检索中,文档向量各维度通常非负,实际值多在 0 到 1 之间,但数学定义允许负值,所以正确范围是 -1 到 1。
Q5. 混合检索(Hybrid Search)融合了哪两种检索方式?
- A.向量检索和关键字检索← 正确答案
- B.布尔检索和图检索
- C.模糊检索和精确检索
- D.顺序检索和二分检索
答案:A。混合检索通常融合向量检索(语义相似度,擅长“意思相近说法不同”)和关键字检索(如 BM25,擅长精确匹配专有名词)。向量抓语义,关键字抓精确,两者加权互补。其他选项不是 RAG 中主流的混合组合。
Q6. 当 RAG 检索到的证据强度低于设定阈值时,系统应该怎么做?
- A.增大 Top-K 继续检索
- B.直接返回“未找到依据”← 正确答案
- C.让模型自由发挥回答
- D.随机挑选一篇文献
答案:B。证据不足时应该触发“无据拒答”——坦承知识库中没有充分依据。医学场景中,拒答是保护患者安全的机制:与其误导,不如诚实地建议线下就诊。增大 Top-K 或自由发挥都会增加幻觉风险,随机挑选更是毫无根据。
Q7. RAG 中知识库质量控制包括哪些措施?
- A.只收录权威期刊文献← 正确答案
- B.定期清理撤稿和过时版本← 正确答案
- C.无限制扩充数据量
- D.对文献做去重和格式清洗← 正确答案
答案:ABD。质量控制的核心是“精”而非“多”:只收录权威来源(A)、定期清理撤稿/旧版(B)、做去重与格式清洗(D)。无限制扩充数据量(C)反而会引入噪音,降低检索精度,不是质量控制手段。
Q8. 下列哪些属于 RAG 幻觉抑制的手段?
- A.设置置信度阈值← 正确答案
- B.强制答案标注引用← 正确答案
- C.增加模型参数量
- D.输出后溯源核查← 正确答案
答案:ABD。置信度阈值(A)、强制引用(B)、输出后溯源核查(D)都是 RAG 系统中常用的幻觉抑制手段。增加模型参数量(C)与幻觉抑制没有直接关系,模型更大不代表更会“查证”,反而可能更自信地编造。
Q9. F1 分数是精确率(Precision)和召回率(Recall)的什么平均?
- A.算术平均
- B.几何平均
- C.调和平均← 正确答案
- D.加权平均
答案:C。F1 是精确率和召回率的调和平均,公式为 2PR/(P+R)。调和平均对两者中较小值更敏感,能防止一个指标畸高掩盖另一个指标失真。算术平均和几何平均没有这种惩罚作用,加权平均需另设权重系数。
Q10. RAG 在循证医学应用中面临哪些主要局限?
- A.罕见病知识库覆盖不足← 正确答案
- B.存储和计算资源开销大← 正确答案
- C.不存在任何引用错误
- D.医疗责任划分尚不明确← 正确答案
答案:ABD。局限包括:罕见病文献本身稀少导致覆盖不足(A);大规模向量索引需要大量内存与计算资源(B);法律上 AI 建议的责任归属尚未明确(D)。引用错误在复杂检索场景下仍会出现,C 说“不存在任何引用错误”过于绝对,是错误选项。