0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于语言模型和对抗训练的工作

深度学习自然语言处理 来源:深度学习自然语言处理 作者:深度学习自然语言 2020-11-02 15:26 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

论文:Adversarial Training for Large NeuralLangUageModels

源码:https://github.com/namisan/mt-dnn

TL;DR

本文把对抗训练用到了预训练和微调两个阶段,对抗训练的方法是针对embedding space,通过最大化对抗损失、最小化模型损失的方式进行对抗,在下游任务上取得了一致的效果提升。

有趣的是,这种对抗训练方法不仅能够在BERT上有提高,而且在RoBERTa这种已经预训练好的模型上也能有所提高,说明对抗训练的确可以帮助模型纠正易错点。

方法:ALUM(大型神经语言模型的对抗性训练)

实现:在embedding space添加扰动,最大化对抗损失

应用:任何基于Transformer的语言模型的预训练或微调

预备知识

BPE编码

为了解决词汇表外单词的问题,使用Byte-Pair Encoding(BPE)(Sennrich et al.,2015)或其变体(Kudo and Richardson,2018)将标记划分为子词单元,生成固定大小的子词词汇,以便在训练文本语料库中紧凑地表示单词。

BPE词表既存在char-level级别的字符,也存在word-level级别的单词。通过BPE得到了更加合适的词表,这个词表可能会出现一些不是单词的组合,但是这个本身是有意义的一种形式。

流程:

确定subword词表大小

统计每一个连续字节对的出现频率,并保存为code_file。这个是git中learn-bpe完成

将单词拆分为字符序列并在末尾添加后缀“ ”,而后按照code_file合并新的subword,首先合并频率出现最高的字节对。例如单词birthday,分割为['b', 'i', 'r', 't', 'h', 'd', 'a', 'y'],查code_file,发现'th'出现的最多,那么合并为['b', 'i', 'r', 'th', 'd', 'a', 'y'],最后,字符序列合并为['birth', 'day']。然后去除'',变为['birth', 'day'],将这两个词添加到词表。这个是apply-bpe完成。

重复第3步直到达到第2步设定的subword词表大小或下一个最高频的字节对出现频率为1

模型:ALUM

基于几个关键想法:

扰动embedding空间,优于直接对输入文本应用扰动。

通过虚拟对抗训练为标准目标添加正则化项。

其中预训练阶段 ,微调阶段

因为有最大化操作,所以训练昂贵。有利于embedding邻域的标签平滑。

文中观点:

虚拟对抗训练优于传统对抗训练,特别是当标签可能有噪声时。

例如,BERT pretraining使用masked words作为自监督的标签,但在许多情况下,它们可以被其他词取代,形成完全合法的文本。但BERT中,给到被替换的word的标签均为负。

算法

首先使用标准目标(1)训练模型;然后使用虚拟对抗训练(3)继续训练。

第4-6行为求最大梯度步骤,以找到使对抗性损失最大化的扰动(反局部平滑性)。K越大的近似值越高,但成本更高。为了在速度和性能之间取得良好的平衡,本文实验K=1.

泛化与鲁棒性

文中表示,通过使用ALUM进行对抗性的预训练,能够提高广泛的NLP任务的泛化和鲁棒性(如后述实验结论所示)。之前的研究较多发现,对抗训练会损害泛化能力。

先前关于泛化和鲁棒性之间冲突的工作通常集中在有监督的学习环境中。调和两者的一些初显成果也利用了未标记的数据,例如自训练(Raghunathan等人,2020年)。

此外,假设通过扰动embedding空间而不是输入空间,NLP中的对抗训练可能无意中偏向于流形扰动而不是规则扰动。

什么是流形

流形学习的观点:认为我们所观察到的数据实际上是由一个低维流形映射到高维空间的。由于数据内部特征的限制,一些高维中的数据会产生维度上的冗余,实际上这些数据只要比较低的维度的维度就能唯一的表示。

所以直观上来讲,一个流形好比是一个d维的空间,在一个m维的空间中(m>d)被扭曲之后的结果。需要注意的是流形不是一个形状,而是一个空间。举个例子,比如说一块布,可以把它看成一个二维的平面,这是一个二维的空间,现在我们把它扭一扭(三维空间),它就变成了一个流形,当然不扭的时候,它也是一个流形,欧氏空间是流形的一种特殊情况。

实验

提升泛化能力

BERT BASE是使用与Devlin等人相同的设置训练的标准BERT base模型。(即1M步,batch size = 256)。

BERT+BASE与BERT BASE相似,不同之处在于其训练步数为1.6M,与对抗预训练所需时间大致相同(ALUM BERT-BASE)。

ALUM BERT-BASE是一个BERT模型,使用与BERT BASE相同的设置进行训练,但最后的500K步骤使用ALUM。每一个对抗训练步骤大约比标准训练步骤长1.5倍。

可以观察到后500k加了ALUM后提升明显。

提升鲁棒性

结合对抗预训练和对抗微调

之前都是在预训练阶段做的对抗,ALUM RoBERTa-LARGE-SMART在预训练和微调阶段均做对抗。

结论

提出了一种通用的对抗性训练算法ALUM:

对抗预训练可以显著提高泛化能力和鲁棒性。

ALUM大大提高了BERT和RoBERTa在各种NLP任务中的准确性,并且可以与对抗微调相结合以获得进一步的收益。

未来的发展方向:

进一步研究对抗性预训练在提高泛化和鲁棒性方面的作用;

对抗性训练加速;

将ALUM应用于其他领域。

责任编辑:xj

原文标题:【微软ALUM】当语言模型遇到对抗训练

文章出处:【微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微软
    +关注

    关注

    4

    文章

    6719

    浏览量

    107320
  • 算法
    +关注

    关注

    23

    文章

    4760

    浏览量

    97124
  • 语言模型
    +关注

    关注

    0

    文章

    570

    浏览量

    11251
  • nlp
    nlp
    +关注

    关注

    1

    文章

    491

    浏览量

    23185

原文标题:【微软ALUM】当语言模型遇到对抗训练

文章出处:【微信号:zenRRan,微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    在Ubuntu20.04系统中训练神经网络模型的一些经验

    本帖欲分享在Ubuntu20.04系统中训练神经网络模型的一些经验。我们采用jupyter notebook作为开发IDE,以TensorFlow2为训练框架,目标是训练一个手写数字识
    发表于 10-22 07:03

    沐曦MXMACA软件平台在大模型训练方面的优化效果

    在如今的人工智能浪潮中,大规模语言模型(上百亿乃至千亿参数)正迅速改变着我们的工作和生活。然而,训练这些庞大的模型往往面临“算力不足、显存不
    的头像 发表于 07-03 14:09 1692次阅读
    沐曦MXMACA软件平台在大<b class='flag-5'>模型</b><b class='flag-5'>训练</b>方面的优化效果

    请问如何在imx8mplus上部署和运行YOLOv5训练模型

    我正在从事 imx8mplus yocto 项目。我已经在自定义数据集上的 YOLOv5 上训练了对象检测模型。它在 ubuntu 电脑上运行良好。现在我想在我的 imx8mplus 板上运行该模型
    发表于 03-25 07:23

    用PaddleNLP为GPT-2模型制作FineWeb二进制预训练数据集

    作者:算力魔方创始人/英特尔创新大使刘力 《用PaddleNLP在4060单卡上实践大模型训练技术》发布后收到读者热烈反响,很多读者要求进一步讲解更多的技术细节。本文主要针对大语言模型
    的头像 发表于 03-21 18:24 3805次阅读
    用PaddleNLP为GPT-2<b class='flag-5'>模型</b>制作FineWeb二进制预<b class='flag-5'>训练</b>数据集

    ​VLM(视觉语言模型)​详细解析

    视觉语言模型(Visual Language Model, VLM)是一种结合视觉(图像/视频)和语言(文本)处理能力的多模态人工智能模型,能够理解并生成与视觉内容相关的自然
    的头像 发表于 03-17 15:32 7541次阅读
    ​VLM(视觉<b class='flag-5'>语言</b><b class='flag-5'>模型</b>)​详细解析

    训练好的ai模型导入cubemx不成功怎么处理?

    训练好的ai模型导入cubemx不成功咋办,试了好几个模型压缩了也不行,ram占用过大,有无解决方案?
    发表于 03-11 07:18

    小白学大模型训练语言模型的深度指南

    在当今人工智能飞速发展的时代,大型语言模型(LLMs)正以其强大的语言理解和生成能力,改变着我们的生活和工作方式。在最近的一项研究中,科学家们为了深入了解如何高效地
    的头像 发表于 03-03 11:51 1204次阅读
    小白学大<b class='flag-5'>模型</b>:<b class='flag-5'>训练</b>大<b class='flag-5'>语言</b><b class='flag-5'>模型</b>的深度指南

    用PaddleNLP在4060单卡上实践大模型训练技术

    作者:算力魔方创始人/英特尔创新大使刘力 之前我们分享了《从零开始训练一个大语言模型需要投资多少钱》,其中高昂的预训练费用让许多对大模型
    的头像 发表于 02-19 16:10 2128次阅读
    用PaddleNLP在4060单卡上实践大<b class='flag-5'>模型</b>预<b class='flag-5'>训练</b>技术

    语言模型的解码策略与关键优化总结

    本文系统性地阐述了大型语言模型(LargeLanguageModels,LLMs)中的解码策略技术原理及其实践应用。通过深入分析各类解码算法的工作机制、性能特征和优化方法,为研究者和工程师提供了全面
    的头像 发表于 02-18 12:00 1063次阅读
    大<b class='flag-5'>语言</b><b class='flag-5'>模型</b>的解码策略与关键优化总结

    腾讯公布大语言模型训练新专利

    近日,腾讯科技(深圳)有限公司公布了一项名为“大语言模型训练方法、装置、计算机设备及存储介质”的新专利。该专利的公布,标志着腾讯在大语言模型
    的头像 发表于 02-10 09:37 707次阅读

    语言模型管理的作用

    要充分发挥语言模型的潜力,有效的语言模型管理非常重要。以下,是对语言模型管理作用的分析,由AI部
    的头像 发表于 01-02 11:06 568次阅读

    GPU是如何训练AI大模型

    在AI模型训练过程中,大量的计算工作集中在矩阵乘法、向量加法和激活函数等运算上。这些运算正是GPU所擅长的。接下来,AI部落小编带您了解GPU是如何训练AI大
    的头像 发表于 12-19 17:54 1308次阅读

    AI大语言模型开发步骤

    开发一个高效、准确的大语言模型是一个复杂且多阶段的过程,涉及数据收集与预处理、模型架构设计、训练与优化、评估与调试等多个环节。接下来,AI部落小编为大家详细阐述AI大
    的头像 发表于 12-19 11:29 1209次阅读

    使用英特尔AI PC为YOLO模型训练加速

    在以往的实践中,当我们针对 ultralytics 的 YOLO 模型开展训练工作时,可供选择的计算设备通常局限于 CPU、mps 以及 cuda 这几种。然而,自 PyTorch2.5 版本发布
    的头像 发表于 12-09 16:14 2096次阅读
    使用英特尔AI PC为YOLO<b class='flag-5'>模型</b><b class='flag-5'>训练</b>加速

    语言模型开发框架是什么

    语言模型开发框架是指用于训练、推理和部署大型语言模型的软件工具和库。下面,AI部落小编为您介绍大语言
    的头像 发表于 12-06 10:28 820次阅读