2022年下半年开始,涌现出一大批“大模型”的优秀应用,其中比较出圈的当属ai作画与chatgpt,刷爆了各类社交平台,其让人惊艳的效果,让ai以一个鲜明的姿态,站到了广大民众面前,让不懂ai的人也能直观地体会到ai的强大。大模型即大规模预训练模型,本文就和大家聊一聊 预训练模型的起源与发展 。
1. 前言nlp模型开发领域的标准范式“pretrain+finetune”近年来,由于预训练模型(pretrained models, ptms)的蓬勃发展,“预训练(pretrain)+微调(finetune)”成为了ai模型开发领域的标准范式。
预训练模型的作用可想而知,它极大推进了ai的落地,让ai模型的开发从手工作坊模式走向工厂模式,快速适应ai市场的定制化需求。但它绝非一个空降神器,预训练的研究最早起源于迁移学习。
迁移学习的核心思想,即运用已有的知识来学习新的知识,通俗来说就是将一个预训练的模型被重新用在另一个任务中。早期的预训练模型主要基于有标签数据,预训练模型的第一个浪潮发生在cv领域,得益于imagenet[1]数据集中所富含的强大的视觉信息,其包含了上百万张上千种类别的图片,覆盖了日常生活中的各种物体,
在imagenet上预训练的模型(比如resnet50)广泛应用于图像领域的各个下游任务,均取得了卓越的进展。而在nlp领域,由于下游任务的多样性以及数据标注的复杂性,导致无法获得一个像imagenet这样大规模的有标签数据,所以nlp领域尝试使用自监督学习的方法来获取预训练模型,自监督学习的主要思想就是利用文本间的内在联系为监督信号。
通过自我监督学习,可以利用大量未标记的文本数据来捕获通用的语言知识。早期nlp领域的nlp模型主要是词嵌入(word embedding)的研究,比如word2vec[2],glove[3]等,它们至今在各种nlp任务中仍发挥着重要的作用。2017年出现的transformer结构[4],给nlp领域预训练模型的发展带来了绝大的突破。transformer的成功,也诱使cv领域加入了自监督预训练模型的赛道。
如今,自监督预训练已经成为当前人工智能研究的重点,几乎所有的最新的 ptm都是采用类transformer结构与自监督学习的方法,接下来介绍比较有代表性的自监督预训练语言模型。
图2 预训练的起源与发展[5]
2. 模型结构ptm成功的关键是自监督学习和transformer。本节从占主导地位的神经架构 transformer 开始。然后介绍两个具有里程碑意义的基于 transformer 的 ptm,gpt[6]和bert[7]。所有后续的ptms基本都是这两个模型的变体。
2.1 transformertransformer是一种序列到序列(seq2seq)架构,由编码器(encoder)和解码器(decoder)组成。说起transformer,就不得不提它的注意力机制(attention),对于注意力机制的原理解析可参考[5],这里主要总结下transformer中存在的三种注意力机制:
self-attention :存在于encoder中的注意力层中,使用前一层的输出作为q,k,v。给定一个词,自注意力计算其与输入序列中的所有单词的注意力得分,来表示其他单词对给定词汇特征表示的贡献程度。mask-attention :存在于decoder阶段,通过掩膜的手段,控制注意力得分的计算过程仅当前词汇左侧的词参与。因为decoder是一个从左到右逐词生成的过程。cross-attention :同样是存在于decoder阶段,使用前一层的输出作为q,同时使用encoder的输出作为k,v。交叉注意力机制的主要作用在于生成词过程中能够利用其输入序列的信息,这在诸如机器翻译和文本摘要的seq2seq任务中尤为重要。
图3 transformer网络结构示意图[5]
2.2 gptgpt是第一个在transformer结构上应用自监督学习目标的ptm,它仅使用了transformer的decoder作为基础结构,由于采用自监督学习,所以删去了cross-attention层。gpt是一个标准的自回归语言模型,它的学习目标,是根据上文预测下一个词,因此也往往更适合自然语言生成任务。
图4 bert与gpt的区别[5]## 2.3 bert
bert是基于双向 transformer 结构构建,仅使用了transformer的encoder结构。这里的双向主要是通过它的预训练目标实现的,bert设计了一个 masked language modeling (mlm) 预训练任务,根据上下文来预测masked词汇。“双向”即体现在,在进行注意力计算时,bert会同时考虑被遮蔽词左右的词对其的影响。bert是一种自编码语言模型,更适合自然语言理解任务。
2.4 后起之秀在gpt和bert之后,出现了很多基于它们的变体,图5中罗列了目前预训练模型家族的主要成员。一部分工作致力于改进模型架构并探索新的预训练任务;一部分工作致力于探索数据的丰富性,比如多语言和多模态ptms;还有一部分工作致力于探索更多参数的模型以及ptm计算效率的优化。
预训练模型的主要目标是如何利用未标注语料来获取通用知识,以便快速迁移到各种下游任务中。预训练任务即学习目标的设计至关重要。前文也提到了gpt和bert的预训练任务autoregressive language modeling和masked language modeling,它们也分别是自回归语言模型和自编码语言模型无法替代的预训练任务,后续的一些ptms中探索的新的预训练任务均是在此基础上追加的。下表中总结了目前一些常见的预训练任务。对于单资源数据输入(单语言纯文本),往往从挖掘文本间词汇、句子、篇章的内在联系设计新的预训练任务;对于多资源数据输入,比如多语言和多模态的预训练模型,往往会从如何构建不同语言和不同模态的统一的特征表示来考虑设计新的预训练任务。
4. 总结本文整体介绍了预训练模型起源与发展,文章大部分内容来自于论文[5],在此基础上做了一些总结和梳理,感兴趣的可以去阅读原文。预训练模型的发展无疑推进了ai的落地。近年来,随着神经网络结构设计技术逐渐成熟并趋于收敛,以及数据和模型参数规模的不断增大,行业内也掀起了“炼大模型”的热潮,致力于打造ai领域的基石模型。而对于预训练模型的应用,除了“pretrain+finetune”,逐渐盛行了一种新的范式“pretrain+prompt+predict,致力于重构不同的下游任务,打造大一统的多任务模型。归根结底,大家其实都是在解决同一个问题:”如何快速有效地进行ai模型开发“,这也是ai领域一直以来研究的重要课题。
5. 参考文献[1] deng j, dong w, socher r, et al. imagenet: a large-scale hierarchical image database[c]//2009 ieee conference on computer vision and pattern recognition. ieee, 2009: 248-255.
[2] mikolov t, chen k, corrado g, et al. efficient estimation of word representations in vector space[j]. arxiv preprint arxiv:1301.3781, 2013.
[3] pennington j, socher r, manning c d. glove: global vectors for word representation[c]//proceedings of the 2014 conference on empirical methods in natural language processing (emnlp). 2014: 1532-1543.
能写会考还是MVP,这就是天选学霸吗?
探秘华为运动健康实验室 可穿戴设备走入健康时代
一名开发工程师工作中的四个教训
iphone7最新消息,把iPhone7打磨成苹果4S的样子,简直帅的不行
Canalys 2022 年Q3 的可穿戴设备市场排位赛苹果第一
浅析预训练模型的起源与发展
关于汽车传感器检测的16个小技巧
Magic Leap发布了新版操作系统Lumin OS 0.94.0和Lumin SDK(0.19.0)
浅谈动环监控系统
蓝牙模块芯片型号有哪些?国产还是进口?核心指标有哪些
高通再度释单三星 或为降价抢单策略奏效
单片机各类指令详解
如何实现图像识别?为什么要入局图像识别?
车用DCDC双路输出电源模块规格书
资讯:首条5G车联网示范路提效20% 交叉路口安全性提升60%
LED日光灯电源采用内置式的缺点分析
主动利用大数据监测研判疫情趋势,为科学决策提供技术支撑
CBCT图像中的运动伪影成因
美大学开发可协助穿衣的机器人
智慧城市步入刷脸时代,人脸识别黑科技必不可少