2022年 预训练的下一步是什么?
©作者 | 李政
研究方向 | 自然语言处理
来源 | PaperWeekly
大规模预训练
预训练+微调的做法,在多个下游领域取得优异的表现。而在过去的一年里,预训练模型更是在往大而深的方向发展。
目前,国内已有智源研究院、鹏城实验室、中科院自动化所、阿里、百度、华为、浪潮等科研院所和企业研相继发出“悟道”、“盘古”、“紫东 · 太初”、M6、PLUG、ERNIE 3.0 等大模型。
但是模型在往大而深方向发展的同时,也存在如下亟待解决的问题:
如何解释预训练模型的理论基础(如大模型智能的参数规模极限存在吗)
如何将大模型高效、低成本的应用于实际系统
如何克服构建大模型的数据质量、训练效率、算力消耗、模型交付等诸多障碍
如何解决目前大部分大模型普遍缺乏认知能力的问题
对比学习
对比学习的出发点在于避免模型坍塌,理想的模型应该符合 alignment 和 uniformity,即语义相近的句子彼此聚集,语义无关的句子均匀分布。
如果仅仅通过数据增强构建正例,随机句子作为负例,并为其打上 0,1 标签,存在以下问题:
数据增强生成正例的变化有限
随机搭配成负例,含有除正例组合外其他组合全部为 0 的诱导
0,1 标签的赋予太过绝对,对相似性表述不够准确
因此对比学习的核心思想转变为:
score(X,X^{'}) >> score(X,Y)
其中,X 代表原样本, 代表数据增强的正样本,Y 代表随机选择的负样本。根据该思想,对比学习采用 InfoNCE 损失函数:
loss = -log \frac{exp(score(X,X^{'}))}{score(X,X^{'})+\sum_{i=1}^{N}score(X,Y_i)}
通过该损失函数实现正例拉近,负例推远的效果。
Prompt
prompt 被誉为 NLP 领域的新范式,与预训练+微调的范式相比,其过程分为:"pre-train, prompt, and predict"。
prompt 的出发点在于以更轻量化的方式利用预训练模型,避免微调与预训练之间存在的差异。
prompt 通过构建模版的方式,将下游任务转为与预训练相似的 MLM 任务,以该方式充分发挥预训练模型的性能。
以文本情感分类任务中,"I love this movie."句子为例,prompt 按照以下方式进行处理:
3.1 生成prompt句子
该步骤完成输入句子到模型输入的映射:
x^{'}=f_{prompt}(x)
其中, 为生成的 prompt 句子,x 为输入句子, 为 prompt 函数。
在本例中,使用的模版为:" [X] Overall, it was a [Z] movie."
因此,得到的, 为"I love this movie. Overall it was a [Z] movie.
3.2 模型预测
该步骤将 输入模型,模型完成模版空白位置的词语预测。
在本例中,模型可能预测为:"excellent", "great", "wonderful" 等词语
3.3 结果映射
通常模型预测的词语与任务输出存在一定差距,因此我们需要完成词语到输出结果的映射。
y = f(x^{'})
在本例中,"excellent", "great", "wonderful" 等词语映射为标签 "++"
展望未来
首先我认为当前基于数据驱动方法存在如下的问题:
1. 长尾效应:自然界中的数据分布就是长尾的,在学习的过程中,模型容易发生过拟合,泛化性较差。
2. 数据噪声:有标签的数据,在标注过程中就不可避免的存在噪声。尤其是多位人员一起标注时,不同标注人员根据自身的理解完成数据的标注,但不同的人自身理解存在偏差,因此标注结果极易存在误差。归根到底:标注的规范难以确定,无法统一大家的知识库。
当前我遇到的一些问题分享:模型仍无法很好地处理下述问题:
太阳有几只眼睛?
姚明与奥尼尔身高谁比较高?
猫咪可以吃生蛋黄吗?猫咪是可以吃蛋黄的。这里特定煮熟的白水蛋,猫咪不能吃生鸡蛋,因为生鸡蛋中有细菌。
物质都是由分子构成的吗?物质都是由分子构成的,分子又由原子构成-错的!因为有些物质是不含分子的。
这些问题,我总结为两方面的困难:
1. 缺乏知识,由于预训练与微调领域存在偏差,模型在下游任务中缺乏特定知识,同时模型在一些常识问题上表现较差。
2. 缺乏深度语义的理解,模型表现的更像通过字面匹配完成任务,推理的成分更弱。
当前研究热点仍然在于挖掘预训练模型的能力,但在基于常识性知识与逻辑推理的问题上,这种基于数据驱动的方式从底层就存在问题。引用一下大咖们对 2022 年的展望。
大模型一方面在不少问题上取得了以往难以预期的成功,另一方面其巨大的训练能耗和碳排放是不能忽视的问题。个人以为,大模型未来会在一些事关国计民生的重大任务上发挥作用,而在其他一些场景下或许会通过类似集成学习的手段来利用小模型,尤其是通过很少量训练来 “复用” 和集成已有的小模型来达到不错的性能。
我们提出了一个叫做 “学件” 的思路,目前在做一些这方面的探索。大致思想是,假设很多人已经做了模型并且乐意放到某个市场去共享,市场通过建立规约来组织和管理学件,以后的人再做新应用时,就可以不用从头收集数据训练模型,可以先利用规约去市场里找找看是否有比较接近需求的模型,然后拿回家用自己的数据稍微打磨就能用。这其中还有一些技术挑战需要解决,我们正在研究这个方向。
另一方面,有可能通过利用人类的常识和专业领域知识,使模型得以精简,这就要结合逻辑推理和机器学习。逻辑推理比较善于利用人类知识,机器学习比较善于利用数据事实,如何对两者进行有机结合一直是人工智能中的重大挑战问题。麻烦的是逻辑推理是严密的基于数理逻辑的 “从一般到特殊”的演绎过程,机器学习是不那么严密的概率近似正确的 “从特殊到一般”的归纳过程,在方法论上就非常不一样。已经有的探索大体上是以其中某一方为倚重,引入另一方的某些成分,我们最近在探索双方相对均衡互促利用的方式。
谈谈自己的理解,预训练模型的方式归根到底仍然属于数据驱动的任务,其通过在大规模数据上学习,推断未知数据的概率。如果说数据中存在表述不准确、表述有歧义或者词汇本身就有多个含义的话,以概率的方式难以解决这些问题。
而人脑在未知问题上,推理成分居多,以一词多义为例,人类会考虑该词汇有几种用法,考虑在这种上下文语境下使用哪一种用法,所以是否可以建立一套类似于标准公理的语言规范,以该规范为基础,对未知句子进行拆解推理,理解句子的完整含义。通过了解模型的推理过程,模型的可解释性增强。当预测错误时,我们可以进行溯源分析,对模型依赖的知识进行调整,或者让模型学习的更充分。
接下来对自己 2022 年的期望:
1. 自身学习更多模型结构变化的同时,更多地理解业务的架构,明白模型在业务中起的作用。
2. 在算法研究上能够研究的更加深入,希望能够找到解决上述困难的方法
回顾自身算法经历
2021 年自身的算法经历主要分为:实习、算法比赛、项目、论文四部分。在这些经历里面主要接触分类、阅读理解、信息抽取三种任务,评估方式均采用精确率、召回率及 F1 值。下面将以这些经历为基础,介绍我处理这些任务的方式。
5.1 需求分析
开展算法工作之前,首先要搞清楚算法需要满足什么样的需求。包括:
业务属于什么样的任务
算法需要侧重的方向
训练数据及线上数据的情况
线上的指标
线下的评估方式
……
需求分析的目的在于了解业务的需求与算法在业务中起到的作用。
5.2 模型选型及设计
在明白需求之后,需要根据任务类型选择模型,并根据需求的不同,对模型结构进行调整。如阅读理解任务下:针对多答案、无答案的情况,我们需要调整模型的结构。
模型选型及设计的目的在于选择或设计能够很好地满足业务需求的模型。
5.3 数据分析
数据分析这一步是最重要的一步,当前模型主要还是以数据驱动,数据对模型的影响很大。
我主要从以下角度进行分析:
数据是否存在噪声:标点、大小写、特殊符号等
训练集测试集分布是否存在差异,测试集能否反映模型在具体业务下的表现
数据存在哪些特征,通过引入额外的特征,模型可以表现地更好
训练集分布:标签分布、长度分布等,是否会给模型带来类别不均衡、长文本等问题
数据量大小,数据量足够时可以继续预训练
数据分析的目的在于数据能否充分发挥模型性能,能否得到符合业务需求的模型
5.4 模型训练及优化
模型进行训练,开始炼丹【调参】。
设置合适的超参数【可以通过一些超参数搜索算法】
选择合适的优化器【adam/adamw/sgd】
学习率调整的策略
进阶版:
对抗训练
对比学习
UDA等数据增强方式
继续预训练
多任务学习
伪标签
SWA
……
5.5 分析负例
该过程同样重要,我们需要了解模型在测试数据上的表现情况,在什么数据表现较差,如何优化这些负例。
在优化过程中,建议记录每一次优化信息,分析模型的提升/降低是否符合自己预期,充分利用每一次实验
下面总结了我在优化过程常用的分析方式:
5.5.1 检查数据质量是否过差
这种情况通常表现为数据质量较差,模型在原始数据上表现不佳,精确率与召回率都很低。针对这种情况,需要对数据做必要的预处理,让模型能够更好地学习。
5.5.2 根据指标进行分析
recall低
召回率表示召回的数量,测试集数据未召回较多,则从下列角度检查数据:
训练集测试集数据差异是否较大,即训练集中是否存在类似数据,若不存在则引入更多数据或者对该数据进行数据增强。这种情况,常见原因为数据分布不均衡-少数数据训练不充分;训练集、测试集分布差异较大导致。
训练集中存在类似数据,检查训练集中该种情况有无标注错误:漏标、错标。
precision低
精确率表示预测出的准确率,测试集数据分错的较多:
检查数据分布,是否数据分布不均衡。数据不均衡导致模型倾向于预测数量较多的数据,精确率下降。
标签定义是否准确,是否存在两类标签混淆的情况。这种情况,需要考虑对标签进行融合。
类别不均衡常用解决方式:
数据增强
resample
reweight
集成学习
数据错误常用解决方式:
交叉验证
置信学习
聚类分析
接下来的过程则是迭代分析,直到模型性能符合业务需求。
一起交流
想和你一起学习进步!『NewBeeNLP』目前已经建立了多个不同方向交流群(机器学习 / 深度学习 / 自然语言处理 / 搜索推荐 / 图网络 / 面试交流 / 等),名额有限,赶紧添加下方微信加入一起讨论交流吧!(注意一定o要备注信息才能通过)
参考文献
[1] https://mp.weixin.qq.com/s/RqkQzeR5BOVpU7tj_zUgqQ
[2] https://www.zhihu.com/question/480187938/answer/2103245373
[3] https://zhuanlan.zhihu.com/p/399295895
- END -
检索召回 技术综述!
2022-01-10
CIKM2021 知识图谱、推荐系统相关论文
2022-01-07
周志华教授:关于深度学习的一点思考
2021-12-25
2022年 预训练的下一步是什么?相关推荐
- 2022年预训练的下一步是什么?
©作者 | 李政 学校 | 华中科技大学 研究方向 | 自然语言处理 大规模预训练 预训练+微调的做法,在多个下游领域取得优异的表现.而在过去的一年里,预训练模型更是在往大而深的方向发展. 目前,国内 ...
- KDD 2022 | 图“预训练、提示、微调”范式下的图神经网络泛化框架
©作者 | 社媒派SMP 来源 | 社媒派SMP 本文是SIGKDD 2022入选论文"GPPT: Graph Pre-training and Prompt Tuning to Gener ...
- 预训练新范式!为什么Prompt会更有效?
作者 | 上杉翔二 悠闲会 · 信息检索 整理 | NewBeeNLP 「Prompt Tuning也许会是深度学习时代的Feature Engineering问题,如何给各大任务设计合理的Promp ...
- ACL 2022丨香港大学华为诺亚方舟新工作:生成式预训练语言模型的量化压缩
点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 近日,香港大学与华为诺亚方舟实验室在 ACL 2022 上联合发表了 ...
- AAAI 2022 | 北大 阿里达摩院:基于对比学习的预训练语言模型剪枝压缩
近年来,预训练语言模型迅速发展,模型参数量也不断增加.为了提高模型效率,各种各样的模型压缩方法被提出,其中就包括模型剪枝. 然而,现有的模型剪枝方法大多只聚焦于保留任务相关知识,而忽略了任务无关的通用 ...
- 直播预告 | AAAI 2022论文解读:基于对比学习的预训练语言模型剪枝压缩
「AI Drive」是由 PaperWeekly 和 biendata 共同发起的学术直播间,旨在帮助更多的青年学者宣传其最新科研成果.我们一直认为,单向地输出知识并不是一个最好的方式,而有效地反馈和 ...
- CVPR 2022 | 阿里华科提出:针对场景文本检测的视觉语言模型预训练
点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 点击进入-> CV 微信技术交流群 转载自:CSIG文档图像分析与识别专委会 本文简要介绍了发表于CV ...
- CVPR 2022 Oral | 视频文本预训练新SOTA!港大腾讯推出基于多项选择题的借口任务...
点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 点击进入-> CV 微信技术交流群 转载自:机器之心 | 作者:香港大学.腾讯ARC Lab 本文提出 ...
- 《预训练周刊》第66期:智源2022大模型创新论坛、 ChatGPT手把手debug代码、AI与物理的交融...
No.66 智源社区 预训练组 预 训 练 研究 观点 资源 活动 周刊订阅 告诉大家一个好消息,<预训练周刊>已经开启"订阅功能",以后我们会向您自动推送最新版的&l ...
最新文章
- 美国爱因斯坦计划技术分析
- 解决pip is configured with locations that require TLS/SSL问题
- 【Linux 内核】CFS 调度器 ② ( CFS 调度器 “ 权重 “ 概念 | CFS 调度器调度实例 | 计算进程 “ 实际运行时间 “ )
- LeetCode 1275. 找出井字棋的获胜者(位运算)
- 2010上半年网络工程师上午试题分析与解答
- UVA 10596 Morning Walk
- 提出智能扰动方法!字节跳动隐私保护论文入选 NeurIPS 2020 联邦学习Workshop
- LM NTLM ophcrack RainBow table (转)
- Bind 一些有趣的东西 【未完待续】
- U-net使用, 图像分割(边缘检测)
- Chrome插件安装 程序包无效
- c语言程序设计商品库存管理系统,《C语言课程设计商品库存管理系统》.doc
- 十大经典排序算法(C语言实现)
- Python简单模拟微信发红包
- c++primer plus 第六版 第六章重点内容总结 以及编程题答案
- 智能优化算法:遗传算法(GA)
- word如何一键全选_word文档怎么全选所有内容
- 苹果youtube无法连接网络_苹果再度“翻车”!这次AppleStore无法下载软件:遇网络故障...
- Java:apache.poi读写Excel文件
- resources Builders 校验