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

    文章

    6754

    浏览量

    108099
  • 算法
    +关注

    关注

    23

    文章

    4810

    浏览量

    98610
  • 语言模型
    +关注

    关注

    0

    文章

    575

    浏览量

    11345
  • nlp
    nlp
    +关注

    关注

    1

    文章

    491

    浏览量

    23347

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    零基础手写大模型资料2026

    Transformer核心结构的大模型,揭示大模型从理论到落地的技术本质。 一、数学基础:大模型的三大基石 1. 矩阵运算:神经网络的语言模型
    发表于 05-01 17:44

    Edge Impulse 唤醒词模型训练 | 技术集结

    今天,将手把手带领学习如何训练一个语音关键词模型部署到嵌入式硬件上,采用Edgi-Talk平台适配EdgeImpulse,当然原理在其他的ARM嵌入式平台也是通用的。让我们看看如何让
    的头像 发表于 04-20 10:05 1278次阅读
    Edge Impulse 唤醒词<b class='flag-5'>模型</b><b class='flag-5'>训练</b> | 技术集结

    AI模型训练与部署实战 | 线下免费培训

    你是否想系统了解AI落地全链路,但缺少一个完整的实战项目练手?模型部署环节繁多,缺乏一套清晰的实战路径?4月18日、4月25日、5月16日RT-Thread将分别在苏州、成都、南京举办“AI模型训练
    的头像 发表于 04-07 13:08 696次阅读
    AI<b class='flag-5'>模型</b><b class='flag-5'>训练</b>与部署实战 | 线下免费培训

    工作流大模型节点说明

    模型节点是平台提供的基础节点之一,开发者可以在该节点使用大语言模型处理任务。 节点说明 大模型节点可以调用大型语言
    发表于 03-19 14:56

    训练到推理:大模型算力需求的新拐点已至

    在大模型产业发展的早期阶段,行业焦点主要集中在大模型训练所需的算力投入。一个万亿参数大模型训练可能需要数千张GPU芯片连续运行数月,成本高
    的头像 发表于 02-05 16:07 1057次阅读
    从<b class='flag-5'>训练</b>到推理:大<b class='flag-5'>模型</b>算力需求的新拐点已至

    什么是大模型,智能体...?大模型100问,快速全面了解!

    一、概念篇1.什么是大模型?大模型是指参数规模巨大(通常达到数十亿甚至万亿级别)、使用海量数据训练而成的人工智能模型。2.什么是大语言
    的头像 发表于 02-02 16:36 1154次阅读
    什么是大<b class='flag-5'>模型</b>,智能体...?大<b class='flag-5'>模型</b>100问,快速全面了解!

    摩尔线程新一代大语言模型对齐框架URPO入选AAAI 2026

    近日,摩尔线程在人工智能前沿领域取得重要突破,其提出的新一代大语言模型对齐框架——URPO统一奖励与策略优化,相关研究论文已被人工智能领域的国际顶级学术会议AAAI 2026收录。这一成果标志着摩尔线程在大模型基础技术探索上迈出
    的头像 发表于 11-17 16:03 618次阅读
    摩尔线程新一代大<b class='flag-5'>语言</b><b class='flag-5'>模型</b>对齐框架URPO入选AAAI 2026

    一文了解Mojo编程语言

    Mojo 是一种由 Modular AI 公司开发的编程语言,旨在将 Python 的易用性与 C 语言的高性能相结合,特别适合人工智能(AI)、高性能计算(HPC)和系统级编程场景。以下是关于
    发表于 11-07 05:59

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

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

    借助NVIDIA Megatron-Core大模型训练框架提高显存使用效率

    随着模型规模迈入百亿、千亿甚至万亿参数级别,如何在有限显存中“塞下”训练任务,对研发和运维团队都是巨大挑战。NVIDIA Megatron-Core 作为流行的大模型训练框架,提供了灵
    的头像 发表于 10-21 10:55 1431次阅读
    借助NVIDIA Megatron-Core大<b class='flag-5'>模型</b><b class='flag-5'>训练</b>框架提高显存使用效率

    如何在TPU上使用JAX训练GPT-2模型

    如果您对如何使用 JAX 从头开始构建语言模型感到好奇,那么本文非常适合您。我们在 2025 年 Google Cloud Next 大会上举办了一场关于此主题的研讨会,并获得了一些很好的反馈,我们也为所有无法参会的开发者编写了
    的头像 发表于 09-03 11:39 1844次阅读
    如何在TPU上使用JAX<b class='flag-5'>训练</b>GPT-2<b class='flag-5'>模型</b>

    ai_cube训练模型最后部署失败是什么原因?

    ai_cube训练模型最后部署失败是什么原因?文件保存路径里也没有中文 查看AICube/AI_Cube.log,看看报什么错?
    发表于 07-30 08:15

    利用自压缩实现大型语言模型高效缩减

    随着语言模型规模日益庞大,设备端推理变得越来越缓慢且耗能巨大。一个直接且效果出人意料的解决方案是剪除那些对任务贡献甚微的完整通道(channel)。我们早期的研究提出了一种训练阶段的方法——自压
    的头像 发表于 07-28 09:36 683次阅读
    利用自压缩实现大型<b class='flag-5'>语言</b><b class='flag-5'>模型</b>高效缩减

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

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

    make sence成的XML文件能上传到自助训练模型上吗?

    make sence成的XML文件能上传到自助训练模型上吗
    发表于 06-23 07:38