CIPS ATT | 邱锡鹏:自然语言处理中的预训练模型

讨论数:0 点赞分享:2

报告摘要: 目前预训练模型在自然语言处理领域取得了广泛的成功。本报告的内容主要涵盖以下4部分内容:1)预训练模型的原理介绍,包括模型结构、学习准则、发展历程等;2)预训练模型的迁移方法:包括如何通过任务转换、多步迁移、改进精调等方法来进一步提高预训练模型在下游任务上的性能;3)预训练模型的改进模型:包括知识嵌入模型、多模态模型、多语言模型、语言特定模型、领域特定模型和模型压缩等;4)对预训练模型及其未来发展趋势进行展望。

个人介绍: 邱锡鹏,复旦大学计算机科学技术学院教授,博士生导师。于复旦大学获得理学学士和博士学位。主要从事自然语言处理、深度学习等方向的研究,发表CCF A/B类论文70余篇,获得ACL 2017杰出论文奖(CCF A类)、CCL 2019最佳论文奖。出版开源专著《神经网络与深度学习》,Github关注人数1.3万,豆瓣评分9.6分。曾获得国家优秀青年科学基金、首届中国科协青年人才托举工程项目、钱伟长中文信息处理科学技术奖青年创新一等奖、Aminer"2020年度AI 2000人工智能全球最具影响力提名学者"等。培养学生曾获中国中文信息学会优博、中国人工智能学会优博、微软学者、微软学者提名、百度奖学金、上海市优博提名等。

阅读原文 >

类似文章

CMU 刘鹏飞:NLP的第四范式
近两年,基于预训练+精调的研究范式,迅速席卷了整个 NLP 领域。这种研究范式被大家普遍认同为是 NLP 研究的革命性范式,在此之前则有“专家系统”、“统计模型”和“神经网络模型”等。 而近期,随着技术的发展,NLP领域逐渐开始盛行一种新的研究范式:预训练 + 提示 + 预测(Pre-train, Prompt, Predict)。这种研究范式相比于之前的“预训练+精调”,更多的会使得各种下游任务“迁就”预训练语言模型,而后者则是典型的模型“迁就”任务。 来自CMU的刘鹏飞博士,对这一研究范式做了综述总结,并在知乎上撰写一篇博客文章,将近代NLP的研究划归为四种范式,颇有深度。 撰文:刘鹏飞 编校:贾 伟 作者简介 刘鹏飞,博士毕业于复旦大学,目前在卡耐基梅隆大学(CMU)语言技术研究所进行博后研究,曾担任CMU自然语言处理课程的联合讲师。主要研究领域:信息抽取,文本生成,系统的可解释评估与诊断。领导开发了审稿机器人,AI系统可解释排行榜等产品,受到学术、企业、投资人等广泛关注。   近代自然语言处理技术发展的“第四范式”是什么? 答案:(可能是)预训练语言模型加持下的Prompt Learning。 显然,仅知道这个答案并不是唯一重要的事情,除此之外,了解其他三种范式是什么以及范式之间转化的内在逻辑的价值更加凸显。 这有两个好处: 1)对每种范式的特点有整体认识之后,可以让我们对自己当前工作有更好的定位,让你的故事讲得更有格局; 2)我们最终一定不只是想成为某个范式下的推动者,而是成为下一个新范式的引领者。而这其中的关键在于对推动范式演变的核心驱动力的把握,这需要对现在以及过去进行总结。   我们最近的一个工作正是基于这样一个动机出发并完成的。(http://pretrain.nlpedia.ai/) 这篇文章,希望能够谈一些没有放在论文中的内容。(论文一般会放一些比较严谨的的表述,而那些比较个人的,还未被论证的理解也同样有价值) 01 NLP的四种范式 我们将近代NLP技术的发展总结为四种范式,分别为: P1. 非神经网络时代的完全监督学习 (Fully Supervised Learning, Non-Neural Network) P2. 基于神经网络的完全监督学习 (Fully Supervised Learning, Neural Network) P3. 预训练,精调范式 (Pre-train, Fine-tune) P4. 预训练,提示,预测范式(Pre-train, Prompt, Predict)   02 范式演变规律 在这种不同范式变迁过程中,有些东西是不变的,把它们挖掘出来就很有意思,比如: 规律1:每个范式都会涉及繁琐的,需要人来参与(提供先验)的工程(engineering) P1非神经网络时代的完全监督学习 特征工程(Feature Engineering):我们要进行“无聊“的特征模板定义环节 P2 基于神经网络的完全监督学习  结构工程 (Architecture Engineering):神经网络虽然解放手动配置特征模板所需要的人力,但是是以需要人工去设计合适网络结构为代价的。因此,在这样的研究范式下,研究人员花了很多时间在探究最适配下游任务的结构偏置(Structural Bias)。比如是使用“卷积循环变形金刚(Transformer)网络“,还是使用“卷积变形金刚(Transformer)循环网络”。 P3 预训练,精调范式  目标函数挖掘 (Objective Engineering):这个过程研究者往往是通过引入额外的目标函数到预训练语言模型上,以便让其更适配下游任务。 这个过程有时候也需要些网络结构的挖掘,但相比较而言,不是这个范式的主旋律,一个实际的原因在于:(1)预训练过程本身费时,过度的结构偏置(structural bias)探索开销过大;(2)精调的过程中,很多时候 预训练语言模型本身提供的知识已经可以让大家“忘记”使用卷积神经网络和循环神经网络的差异。 P4 预训练,提示,预测范式  Prompt挖掘工程:在这个过程我们往往不对预训练语言模型改动太多,我们希望是通过对合适prompt的利用将下游任务建模的方式重新定义。 规律1的应用 因为有规律1的存在,我们可以更加辩证的看待新的范式,这句话的价值体现在两个场景: 1) 当我们使用新范式的方法的时候,能够意识到它带来的优异性能是以某种“人力”牺牲(需要一些人工设计加持)为代价的,而如何让这种人力代价降到最低,往往就是新范式里需要解决的核心问题。 2) 当我们某个瞬间突然有些“神奇”的想法,它与现在的主流解决思路很不相同,可是实现它又需要一些很琐碎的操作,那么这个时候,恭喜你,因为你很有可能在接近一个新的范式(或者新的解决框架),假如存在上帝视角的话,可能那个“神”在看着你,期待着你坚持下去,因为你将会给这个领域的发展带来与众不同和进步。 当然,从有想法到真正把它实现出来会成为另一个关键点,而决定能否做成的因素中,比较重要的可能是:信心,坚持,对领域的理解,以及实现能力。 规律2:新范式带来的收益可以让我们暂时“忽略”那些额外需要的人力代价。 这似乎也是理所应当(不然,干嘛要它)。 不过这里值得注意的是,关于“收益”的定义并不唯一,它不只是被定义为某个任务性能的提升,还可以是“帮我们做一些过去框架不能做的事情”,或者是新的研究场景。 比如,无论是神经网络早期在NLP的应用,或者是Seq2Seq 早期在翻译上的应用,都没有在性能上讨得便宜(相比于传统统计方法),可是这种颠覆性的想法给了我们太多可以想象的空间(比如既然翻译可以用Seq2Seq,那么其他任务是不是也可以这样呢?那么NLP任务解决框架就可以被统一了吗?) 当我们回顾P(N) 逐渐 取代 P(N-1)的过程 (这里P是指上面定义的范式),我们突然理解: P1->P2: 虽然我们常常吐槽神经网络调参如炼丹,可是也在享受着不用手工配置模板,就能够得到还不错甚至更好结果的福利。与其说“炼丹“,我觉得神经网络的训练更像是“陶艺”,而传统的特征工程更像是“炼丹”,因为它对原材料(特征)的选择以及加入丹炉的顺序(特征组合)的要求几乎非常苛刻。 P2->P3: 虽然探究“哪一种损失函数引入到预训练语言模型中更适配下游任务”比较无聊,但比起排列组合各种网络结构,却不一定能获得好性能而言,前者似乎还行。 P3->P4: 虽然prompt的定义很繁琐,但是如果有个方法可以帮你回答“BERT效果都那么好了 ,我还研究个啥“这个问题,那它也挺有吸引力。并且,Prompt Learning激活了很多新的研究场景,比如小样本学习,这显然可以成为那些GPU资源受限研究者的福音。当然,我理解Prompt Learning最重要的一个作用在于给我们prompt(提示)了NLP发展可能的核心动力是什么。这个大家如果感兴趣,可以关注后续更新。 规律2的应用 可以帮助我们区分“伪范式“与”真范式“。如果新的建模体系实现的代价过于复杂,或者是收益甚微,那么他可能不是比较有前景的范式了。   03 Prompt Learning 发生了什么? Prompt Learning是指对输入文本信息按照特定模板进行处理,把任务重构成一个更能充分利用预训练语言模型处理的形式。 比如,假如我要判断“我喜欢这个电影" 这句话的情感(“正面" 或者 "负面"),原有的任务形式是把他看成一个分类问题 输入:我喜欢这个电影 输出:“正面" 或者 "负面" 而如果用Prompt Learning去解决的话,任务可以变成“完形填空", 输入:我喜欢这个电影,整体上来看,这是一个 __ 的电影 输出:“有趣的" 或者 "无聊的" 斜体输入就是将输入文本按照特定模板进行处理,而这样做的目的是为了更适配预训练语言模型的形式。例如,BERT的预训练就是采用这种类似完型填空的形式。(所以Prompt Leaning的应用还需要对各种预训练语言模型本身特点有深刻的理解,这个我们在论文里(第三小节 )给了非常详细的描述,告诉大家不同预训练语言模型适配什么样的Prompting场景) 关于这个定义,如果我们深挖一下,会发现一些美妙的点。 1)Prompt Learning所涉及的技术似乎过去不少工作都有涉及? 没错,不管是对输入的模板化处理,还是任务重构的操作,这都不是什么新鲜的事情。我们在论文的第9小节有很详细比较与Prompt Learning相关的一些(八个)“老“的研究话题,比如”Query Reformulation“,比如 “QA-based Task Reformulation”。 2)既然过去的工作都有涉及,为什么现在的Prompt Learning是一个新范式? 其实如果我们看上面对Prompt Learning的表述,这里面隐含了个不容易被发现的假设,即: 预训练语言模型的知识真的很丰富,为了更好的利用它,我们愿意不惜以重构任务为代价(因为对任务重构本身涉及很多选择决策,需要人来参与)。 这说明,Prompt Learning 的范式里 “任务重构”目的非常明确,即更好的利用预训练语言模型。 而这一点,就可以和过去“Query reformulation/QA-based Task reformulation“工作区分开。原因很简单,因为那个时候的NLP技术还不存在一个这么强大的预训练语言模型让我们为了”迎合“它而去把任务进行重构。 3)Prompt Learning蕴含的假设(预训练语言模型的知识真的很丰富,为了更好的利用它,我们愿意不惜以重构任务为代价)成立吗? 它不一定成立,尤其是在预训练语言模型比较弱的时候,比如,早期的一些上下文无关的词向量模型,为它而重构任务可能是一件得不偿失的事情(这同时也回答了上面一个问题,为什么Prompt Learning会在这时候入场)。 而从BERT以来,这种上下文相关的预训练模型,他们不仅包含了丰富知识,另一个重要的点在于他们本身已经是个完整的小个体(比如,有输入层,特征提取层,输出层),这意味着在我们给不同下游任务设计模型的时候,拥有了这样一种可能性:不用设计新的网络层,而是完全利用预训练语言模型的网络结构。而为了达到这个目的需要做出一些改变,而这个改变就是利用prompt重构任务的输入。   04 Prompt Learning研究梳理  关于这个问题,我们努力尝试在论文上给了一个尽可能清晰的梳理,大家可以结合论文中的概念(下图)去理解。   05 范式之间关系 发生在第三个阶段的的语言模型Fine-tuning范式和第四个范式的Prompting范式有什么关系?  这里分享一张我很喜欢,虽然最后没有放在论文里的图。 图中,圆形表示预训练语言模型,矩形框表示的是各种下游NLP任务。那么,我们就有这样一句话:大家都是希望让预训练语言模型和下游任务靠的更近,只是实现的方式不一样, Fine-tuning中:是预训练语言模型“迁就“各种下游任务。具体体现就是上面提到的通过引入各种辅助任务loss,将其添加到预训练模型中,然后继续pre-training,以便让其更加适配下游任务。总之,这个过程中,预训练语言模型做出了更多的牺牲。 Prompting中,是各种下游任务“迁就“预训练语言模型。具体体现也是上面介绍的,我们需要对不同任务进行重构,使得它达到适配预训练语言模型的效果。总之,这个过程中,是下游任务做出了更多的牺牲。 诚然,一个更加和谐的状态应该是大家“互相让步”,相信读到这,大家心中应该有些不错的ideas了。   06 NLP核心动力 最后,我用比较喜欢的一个总结来结束这篇博文:近代自然语言处理技术的发展史本质上(可能)是,下游任务与预训练语言模型关系的变迁史。 所以,回顾那些NLP任务性能可以被大幅度提高的事件,大概率是因为: (1)使用了预训练语言模型; (2)使用了更强的预训练语言模型; (3)更好的使用了预训练语言模型。 Prompting 本身不是目的,它是一种实现让下游任务和预训练语言模型更加接近的途径,如果我们有其它更好的方式,那就可以引领下一个范式。
慕尼黑工业大学 | 用于快速、准确、无比对的蛋白质结构预测的语言模型嵌入 
【论文标题】Protein language model embeddings for fast, accurate, alignment-free protein structure prediction  【作者团队】Konstantin Weissenow, Michael Heinzinger, Burkhard Rost 【发表时间】2021/08/02 【机 构】慕尼黑工业大学 【论文链接】https://www.biorxiv.org/content/10.1101/2021.07.31.454572v1.pdf 【代码链接】https://github.com/kWeissenow/ProtT5dst 【推荐理由】超大预训练模型Prottrans作者在结构预测方面新作 所有SOTA蛋白质结构预测都依赖于多序列比对(MSA)中捕获的进化信息,主要是进化耦合或共进化。这种信息并不对所有的蛋白质都可用,而且生成的计算成本也很高。基于人工智能的预测模型只使用单一序列作为输入,更容易、更便宜,但性能很差,速度变得无关紧要。在这里,我们描述了第一个有竞争力的人工智能解决方案,专门将从预训练的蛋白质语言模型中提取的嵌入,即从Transformer语言模型ProtT5中提取的嵌入,以单一序列输入到一个相对较浅的卷积神经网络中,该网络是根据残基间的距离,即二维的蛋白质结构训练的。主要的进步源于对ProtT5所学到的注意力头的处理。虽然没有达到SOTA,但我们的精简方法不需要任何MSA,在大大降低成本同时接近了依靠共进化的方法,从而加快了开发和每个后续预测的速度。通过产生特定的蛋白质而不是家族平均预测,这些新的解决方案可以区分具有类似结构的同家族蛋白质成员的结构特征。 上图显示了本文的预测框架,例子显示了对CASP14中T1026应用对称性(APC,即average product correction )后的注意力头的平均值,表明ProtT5在无监督的情况下学习了蛋白质结构相关内容。残差网络(黄色)在不同的模型中是相似的,使用ProtT5、ProtBERT、ProtAlbert或SeqVec的一维蛋白质嵌入的模型调整了它们的结构。红色直线部分将蛋白质被分成64x64大小的区域,即64个连续残基。对于每块区域,CNN(ResNet)预测了相应的远距离接触图。比较用的MSA基线模型根据共进化的信息进行训练,通过生成MSA和估计Potts模型的参数,取代了蓝色虚线标记的模块。 最终我们使用pyRosetta的trRosetta折叠protocol的修改版来计算三维结构。与trRosetta不同的是,我们放弃了对角度信息的任何约束,使C-α距离而不是C-β距离被用作约束。我们首先使用我们预测的距离图中的短距离、中距离和长距离在不同的距离概率阈值水平(这里:[0.05, 0.5])作为约束条件生成了150个粗粒度的decoys,并通过使用pyRosetta的FastRelax protocol relax了50个模型。decoys的选择以及最终模型的选择是基于Rosetta的最低总能量。 图A:SetValCASP12;X轴为ResNet块的数量;左侧描述了 "浅层CNN",即那些参数较少的CNN(从4块的235,306到120块的6,501,162)。两条线都使用了ProtT5 pLM:上面的蓝线是这里介绍的使用注意力头(AHs)的方法,下面的红线是没有AHs的嵌入。AHs已经在浅层架构中表现良好,而没有AHs的原始嵌入需要至少40个残差块才能达到0.5以上的MCC水平。 图B:SetValCASP12+SetTstCASP13:四种不同的pLMs的嵌入的小提琴图,以及使用共进化的方法(DCAdst)的结果,证明了即使没有学习MSA,ProtT5dst的预测效果优于共进化方法 上图展示了ProtT5dst与RaptorX的对比。数据集为SetTstCASP13 + SetTstCASP14,方法为ProtT5dst以及Raptor-X。 图A:中距离和长距离接触预测的MCCs的比较。 图B:三维结构预测性能,TMalign计算了所有预测的TM-分数。总体而言,两种方法的性能相似。 图C:两个蛋白质(T1008和T1030;实验:绿色,预测:青色)的三维预测与实验的详细比较。一个蛋白质较小的(T1008),另一个较大(T1030),尽管这两种蛋白质的总体表现相似,但ProtT5的表现都优于Raptor-X。对于T1008(CASP13),两种预测都正确地捕获了整体折叠,但Raptor-X错误地调换了两个螺旋,使TM分数从0.69(ProtT5dst)降低到0.42。同样,对于较长的蛋白质T1030(CASP14),Raptor-X错置了几个螺旋。 上图展示了OmpX和3个变体(OmpX64x, OmpX66和OmpX84)的三维预测。实验结构显示为绿色,预测为青色。对已知结构的本地蛋白,预测和实验相匹配的TM分数为0.73。虽然对蛋白工程序列变体的预测表明结构不太紧凑,但我们的预测证实了较大的单β-barrels的实验结果。 结论 我们表明,基于来自单一蛋白质序列的嵌入的二维间距离预测在最近几年有了明显的改善,现在可以与共进化方法的性能相媲美。虽然我们的方法还没有提高SOTA的性能,但在不牺牲预测精度的情况下,推理时间的大幅减少提供了一个关键的实际优势。更重要的是,我们的方法首次提供了基于单个蛋白质序列的准确的蛋白质结构预测,这对依赖不同MSA的以家族为中心的方法来说是有竞争力的。由于结构预测可以在几秒钟内获得,我们的方法可以很容易地为蛋白质结构预测的高通量分析提供基础,如虚拟结构突变。使用嵌入和共进化信息的方法很可能在未来共存互补。在未来,我们将通过预测结构差异来过滤比对的序列研究使用我们的方法进行MSA refinement的可行性。  
蒙特利尔大学、DeepMind、苏黎世大学|Sequoia:统一持续学习研究的软件框架
标题:蒙特利尔大学、DeepMind、苏黎世大学|Sequoia: A Software Framework to Unify Continual Learning Research(Sequoia:统一持续学习研究的软件框架) 推荐理由:持续学习新范式及第一个实现,并具有来自持续监督学习 (CSL) 和持续强化学习 (CRL) 领域两种能力。 简介:持续学习 (CL) 领域旨在随着时间的推移开发积累知识的算法,通过与非平稳环境和数据分布的交互来提高技能。衡量 CL 的进展可能很困难,因为过多的评估程序和算法解决方案出现,每个关于 CL 问题的一组假设都有自己的潜在脱节。在在这项工作中,我们将每个设置视为一组假设。然后我们在 CL 中创建一个树形的研究设置层次结构,其中更一般的设置成为那些的父类带有更严格的假设。这使得可以使用继承来共享和重用研究,因为为给定环境开发一种方法也使其直接适用于任何它的子类。我们将这个想法实例化为一个名为Sequoia 的公开软件框架,它还包括越来越多的方法易于扩展和定制,以及来自第三方的更专业的方法库。 代码下载:www.github.com/lebrice/Sequoia 论文下载:https://arxiv.org/pdf/2108.01005v1.pdf 图1 图2

请填写删除理由

确认 取消

确认是否删除?

确认 取消