让 LLM 当医生来审核病历,它可能连“漏掉的信息”都看不见
最近看到关于 LLM 在临床笔记验证中表现的研究,逻辑非常扎实但也挺让人后怕。研究者发现,现有的 LLM Judge(大模型裁判)存在一种极其严重的“缺失盲区”(Omission Blindness)。简单来说,如果你问模型“这份病历里有没有提到患者的过敏史?”,它表现得像个专家;但如果你问“这份病历里是否遗漏了必要的过敏史记录?”,它大概率会因为无法从现有文本中检索到“不存在”的信息,而给出错误的判定。
这背后的技术逻辑其实挺好理解。现在的 LLM 本质上是在做概率预测和模式匹配。当它执行验证任务时,它的注意力机制(Attention Mechanism)主要聚焦在已经存在的 Token 上。对于“存在性验证”(Presence Verification),它是在做语义匹配;但对于“缺失性验证”(Absence Verification),它需要一种极其强大的逻辑推理能力,去构建一个“理论上应该存在但实际未出现”的知识图谱,并对比当前文本。目前来看,即便是最顶尖的模型,在处理这种“从无到有”的逻辑判断时,依然非常吃力。
我在实际测试一些医疗相关的 AI Agent 工作流时也发现过类似的问题。如果你给它的 Prompt 只是简单的:
请检查以下病历是否符合临床规范,指出其中的错误或遗漏。
病历内容:[Input Text]模型往往只会挑刺,比如“术后观察时间不够”、“指标格式不对”,但它绝对不会告诉你“你漏掉了患者的既往心血管病史”。它无法跳出当前的上下文窗口去思考“一个完整的病历应该包含哪些维度”。
要解决这个问题,不能指望模型自己变聪明,必须得靠工程化的手段。目前比较靠谱的思路是把“验证任务”拆解成“填空题”:
优化验证工作流的实操思路
1. 构建标准本体库:不要直接问有没有遗漏,而是先根据临床指南,把一份标准病历拆解成一系列具体的、确定性的 Checkpoint(例如:生命体征、既往史、用药剂量、过敏史)。
2. 强制性逐项检索:通过 Prompt 引导模型进行“穷举式”检查,而不是“概括式”检查。
3. 双向验证逻辑:
- 第一步:提取病历中已有的信息。
- 第二步:将提取的信息与标准 Checkpoint 进行对比。
- 第三步:明确列出在 Checkpoint 中存在、但在提取信息中缺失的项。
这种从“判断题”到“对比题”的转变,才是让大模型在严肃医疗场景下真正落地的关键。如果只是把 LLM 当成一个只会读文章的读者,它永远无法发现那些致命的空白。