想象医院放射科来了两位实习医生。第一位实习医生的基本功是“看图配对”:护士把 X 光片和对应的放射报告打乱混在一起,他必须一张一张重新对上。练习了成千上万次之后,他练出了“扫一眼片子,脑海里就能浮现出描述文字”的本领。这位实习生,叫 BiomedCLIP。第二位更狠,他不仅要做配对训练,还要在看完片子之后,自己动手写出“检查所见”与“诊断结论”两段话。这位实习生,叫 RadFM。这两位实习医生的成长故事,就是医学 AI 领域的“多模态预训练”:教材是海量医学影像与临床报告,训练方式是让 AI 在图像与文字之间建立深层联系。读完你会明白,AI 为什么要先“看图配文”、再“看图写文”,三维 CT 数据如何被巧妙拆解,医学报告的“八股文”结构如何反成优势,以及怎样把预训练模型迁移到自己的医疗任务里。

岗位关联

对 AI 从业者而言,掌握 BiomedCLIP 与 RadFM 的预训练方法,相当于拿到了“医学影像界的 GPT”。学会迁移和微调,就能在影像分类、报告生成、跨模态检索等任务上快速落地,不必从零训练庞大模型。

目录
  1. 可视化演示
  2. 模型总览
  3. 数据工程
  4. 对比预训练
  5. 模态适配
  6. 医学文本处理
  7. 生成式预训练
  8. 迁移与微调
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

动态演示医学多模态预训练的核心机制,通过开始/执行/监控/完成四种模式展示关键概念与交互流程。

本节配有交互动效(进入视口后自动加载,约 3KB)。

医学多模态预训练:Biom BiomedCLIP对比学习预 RadFM医学影像基础模型架构 核心机制可视化 医学多模态预训练整体架构与关键组件

模型总览

医院放射科一次来了两位风格迥异的实习医生。一位是“配对狂魔”,每天的任务就是把打乱的片子和报告重新对上,眼力越练越准;另一位是“写作能手”,看完片子必须自己动笔写完整份报告。同为多模态预训练出身,两位的“人设”却完全不同。

在 AI 的世界里,这两位就是 BiomedCLIP 和 RadFM。BiomedCLIP 采用“双塔结构”:一个图像编码器负责“看”,一个文本编码器负责“读”,两者把影像和报告分别压缩成特征向量,再通过对比学习让“该配对的靠拢”。RadFM 则走生成式路线:以图像为输入,像写文章一样逐词生成临床报告。两者都遵循“预训练范式”——先在大规模通用医学数据上练就通识,再迁移到具体任务。

双塔架构的本质,是把两种模态映射到同一个语义空间:

回到实习医生的故事:BiomedCLIP 练的是“看片识报告”的判别力,RadFM 练的是“看片写报告”的生成力。一个像选择题高手,一个像作文高手——这就是医学多模态预训练的两条主干路线。

zI=EI(xI),zT=ET(xT)\displaystyle z_I = E_I(x_I), \quad z_T = E_T(x_T)
这个公式说明:图像 x_I 经过编码器 E_I 变成向量 z_I,报告 x_T 经过编码器 E_T 变成向量 z_T。之后所有“像不像”的判断,都变成两个向量之间的数学比较。
  1. 图像编码器提取视觉特征z_I 是图像向量,E_I 把 X 光片或 CT 切片压缩成固定长度的特征表示。
    zI=EI(xI)z_I = E_I(x_I)
  2. 文本编码器提取文本特征z_T 是报告向量,E_T 把“所见”与“结论”两段文字编码成向量。
    zT=ET(xT)z_T = E_T(x_T)
  3. 共享语义空间两个向量处于同一空间,才能直接计算相似度、做对比学习。
    cos⁡(zI,zT)=zI⋅zT∥zI∥ ∥zT∥\cos(z_I, z_T) = \frac{z_I \cdot z_T}{\|z_I\| \, \|z_T\|}

数据工程

实习医生的教材从哪来?医院档案室里堆着几十年的影像胶片和手写报告。有人把它们一张张扫描、归档、配对,才让实习生有东西可学。对 AI 而言,这个“档案室”就是预训练数据。

BiomedCLIP 的训练数据主要来自 PMC-OA(PubMed Central 开放获取子集),从中构建了约 1500 万对医学图像-报告配对;RadFM 则在包含 2D 与 3D 影像的更大规模医学数据集上预训练。数据工程包含三个关键步骤:收集影像报告库、隐私清洗(去除患者姓名、ID 等标识信息)、图文配对校验(确保影像与报告确实属于同一次检查)。没有干净的配对数据,后面一切训练都是空谈。

数据集的数学描述非常简单:

档案室整理得越规范,实习医生学得越快。数据工程就是给模型“编教材”:规模要大、配对要准、隐私要净。医学数据比自然图像更难获取,这也是医学多模态模型的护城河。

D={(xi,ti)}i=1N,xi∈影像,  ti∈报告\displaystyle \mathcal{D} = \{(x_i, t_i)\}_{i=1}^{N}, \quad x_i \in \text{影像}, \; t_i \in \text{报告}
意思是:整个数据集 D 由 N 个“影像-报告”配对组成,第 i 个样本的影像 x_i 和报告 t_i 来自同一次临床检查,一一对应。
  1. 数据集整体定义D 表示训练集,花括号内罗列的是一个个配对样本,N 是配对总数。
    D={(xi,ti)}i=1N\mathcal{D} = \{(x_i, t_i)\}_{i=1}^{N}
  2. 影像成员x_i 可以是 X 光平片、CT 切片、MRI 断层或病理图像。
    xi∈影像x_i \in \text{影像}
  3. 报告成员t_i 是放射科医生为这张影像撰写的临床报告,二者同源。
    ti∈报告t_i \in \text{报告}

对比预训练

实习医生做配对练习时是怎么得分的?护士会把 32 张片子和 32 份报告摆成两排,他每次从报告堆里挑一份,判断“这张片子配哪份报告”。挑对了加分,挑错了扣分。对比学习正是这个“配对得分游戏”。

BiomedCLIP 在训练时,每个批次有 N 个图文对。对第 i 张图像,模型要在 N 个候选文本中“认出”正确的那一个。它计算图像与所有文本的相似度,然后用一个叫 InfoNCE 的损失函数,把正确配对的相似度拉高、把错误配对的相似度压下去。这个损失要同时做两个方向:图像找文本、文本找图像,所以叫“双向对比损失”。

核心损失函数如下:

说白了,配对游戏的输赢规则就一条:让对的更对、让错的更错。经过上千万次这样的“练习”,BiomedCLIP 的图像编码器学会了抓住病灶、器官等视觉线索,文本编码器学会了理解医学术语,两者在语义空间中形成了漂亮的“对齐”。

L=−12N∑i=1N[log⁡esii/τ∑j=1Nesij/τ+log⁡esii/τ∑j=1Nesji/τ]\displaystyle \mathcal{L} = -\frac{1}{2N}\sum_{i=1}^{N}\left[ \log \frac{e^{s_{ii}/\tau}}{\sum_{j=1}^{N} e^{s_{ij}/\tau}} + \log \frac{e^{s_{ii}/\tau}}{\sum_{j=1}^{N} e^{s_{ji}/\tau}} \right]
其中 s 是相似度矩阵,s_ii 表示第 i 张图像与第 i 份正确报告的相似度。损失鼓励对角线元素尽量大、非对角线元素尽量小,相当于“在所有候选中准确找对”。
  1. 相似度来源s_ij 用余弦相似度计算,衡量第 i 张图与第 j 段文本的匹配程度。
    sij=ziI⋅zjT∥ziI∥ ∥zjT∥s_{ij} = \frac{z_i^I \cdot z_j^T}{\|z_i^I\| \, \|z_j^T\|}
  2. 分子放大正确配对指数函数把 s_ii 的“优势”放大,τ 是温度系数,控制得分分布的陡峭程度。
    esii/τe^{s_{ii}/\tau}
  3. 分母构成归一化对批次内所有 N 个文本求和,相当于计算“在所有候选中选中正确项”的概率。
    ∑j=1Nesij/τ\sum_{j=1}^{N} e^{s_{ij}/\tau}
  4. 双向取平均第一项是图像到文本方向,第二项是文本到图像方向,两个方向都学会才稳健。
    12N∑i=1N[log⁡esii/τ∑jesij/τ+log⁡esii/τ∑jesji/τ]\frac{1}{2N}\sum_{i=1}^{N}\left[\log \frac{e^{s_{ii}/\tau}}{\sum_{j} e^{s_{ij}/\tau}} + \log \frac{e^{s_{ii}/\tau}}{\sum_{j} e^{s_{ji}/\tau}}\right]

模态适配

实习医生在 X 光科练熟了平面片,轮转到 CT 室却傻了眼:CT 是几十上百层的“断层扫描”,像一本厚书。他必须学会一层一层地翻,才能找到病灶。这就是 3D 影像带来的模态适配挑战。

CT 和 MRI 本质是三维体数据,形状是“深度 × 高度 × 宽度”。而大多数图像编码器是为二维图片设计的。常见解决办法是“切片采样”:沿轴向把 3D 体积切成一叠 2D 切片,逐片送入编码器;RadFM 则更进一步,设计了专门的 3D patch embedding 来原生处理立体数据。此外还要处理伪影(运动模糊、金属伪影、噪声)以及模态差异(CT 擅长看密度、MRI 擅长看软组织),通过数据增强和归一化让模型对模态差异不敏感。

切片操作的数学表达:

就像实习医生学会了“翻书找病灶”,模型的模态适配本质是“降维但不丢信息”:要么切片、要么投影、要么设计原生 3D 编码器。理解了这一层,你就能明白为什么 RadFM 宣称支持 CT/MRI 三维输入时,技术含金量如此之高。

x3D∈RD×H×W,xs=slice(x3D,s)∈RH×W\displaystyle x_{3D} \in \mathbb{R}^{D \times H \times W}, \qquad x_s = \text{slice}(x_{3D}, s) \in \mathbb{R}^{H \times W}
意思是:三维体数据 x_3D 的形状是 D 层、每层高 H、宽 W;slice 操作取出第 s 层,得到一张普通二维图像,即可送入 2D 编码器。
  1. 三维体积的定义x_3D 用三维张量表示,D 是层数(如 200 层 CT),H 和 W 是每层的高度与宽度。
    x3D∈RD×H×Wx_{3D} \in \mathbb{R}^{D \times H \times W}
  2. 切片操作slice(x_3D, s) 沿着层数维度取出第 s 个二维截面。
    xs=slice(x3D,s)x_s = \text{slice}(x_{3D}, s)
  3. 得到二维图像x_s 的形状变为 H × W,可以直接输入 ViT 等二维图像编码器。
    xs∈RH×Wx_s \in \mathbb{R}^{H \times W}

医学文本处理

放射科报告是有“八股文”传统的:先写“检查所见”,客观描述片子上能看到什么;再写“诊断结论”,给出判断和建议。这种固定结构起初被吐槽刻板,却恰恰是 AI 学习的福音——规律越强,越好学。

医学报告的特殊性有三点。第一,结构化:报告天然分成“所见 + 结论”两段,模型可以分别建模再融合。第二,长文本:一份报告往往几百字甚至上千字,超出普通文本编码器的最大长度,需要分段截断或分层编码。第三,术语标准化:“结节”“磨玻璃影”“强化”等词汇含义精确,重复度高,反而让文本编码器更容易建立稳定的语义映射。

结构化报告的数学表示:

实习医生发现“所有报告都按这个模板写”,学起来事半功倍。对模型也是一样:医学报告的高度结构化,让预训练阶段的图文对齐有了更稳定的“锚点”。这也是为什么医学文本虽然“枯燥”,却比自由文本更适合做预训练。

R=[ Ffinding; Cimpression ]\displaystyle R = [\, F_{\text{finding}};\, C_{\text{impression}} \,]
R 表示一份完整报告,由检查所见 F 和诊断结论 C 拼接而成。分号表示两段按顺序拼接(concat),这也是医学文本与自然文本最明显的结构差异。
  1. 检查所见部分F 描述影像上的客观发现,如“右下肺可见分叶状结节”。
    FfindingF_{\text{finding}}
  2. 诊断结论部分C 是医生的综合判断,如“考虑周围型肺癌,建议增强检查”。
    CimpressionC_{\text{impression}}
  3. 两段拼接成完整报告方括号加分号表示按次序拼接,模型可以分别编码再融合。
    R=[ Ffinding; Cimpression ]R = [\, F_{\text{finding}};\, C_{\text{impression}} \,]

生成式预训练

如果说 BiomedCLIP 是“配对狂魔”,RadFM 就是“写作能手”——它不满足于认出哪份报告配哪张图,而是要自己把整篇报告写出来。这背后是生成式预训练。

RadFM 采用自回归生成的方式:给定一张(或一组)医学影像,模型逐个预测下一个文本 token,像打字机一样把报告“打”出来。在预训练阶段,它还引入了指令微调:把“请描述这张 CT 的异常发现”“给出诊断建议”等临床问题封装成指令,让模型学会“看图回答问题”。经过海量数据训练,RadFM 既能生成结构化报告,也能做开放式临床问答,成为真正的多模态对话模型。

自回归生成的概率模型:

和人类写作一样,RadFM 也是一字一句“憋”出来的报告。对比之下:BiomedCLIP 学会的是“打分”,RadFM 学会的是“输出”。一个适合做检索和分类,一个适合做报告生成和临床问答——两种能力互补,构成了医学视觉语言模型的完整版图。

P(R∣I)=∏k=1NP(wk∣w<k, I)\displaystyle P(R \mid I) = \prod_{k=1}^{N} P(w_k \mid w_{<k},\, I)
意思是:在给定图像 I 的条件下生成整篇报告 R 的概率,等于逐词生成概率的连乘。每生成一个新词 w_k,都要参考图像 I 和前面已经生成的所有词 w_<k。
  1. 条件生成概率P(R | I) 表示“看到图像 I,生成报告 R”这一事件的可能性。
    P(R∣I)P(R \mid I)
  2. 链式分解把整篇报告拆成 N 个词,每个词 w_k 的概率取决于图像和它前面的词。
    P(wk∣w<k, I)P(w_k \mid w_{<k},\, I)
  3. 连乘组合将所有词的条件概率乘起来,就得到整篇报告的概率,训练时最大化这个值。
    ∏k=1NP(wk∣w<k, I)\prod_{k=1}^{N} P(w_k \mid w_{<k},\, I)

迁移与微调

实习医生轮转完了所有科室,带着一身本领来到新科室。他不会从零学起,而是把之前练就的“看片能力”迁移过来,只需熟悉新科室的少量规矩就能上手。这就是预训练模型的价值:迁移学习。

把预训练模型用于下游任务,通常有三档做法。第一档是零样本推理:完全不训练,直接让模型在“图像 + 候选文本描述”之间做相似度比较,选出最匹配的答案。第二档是线性探测:冻结预训练主干的所有参数,只在特征之上加一个线性分类头,训几百个 epoch 就能达到不错效果。第三档是轻量微调:用 LoRA 等方法只更新少量新增参数,在保持通用能力的同时适配特定任务,这也是临床落地最常用的方案。

线性探测的数学表达:

实习医生靠“老本领 + 新规矩”快速上手,模型靠“预训练 + 轻量微调”快速落地。正因如此,BiomedCLIP 和 RadFM 这类大模型不再是实验室玩具:影像科医生用几百张标注数据、一两张显卡,就能在肺结节分类、骨折检测、报告生成等任务上取得实用效果。

zI=EI(xI),y=Wcls⊤zI+b\displaystyle z_I = E_I(x_I), \qquad y = W_{\text{cls}}^{\top} z_I + b
意思是:影像 x_I 先经过冻结的图像编码器 E_I 得到特征向量 z_I,再用一层可训练的线性分类头 W_cls 把特征映射到类别,得到预测值 y。主干不动,只学“最后一小段路”。
  1. 冻结主干提取特征E_I 是预训练好的编码器,这一步训练时参数不再更新,只做前向计算。
    zI=EI(xI)z_I = E_I(x_I)
  2. 线性分类头W_cls 是分类权重矩阵,把高维特征压缩到类别数,b 是偏置项。
    y=Wcls⊤zI+by = W_{\text{cls}}^{\top} z_I + b
  3. LoRA 的增量思想若想微调主干,用低秩矩阵对 B、A 近似权重增量,只需训练极少量参数。
    ΔW=BA\Delta W = BA

AI 应用场景

跨模态病例检索辅助诊断

阶段:预训练模型推理应用

解决的问题:传统 PACS 系统只能靠关键词、检查号检索历史病例,无法用“影像内容 + 自然语言”组合检索。医生遇到疑难病例时,想找“外观相似的既往病例”非常困难。

具体案例:一位影像科医生看到一例可疑肺结节,他在检索框中输入“右下肺分叶状实性结节伴毛刺”,系统用 BiomedCLIP 将这句描述和全院历史 CT 影像各自编码成向量,算出相似度,秒级返回最相似的几十例历史病例及其随访结果,为诊断提供参考。这套系统的核心正是“图文对比学习”练出的对齐能力。

放射报告自动生成初稿

阶段:生成式多模态推理

解决的问题:放射科医生每天要写几十上百份报告,工作负荷大,且夜间急诊需要快速出报告。人工逐字撰写既耗时又容易疲劳漏写。

具体案例:医生上传一组胸部 CT 三维影像,RadFM 自动生成“检查所见 + 诊断结论”的完整初稿,医生在结构化报告界面上复核修改,几分钟即可完成原本需要十几分钟的报告。遇到急诊夜间,模型初稿还能帮助低年资医生减少遗漏。

少样本病灶分类迁移落地

阶段:迁移学习与微调

解决的问题:罕见病或新发病种的标注数据极少,从头训练一个 CNN 分类器很容易过拟合,精度远达不到临床要求。

具体案例:某团队要做一个“肺结节良恶性分类”模块,但只有 800 张带标注的结节影像。他们加载 BiomedCLIP 预训练权重,冻结图像编码器,只在特征后加一个线性分类头,训练 50 个 epoch,准确率就达到 89%,显著超过从零训练的 ResNet。整个微调过程只需要一张消费级显卡。

Python 演示

python41 行
import numpy as np  def normalize(z):    return z / (np.linalg.norm(z, axis=1, keepdims=True) + 1e-8)  def info_nce_loss(z_img, z_txt, tau=0.1):    """双向 InfoNCE 对比损失, 返回损失和两个编码器的梯度"""    logits = z_img @ z_txt.T / tau    labels = np.arange(len(z_img))    onehot = np.eye(len(labels))[labels]    exp = np.exp(logits - logits.max(axis=1, keepdims=True))    prob = exp / exp.sum(axis=1, keepdims=True)    loss_1 = -np.mean(np.log(prob[np.arange(len(labels)), labels] + 1e-8))    exp_t = np.exp(logits.T - logits.T.max(axis=1, keepdims=True))    prob_t = exp_t / exp_t.sum(axis=1, keepdims=True)    loss_2 = -np.mean(np.log(prob_t[np.arange(len(labels)), labels] + 1e-8))    loss = 0.5 * (loss_1 + loss_2)    grad_img = (prob - onehot) / len(labels) @ z_txt / tau    grad_txt = (prob_t - onehot) / len(labels) @ z_img / tau    return loss, grad_img, grad_txt  np.random.seed(42)N, D = 32, 64w_img = np.random.randn(D, D) * 0.08w_txt = np.random.randn(D, D) * 0.08x_img = np.random.randn(N, D)x_txt = x_img @ np.random.randn(D, D) * 0.1 + np.random.randn(N, D) * 0.2 print("epoch  loss      匹配对相似度")for epoch in range(200):    z_img = normalize(x_img @ w_img)    z_txt = normalize(x_txt @ w_txt)    loss, g_img, g_txt = info_nce_loss(z_img, z_txt, tau=0.1)    w_img -= 0.05 * x_img.T @ g_img    w_txt -= 0.05 * x_txt.T @ g_txt    if epoch % 40 == 0:        match_sim = np.diag(z_img @ z_txt.T).mean()        print(f"{epoch:4d}  {loss:.4f}    {match_sim:.4f}")
目的:在纯 NumPy 环境下演示对比预训练的核心机制——图像与文本的相似度矩阵、双向 InfoNCE 损失、以及“拉近匹配对”的训练效果。运行后你会看到损失逐渐下降、对角线匹配对相似度逐渐上升。
  1. logits = z_img @ z_txt.T / tau计算批次内所有图像与文本的相似度矩阵,除以温度系数放大差异,对应正文的 s_ij。
  2. labels = np.arange(len(z_img))对角线位置 (i, i) 才是正确配对,这是对比学习的“标准答案”。
  3. grad_img = (prob - onehot) / len(labels) @ z_txt / tau对比学习的关键梯度:正确配对概率不满 1 时,梯度会推动编码器提高它的相似度。
  4. w_img -= 0.05 * x_img.T @ g_img梯度下降更新图像编码器权重,学习率 0.05。
  5. match_sim = np.diag(z_img @ z_txt.T).mean()用对角线相似度的平均值监控“配对练习”的进展。

常见误区

误区都是“医学视觉语言预训练模型”,名字又都带字母缩写,应该只是同一个模型的不同版本,随便用哪个都一样。

正解两者架构路线完全不同。BiomedCLIP 是“双塔 + 对比学习”,擅长判别(匹配、分类、检索);RadFM 是“生成式”模型,擅长输出(写报告、答问题)。好比一个是“配对狂魔”,一个是“写作能手”,职责不同、用法也不同。

为何常见:两者常被放在一起介绍,且都叫“预训练模型”,初学者容易忽略判别式与生成式的本质差异。

误区OpenAI 的 CLIP 在自然图像上表现很好,医学影像也是图像,直接拿 CLIP 的权重来用就行,不用重新训练。

正解自然图像与医学影像的分布差异极大——病灶、器官、扫描伪影在自然图片里几乎不出现。直接用 CLIP 做医学图文匹配,准确率会大幅下降。BiomedCLIP 的价值恰恰在于用约 1500 万对医学图文重新预训练,让编码器“学会看病”。

为何常见:迁移学习的概念深入人心,但忽略了“源域与目标域差异太大时,直接迁移效果有限”这一前提。

误区对比学习就是让模型把“第 1 张图配第 1 段文字、第 2 张图配第 2 段文字”这些配对关系背下来,考试时默写即可。

正解对比学习学的是“语义表征”。训练时配对是随机采样的,模型从未见过固定的“标准答案”。它学到的是图像和文本在语义空间中的相对位置——相似的语义靠得近,不相关的离得远。因此它能泛化到训练中从未见过的新图像和新文本上。

为何常见:配对任务看起来像“记答案”,特别是损失函数里“正确配对对角线上”的写法容易让人误解为记忆。

误区CT 和 MRI 也是图像,把三维数据当成“多通道”直接丢进 2D 图像编码器就行,反正模型能自动学会。

正解三维体数据的深度维包含层间解剖关系,直接当作通道拼接会破坏空间结构,且带来巨大的计算量。标准做法是切片采样、最大密度投影等降维手段,或像 RadFM 那样设计原生 3D patch embedding。

为何常见:直觉上“图就是图”,加上 PyTorch 里 tensor 形状都是 (C, H, W),容易误以为 3D 只是 C 更大。

误区预训练模型宣传里有“零样本能力”,那拿到医院部署后直接就能诊断,不需要任何额外训练。

正解零样本推理只适用于“图像与文本描述直接比较”这类任务,且精度通常低于有监督方案。真实临床落地几乎都需要下游适配:线性探测、LoRA 微调,甚至结合领域专家的标注做进一步训练,才能达到可用水平。

为何常见:厂商宣传强调零样本能力,容易让非技术人员忽略“通用能力 ≠ 临床精度”的差距。

面试题

Q1. BiomedCLIP 的核心预训练任务是?

单选题 · easy

  • A.自回归生成报告文本
  • B.图像文本对比配对← 正确答案
  • C.纯图像分类训练
  • D.强化学习寻优策略

答案:B。BiomedCLIP 的核心是“图文对比学习”——在批次内找出图像对应的正确文本,答案为 B。A 是 RadFM 的生成式任务;C 只用了图像没用到文本;D 与预训练无关。可以类比实习医生的“配对练习”。

Q2. BiomedCLIP 主要训练数据来源是?

单选题 · easy

  • A.通用自然图片库
  • B.医学影像报告库← 正确答案
  • C.人工标注的小样本
  • D.纯文本医学文献

答案:B。BiomedCLIP 主要基于 PMC-OA 构建的医学影像-报告配对数据(约 1500 万对),故选 B。A 是自然图像 CLIP 的数据;C 样本量远不够预训练;D 只有文本没有图像,无法做图文对齐。

Q3. 双向 InfoNCE 损失的第一项含义是?

单选题 · mid

  • A.文本到图像方向损失
  • B.图像到文本方向损失← 正确答案
  • C.图像自身的重构损失
  • D.文本语言建模损失

答案:B。双向损失的第一项对每个图像 i,在 N 个文本候选中选出正确文本,是“图像到文本”方向;第二项才是“文本到图像”方向。C 是自编码器任务,D 是语言模型任务,都与对比学习无关。就像实习医生既要从图找文、也要从文找图。

Q4. CT 三维数据送入 2D 编码器的常见做法?

单选题 · mid

  • A.轴向切片采样处理← 正确答案
  • B.直接拼接三维通道
  • C.随机丢弃大部分层
  • D.压缩成一维向量训练

答案:A。常见做法是沿轴把三维体积切成 2D 切片逐片处理,故 A 正确。B 把深度当通道会破坏层间结构;C 随机丢层会丢失病灶信息;D 压缩成一维损失空间信息。好比实习医生翻书看 CT,一层层翻而不是把书揉成团。

Q5. 医学报告文本设计的典型结构?

单选题 · mid

  • A.先结论后检查所见
  • B.先所见后诊断结论← 正确答案
  • C.随医生心情自由写
  • D.只写结论不写所见

答案:B。放射报告的标准结构是“检查所见 + 诊断结论”,先描述客观发现、再给主观判断,故选 B。A 顺序颠倒不符合规范;C、D 破坏了结构规律,会让模型更难学习。正是这种“八股文”结构给了文本编码器稳定的锚点。

Q6. RadFM 与 BiomedCLIP 的主要区别?

多选题 · hard

  • A.RadFM 属于生成式模型← 正确答案
  • B.RadFM 能处理三维影像← 正确答案
  • C.两者架构完全相同
  • D.RadFM 可生成完整报告← 正确答案

答案:ABD。RadFM 是自回归生成式模型,支持原生 3D 输入,能逐词生成完整报告,故 A、B、D 正确。C 错误——BiomedCLIP 是双塔对比架构,RadFM 是生成式架构,两者设计路线截然不同,一个像“配对狂魔”、一个像“写作能手”。

Q7. 零样本推理指的是?

单选题 · mid

  • A.不使用任何训练数据
  • B.不额外训练直接推理← 正确答案
  • C.需要完整重新微调
  • D.只做数据增强处理

答案:B。零样本推理指加载预训练模型后,不经任何下游训练,直接对未见过的任务做预测,故选 B。A 说法不准确,预训练阶段已经用过数据;C 与零样本相反;D 只改数据不改模型,不是零样本推理的核心含义。

Q8. InfoNCE 损失训练中温度系数 τ 的作用?

多选题 · extreme

  • A.控制相似度分布陡峭← 正确答案
  • B.影响难负样本惩罚强度← 正确答案
  • C.决定图像分辨率大小
  • D.改变模型参数量规模

答案:AB。τ 越小,相似度矩阵经过指数放大后分布越陡峭,模型对难负样本(与正确配对相似度较高的错误文本)的惩罚越强,故 A、B 正确。C 是数据预处理问题,D 是网络结构问题,都与温度系数无关。τ 好比配对练习的“评分尺度”:尺度越严,细小的差异越被放大。

Q9. 线性探测(Linear Probe)是指?

单选题 · hard

  • A.微调全部网络参数
  • B.用强化学习调策略
  • C.对输入做线性插值
  • D.冻结主干只训分类头← 正确答案

答案:D。线性探测是冻结预训练主干,只在特征之上训练一层线性分类器,故选 D。A 是全量微调;B 是完全不同的训练范式;C 是数据增强手段。类比实习医生轮转新科室:老本领(主干)不动,只需学轻量新规矩(分类头)。

Q10. 医学预训练数据清洗最关键的一点?

单选题 · easy

  • A.去除患者隐私标识← 正确答案
  • B.把所有图片转彩色
  • C.删除全部罕见病样
  • D.统一压缩成小尺寸

答案:A。医学数据涉及患者隐私,预训练前必须做去标识化(去除姓名、病历号等信息),这是合规底线,故 A 正确。B 转彩色反而可能引入无意义通道;C 删除罕见病样会损失重要信息;D 过度压缩会丢失影像细节,都不符合数据工程的正确做法。