请想象一个没有老师的孩子,独自面对一盒散落的拼图。没有说明书,也没有参考答案,但他想出了一个聪明的办法:先把能确定的部分拼好,然后用手遮住一块碎片,根据周围的图案猜测它本该是什么——猜完松手一对照,自己就知道对没对。就这样,孩子用“遮一猜一验”的自问自答,把拼图本身变成了老师。这正是自监督学习的核心:让模型从无标签数据中自己构造“问题”与“答案”。本文的主角们——BERT 遮字猜词、GPT 逐词续写、SimCLR 拉近相似视图、MAE 重建被遮图像——全都是这场“拼图游戏”的变体。读懂这些游戏,你就读懂了大模型预训练的秘密:为什么海量无标注数据能让机器获得通用能力。

岗位关联

掌握自监督学习,你就握住了大模型预训练的核心引擎,也能在日常工作中用海量无标注数据训练出实用的表征模型——这是 AI 从业者最值得投资的基础能力。

目录
  1. 可视化演示
  2. 自监督概述
  3. 预训练范式
  4. 对比学习
  5. 掩码语言建模
  6. 生成式预训练
  7. 掩码自编码器
  8. 实际应用
  9. 大模型意义
  10. AI 应用场景
  11. Python 演示
  12. 常见误区
  13. 面试题

可视化演示

展示自监督学习四大范式:BERT掩码预测、对比学习正负样本对、GPT自回归预训练、下游任务迁移微调。支持步进切换四个阶段。

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

'+captions.mask+'

自监督概述

请想象一个没有老师的孩子,独自面对一盒散落的拼图。没有说明书,也没有参考答案,但他很快想出一个聪明的办法:先把能确定的部分拼好,然后用手遮住一块碎片,根据周围的图案猜它本该是什么——猜完松手一对照,自己就知道猜得对不对。这个“遮一猜一验”的小循环,让拼图自己变成了老师。深度学习里的自监督学习,用的正是同一个思路:模型不需要人类告诉它“正确答案”,而是从数据本身挖出问题与答案。

传统监督学习需要大量人工标注:告诉模型“这张图是猫”“这句话是褒义”。可互联网上真正多的是没有标签的数据——文章、照片、视频。自监督学习不再等待人类来标注,而是让模型自己出题:遮住句子里的一个词,预测它;旋转一张图片,预测旋转角度;从视频中抽掉几帧,预测缺失帧。这些“答案”(即伪标签)就藏在数据本身里,获取成本几乎为零。

把这种“自己出题自己答”的形式写成通用目标:先对样本 $x$ 施加一种破坏(遮掩、裁剪、加噪)得到 $\tilde{x}$,再让模型 $f_\theta$ 根据 $\tilde{x}$ 预测从 $x$ 中导出的目标 $y(x)$:

回到拼图桌:伪标签就是被遮住的那块碎片,预测就是孩子的猜测,周围的图案则是他的上下文。孩子不需要大人站在旁边判对错,拼图自己会给他反馈。正是这种“数据自造答案”的能力,让自监督学习成为大模型时代最趁手的工具。

LSSL(θ)=Ex∼pdata[ ℓ(fθ(x~), y(x)) ]\mathcal{L}_{\mathrm{SSL}}(\theta) = \mathbb{E}_{x \sim p_{\mathrm{data}}}\left[\ \ell\left(f_\theta(\tilde{x}),\ y(x)\right)\ \right]
这个公式概括了所有自监督方法:破坏一部分数据,再用剩下部分预测被破坏的内容。预测得越准,模型对数据的理解就越深。
  1. 期望运算符表示对所有训练数据取平均损失,衡量模型在整体数据上的平均表现。
    Ex∼pdata\mathbb{E}_{x \sim p_{\mathrm{data}}}
  2. 数据采样样本从真实世界的数据分布中抽取,既可以是文本也可以是图像。
    x∼pdatax \sim p_{\mathrm{data}}
  3. 损坏视角$\tilde{x}$ 是原始样本被遮掩、裁剪或加噪声之后的样子,是模型真正看到的输入。
    x~\tilde{x}
  4. 模型预测模型对损坏输入输出一个表征或预测,这是自监督学习“猜”的动作。
    fθ(x~)f_{\theta}(\tilde{x})
  5. 伪标签生成标签由数据自身导出,不需要人类标注,这正是“自监督”名称的来源。
    y(x)y(x)
  6. 损失度量$\ell$ 比较预测与伪标签的差距,梯度沿着它更新模型参数 $\theta$。
    ℓ(fθ(x~), y(x))\ell\left(f_\theta(\tilde{x}),\ y(x)\right)

预训练范式

孩子没有停在“拼完一盒就收工”。他先大量练习各种拼图,成了“拼图通才”——之后无论是新拼图还是真实照片,他都能快速上手。这就是“先广学、后精用”的两段式学习:先把通用技巧练成本能,再在具体场景里快速适应。深度学习中的预训练范式,就是把这套成长路径搬进了神经网络。

“先广学”对应预训练阶段:在大规模无标签数据上执行自监督代理任务,让模型学到通用的语法、视觉结构与世界常识;“后精用”对应微调阶段:用少量带标签数据,在具体任务上继续训练模型。这样做的好处是,同一个预训练模型可以低成本地复用到无数个下游任务上,就像孩子的拼图经验可以迁移到任何新拼图上。

形式化地说,整个流程包含两个优化目标:首先在代理任务上求出最优参数 $\theta^{*}$,然后以它为起点在任务上微调得到 $\theta_f$:

拼图通才的每一次“上手新拼图”,都对应着工程师把预训练模型加载到新任务上。预训练省下的标注费用,就像孩子省下的请老师费用——这正是自监督预训练范式横扫工业界的根本原因。

θ∗=arg⁡min⁡θ Lpretext(θ),θf=arg⁡min⁡θ Ltask(θ)\theta^{*} = \arg\min_{\theta}\, \mathcal{L}_{\mathrm{pretext}}(\theta), \qquad \theta_{f} = \arg\min_{\theta}\, \mathcal{L}_{\mathrm{task}}(\theta)
一句话概括预训练范式:先在海量无标签数据上“广学”通用表征,再在少量有标签数据上“精学”特定任务。
  1. 最优参数$\theta^{*}$ 是预训练阶段在代理任务上达到最小损失的参数,代表“通用能力”。
    θ∗\theta^{*}
  2. 代理任务损失$\mathcal{L}_{\mathrm{pretext}}$ 是遮词预测、对比损失等自监督任务的目标函数。
    Lpretext(θ)\mathcal{L}_{\mathrm{pretext}}(\theta)
  3. arg min 运算符表示“在可行参数中挑出使损失最小的那一个”。
    arg⁡min⁡θ\arg\min_{\theta}
  4. 微调参数$\theta_f$ 是以预训练参数为起点、在下游任务上继续优化得到的参数。
    θf\theta_{f}
  5. 下游任务损失$\mathcal{L}_{\mathrm{task}}$ 是分类、问答等具体任务的损失,通常需要少量标注数据。
    Ltask(θ)\mathcal{L}_{\mathrm{task}}(\theta)

对比学习

拼图盒里有两片很相似的碎片:同一片天空出现在不同位置的两朵云。孩子发现,“长得像”是最重要的线索——把相似的碎片凑近,把不相似的碎片分开,拼得就越快越好。这种“物以类聚”的直觉,正是对比学习的灵魂。

对比学习把这个直觉变成训练目标:把同一张图做两次不同的数据增强(旋转、裁剪、变色),得到两个“相似视图”,它们构成正样本对,在向量空间中应该靠近;不同图片的增强视图构成负样本对,应该彼此远离。模型学会的不是识别某张具体的图,而是判断“什么和什么是一伙的”。以 SimCLR 为代表的对比方法,用 InfoNCE 损失实现这一目标:

孩子在拼图游戏中不断“拉近相似、推开相异”,最终练就一双能看穿所有拼图的“相似之眼”。对比学习学到的这套通用表征不依赖任何人工标签,因此在图像、文本乃至多模态领域都大放异彩。

LInfoNCE=−log⁡exp⁡(sim(zi,zj)/τ)∑k=12N1[k≠i] exp⁡(sim(zi,zk)/τ)\mathcal{L}_{\mathrm{InfoNCE}} = -\log \frac{\displaystyle \exp\left(\mathrm{sim}(z_i, z_j)/\tau\right)}{\displaystyle \sum_{k=1}^{2N} \mathbf{1}_{[k \neq i]}\, \exp\left(\mathrm{sim}(z_i, z_k)/\tau\right)}
InfoNCE 的直觉是:在“一批候选者”中,模型要准确挑出那个与当前样本最像的正样本,挑得越准,损失越小。
  1. 编码表征$z_i$ 与 $z_j$ 是同一张图两个增强视图经过编码器得到的向量。
    zi, zjz_i,\ z_j
  2. 相似度函数用余弦相似度衡量两个表征向量方向是否一致。
    sim(zi,zj)=zi⋅zj∥zi∥ ∥zj∥\mathrm{sim}(z_i, z_j) = \frac{z_i \cdot z_j}{\lVert z_i \rVert\, \lVert z_j \rVert}
  3. 温度系数$\tau$ 缩放相似度,控制对比分布的锐利程度,影响模型对困难负样本的关注度。
    τ\tau
  4. 负样本分母对批内除自身外所有样本的相似度求和,构成“谁都不像它”的对比基线。
    ∑k=12N1[k≠i] exp⁡(sim(zi,zk)/τ)\sum_{k=1}^{2N} \mathbf{1}_{[k \neq i]}\, \exp\left(\mathrm{sim}(z_i, z_k)/\tau\right)
  5. 负对数概率对归一化后的正样本概率取 $-\log$,正样本越突出,损失越小。
    −log⁡(⋅)-\log(\cdot)

掩码语言建模

这一次,孩子翻开一本故事书,用拇指随机遮住几个字:“春眠不_晓,处处闻_鸟”。他试着根据前后的字把空缺补上。这个“遮字猜字”的小游戏,恰好就是 BERT 的预训练方式——把拼图游戏从图像搬到了语言上。

2018 年,BERT 提出掩码语言建模(MLM):随机遮住 15% 的词元,让模型利用左右两侧的上下文预测被遮住的词。与只“看左边”的模型不同,BERT 是双向编码器,每个词都能看到完整句子,因此学到的是“上下文深度理解”能力。值得注意的是,BERT 采用 80/10/10 掩码策略:80% 换成 [MASK],10% 换成随机词,10% 保持不变,以缓解预训练与微调阶段输入不一致的问题。

对每个被遮位置 $i$,模型在词表上输出一个概率分布,用交叉熵衡量预测与真实词的差距:

孩子通过“遮字猜字”游戏,学会了词与词之间的关系——“春眠”后面多半跟着“不觉晓”。BERT 靠这个简单游戏横扫了当时的 NLP 榜单,证明了一个道理:最好的语言老师,就是语言自己。

LMLM=−∑i∈Mlog⁡P(wi∣w∖M; θ)\mathcal{L}_{\mathrm{MLM}} = -\sum_{i \in \mathcal{M}} \log P\left(w_i \mid w_{\setminus \mathcal{M}};\ \theta\right)
MLM 的直觉:被遮住的词是“伪标签”,模型必须从两侧上下文里寻找线索,猜得越准说明语言理解越深。
  1. 掩码位置集合$\mathcal{M}$ 是当前样本中被随机遮住的词元下标集合。
    M\mathcal{M}
  2. 条件概率$P(w_i \mid \cdot)$ 表示在给定可见上下文时,该位置词为 $w_i$ 的概率。
    P(wi∣w∖M; θ)P\left(w_i \mid w_{\setminus \mathcal{M}};\ \theta\right)
  3. 双向上下文$w_{\setminus \mathcal{M}}$ 是去掉被遮词后剩下的所有词,包含左右两侧信息。
    w∖Mw_{\setminus \mathcal{M}}
  4. 负对数求和对所有被遮位置取负对数概率并求和,预测越准总损失越小。
    −∑i∈Mlog⁡P(⋅)-\sum_{i \in \mathcal{M}} \log P(\cdot)

生成式预训练

拼图玩腻了,孩子开始讲故事。他指着故事书的开头,一个字一个字往下猜:“今→天→天→气→真→……”,每猜一个字就写下来,再猜下一个。他永远只看已经写下的部分,绝不偷看后面——这是另一种自监督游戏:续写。GPT 系列采用的就是这种思路。

GPT 使用自回归预训练:给定前面 $t-1$ 个词,预测第 $t$ 个词,依次训练。Transformer 解码器用带掩码的注意力保证每个位置只能看到过去,不能看到未来。这让 GPT 天然适合生成任务——你给它一个开头,它就能顺着“续写”的本能一直写下去。也因为只看前文,GPT 在需要回顾完整上下文的场景(如判断句子情感)上不如 BERT,但在生成上却一骑绝尘。

自回归模型把整句话出现的概率分解为每个词条件概率的连乘:

续写故事的孩子,练出了“顺着前文一路写下去”的肌肉记忆。GPT 把这个游戏玩到了极致——当数据量和参数规模足够大时,“续写”甚至演化出推理、翻译、写代码等能力,这是后话,但起点正是这场简单的接龙游戏。

P(x1,x2,…,xT)=∏t=1TP(xt∣x1,x2,…,xt−1; θ)P(x_1, x_2, \ldots, x_T) = \prod_{t=1}^{T} P\left(x_t \mid x_1, x_2, \ldots, x_{t-1};\ \theta\right)
自回归的直觉:一句话的好坏,等于“逐词续写”时每一步猜对概率的乘积;每一步都合理,整句话才合理。
  1. 句子联合概率左边是整句话作为一个整体出现的概率。
    P(x1,x2,…,xT)P(x_1, x_2, \ldots, x_T)
  2. 连乘分解把整句概率拆成每个词的条件概率逐个相乘。
    ∏t=1T\prod_{t=1}^{T}
  3. 条件概率项第 $t$ 个词只依赖它前面的词,这是“单向”的体现。
    P(xt∣x1,…,xt−1; θ)P\left(x_t \mid x_1, \ldots, x_{t-1};\ \theta\right)
  4. 因果注意力掩码训练时用掩码矩阵保证第 $t$ 个位置只能访问前 $t-1$ 个位置。
    1[j≤t]\mathbf{1}_{[j \le t]}

掩码自编码器

孩子决定挑战地狱难度:把拼图拆散后,随机丢掉 75% 的碎片,只留下四分之一,然后凭借这些残片把整幅图画出来。听起来几乎不可能,但正是这种“极度缺失”逼他真正理解画面结构——天空在上、土地在下、碎片之间有纹理联系。MAE(掩码自编码器)把这场游戏搬到了图像上。

MAE 的做法是:把图片切成 16×16 的小块(patch),随机掩码 75% 的块,只把可见的 25% 送入编码器;随后,一个轻量级解码器以可见块的表征为条件,重建所有被掩码块的原始像素。掩码率越高,模型越无法靠“抄袭邻近像素”蒙混过关,只能学会真正的全局语义。

重建目标通常采用均方误差,逐像素比较预测与真实的差距:

只给 25% 碎片的游戏,让孩子被迫从“看懂边缘”上升到“看懂主题”。MAE 学到的高层语义表征在目标检测、分割等下游任务上表现优异——困难游戏带来的回报,往往比轻松游戏丰厚得多。

LMAE=1∣M∣∑i∈M(x^i−xi)2\mathcal{L}_{\mathrm{MAE}} = \frac{1}{\left|\mathcal{M}\right|} \sum_{i \in \mathcal{M}} \left( \hat{x}_i - x_i \right)^2
MAE 的直觉:丢掉 75% 的拼图,让孩子(编码器)必须从剩下的 25% 中读出整幅图的主旨,而不是死记局部花纹。
  1. 掩码块集合$\mathcal{M}$ 是被遮掉的图像块位置集合,数量通常占全部块的 75%。
    M\mathcal{M}
  2. 归一化平均$\frac{1}{|\mathcal{M}|}$ 把所有掩码位置的误差取平均,得到平均重建误差。
    1∣M∣\frac{1}{\left|\mathcal{M}\right|}
  3. 重建像素$\hat{x}_i$ 是解码器对第 $i$ 个掩码位置输出的预测像素值。
    x^i\hat{x}_i
  4. 原始像素$x_i$ 是原始图像的像素值,作为自监督学习的伪标签。
    xix_i
  5. 均方误差平方差对大误差施加更大的惩罚,鼓励模型精确重建。
    (x^i−xi)2\left( \hat{x}_i - x_i \right)^2

实际应用

拼图通才的孩子终于走出房间:他看照片一眼就能抓住重点,读小说一遍就能复述情节,朋友让他推荐书单时总能说到点子上。小时候练的那些“自问自答”游戏,成了他受用终身的底层能力。在 AI 工业界,这套底层能力被称为“预训练表征”,应用无处不在。

NLP 中,BERT/GPT 的向量被用于文本分类、语义检索、问答系统;CV 中,MAE 等模型被用于目标检测、医学影像分析;多模态领域,CLIP 用对比学习把文本与图像对齐到同一个向量空间。以语义搜索为例:查询和文档分别经过预训练编码器得到语义向量,再用余弦相似度衡量相关度,即使说法不同、意思相近也能匹配上。

孩子说得出“推荐这本书的理由”,其实只是把拼图时代“相似性”的直觉用在了语义词空间。对工程师而言,一套预训练表征就是无数下游任务的高性价比起点——这就是自监督学习落地生花的地方。

sim(q,d)=eq⋅ed∥eq∥ ∥ed∥\mathrm{sim}(q, d) = \frac{\mathbf{e}_q \cdot \mathbf{e}_d}{\lVert \mathbf{e}_q \rVert\, \lVert \mathbf{e}_d \rVert}
语义检索的直觉:查询和文档被编码成两个“语义箭头”,箭头方向越一致,说明两者越相关,与具体用词无关。
  1. 查询向量$\mathbf{e}_q$ 是用户查询经过预训练编码器得到的语义向量。
    eq\mathbf{e}_q
  2. 文档向量$\mathbf{e}_d$ 是候选文档经同一个编码器得到的语义向量。
    ed\mathbf{e}_d
  3. 向量点积点积衡量两个向量方向的接近程度,方向一致时取值最大。
    eq⋅ed\mathbf{e}_q \cdot \mathbf{e}_d
  4. 长度归一化除以模长后,相似度落在 $[-1, 1]$ 区间,只关心方向不关心长度。
    ∥eq∥ ∥ed∥\lVert \mathbf{e}_q \rVert\, \lVert \mathbf{e}_d \rVert

大模型意义

孩子见过的拼图从 100 盒变成 1 亿盒后,发生了神奇的变化:他不再只是“会拼图”,而是开始“理解世界”。给他一段残缺的文字,他能补全;给他一个从没见过的任务,他能举一反三。这种能力上的突变,就是“涌现”。而推动这场质变的燃料,正是自监督学习。

大模型的训练几乎全部依赖自监督预训练:互联网提供了近乎无限的无标签文本、图像与音视频,自监督任务把这些“原材料”转化为“通用能力”。研究者发现,当模型参数量与数据量按规律增长时,预训练损失以幂律方式下降,并在某个临界规模后涌现出少样本学习、指令跟随等能力,使模型从“工具”升格为“基础模型”。

这种规模法则可以用幂律近似刻画:

从第一盒拼图到一亿盒拼图,孩子走的正是“自监督预训练 + 规模化”这条路。理解这条路,就理解了大模型为何能从海量无标注数据中长出通用智能——这也是每一位 AI 从业者都应该掌握的底层图景。

L(N)=L∞+(N∞N)α\mathcal{L}(N) = L_{\infty} + \left( \frac{N_{\infty}}{N} \right)^{\alpha}
规模法则的直觉:模型越大、数据越多,预训练损失越低;但损失不会无限下降,而是逼近一个由数据本身决定的极限。
  1. 模型规模$N$ 是模型参数量,规模越大表示模型越“大”。
    NN
  2. 不可约误差$L_{\infty}$ 是数据本身的噪声下限,任何模型都无法突破。
    L∞L_{\infty}
  3. 经验常数$N_{\infty}$ 是与数据分布和模型架构相关的经验常数。
    N∞N_{\infty}
  4. 幂律下降$\left(N_{\infty}/N\right)^{\alpha}$ 刻画损失随规模增大而减小的速度。
    (N∞N)α\left( \frac{N_{\infty}}{N} \right)^{\alpha}
  5. 缩放指数$\alpha$ 通常小于 1,控制着“砸更多钱”带来的收益递减速度。
    α\alpha

AI 应用场景

电商语义搜索与智能问答

阶段:文本自监督预训练 → 下游微调

解决的问题:传统关键词搜索无法理解同义表达,用户搜“怎么退运费”匹配不到“退款流程”页面;人工维护同义词规则库成本高、更新慢。

具体案例:某电商平台收集数亿条无标注的用户咨询日志,用 BERT 掩码语言建模预训练,再在数千条人工标注的“查询-答案”对上微调。上线后检索准确率提升 23%,新话术无需再人工配置规则即可命中,客服人力成本下降明显。

医学影像少样本辅助诊断

阶段:图像自监督预训练 → 少量标注微调

解决的问题:医学影像标注需要专家逐张读片,昂贵且耗时;而医院积压了大量无标注的影像数据,传统监督学习难以利用。

具体案例:某医疗 AI 团队用 MAE 在 30 万张无标注的胸部 X 光片上预训练,再对几百张带“肺炎病灶”标注的片子微调。检测 AUC 比从零训练的模型高出 12 个百分点,标注成本节省约 90%,验证了“先自监督广学、再少量精学”的路径。

推荐系统冷启动

阶段:用户行为序列对比预训练

解决的问题:新用户行为记录少,传统协同过滤无法建模;需要从大量无标注的行为日志中学习用户兴趣表征。

具体案例:某短视频平台把同一用户的行为序列随机裁剪、打乱成两个增强视图,构成正样本对,用 InfoNCE 损失做对比预训练,得到用户兴趣向量。在冷启动场景中,新用户推荐点击率提升 8%,同时减少了人工特征工程的维护成本。

Python 演示

python46 行
import torchimport torch.nn as nnimport torch.nn.functional as F torch.manual_seed(42)  class Projector(nn.Module):    """将原始特征映射到对比学习使用的低维空间"""    def __init__(self, dim_in, dim_out):        super().__init__()        self.fc = nn.Sequential(            nn.Linear(dim_in, dim_in),            nn.ReLU(),            nn.Linear(dim_in, dim_out),        )     def forward(self, x):        return self.fc(x)  def info_nce_loss(z_i, z_j, temperature=0.07):    """InfoNCE 损失:拉近正样本对,推远负样本对"""    N = z_i.size(0)    z = torch.cat([z_i, z_j], dim=0)          # [2N, D]    z = F.normalize(z, dim=1)    sim = z @ z.t() / temperature             # [2N, 2N] 相似度矩阵    mask = torch.eye(2 * N, dtype=torch.bool)    sim.masked_fill_(mask, -1e9)              # 排除自身    labels = torch.cat([torch.arange(N, 2 * N), torch.arange(N)])    return F.cross_entropy(sim, labels)  model = Projector(64, 32)optimizer = torch.optim.Adam(model.parameters(), lr=1e-3) for epoch in range(50):    x = torch.randn(32, 64)    x_i = x + 0.1 * torch.randn_like(x)       # 增强视图一    x_j = x + 0.1 * torch.randn_like(x)       # 增强视图二    loss = info_nce_loss(model(x_i), model(x_j))    optimizer.zero_grad()    loss.backward()    optimizer.step()    if epoch % 10 == 0:        print("epoch %d, loss %.4f" % (epoch, loss.item()))
目的:完整实现对比学习的核心——InfoNCE 损失,在随机生成的数据上演示“拉近正样本对、推远负样本对”的训练过程。
  1. z = F.normalize(z, dim=1)把表征向量投影到单位球面,只用方向衡量相似度。
  2. sim = z @ z.t() / temperature用矩阵乘法一次性算出所有样本两两之间的相似度。
  3. sim.masked_fill_(mask, -1e9)将对角线上的自身相似度设为负无穷,让 softmax 中自己“不参与竞争”。
  4. labels = torch.cat([torch.arange(N, 2 * N), torch.arange(N)])第 $i$ 个样本的正样本是另一个视图中的第 $i$ 个,构成标签。
  5. F.cross_entropy(sim, labels)用交叉熵实现 InfoNCE 的 softmax 对比,正样本在候选者中越突出,损失越低。

常见误区

误区“自监督学习和无监督学习不是一回事吗?反正都不用人工标签,我从来没觉得它们有区别。”

正解二者确实都“不用人工标注”,但内在逻辑不同。无监督学习(聚类、降维、密度估计)没有显式预测目标;自监督学习则会从数据中构造伪标签并做预测任务——就像遮住拼图猜图案。它更像是“让数据扮演老师”的监督学习,只是老师由数据自己担任。

为何常见:学术资料常把自监督归入无监督的大类,初学者只看“有无标签”这个表层特征,而忽略了“是否有自造目标”这一本质区别。

误区“BERT 会预测被遮住的字,那让它从头开始一直猜下去,不就能写文章了吗?”

正解BERT 是双向编码器,每个位置能同时看到左右两侧上下文;而写文章需要“只看前文、逐词生成”的自回归方式。BERT 就像能看到整幅拼图的审阅者,擅长分析理解,却不适合从头“续写”。GPT 的因果掩码注意力才是为生成设计的。

为何常见:“预测被遮词”与“生成下一个词”表面相似,容易让人忽略注意力方向(双向 vs 单向)的根本差异。

误区“自监督不用人工标注,那我随便从网上抓几十 TB 的文本丢进去训练,效果一定更好。”

正解数据规模重要,但质量同样关键。重复、噪声大、领域不匹配的数据会让模型学到冗余甚至有害的模式,导致下游任务掉点。就像拼图里混进碎纸片,拼得再多也拼不出干净的画面。数据清洗、去重与领域匹配是预训练工程的关键步骤。

为何常见:“无标签等于零成本”让人产生“质量无所谓”的错觉,忽视了脏数据对表征的隐性污染。

误区“把同一只猫的两张不同照片在向量空间里拉近,模型不就学会猫了吗?负样本应该可有可无吧。”

正解如果只有“拉近正样本对”的信号,模型的最优策略是把所有输入都映射到同一个点——这被称为表征坍塌,模型退化成什么都不学。InfoNCE 分母中的负样本提供了“推开其他样本”的对抗力量,模型才被迫保留区分性特征。就像孩子只学“什么和什么像”,却不学“什么和什么不像”,他根本无法分辨任何东西。

为何常见:“相似的东西要接近”直觉上容易理解,“不相似的要远离”这一半常被忽略,导致对损失函数理解残缺。

面试题

Q1. 自监督学习的核心思想是什么?

单选题 · easy

  • A.从无标签数据中构造监督信号← 正确答案
  • B.用人工标注的数据来训练
  • C.用强化学习奖励来训练
  • D.用对抗生成网络合成数据

答案:A。自监督的本质是“数据自造监督信号”——通过遮掩、变换等操作构造伪标签进行预测。B 是监督学习,C 是强化学习,D 是数据合成技术。就像拼图游戏里孩子自己出题自己验证,不需要人类当老师。

Q2. BERT 的预训练主任务是什么?

单选题 · easy

  • A.根据前文预测下一个词
  • B.掩码语言建模与下一句预测← 正确答案
  • C.对比增强视图间的相似度
  • D.重建被遮住的图像区域

答案:B。BERT 的预训练包含掩码语言建模(预测被遮词)和下一句预测两个任务。A 是 GPT 的做法,C 是对比学习,D 是 MAE。注意“下一句预测”也曾是 BERT 预训练的重要组成部分。

Q3. 下列哪一项是 GPT 采用的训练方式?

单选题 · easy

  • A.双向掩码语言建模
  • B.图像块重建任务
  • C.自回归下一个词预测← 正确答案
  • D.正负样本对比学习

答案:C。GPT 采用自回归方式,只看前文、逐词预测。A 是 BERT 的双向掩码建模,B 是 MAE 的图像重建,D 是 SimCLR 的对比学习。四种方法都是自监督,但训练目标各不相同。

Q4. 关于 InfoNCE 损失中的温度系数 τ,下列说法正确的有?

多选题 · mid

  • A.τ 越小相似度分布越尖锐← 正确答案
  • B.τ 过大会削弱对比信号← 正确答案
  • C.τ 过小容易导致训练不稳定← 正确答案
  • D.τ 只影响正样本对的权重

答案:ABC。τ 控制 logits 的缩放:τ 越小分布越尖锐,模型更关注最像的困难负样本,但过小会导致梯度不稳;τ 越大分布越平缓,对比信号变弱。D 错在温度系数同时作用于正负样本的相似度。

Q5. 为什么对比学习必须引入负样本?

单选题 · mid

  • A.避免模型表征出现坍塌← 正确答案
  • B.提高正样本对的相似度
  • C.减少模型参数量消耗
  • D.加快数据增强的速度

答案:A。没有负样本时,模型的最优策略是把所有样本映射到同一个点,即“表征坍塌”,学不到任何区分性信息。B 是收益而非负样本存在的必要性;C、D 与负样本无关。

Q6. MAE 设置 75% 高掩码率的主要目的是?

单选题 · mid

  • A.迫使模型学习全局语义结构← 正确答案
  • B.让解码器处理更多的图像块
  • C.降低训练数据的内存占用
  • D.提高重建图像的像素精度

答案:A。75% 掩码意味着模型只能看到四分之一的像素,必须依赖全局语义和物体结构常识才能重建缺失块,从而学到可迁移的高层表征。B、C、D 都不是 MAE 设计高掩码率的核心动机。

Q7. BERT 掩码采用 80%[MASK]、10% 随机词、10% 不变的原因是什么?

单选题 · hard

  • A.缓解预训练与微调输入不一致← 正确答案
  • B.提高模型并行计算训练速度
  • C.减少模型对上下文信息依赖
  • D.让模型能够处理任何噪声输入

答案:A。预训练时输入含 [MASK],微调时输入全是自然词,两者分布不一致会伤害微调效果。10% 随机替换让模型对“任意位置的任意词”保持敏感,10% 不变保留原始语义。B、C、D 与 80/10/10 的设计动机无关。

Q8. 自回归预训练模型的注意力机制特点是?

单选题 · hard

  • A.双向注意力能看到完整上下文
  • B.掩码注意力只能看到过去信息← 正确答案
  • C.稀疏注意力随机忽略一些位置
  • D.线性注意力降低计算复杂度

答案:B。GPT 使用因果掩码注意力,每个位置只能访问前面位置,这符合“根据前文预测下一个词”的自回归假设。A 是 BERT 的双向注意力,C、D 是其他注意力变体,与自回归的核心设定无关。

Q9. 自监督学习相比监督学习的优势包括哪些?

多选题 · mid

  • A.无需大量人工标注数据← 正确答案
  • B.可利用互联网级无标注数据← 正确答案
  • C.预训练表征可迁移到多任务← 正确答案
  • D.训练过程不消耗任何算力

答案:ABC。自监督用无标签数据预训练,省去标注成本,且互联网数据规模巨大,表征可迁移到多个下游任务。D 显然错误——训练必须消耗算力。就像孩子拼图不用交学费,但还是要花力气拼。

Q10. 关于自监督预训练与大模型能力,下列说法正确的有?

多选题 · extreme

  • A.规模扩大后模型会涌现新能力← 正确答案
  • B.基础模型微调可适配各类下游任务← 正确答案
  • C.模型性能与数据量严格呈线性关系
  • D.自监督表征能跨模态进行语义对齐← 正确答案

答案:ABD。规模扩大后,大模型展现出少样本学习、指令跟随等涌现能力;基础模型经微调可适配分类、问答等任务;CLIP 等模型证明自监督表征可跨模态对齐。C 错在性能并非与数据量严格线性相关,而是先快速提升后趋于饱和的幂律关系。