跳转至

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 收尾。

关键设计

  1. 三维元认知监测 + 非参数门控路由:

    • 功能:把 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 单独训模型。
  2. 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 爆炸问题。
  3. 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 类工作沿用