想象一间古画修复工作室:学徒面前是一幅被岁月腐蚀的画,画中有大片缺色。师傅不直接告诉他每一笔该怎么画,而是用朱砂在缺损处写下批注。这些批注不是印死的字典,而是师傅边看学徒进步边修改的“动态笔记”。学徒要做的有两件事:第一,根据画中露出的部分,把被遮住的图案补出来;第二,从不同角度、不同光线下快速认出“这还是同一幅画”。 iBOT 就是这间工作室。它让视觉模型在没有人工标签的情况下,同时练习“补画”和“辨画”。补画对应掩码图像建模(Masked Image Modeling,MIM),辨画对应对比学习;而不断更新的师傅批注,就是论文中最重要的“在线分词器”(Online Tokenizer)。这套方法让 AI 从海量无标注图片中自己造任务、自己当老师,学到的特征可以迁移到分类、检测、分割等下游任务。

岗位关联

对 AI 从业者来说,iBOT 是理解“视觉自监督预训练为什么能省标注”的关键样板。掌握它,你就能用无标签数据做出可迁移的视觉表征,在医疗、工业等标注稀缺场景中直接落地。

目录
  1. 可视化演示
  2. 视觉预训练困境
  3. 核心思想双主线
  4. 在线分词器
  5. 掩码图像建模
  6. 对比学习支线
  7. 三方法对比
  8. 实验效果与应用展望
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

展示iBOT三大核心:掩码图像建模MIM与patch级对比学习、在线分词器替代离线VQ-VAE、与BEiT和MAE的方法对比。切换模式查看不同预训练机制。

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

MIM掩码图像建模 随机掩码图像patch,学生网络预测被掩码内容 patch级对比学习:预测Token与教师Token对齐 L=L_MIM+L_CLS+L_patch MIM+对比学习联合训练

视觉预训练困境

教 AI 认图,过去很像教小孩认生字:大人拿着卡片,指着猫说“猫”,指着狗说“狗”,小孩记住一张是一张。可现实是,图片数据浩如烟海,请专家逐张贴标签又贵又慢,这条路在规模化面前很快走不通。

自然语言处理给了我们一个启发:文字本来就是离散的“字词”,模型可以像做英语完形填空一样,挖掉一个词让模型猜。但图像没有这样的天然“单词”。一张照片是一整块连续像素,每个像素只有亮度颜色,单看任何一个像素都无法表达“这是一只猫的耳朵”。视觉领域缺少的是“字帖”,也就是把图像变成离散符号的分词器。

也有人试图只用数据增强来制造自监督信号,比如把图片翻转、裁剪后让模型判断是不是同一张。但这种“外功”练得再勤,也无法让模型理解局部的结构与遮挡。于是,解决视觉预训练困境的关键变成了两件事:第一,给图像造一本可学习的“批注字典”;第二,设计一个不需要标签也能自己出题的训练任务。iBOT 的答案,就是在线分词器加上补画与辨画两条主线。

核心思想双主线

修复工作室里,学徒每天要做两种练习。第一种是“补画”:师傅用白布遮住画的一部分,让学徒根据露出的部分补全;第二种是“辨画”:学徒被带到不同灯光下,远远看一眼,立刻判断“这是不是刚才那幅画”。两种练习同步进行,缺一不可。

对应到 iBOT,补画就是掩码图像建模,辨画就是 CLS token 上的对比学习。两者相加,构成总预训练目标。iBOT 不只把图像当作需要恢复的像素,也不只把图像当作需要区分的样本,而是让同一个学生网络同时吸收局部细节和全局语义。

这个公式看似简单,却点出了 iBOT 的设计哲学:局部与全局不是对手,而是队友。只补画,模型容易变成“只会拼局部的工匠”;只辨画,模型又容易忽略细节。两者相加,才能让学徒既看得清一草一木,又认得出整幅画的意境。

LiBOT=LMIM+LCLS\displaystyle \mathcal{L}_{\mathrm{iBOT}} = \mathcal{L}_{\mathrm{MIM}} + \mathcal{L}_{\mathrm{CLS}}
  1. 总损失$\mathcal{L}_{\mathrm{iBOT}}$ 是模型预训练时最终要优化的总损失,等于补画损失加上辨画损失。
    LiBOT\mathcal{L}_{\mathrm{iBOT}}
  2. 补画损失$\mathcal{L}_{\mathrm{MIM}}$ 负责被遮住图像块的语义预测,让模型学会局部结构。
    LMIM\mathcal{L}_{\mathrm{MIM}}
  3. 辨画损失$\mathcal{L}_{\mathrm{CLS}}$ 负责全局表征的对比,让模型学会区分不同图像。
    LCLS\mathcal{L}_{\mathrm{CLS}}

在线分词器

师傅的批注本在这个工作室里是活页的。普通字典印好就不变了,但师傅每次看到学徒的进步,都会在本子上修订几个用词。这个会成长的批注本,就是 iBOT 的在线分词器。

在 BEiT 等早期方法中,研究者先训练一个离线 dVAE,把图像 Patch 映射成固定编号的离散 Token。问题是:这个“字典”在预训练开始前就印死了,不会随模型进步而更新。iBOT 换了一种做法:用一个教师网络在训练过程中动态产生视觉 Token,学生网络则去预测教师给出的 Token。教师网络虽然不是完美答案,但它会随着学生一起进步,所以叫“在线”。

教师网络的参数不是用梯度下降训练的,而是学生参数的指数移动平均(EMA)。这样教师既不会瞬间退化成学生,也不会停滞不前。

在线分词器的输出不是唯一的硬编码,而是 K 类视觉 Token 上的概率分布,也就是“师傅的软批注”。学生越接近师傅的批注,损失越小。这个设计让 iBOT 不需要提前训练离散码本,也让特征空间随训练不断演进,是整篇论文最核心的贡献之一。

θteacher←λ⋅θteacher+(1−λ)⋅θstudent\displaystyle \theta_{\mathrm{teacher}} \leftarrow \lambda \cdot \theta_{\mathrm{teacher}} + (1-\lambda) \cdot \theta_{\mathrm{student}}
  1. 教师参数$\theta_{\mathrm{teacher}}$ 表示师傅网络的参数,它负责给每个图像 Patch 写批注。
    θteacher\theta_{\mathrm{teacher}}
  2. 衰减系数$\lambda$ 是 EMA 系数,通常取 0.996 到 0.999 之间,表示师傅保留旧经验的比重。
    λ\lambda
  3. 移动平均更新$(1-\lambda) \cdot \theta_{\mathrm{student}}$ 表示师傅每次只吸收一小部分学生的最新笔法,再和原有经验加权融合。
    (1−λ)⋅θstudent(1-\lambda) \cdot \theta_{\mathrm{student}}

掩码图像建模

现在回到补画练习。师傅会随机把画布切成 16×16 的小格子,再遮住其中一部分格子。遮住后,学徒只能看到剩下的格子,却要说出被遮住的格子里应该是什么图案。

具体实现中,图像被切成一连串 Patch,每个 Patch 经过嵌入后变成一个视觉 Token 向量。模型随机遮住一部分 Patch,再把被遮 Patch 的原始信息抹掉,只让学生网络看到可见 Patch。学生需要根据可见上下文,预测被遮 Patch 上师傅 Tokenizer 给出的分布。这就是 MIM 的核心公式。

这里要特别注意,iBOT 的预测目标是“师傅的语义 Token”,不是原始像素。和 MAE 直接补像素相比,补完了“猫耳朵的轮廓”比补出一团颜色更接近高层语义。这也是 iBOT 的图像特征能迁移到检测和分割等任务上的原因。

LMIM=−∑x∈M∑k=1Kpt(k∣x)⋅log⁡ps(k∣gθ(z^))\displaystyle \mathcal{L}_{\mathrm{MIM}} = - \sum_{\mathbf{x} \in \mathcal{M}} \sum_{k=1}^{K} p_t(k \mid \mathbf{x}) \cdot \log p_s(k \mid g_{\theta}(\hat{\mathbf{z}}))
  1. 被遮集合$\mathcal{M}$ 是所有被掩码的 Patch 位置集合,损失只在这些位置上计算。
    M\mathcal{M}
  2. 师傅软标签$p_t(k \mid \mathbf{x})$ 是教师 Tokenizer 在位置 $\mathbf{x}$ 上给出的第 $k$ 类视觉 Token 概率。
    pt(k∣x)p_t(k \mid \mathbf{x})
  3. 学生预测$p_s(k \mid g_{\theta}(\hat{\mathbf{z}}))$ 是学生网络看到可见 Patch 后,对被遮位置预测出的概率。
    ps(k∣gθ(z^))p_s(k \mid g_{\theta}(\hat{\mathbf{z}}))
  4. 交叉熵惩罚$-\sum \log$ 的形式让“学生猜得越不像师傅”时损失越大,训练目标就是让两者分布越来越接近。
    −∑k=1Kpt(k)⋅log⁡ps(k)- \sum_{k=1}^{K} p_t(k) \cdot \log p_s(k)

对比学习支线

补画练的是局部,但一幅画的主题是全局。为了让学徒在远处一瞥也能认出同一幅画,工作室还安排了辨画练习:同一件作品,被放在清晨和黄昏两种光线下拍照,学徒要判断这是同一幅;不同作品之间,学徒则要拉开距离。

iBOT 在图像序列最前面放了一个特殊的 CLS token,相当于整幅画的“摘要”。对同一幅图做不同视角的增强后,两个视角的 CLS 特征应该尽量相似;不同图片的 CLS 特征则应该尽量不同。这个目标可以用 InfoNCE 损失表达。

如果说 MIM 是让学徒知道“这朵云应该补在画的右上角”,那么 CLS 对比损失就是让学徒知道“这幅画整体讲的是江南水乡”。两条线互为补充,是 iBOT 比单纯 MIM 方法更稳的重要原因。

LCLS=−log⁡exp⁡(sim(zq,zk)/τ)∑j=1Nexp⁡(sim(zq,zj)/τ)\displaystyle \mathcal{L}_{\mathrm{CLS}} = - \log \frac{\exp( \mathrm{sim}(z_q, z_k) / \tau )}{\sum_{j=1}^{N} \exp( \mathrm{sim}(z_q, z_j) / \tau )}
  1. 查询特征$z_q$ 是当前样本一个视角的全局特征,代表“学徒手里的这幅画”。
    zqz_q
  2. 正样本特征$z_k$ 是同一幅画另一个视角的特征,两者应当靠近。
    zkz_k
  3. 温度系数$\tau$ 控制分布锐利程度,让相似度对比更集中或更松散。
    τ\tau
  4. 负样本分母$\sum_{j=1}^{N} \exp(...)$ 遍历批次中其他样本,代表“别的画”,模型要把正样本从所有画中认出来。
    ∑j=1Nexp⁡(sim(zq,zj)/τ)\sum_{j=1}^{N} \exp( \mathrm{sim}(z_q, z_j) / \tau )

三方法对比

自监督视觉预训练发展出三条路线,很像三种教画画的方法。BEiT 像拿着一本印好的教材,让学生按固定词典补成语;MAE 像让学生直接用水彩把白色区域涂成与周围相近的颜色;iBOT 则让师傅随堂批注,学生既要补画又要辨画。

| 方法 | Tokenizer | 预测目标 | 对比学习 | 掩码比例特点 |

| --- | --- | --- | --- | --- |

| BEiT | 离线 dVAE 固定词表 | 离散 Token | 无 | 掩码约 40% |

| MAE | 无 Tokenizer | 原始像素 | 无 | 掩码约 75% |

| iBOT | 在线教师网络 | 教师 Token 分布 | 有 | 掩码约 15% |

BEiT 的优点是目标语义化,但离线词表不随特征变化;MAE 的优点是掩码比例高、训练高效,但重建像素容易偏向低层纹理;iBOT 取两者之长:用在线 Teacher 提供语义目标,又用对比学习补上全局判别。在相近的 ViT 规模下,iBOT 在 ImageNet 分类以及检测、分割迁移任务上通常能取得更好的表现。

实验效果与应用展望

预训练结束时,修复工作室的学徒迎来“出师考试”。考试内容不是背画,而是拿着学到的笔法去各种陌生任务里临摹。实验显示,iBOT 预训练出的特征在 ImageNet 线性分类中表现突出,在目标检测、语义分割上也能超越 BEiT 和 MAE 等代表性的自监督方法。更关键的是,它只用少量标签就能达到不错的效果,这正是修补工作室在“缺师傅、缺标准答案”环境下的优势。

不过,iBOT 也并非万能。双教师-学生结构让训练显存和算力开销变大;在线分词器虽然精彩,但蒸馏过程对超参数更敏感;模型学到的仍是视觉表面结构,和语言中的抽象概念还有差距。未来,这类“动态自监督目标”思路正在与多模态、统一分词器结合,让 AI 在更大范围的无标注数据上自我进化。

AI 应用场景

医疗影像的少标注预训练

阶段:预训练与模型初始化

解决的问题:医疗影像标注依赖高水平放射科医生,成本极高,且自然图像预训练权重与 X 光、CT 的视觉分布差异很大。传统做法是直接拿 ImageNet 权重微调,容易出现领域偏移。

具体案例:某医疗 AI 团队收集了数十万张未标注的胸部 X 光片,用 iBOT 做自监督预训练。模型先通过补画学会肺野、肋骨、心脏等结构的位置关系,再通过对比学习让不同拍摄角度下的同一胸部影像特征保持一致。之后只需要少量标注数据微调,就能完成肺炎筛查和胸腔积液检测。

工业质检中的异常模式学习

阶段:表征学习与下游微调

解决的问题:工业产线上的缺陷样本稀少且种类未知,传统有监督检测很难提前枚举所有瑕疵。iBOT 能只使用正常产品图片完成预训练,让模型建立“正常外观”的强先验。

具体案例:某面板厂商用无标注的屏幕成品照片训练 iBOT,把每个屏幕 Patch 都当作古画的一小块。训练后模型对正常屏幕的补画误差很小;当出现划痕、亮点、脏污等异常时,补画误差会明显增大,系统借此触发质检告警。这样就把缺陷检测变成了“补画失败检测”。

Python 演示

python89 行
import mathimport torchimport torch.nn as nnimport torch.nn.functional as F  def build_pos_embed(seq_len, hidden):    pos = torch.arange(seq_len).unsqueeze(1).float()    dim_t = torch.exp(torch.arange(0, hidden, 2).float() * (-math.log(10000.0) / hidden))    pe = torch.zeros(seq_len, hidden)    pe[:, 0::2] = torch.sin(pos * dim_t)    pe[:, 1::2] = torch.cos(pos * dim_t)    return pe.unsqueeze(0)  class MiniPatchTransformer(nn.Module):    def __init__(self, patch_dim=48, hidden=64, num_patches=16, vocab=32, depth=2):        super().__init__()        self.patch_embed = nn.Linear(patch_dim, hidden)        self.mask_embed = nn.Parameter(torch.zeros(1, 1, hidden))        self.cls_token = nn.Parameter(torch.zeros(1, 1, hidden))        self.pos_embed = nn.Parameter(build_pos_embed(num_patches + 1, hidden))        layer = nn.TransformerEncoderLayer(d_model=hidden, nhead=4, dim_feedforward=128, batch_first=True)        self.encoder = nn.TransformerEncoder(layer, num_layers=depth)        self.vocab_head = nn.Linear(hidden, vocab)     def forward(self, patches, mask_mat=None):        x = self.patch_embed(patches) + self.pos_embed[:, 1:, :]        if mask_mat is not None:            x = x + self.mask_embed * mask_mat.unsqueeze(-1)        cls = self.cls_token.expand(patches.size(0), -1, -1) + self.pos_embed[:, :1, :]        x = torch.cat([cls, x], dim=1)        x = self.encoder(x)        return x[:, 0], self.vocab_head(x[:, 1:])  MOM = 0.996temp = 0.1  def ema_update(student, teacher):    with torch.no_grad():        for ps, pt in zip(student.parameters(), teacher.parameters()):            pt.data = MOM * pt.data + (1.0 - MOM) * ps.data  def train_step(student, teacher, optimizer, patches, mask_mat):    aug1 = patches + 0.05 * torch.randn_like(patches)    aug2 = patches + 0.05 * torch.randn_like(patches)    with torch.no_grad():        _, t_logits = teacher(aug2, None)    t_probs = F.softmax(t_logits, dim=-1).detach()     masked_patches = patches * (1.0 - mask_mat).unsqueeze(-1)    s_cls, s_logits = student(masked_patches, mask_mat)    mask_bool = mask_mat.bool()    s_logp = F.log_softmax(s_logits[mask_bool], dim=-1)    mim_loss = -(t_probs[mask_bool] * s_logp).sum(-1).mean()     _, t_cls = teacher(aug1, None)    s_cls = F.normalize(s_cls, dim=-1)    t_cls = F.normalize(t_cls, dim=-1)    logits = s_cls @ t_cls.t() / temp    labels = torch.arange(patches.size(0))    cls_loss = F.cross_entropy(logits, labels)    return mim_loss, cls_loss  def main():    torch.manual_seed(0)    student = MiniPatchTransformer()    teacher = MiniPatchTransformer()    teacher.load_state_dict(student.state_dict())    optimizer = torch.optim.AdamW(student.parameters(), lr=2e-4)    for step in range(30):        patches = torch.randn(4, 16, 48)        mask_mat = (torch.rand(4, 16) < 0.4).float()        mim_loss, cls_loss = train_step(student, teacher, optimizer, patches, mask_mat)        loss = mim_loss + cls_loss        optimizer.zero_grad()        loss.backward()        optimizer.step()        ema_update(student, teacher)        if step % 5 == 0:            print("step", step, "mim", round(mim_loss.item(), 3), "cls", round(cls_loss.item(), 3))  if __name__ == "__main__":    main()
目的:用随机的小型 Patch 序列跑通 iBOT 最核心的 MIM 教师 Token 损失与 CLS 对比损失,帮助理解训练流程,不是完整可用的视觉预训练模型。
  1. masked_patches = patches * (1.0 - mask_mat).unsqueeze(-1)把被掩码 Patch 的原始信息抹掉,只保留可见内容。
  2. t_probs = F.softmax(t_logits, dim=-1).detach()教师网络输出软 Token 分布,并且停止梯度,模拟在线分词器。
  3. mim_loss = -(t_probs[mask_bool] * s_logp).sum(-1).mean()只对被遮 Patch 计算交叉熵,让学生预测贴近教师批注。
  4. s_cls @ t_cls.t() / temp学生和教师的全局 CLS 特征做相似度矩阵,完成对比学习。
  5. pt.data = MOM * pt.data + (1.0 - MOM) * ps.data教师参数每步向学生做 EMA 更新,这就是“在线”的含义。

常见误区

误区我一直以为 iBOT 和 BEiT 一样,得先用大量图片训练一个离散词表,再做掩码任务。没有 dVAE 怎么定义 Token?

正解iBOT 的在线分词器本身就是“教师网络”。它不需要提前离线训练码本,而是在预训练过程中用 EMA 平滑更新,实时生成软 Token 目标。师傅的批注是边教边改的,不需要先印一本固定字典再去补画。

为何常见:BEiT 方法太有名,很多人把“MIM 必须配离线离散词表”当成标准配置,忽略了 iBOT 的创新点恰好在“在线”。

误区MAE 是补像素,iBOT 应该也是补像素,只是换了个网络结构。只要重建误差小,特征就一定好。

正解iBOT 的 MIM 预测目标是教师网络输出的视觉 Token 概率分布,而不是 RGB 像素值。补像素容易让模型沉迷于纹理和颜色,补 Token 才能逼模型学到“这是什么物体的一部分”这类语义信息。

为何常见:MAE 的像素重建非常直观,宣传图也很容易让人联想到“填色游戏”,于是把一切 MIM 都简化成像素回归。

误区学生网络和教师网络结合,这不是知识蒸馏吗?知识蒸馏通常需要标签,所以 iBOT 肯定也用了监督信号。

正解iBOT 的教师网络是学生网络自身历史参数的 EMA 版本,不是提前训练好的大模型,也不依赖任何人工标签。它只是扮演“会移动的靶子”,让学生有稳定的学习目标。形式像知识蒸馏,但本质是自监督。

为何常见:传统知识蒸馏中教师是强监督模型,看到“教师-学生”结构就条件反射地联想到标签,忽略了教师来源的差别。

误区既然模型都能把被遮住的图补出来,说明它已经理解图像结构了,为什么还要搞一个对比损失?

正解MIM 更关注局部 Patch 的语义,对比学习更关注整幅图像的全局判别。只做 MIM,模型可能对局部变化敏感而忽略整体;只做对比,模型又可能对细节不敏感。iBOT 的实验表明,两条损失联合优于二者任一单独使用。

为何常见:初学者习惯把模型任务看成单选题,认为一个目标就足够,忽略了视觉表征本身就需要多尺度信息。

面试题

Q1. iBOT 的训练同时使用了哪两种任务?

单选题 · easy

  • A.掩码图像建模与对比学习← 正确答案
  • B.目标检测与语义分割
  • C.生成对抗与强化学习
  • D.机器翻译与语音识别

答案:A。iBOT 的核心是把 MIM 和 CLS 对比学习联合优化。检测分割是下游任务,生成对抗和强化学习与 iBOT 无关。

Q2. 在线分词器里的“在线”主要指什么?

单选题 · easy

  • A.使用在线数据库
  • B.训练过程中动态生成目标← 正确答案
  • C.只在推理时起作用
  • D.必须连接云端服务器

答案:B。“在线”指教师网络在预训练中随学生参数 EMA 更新,Token 目标不是印死的离线码本,而是随时演变的软批注。

Q3. iBOT 中教师网络参数如何更新?

单选题 · mid

  • A.通过梯度下降直接训练
  • B.每一步随机初始化
  • C.学生参数的指数移动平均← 正确答案
  • D.在测试集上微调得到

答案:C。教师网络不参与梯度训练,而是用学生参数的 EMA 更新。这让教师在保持稳定性的同时缓慢吸收学生学到的知识。

Q4. 关于 iBOT 的教师网络,下列说法正确的是?

多选题 · mid

  • A.需要反向传播梯度
  • B.不需要计算梯度← 正确答案
  • C.可以提供软 Token 目标← 正确答案
  • D.必须依赖人工标注

答案:BC。教师网络在 no_grad 下生成软 Token 分布,作为学生 MIM 的预测目标;它不反向传播也不依赖标签,这与监督知识蒸馏有本质区别。

Q5. iBOT 的 MIM 损失主要计算在哪些位置上?

单选题 · mid

  • A.所有可见的像素点上
  • B.原始输入图像上
  • C.被掩码的 Patch 上← 正确答案
  • D.分类头的输出层上

答案:C。MIM 只在被遮住的 Patch 位置计算损失。可见 Patch 是学生用来推理的上下文,不需要提供预测目标。

Q6. 与 MAE 的像素重建相比,iBOT 的预测目标是什么?

单选题 · mid

  • A.教师网络输出的 Token 分布← 正确答案
  • B.原始 RGB 像素值
  • C.图像的颜色直方图
  • D.三通道的全局均值

答案:A。iBOT 预测的是教师 Tokenizer 给出的视觉 Token 分布,而不是像素。这使模型学到更高层的语义结构,而不是单纯的颜色纹理。

Q7. 与 BEiT 相比,iBOT 的主要改进包括?

多选题 · hard

  • A.Tokenizer 改为在线更新← 正确答案
  • B.引入全局对比学习← 正确答案
  • C.不再使用 Transformer
  • D.需要离线 dVAE 分词

答案:AB。BEiT 使用离线 dVAE 固定词表和纯 MIM;iBOT 用在线教师网络替代固定词表,同时加入 CLS 对比学习。两者都基于 Transformer。

Q8. iBOT 的 MIM 损失与 CLS 对比损失如何配合?

单选题 · hard

  • A.相加后联合优化← 正确答案
  • B.轮流交替且互不叠加
  • C.相乘并取平方根
  • D.只保留损失较大的那一个

答案:A。iBOT 的最终损失是 $\mathcal{L}_{\mathrm{MIM}} + \mathcal{L}_{\mathrm{CLS}}$,两条损失在同一个训练阶段中相加并共同反向传播。

Q9. 实验表明 iBOT 在下游任务中的优势包括哪些?

多选题 · hard

  • A.ImageNet 分类提升← 正确答案
  • B.检测分割迁移更好← 正确答案
  • C.完全不需要微调
  • D.对标签依赖更低← 正确答案

答案:ABD。iBOT 在分类、检测、分割上都有较好表现,并能在少量标签下获得可用特征;但它仍需要下游微调,不是完全不需要微调。

Q10. 在线分词器相比固定离线词表最重要的价值是什么?

单选题 · extreme

  • A.固定标签能加速收敛
  • B.与训练过程完全无关
  • C.Token 目标随特征演化← 正确答案
  • D.不需要任何神经网络

答案:C。iBOT 的教师网络随训练不断更新,Token 目标也随之演化,避免模型被早期不成熟的码本束缚。固定词表虽然有稳定性,但无法随特征共同成长。