MedCoG: Maximizing LLM Inference Density in Medical Reasoning via Meta-Cognitive Regulation¶
会议: ICML 2026
arXiv: 2602.07905
代码: 未公开
领域: 医学推理 / LLM Agent / 元认知
关键词: 元认知调节、医学推理、知识图谱、推理密度、按需推理
一句话总结¶
MedCoG 让 LLM 先对医学问题做"复杂度 / 熟悉度 / 知识密度"三维自评,再按需调用 SCoT、记忆和知识图谱三类知识,把推理密度(达到同等精度所需的理论开销/实际开销)拉到 6.2×,同时在 5 个 MedQA 系列 hard set 上把平均准确率从 AFlow 的 34.5 提到 37.5。
研究背景与动机¶
领域现状:医学推理是 LLM 最难的领域之一,主流做法是给 LLM 套 agent 框架——多角色扮演(MedAgents、MDAgents)、KG 检索(MedReason)、历史经验记忆、迭代自我修正(Self-Refine、AFlow)等,靠 test-time scaling 堆性能。
现有痛点:作者画出 cost-accuracy Pareto 前沿后发现,这些方法基本服从 \(Acc = \alpha \ln(C) + \beta\) 的对数缩放律(\(R^2=0.996\)),算力翻倍只换来递减的精度增益;更糟糕的是在 MedQA-H 上 SCoT+KG 比纯 SCoT 还掉 4 分(41→37),盲目加 KG/Memory 反而干扰 LLM 自带知识。
核心矛盾:在 5 个策略池 {Zero-Shot, SCoT, SCoT+Mem, SCoT+KG, SCoT+KG+Mem} 上做 Oracle 实验,逐样本选最优策略居然能在 MedQA-Full 上飙到 98.98(超过 o1 的 96.52)、MedQA-H 上 67.0,而所有非 Oracle 单策略最高只有 50。也就是说,瓶颈不在知识范围,而在缺乏"逐样本选择正确策略"的机制。
本文目标:让 LLM 自己判断"我这道题需要哪类知识、需要多少",而不是无差别地把 KG+Memory+CoT 全堆上去。
切入角度:借鉴认知科学里的 meta-cognition(Schraw 1998)——智能体应能评估自身认知状态再选策略。把 Tulving 的三类知识(Procedural / Episodic / Factual)对应到 SCoT / Memory / KG。
核心 idea:用一个 Meta-Cognition Regulator 在 SCoT、Memory、KG 之间做"按需路由",把缩放律从盲目扩大变成 LLM-centric on-demand reasoning,同时降本(避免无用知识)+ 提精(避免噪声知识)。
方法详解¶
整体框架¶
MedCoG = Meta-Cognition Regulator + Knowledge Executor。给定医学题 \(\mathcal{Q}\): 1. Regulator 的 Monitoring 输出三维状态向量 \(\mathbf{s}=[s_c, s_f, s_k]\)(复杂度 / 熟悉度 / 知识密度); 2. Planning 用非参数门控 \(I_j = \mathbb{1}(s_j > \tau_j)\) 路由到策略池 \(\mathcal{S}=\{\text{Zero-Shot, SCoT, SCoT+Mem, SCoT+KG, SCoT+KG+Mem}\}\),若 \(I_k=1\) 还会生成 KG verification plan; 3. Executor 按 plan 执行 SCoT(procedural)/ Memory retrieval(episodic)/ KG path search(factual); 4. 若用了 KG,Evaluating 检查检索证据是否充足,不足则最多再 refine 一次 plan 或回落到 SCoT 收尾。
关键设计¶
-
三维元认知监测 + 非参数门控路由:
- 功能:把 LLM 对自身的判断显式量化为三个标量 \(s_c, s_f, s_k\),再用阈值 \(\tau=[\tau_c, \tau_f, \tau_k]\) 决定要不要激活记忆和 KG。
- 核心思路:Complexity 看是否需要多跳推理;Familiarity 看题型是否像教科书案例(决定能否复用历史经验);Knowledge Density 看是否依赖具体医学事实。策略选择 \(\mathcal{M}=\pi(\mathbf{s};\tau) = \text{SCoT} \oplus \sum_{j\in\{f,k\}} I_j \cdot \mathcal{M}_j\),三个分数都低于阈值时直接 Zero-Shot。阈值用 50 个 held-out 样本校准,per-backbone calibration(不同 LLM 用不同 \(\tau\))。
- 设计动机:作者发现不同 LLM 元认知特征差异极大——o3-mini 过度自信(低估 KG 需求)、Qwen3-8B 在 Knowledge Density 上 F1 只有 0.33 完全崩溃、GPT-4o-mini 几乎不用 Memory;非参数门控 + per-backbone 阈值比训练一个 policy 网络更鲁棒,也避免了为每个 backbone 单独训模型。
-
KG verification plan + 实体三步 grounding:
- 功能:不是用整道题直接去 KG 里检索,而是先把问题分解成"验证对"\(\mathcal{V}(\mathcal{Q})=\{(v_i, h_i)\}\)(原子查询 + LLM 假设),再去 KG 找最短路径串联,从源头压缩搜索空间。
- 核心思路:实体 grounding 走三步——(1) KG-LLM 抽候选实体短语 \(\mathcal{E}_v, \mathcal{E}_h\);(2) 对每个候选用 bge-base-en-v1.5 在 PrimeKG(4M+ 关系)里找最相似实体 \(\hat{e}=\arg\max_{e^g \in \mathcal{E}} \text{sim}(\text{enc}_\theta(e), \text{enc}_\theta(e^g))\);(3) KG-LLM 再按上下文相关性 refine 一次。然后对所有 \((v_i, h_i)\) 求最短路径 \(\mathcal{P}^g = \bigcup \{\text{SP}(e_v, e_h)\}\),最后用 ranker 按与原题 \(\mathcal{Q}\) 的相似度取 Top-K=5。
- 设计动机:临床题里只有一小撮指标真正决定答案,直接整题检索会把生理指标、家族史等无关上下文一起带进 KG 噪声很大;先用 LLM 自己提"我想验证什么"再去查,本质上是把"先想要什么、再去查"的认知路径硬编码进流水线,避免 KG 检索常见的 hub entity 爆炸问题。
-
SCoT:结构化路径与推理链解耦的程序性知识:
- 功能:把"知道什么事实"和"知道怎么推"显式分开,先输出结构化实体-关系路径 \(\mathcal{P}^e\),再基于这些 anchor 出推理链 \(\mathcal{C}\),写成 \(\text{SCoT}=(\mathcal{P}^e, \mathcal{C})\)。
- 核心思路:所有"激活了任意一个 \(I_j\)"的样本都走 SCoT 作为基底;KG 激活时 \(\mathcal{P}^e\) 由检索结果填充,否则由 LLM 自己 elicit。Episodic Memory 复用同样的 SCoT 格式——Case Bank \(\mathcal{B}=(q_i, (\mathcal{P}^e_i, \mathcal{C}_i), r_i)\) 存历史问题、SCoT 轨迹和正误奖励 \(r_i \in \{0,1\}\),检索时按问题相似度取 Top-K=5(MedQA 1402 条 / MedMCQA 1305 条 / 其余三个数据集合并为 2707 条以测 OOD 迁移)。
- 设计动机:普通 CoT 把事实和推理混在一起,KG 检索结果塞进 prompt 后 LLM 经常顺着错误的 KG 路径硬编故事;结构化解耦让"事实层"和"推理层"可分别替换、可单独评估,也让 episodic memory 能直接复用——历史 SCoT 轨迹给 LLM 提供"这种题怎么拆"的程序性模板,而不是只给最终答案。
损失函数 / 训练策略¶
整套系统训练-free:用 GPT-4o (2024-08-06) 当 Regulator 和 SCoT backbone,GPT-4o-mini 做 KG grounding,temperature=0。可学习的只有 \(\tau\)(50 样本校准)和 ranker 用的 bge-base-en-v1.5(直接拿现成的)。KG 用 PrimeKG,Case Bank 从 MedReason 过滤而来(只保留含结构化路径的样本)。Evaluating 模块最多重 plan 2 轮以控开销。
实验关键数据¶
主实验(5 个 MedAgentsBench Hard Set,GPT-4o backbone,IIE* = 每千样本边际效率)¶
| 方法 | MedQA | MedMCQA | MMLU | MMLU-Pro | PubMedQA | Avg | IIE* |
|---|---|---|---|---|---|---|---|
| CoT (baseline) | 39.0 | 30.0 | 26.0 | 35.0 | 10.0 | 28.0 | Ref |
| Self-Refine | 41.0 | 34.0 | 34.2 | 34.0 | 13.0 | 31.2 | 0.345 |
| MultiPersona | 45.0 | 25.0 | 37.0 | 42.0 | 15.0 | 32.8 | 0.162 |
| AFlow | 48.0 | 31.0 | 38.4 | 37.0 | 18.0 | 34.5 | 0.141 |
| MedAgents | 43.0 | 30.0 | 28.8 | 8.0 | 15.0 | 25.0 | −0.035 |
| MDAgents | 36.0 | 22.0 | 24.7 | 8.0 | 11.0 | 20.3 | −0.165 |
| MedCoG-Meta | 52.0 | 36.0 | 35.6 | 44.0 | 20.0 | 37.5 | 0.438 |
| MedCoG-All (全开) | 50.0 | 32.0 | 28.8 | 36.0 | 19.0 | 33.2 | 0.181 |
MedCoG-Meta 比第二名 AFlow 平均高 8.7%,IIE 是 AFlow 的 3.1×;多个 medical agent 反而比 CoT 还差(IIE 为负),印证"盲目堆 agent 反伤 LLM 自带能力"。
Oracle 上界与推理密度¶
| Strategy (GPT-4o) | MedQA-Full | MedQA-H |
|---|---|---|
| Zero-Shot | 87.80 | 32.0 |
| SCoT | 89.55 | 41.0 |
| SCoT+Mem | 89.08 | 42.0 |
| SCoT+KG | 87.43 | 37.0 |
| SCoT+KG+Mem | 88.85 | 50.0 |
| MedCoG-Oracle | 98.98 | 67.0 |
| 当前 SOTA (o1/o3-mini) | 96.52 | 53.0 |
Oracle 显示策略池本身天花板已超过 o1,MedCoG-Meta 把 Inference Density \(\rho = f^{-1}(Acc_\mathcal{M}) / C_\mathcal{M}\) 拉到 6.2×(拟合曲线 \(R^2=0.996\)),意思是参考曲线上要达到同样精度得花 6.2 倍的钱。
关键发现¶
- 元认知监测可信度跟模型规模强相关:Qwen3-8B 在 Knowledge Density 上 F1=0.33 直接崩,扩到 32B/Max 后回到 0.79~0.80,说明 meta-cognition 本身需要足够大的模型;o3-mini 反而在 Familiarity 上过度自信(Recall 1.0 但 Precision 0.65)。
- KG 与 Memory 有协同效应:单独加 KG 在 MedQA-H 反而掉 4 分(41→37),但 SCoT+KG+Mem 一下飙到 50;作者解释为 episodic memory 帮助 LLM 理解抽象 KG 路径,这是把两类知识同时放进 plan 的核心理由。
- 错误结构对比:策略池总误差 156,MedCoG-Meta 降到 70,其中 Synergy Missed 29→4、Memory Noise 20→3、Over Reasoning 33→14,但 Unsolvable 仍是 33(策略池本身的天花板)。
- 领域自适应:MMLU / MMLU-Pro 系统偏向 Memory(题型泛化),MedQA / MedMCQA / PubMedQA 偏向 KG(临床事实密集),策略分布会跟数据集走。
- OOD Memory 也能用:把 MedQA+MedMCQA 的 case bank 用在 MMLU/MMLU-Pro/PubMedQA 上仍取得最佳或次佳,Familiarity 阈值有效过滤掉不适用的历史案例。
亮点与洞察¶
- 把"不增加调用就是赢"写进 metric:Inference Density \(\rho\) 和 IIE = \((Acc_\mathcal{M} - Acc_{CoT}) / (C_\mathcal{M} - C_{CoT})\) 都鼓励"花更少的钱拿更高的分",反向倒逼方法不要无脑堆 token,agent 类工作终于有了不被 token 数掩盖的统一对比尺度。
- Oracle 实验把瓶颈定位得很干净:先证明"理想路由能上 98.98",再证明"现有方法连 50 都难达到",让"做更好的 router"这件事变得理直气壮,而不是争论"是否需要更大的 KG"。
- per-backbone 元认知 profile 可迁移:Table 3 那张 P/R/F1 表给后续做"LLM 自我评估能力评测"的工作直接提供了 backbone-level 的 baseline 数据;这种"评测元认知本身"的范式在 RAG / agent 领域有很强的迁移价值。
- 训练-free 但调一个 3 维阈值就行:避免端到端训一个 policy 网络,对不同 backbone 只需 50 样本 + 三个 \(\tau\),部署成本极低,工程上很务实。
局限与展望¶
- 评估只在 GPT-4o backbone 的 hard subset 上做完整对比(每个 100 条,MMLU 73 条),样本规模偏小,IIE 数字对单个错例敏感;MedQA-Full 1273 条也只用 Oracle 比较了 GPT-4o,主对比表没给。
- Regulator 全程闭源 LLM 调用,per-sample 至少 2 次 LLM call(monitoring + planning),如果换 8B 开源模型当 Regulator(论文未做完整对比,仅 Qwen3-8B 的 monitor F1 数据),Knowledge Density 维度直接崩,落地到本地部署场景仍有距离。
- 非参数门控 + 单阈值很简洁但 brittle:当三维分数有相关性、或题型分布漂移时,校准好的 \(\tau\) 可能失效;用一个轻量分类器或 calibration network 可能更稳。
- KG 仍是结构化推理的瓶颈:Table 4 里 KG Noise 仍有 10 条,论文也承认"KG 路径对 LLM 太抽象",后续应该往 path verbalization / 路径上的链式 verifier 走。
- 不开源代码(截至 v2),复现得自己实现整套 pipeline + 阈值校准 + Case Bank 过滤。
相关工作与启发¶
- vs AFlow / MedAgents / MDAgents:他们是 workflow 级别的固定 agent 编排,每道题走相同的多 agent 流水线;本文是 sample 级别的动态策略选择,省下来的 token 来自"这道题不需要 KG 就别查",IIE 比 AFlow 高 3×。
- vs MedReason / MedPrompt:MedReason 提供 SCoT 数据但不做动态路由;本文复用 MedReason 数据构 Case Bank,再叠 meta-cognition 这一层调度,体现"上游知识工程 + 上层认知调度"的分层组合方式。
- vs Self-Refine / CoT-SC:Self-Refine 用全局自我评估决定要不要再 refine,MedCoG 把自我评估前置到策略选择阶段,更接近"先想清楚要用什么工具再动手",对应 dual-process 里的 System-2 调度。
- 对 RAG 的启发:用 verification plan 先把问题原子化再检索,比直接对全题做 dense retrieval 噪声小得多;同样的"提出假设→只检索能验证假设的事实"思路可以迁移到法律、金融等高知识密度领域 RAG。
评分¶
- 新颖性: ⭐⭐⭐⭐ 把元认知科学的三分类(Procedural/Episodic/Factual)显式映射到 SCoT/Memory/KG 并加非参数路由是首次系统化探索,Inference Density 指标设计也很扎实
- 实验充分度: ⭐⭐⭐ 5 个 backbone × 5 个数据集 × 完整消融,但 hard subset 样本量偏小(73~100),主表只在 GPT-4o 上做
- 写作质量: ⭐⭐⭐⭐ Pilot → Oracle → Method → Metric 推导链条很顺,Table 1 把"为什么要做这个"讲得极其有说服力
- 价值: ⭐⭐⭐⭐ 给医学 agent 提供了"不再无脑加 token"的硬抓手,IIE 这个 metric 大概率会被后续 agent 类工作沿用