一、医学 AI 的「成年礼」:从「看片工具」到「临床思维」
过去十年,医学人工智能在骨转移诊疗领域的发展轨迹与挑战,可从相关文献中得到清晰印证。早期“作坊式单任务模型”确为行业主流:研究显示,传统机器学习与深度学习架构(如CNNs、U-Net用于分割,ResNet用于分类)被广泛应用于骨转移的检测、分割与分类任务,覆盖CT、MRI、PET、SPECT及骨扫描等多种影像模态。这类模型虽在特定任务上表现良好(如开发的深度学习模型用于胸腰椎溶骨性骨转移检测),但存在明显局限——文献指出其“文献异质且快速演变”,各模型孤立优化,难以整合多维度临床信息,恰如问题所述“缺乏对疾病全貌的理解”。
通用视觉基础模型(如SAM、DINOv2)迁移到医学影像时面临“水土不服”。文献明确指出:骨转移影像分析存在“主观性挑战”,而通用模型因训练数据偏差与医学特异性不足,难以识别骨皮质与骨小梁差异、溶骨性与成骨性转移的细微特征。一项研究提及某模型虽能识别胸椎外转移灶(如胸骨),但对致密骨结构中细微病变的检出仍存困难,反映跨解剖部位泛化能力的不足。
“黑盒”问题与临床信任危机是核心障碍。多篇文献强调:AI输出若无法追溯至透明的临床推理链,将影响安全性与临床采纳;医生担忧“过度依赖AI可能削弱临床推理能力,导致去技能化”;监管与伦理层面亦存顾虑,“适当训练的AI模型虽可整合信息提升诊断准确性,但伦理与法律问题仍需审慎应对”。这解释了为何许多高精度模型止步于“技术盆景”。
真正的破局点,不在于堆砌更多算力或参数,而在于让 AI 学会「临床思维」。一位资深放射科医师诊断骨转移时,不会孤立地看一张 CT。他会先观察骨质破坏的形态(溶骨还是成骨),再联想患者是否有肺癌或乳腺癌病史,还会考虑是否合并病理性骨折或脊髓压迫。这是一种跨模态、跨任务、跨学科的「链式推理」(Chain of Thought, CoT)。
2026 年 7 月 2 日,Nature Biomedical Engineering 在线发表了由上海市第六人民医院牵头、联合美国华盛顿大学与哥伦比亚大学团队完成的 BoneCoT 研究。这篇论文的突破性在于:它将「临床多学科会诊(MDT)的推理逻辑」编码为一张数学图结构,让 AI 在诊断骨转移时,能像真实的 MDT 团队一样——放射科先看片,肿瘤科补充病史,病理科最终确认——在多轮迭代中逐步收敛诊断。这不仅是一次算法创新,更是一次「临床思维数字化」的范式尝试。
二、骨转移诊断:一个被低估的临床战场
骨转移(Bone Metastases, BM)是实体瘤最常见的远处转移之一。全球每年约 2000 万新发癌症病例中,超过 50% 的患者最终会发生转移性疾病,而骨是最常见的好发部位之一。在已发生远处转移的患者中,肺癌、乳腺癌、前列腺癌、肾癌的骨转移比例分别高达 40%、70%、85% 和 40%;实体瘤患者从确诊到发生骨转移,平均约 700 天。骨转移不仅意味着肿瘤进入晚期,更会带来一系列骨相关事件(SREs)——病理性骨折、高钙血症、脊髓压迫——直接威胁患者的生存质量与生存期。
然而,骨转移的早期诊断极其困难。CT 虽然是全球范围内最普及的初筛工具,但存在三大临床痛点:
第一,信息孤岛。准确诊断骨转移需要整合影像、病理、基因、实验室和临床信息,但放射科医师只看 CT,肿瘤科医师只看病史,病理科医师只看切片,各专科「各说各话」,缺乏统一的信息流转机制。
第二,早期漏诊。对于没有已知原发肿瘤的患者,或因骨痛首诊的患者,CT 上的细微骨质改变常被非专科医生忽略;而对于已确诊癌症的患者,常规分期 CT 中的骨病变又常因「没有标准化筛查协议」而被遗漏。
第三,原发 vs. 转移鉴别困难。这是骨肿瘤影像诊断中最具挑战性的任务。原发骨肿瘤(如骨肉瘤)与转移瘤在 CT 上可能呈现相似的溶骨性破坏,放射科医师在高负荷、资源不足的环境下极易误判。文献指出,这种「影像模仿(mimicry)」是误诊的主要来源。
三、方法拆解
3.0 专业术语解释
后文涉及较多影像、深度学习与统计学术语,先集中解释,阅读时可随时回查。
① 临床与影像类
影像模态(CT / MRI / PET / SPECT / 骨扫描):指不同的成像技术。CT 看解剖结构、速度快、最普及;MRI 软组织分辨率高;PET / SPECT / 骨扫描看代谢活性,对转移灶敏感但贵且有辐射。本文 BoneCoT 只用 CT,因为它是最普及的初筛工具。
溶骨性 / 成骨性转移:骨转移的两种形态。溶骨性=肿瘤「吃掉」骨头,CT 上表现为骨质破坏、变「空」(多见于肺癌、肾癌);成骨性=肿瘤刺激骨头异常增生,CT 上表现为骨质变「白」变致密(多见于前列腺癌)。这是鉴别原发肿瘤来源的重要线索。
骨皮质 / 骨小梁:骨皮质是骨头外层的致密硬壳,骨小梁是内部海绵状的疏松结构。两者在 CT 上的纹理完全不同,是模型需要分辨的基本解剖结构。
骨相关事件(SREs):骨转移引起的一系列严重并发症的总称,包括病理性骨折(骨头被肿瘤破坏后轻微受力就断)、脊髓压迫(转移灶压迫脊髓可致瘫)、高钙血症(骨质破坏释放大量钙入血,可危及生命)等。
MDT(多学科会诊):放射科、肿瘤科、病理科等多个科室医生坐在一起讨论同一病例、共同下诊断的模式,是疑难肿瘤诊疗的「金标准流程」。本文的核心创意就是把 MDT 的推理流程搬进 AI。
生物标志物(EGFR、ALK、ROS1、ER、PR、HER2):反映肿瘤分子特征的指标,决定靶向药和内分泌治疗的选择。前三个是肺癌驱动基因,后三个是乳腺癌激素受体 / 受体状态。从 CT 影像反推这些分子特征是本研究中最难、提升最小的一类任务。
影像模仿(mimicry):不同疾病在影像上长得太像、互相「冒充」的现象。原发骨肿瘤和转移瘤在 CT 上可呈现几乎相同的溶骨破坏,是误诊的主要来源。
② 模型架构类
CNN / ResNet / U-Net:三类经典深度学习架构。CNN(卷积神经网络)是图像识别的基础结构;ResNet 是其改进版,通过「残差连接」让网络可以堆得更深,常用于分类;U-Net 形似字母 U,能把目标区域逐像素地「圈」出来,是医学图像分割的标配。
ViT(Vision Transformer):把切成一个个小方块(patch),像处理句子里的单词一样处理图像的网络架构。ViT-g/14 是其超大号版本(g 代表 giant,14 指每个 patch 为 14×14 像素),约 11 亿参数。CLS token 是 ViT 中一个特殊的「总结位」,负责汇聚整张图的信息用于分类——文中 7680 维特征就由它拼接而成。
基础模型(Foundation Model):先在海量数据上「通识预训练」、再针对具体任务微调的模型范式。BoneFM 就是骨骼 CT 领域的基础模型,BoneCoT 是在它之上加装「思维链」的产物。
DINOv2 / 自监督学习:自监督指不需要人工标注,让模型从图像自身找规律(如遮住一块让它猜)来训练;DINOv2 是 Meta 发布的自监督视觉模型,也是 BoneFM 采用的训练框架。好处是医学标注昂贵,自监督能吃下千万级无标注影像。
SAM:Meta 发布的通用分割基础模型,「点一下就能抠出图中任何物体」。文中用它举例说明:再强的通用模型直接搬到医学影像也会「水土不服」。
隐藏特征(Hidden Features):分类器内部、下最终结论之前的中间层数值表示(本文是一串高维向量)。它保留了模型的「分析过程与不确定性」,是 BoneCoT 在任务之间传递的信息载体——对应 MDT 中医生描述「看到了什么、考虑什么」,而非只说结论。
任务关系图 / 有向图 / 节点与边:图论基本概念。节点=任务(如「溶骨/成骨」),有向边=单向的信息流(如「溶骨/成骨」的结论流向「原发/转移」鉴别)。整张图就是把 MDT 会诊的信息流向画成了数学结构。
backbone / 分类头 / MLP / checkpoint:backbone 是负责提取图像特征的「主干网络」(这里是 ViT);分类头是接在主干后、负责输出具体任务结论的小网络,本文是一个两层 MLP(多层感知机,最基础的神经网络);checkpoint(ckpt)是训练保存下来的模型权重文件,加载它就能复现模型。
③ 训练策略类
预训练 / 微调 / continual pre-training(继续预训练):预训练=在大数据上先学通用能力;微调=在小数据上针对具体任务调整。continual pre-training 介于两者之间:模型已在自然图像上训好,再拿专科 CT 数据「接着训」,低级视觉能力直接继承,医学语义专门学——比从零训练省得多。
迁移学习 / 泛化能力 / 分布偏移:迁移学习=把一个领域学到的能力用到另一个领域;泛化能力=模型在没见过的新数据(如其他医院)上的表现;分布偏移=训练时和实际使用时的数据不一样导致性能下降。本文「传隐藏特征而非标签」的设计,就是为了消除训练与推理之间的分布偏移。
CoT(Chain of Thought,思维链):让模型像人一样「分步骤推理」而非一步到位下结论的方法。BoneCoT 把它从语言模型引入影像诊断:先判断形态,再推断类型,多轮迭代收敛,模拟 MDT 的会诊次序。
掩码 / Dropout / 正则化:三者都是「防模型偷懒」的技术。Dropout 是训练时随机让一部分神经元「放假」,防止死记硬背;本文的掩码策略类似——随机屏蔽部分辅助任务的输入,强迫模型始终独立看片,不直接抄相关任务的答案。这类技术统称正则化。
知识工程 / 知识注入:把人类专家的经验(这里是 MDT 诊断路径)显式地编码进模型结构的过程。「注入」强调这不是模型自己从数据里学的,而是人设计好喂给它的。
④ 评估与统计类
AUROC / AUPRC / F1:三个常用性能指标。AUROC 衡量模型区分阴阳性的整体能力,0.5 相当于抛硬币,越接近 1 越好;AUPRC 在阳性样本很少(类别不平衡)时比 AUROC 更敏感;F1 是精确率与召回率的调和平均,兼顾「别漏诊」和「别误诊」。
Bootstrap 检验:从数据中反复有放回地重抽样(本文 20,000 次),每次重算指标,从而估计「两个模型的差距是否稳定可靠」,不依赖数据分布假设。
McNemar 检验:专门用于「同一批样本上、两个分类器结果是否不同」的配对检验,本文用于人机对比——比较 AI 和医生在同一例子上谁对谁错。
SHAP 归因分析:一种可解释性方法,量化每个输入特征对模型某个预测的贡献大小。本文用它证明模型判断骨转移时最看重「溶骨/成骨特征」和「原发肿瘤类型」——与人类专家思路一致。
Phi 相关系数:衡量两个二分类变量(如有/无骨折、溶骨/成骨)之间关联强弱的指标,范围 −1 到 1。文中用它展示 26 个任务标签之间天然存在的相关性,佐证「任务间互相传递信息」有统计依据。
5 折交叉验证 / 患者级分层 / 数据泄露:交叉验证=把数据分 5 份轮流当测试集,结果更稳健;患者级分层=切分以「患者」为单位,同一患者的所有切片只能出现在训练或测试一侧;若违反这点,模型等于提前「见过」患者的其他切片,测试成绩会虚高——这就是数据泄露。
P 值 / 无统计学差异:P 值衡量「观察到的差异纯属偶然」的概率,通常 P < 0.05 认为差异真实存在。文中「与资深医师无统计学差异(P = 0.195)」意为:AI 和资深专家的差距尚不能排除是运气——即 AI 已达到专家水平的天花板。
3.1 专科基础模型:「接着训」比「从头训」聪明
BoneCoT 的底座是 BoneFM:研究团队收集了 2013—2023 年间 30,267 例患者的 29,349,275 张 CT 图像,覆盖颅骨、脊柱、骨盆、四肢等 12 个骨骼部位,用 ViT-g/14(11 亿参数)以 DINOv2 自监督框架预训练。
值得记录的策略是 continual pre-training:模型先在自然图像数据集 LVD-142M 上初始化,再在骨骼 CT 上继续训练。边缘、纹理等低级视觉能力不必重学,直接继承;骨皮质连续性、骨小梁模式、溶骨形态等医学语义,才用专科大数据专门学。
3.2 任务关系图:把 MDT 会诊流程画成一张图
这是全文的「灵魂」。研究团队请 3 名资深放射科医师、3 名肿瘤科医师、3 名病理科医师组成专家委员会,经多轮多学科讨论,把骨转移的临床诊断流程抽象为 26 个任务节点、连成一张有向的任务关系图(Task Relation Graph)。26 个任务分五大类:核心诊断(骨病变检测、良恶性、原发/转移)、BM 质量分类(溶骨/成骨)、并发症(病理性骨折、脊髓压迫、高钙血症、肾功能不全、血栓)、肿瘤分类(9 种实体瘤及肺癌亚型)、生物标志物(EGFR、ALK、ROS1、ER、PR、HER2)。
节点之间的有向边模拟 MDT 中的信息流向:「溶骨/成骨」辅助「原发/转移」鉴别,「原发肿瘤类型」反哺「生物标志物」推断。这一步的本质是知识工程——把存在于专家脑子里的临床路径,变成机器可执行的图结构。26 这个数字不重要,重要的是「先有临床流程、后有模型结构」的顺序。
图1:多模态数据集、12 部位病例分布、26 任务关系图与「训练—多轮推理」流程
图1:多模态数据集、12 部位病例分布、26 任务关系图与「训练—多轮推理」流程
3.3 传「隐藏特征」而不传「标签」
任务之间的信息怎么传?这是 CoT 落地的核心技术问题。
如果训练时传真实标签——推理时没有标签可用,训练和推理的输入分布不一致(分布偏移);如果传上一轮输出的离散预测(0/1 或概率)——「0.51 和 0.49 都变成 0」,模型内部的不确定性信息被抹平。BoneCoT 的做法是:传任务分类器第一层输出的高维隐藏特征(Hidden Features),它保留了模型「下结论之前的分析过程」。训练时传的是它,推理时传的也是它,两个阶段的输入分布天然一致。
一个类比:MDT 会诊时,病理科医生不会只说「恶性」,而会描述「看到低分化腺癌细胞、考虑肺来源」——下游科室拿到的是分析过程,不是干巴巴的结论。隐藏特征就是这句话的数学形态。
3.4 多轮迭代 + 掩码:让模型会诊,但不让它「抄作业」
推理分多轮进行:第一轮,26 个任务各自只看 CT 做初步判断;第二轮起,每个任务开始接收相关任务上一轮传来的隐藏特征,逐步修正;一般 2—3 轮后输出稳定,最多迭代 5 轮。
但这里有个陷阱:如果「原发肿瘤类型」任务预测了肺癌,「原发/转移」任务会不会直接抄答案、不再看片?研究团队的对策是训练时引入类似 Dropout 的掩码策略——随机屏蔽部分辅助任务的输入,强迫模型始终以影像特征为主要依据,保持「独立看片」的能力。辅助信息是补充证据,不是主角。这个正则化思想在知识注入类模型里值得普遍借鉴。
扩展图2:BoneFM(单轮)与 BoneCoT(多轮迭代)推理架构对比
扩展图2:BoneFM(单轮)与 BoneCoT(多轮迭代)推理架构对比
3.5 数据与评估
数据分三级。预训练 30,267 例(单中心十年,正常对照经至少 2 年随访确认无病、肿瘤病例经手术或活检病理证实);内部微调/验证 625 例(连续入组,排除术后/植入物 322 例与严重伪影 27 例,患者级分层 5 折交叉验证,严禁同一患者的切片分散到训练与测试两侧——这是防数据泄露的金标准做法);外部验证 268 例,来自 10 家医院、2 个地理区域(上海及周边 7 家 + 江苏徐州、盐城 3 家)。
评估分四层:与 DINOv2、Merlin 两个基线模型对比(20,000 次 Bootstrap 检验);与 4 名不同年资放射科医师人机对比(130 例精选疑难病例,McNemar 检验);两区域多中心外部验证;以及 SHAP 归因分析,检查模型「为什么对」。注意这个顺序:先证明比机器强,再证明比人强,再证明换个地方还强,最后证明它「强得有道理」。
扩展图1:预训练、内部微调/验证、外部验证三阶段数据集构建流程
扩展图1:预训练、内部微调/验证、外部验证三阶段数据集构建流程
四、结果解读
亮点: 26 项任务平均 AUROC 0.67,较 DINOv2(0.56)相对提升 20%、较 Merlin(0.54)提升 24%。最难的「原发 vs. 转移」鉴别上,BoneCoT 达 0.85,而两个基线仅 0.58 和 0.51(均 P < 0.001)。人机对比中,BoneCoT 的 F1 为 0.78,超过资深医师组(0.66)和初级组(0.47)。外部验证在两个区域均显著优于基线且表现一致。SHAP 分析显示,模型判断转移最强驱动因素是「溶骨/成骨特征」与「原发肿瘤类型预测」——与 MDT 专家的思路一致;对仅占 0.37% 的罕见远端肢体转移,模型靠「原发肿瘤类型」信息修正了单纯影像的误判,而这恰是放射科医生最常误诊的情形。
图2:26 任务 AUROC 对比、任务标签 Phi 相关矩阵与典型病例 SHAP 归因
图2:26 任务 AUROC 对比、任务标签 Phi 相关矩阵与典型病例 SHAP 归因
图3:人机对比 AUPRC/AUROC 曲线与罕见远端肢体转移病例
图3:人机对比 AUPRC/AUROC 曲线与罕见远端肢体转移病例
图4:两大区域多中心外部验证结果与代表性病例
图4:两大区域多中心外部验证结果与代表性病例
需要注意的是:
第一,基线在最难任务上接近「抛硬币」。DINOv2 与 Merlin 在原发/转移鉴别上 AUROC 只有 0.51—0.58,说明这个任务对「只看影像」的模型近乎不可解。BoneCoT 的提升主要来自知识注入,而非视觉能力本身——这恰好反向证明了 CoT 设计的价值。
第二,良性/恶性鉴别上与资深医师无统计学差异(P = 0.195)。AI 的天花板仍是资深专家,它的真实价值场景在低年资医生与基层机构——这与原文把模型定位为「临床推理助手」而非替代者是一致的。
第三,生物标志物任务提升最小。与 Merlin 相比,ALK(P = 0.509)与 ER(P = 0.051)两项甚至不显著。从 CT 推断分子特征存在物理上限,这部分功能目前更接近探索性质。
第四,外部验证只覆盖 3 项核心影像任务。并发症与生物标志物任务因各中心缺乏相应标注而未能跨中心验证——26 项全功能的泛化性尚未被证明。
第五,术后与金属伪影病例被排除在外。而真实世界里带植入物的骨科患者并不少;预训练数据也全部来自单中心。这些局限不影响它的范式价值,但提醒我们:这仍是一个「理想条件下的证明」,距临床常规使用还有距离。原文把局限写得坦诚,反而增强了结论的可信度。
五、启发
- 数据富矿领域应走「专科基础模型」路线。通用模型 + 少量医学数据微调的路线有天花板;如果手上有一个病种/模态的十年级数据,continual pre-training(自然图像初始化 → 专科数据续训)是已被验证的高性价比路径。
- 临床知识可以工程化。把专家共识变成「任务节点 + 有向边」的图结构,让模型架构生长在临床流程之上,而不是让临床去迁就模型。「先有临床流程、后有模型结构」这个顺序是成败关键。
- 任务间传递隐藏特征,而不是标签或概率。保证训练与推理输入分布一致,同时保留不确定性信息。凡是有「多任务互相引用」的模型设计,这一条都适用。
- 注入知识必须配「防捷径」机制。辅助信息越强,模型越容易抄近路。掩码策略(随机屏蔽辅助输入)强迫模型保持对原始数据的独立判断能力,本质是把正则化思想用在知识注入上。
- 可解释性要「内生」,不要「事后贴标签」。BoneCoT 的 SHAP 之所以有说服力,是因为模型本身就按「任务间信息传递」设计,归因分析可以直接读出「哪个辅助任务贡献最大」。架构即解释,比事后给黑盒贴热力图高一个层级。
- 评估要形成完整证据链。基线对比 → 人机对比 → 多中心外部验证 → 归因分析,层层递进;患者级分层、连续性入组、病理金标准、Bootstrap 与 McNemar 检验,每个环节都有防自欺的设计。
六、代码解读
作者将代码放到了github上 https://github.com/FrankZhangRp/BoneCoT。所以学习了一下代码和大家分享。
第一梯队:BoneCoT 的灵魂
① 多轮推理主循环 —— BoneCoT_Eval_Trainer.val()(from bonecot_eval_trainer.py)
if n_epoch == 0:
total_hidden_feature_before = np.zeros([…]) # 第0轮:相关任务特征全零
else:
total_results_before = np.load(f'{split}epoch{n_epoch-1}.npz’) # 读上一轮
…
hidden_feature_concate = np.concatenate(hidden_feature_list, axis=0) # 拼依赖任务的特征
outputs, hidden_features = self.model(raw_images, extra_hidden_features=hidden_feature_concate, …)
为什么关键:这就是”Chain-of-Thought”的实现本体——每个任务把上一轮相关任务的 hidden feature 当作额外输入,逐轮迭代提纯。第 0 轮吃零向量、第 k 轮吃第 k−1 轮特征的设计,决定了:① 必须跑多轮才有 CoT 效果;② 同 batch 内主任务先跑、相关任务后跑的顺序不是 bug 而是必然。
② 任务依赖图 —— 同文件 val() 开头
bonecot_use_feature_dict = {
‘benign_malignant’: [“osteolytic”, “osteoblastic”, “pathological_fracture”],
‘primary_metastatic’: [“osteolytic”, “osteoblastic”, “type_of_primary_tumor”,
“pathological_fracture”, “spinal_cord_compression”],
‘osteoblastic’: [“type_of_primary_tumor”, “pathological_fracture”],
…
}
为什么关键:整张”思维链”的拓扑结构就写在这 8 行里——哪个主任务吸收哪些相关任务的”思路”。你做任何迁移(换任务、加任务)都要先改这里,而且它必须与 hidden_feature_task_name_idx、checkpoint 加载顺序三者严格对齐,否则特征会张冠李戴。
③ 特征构建 —— create_linear_input(两个模型文件共用)
intermediate_output = x_tokens_list[-use_n_blocks:] # 最后4层
output = torch.cat([class_token for _, class_token in intermediate_output], dim=-1)
output = torch.cat((output, torch.mean(intermediate_output[-1][0], dim=1)), dim=-1) # + patch均值
为什么关键:4 层 CLS + 1 层 patch 均值 = 5×1536 = 7680 维,是所有分类头的输入口径,extra_token_num 的反推(÷1536)也建立在这个”5″上。改 use_n_blocks 或 use_avgpool,下游所有 checkpoint 的形状假设全部失效。
第二梯队:复现时最容易栽跟头的地方
④ extra token 注入 —— BoneCoT_TwoLinearClassification.forward()
with torch.no_grad():
img_features = self.backbone(images) # backbone 冻结
…
single_extra_token_features = self.extra_token_linear_layersi # 也冻结
hidden = self.linear_classifier_1(torch.cat([img_features, extra_token_features], dim=-1))
为什么关键:两个 no_grad 说明训练只动最后两层 MLP——这决定了你复现时的参数量、显存和收敛速度预期;extra token 生成器的权重来自先训好的单任务头(init_extra_token_linear_layers),所以训练顺序必须是”先单任务、后 CoT”,跳步就拼不出正确结构。
⑤ checkpoint 结构反推 —— BoneCoT_Eval_Trainer.get_model()
‘extra_token_num’: (self.relative_ckpt_dict[task_name][‘linear_classifier_1.weight’].shape[1]//1536) – 5,
为什么关键:模型架构不是从 config 读的,而是从权重张量形状倒推的。你自己训的 ckpt 只要结构和作者的假设有一点出入(embed_dim 不同、key 名带不带 .linear.),这里就静默算错或直接 shape mismatch——这是整条 pipeline 最脆的一环。
⑥ 权重加载 —— load_checkpoint() + load_classifier_ckpt()
if ‘pos_embed’ in checkpoint.keys(): … # 裸 ViT 权重
elif ‘teacher’ in checkpoint.keys(): … # DINOv2 teacher 格式,剥 backbone. 前缀
…
for key_name in ckpt_dict.keys():
if key_name in model_dict.keys(): # 非严格匹配,静默忽略
为什么关键:兼容两种 backbone 格式(DINOv2 自监督产物 → BoneFM.pth),而任务头是非严格加载——key 对不上不报错只跳过,权重没加载成功你可能毫无察觉,指标差了还以为是数据问题。复现时建议在这里加一句匹配率打印。
第三梯队:影响结果口径,写论文时必须交代
⑦ 指标选取 —— calculate_bonecot_metrics(from .base_trainer i(2).txt 尾部)
for pred_file_name in os.listdir(pred_file_dir): # 遍历所有轮次
if auroc > best_auroc:
best_auroc = auroc # 在测试集上挑最优轮
为什么关键:论文数字的”出生证明”。在测试集各轮次里取 max AUROC 属于测试集上的模型选择,偏乐观。你复现对比时若按固定轮次报告,数字大概率比论文低——这不是你复现失败,是口径不同。
⑧ 数据契约 —— BoneCoT_Inference_Dataset
images_list = file_df[‘img_path’].values; labels_list = file_df[‘label’].values
…
study_id = split_image_name[0]; series_name = split_image_name[1] # 从文件名解析
为什么关键:CSV 必须是 img_path, label, …,文件名必须是 {study}{series}_xxx——结果聚合的三级字典全靠文件名解析。你自己的数据接入时这是第一道门槛,也是 split(‘‘) vs split(‘_’, 1) 不一致会炸的点。
结语:医学 AI 的下一站,是「思维」而非「模式」
BoneCoT 的价值,远不止于将骨转移诊断的 AUROC 从 0.58 提升到 0.85。它展示了一种新的可能性:当 AI 不再满足于「识别模式」,而是开始「模拟思维」;当算法不再局限于「单兵作战」,而是学会「团队协作」——医学人工智能才真正跨过了从「实验室玩具」到「临床伙伴」的门槛。
参考文献:Zhao H, Zhang R, Wang Z, et al. BoneCoT: multicentre validation of a whole-body skeleton foundation model for bone metastases guided by clinician-derived chain of thought. Nat Biomed Eng (2026). https://doi.org/10.1038/s41551-026-01736-1
声明:来自繁尘的bio小本本,仅代表创作者观点。链接:https://eyangzhen.com/8680.html