在了解大模型的过程中,你一定听过一个关键词——自监督学习(Self-Supervised Learning)。它常常被提到是“预训练的核心”,但很多人对它的理解仅仅只留在“好像不需要人工标注”的模糊阶段。
那到底什么是自监督学习呢?今天我们就来一步步揭开它的真实面貌。
关键字:机器学习、自监督学习、大模型、LLM
1. 自监督学习概念#
在入门机器学习中,我们都听过有监督学习(Supervised Learning)、无监督学习(Unsupervised Learning)和半监督学习(Semi-supervised Learning )这几个概念 [1]。
有监督学习:指模型在训练过程中需要通过真实值来对训练过程进行指导的学习过程。在有监督模型的训练过程中,每次输入模型的数据都是形如 $(x,y)$ 这样的样本对,而模型最终学到的就是从输入 $x$ 到输出 $y$ 这样的映射关系。如文本分类、图像分类。
无监督学习:指模型在训练过程中不需要通过真实值来对训练过程进行指导的学习过程。在无监督模型的训练过程中,模型仅仅需要输入特征变量便可以进行学习,而模型最终学到的就是输入特征中所潜在的某种模式(Pattern)。如聚类、主成分分析。
半监督学习 :指介于有监督学习和无监督学习之间的一种机器学习方法。在半监督学习中,模型首先会通过少量的有标签数据来训练一个简单的模型并对无标签的数据进行预测;然后再通过某种策略来对预测出的样本进行筛选并将置信度较高的样本扩充到有标签的数据集中;接着再以整个扩充后的有标签数据来训练新的模型,并以同样的方式进行迭代;最后在满足某种条件下停止并得到训练好的模型。如标签传播算法、自训练(self-training)算法等。
那自监督处于什么样的位置呢?
所谓自监督学习它本质上还是一种“有监督”的学习过程,只是说在这一过程中标签 $y$ 并不需要我们手工去标注,而是程序可以自行构建完成,因此称之为自监督。
但在有监督学习中,样本 $x$ 对应的标签 $y$ 都需要我们人工进行标注。
那这就是自监督学习的概念,大家记住了吗?
所以,总结起来就是:
| 类型 | 是否需要标签 | 举例 |
|---|---|---|
| 监督学习 | 需要人工标签 | 图像分类:猫 or 狗 |
| 自监督学习 | 不需要人工标签,程序自动生成标签 | 语言模型预测下一个词 |
| 无监督学习 | 不需要标签,也没有明确目标 | 聚类:把相似的新闻归类 |
跟掌柜一起念:自监督也是有监督,只是标签不用(人工)出~
2. 自监督学习分类#
在介绍完自监督学习概念以后我们知道,自监督的本质是指可以通过程序自动化地构建样本标签来完成有监督的学习过程。
所以,根据这样的定义可知,到目前为止掌柜已经介绍过的自监督学习任务有:
① 遮蔽预测
对于遮蔽预测任务来说它又可以分为两类:一类是 BERT 中的 Mask Language Modeling 任务,它输入模型一个序列然后预测通过模型来预测序列中随机被掩盖的一个或多个 token 。这样训练得到的语言模型也被称为是非标准的语言模型。
另一类则是基于 LSTM 、 Transformer 或 GPT 中的 Causal Language Modeling 任务,它通过让模型根据输入模型的前 $n$ 个词来预测第 $n+1$ 个词来让模型具有语言编码能力。这样训练得到的语言模型也被称为是标准的语言模型。
② 顺序预测
到目前为止,我们学过的顺序预测任务只有 BERT 中的 Next Sentence Prediction 任务,它通过模型预测两句话的正确顺序来让模型具有语义分辨能力。
当然,不仅仅是在 NLP 领域中,在图像、音频等模态中自监督学习也非常常见,例如把图片遮一块来预测遮住的内容、打乱视频帧顺序,让模型学会恢复顺序、预测缺失的语音片段等等。
所以,自监督学习就像是“设置一个难题,让模型自己去解”,只要你能设计出“让模型有事可做”的目标,那么模型就能够形成自监督任务进行学习。
3. 自监督学习的应用#
由于自监督学习并不需要人工标注样本标签,所以它也常被用于基座模型的训练过程中。例如在大模型预训练阶段,尤其是语言模型(如 GPT、BERT)中,借助自监督学习模型可以轻松使用维基百科、新闻、小说、网页……等数千亿条样本来学习其中的语义信息,如果需要人工标注数据那这一过程简直难以想象。
所以,如果监督学习是请老师一对一教你解题, 那么自监督学习就是你每天疯狂刷题,不断自我检测、自我反馈进行学习的过程。
更多关于自监督学习的代码实现过程,可以参见本专栏第10章中关于 BERT 模型的掩体语言模型 MLM 任务和 GPT 模型的因果语言模型 CLM 任务这两种 NLP 领域常见的场景。
引用#
[1] 王成, 黄晓辉. 《跟我一起学机器学习》, 清华大学出版社, 2022. [C]
[2] https://medium.com/@gerzson.boros/a-simple-introduction-into-supervised-learning-dcce83ee3ada
[3] https://medium.com/@eastgate/what-is-unsupervised-learning-d46b29797ae5