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

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

3天内不再提示

微调前给预训练模型参数增加噪音提高效果的方法

深度学习自然语言处理 来源:NLP工作站 作者:刘聪NLP 2022-06-07 09:57 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

写在前面

昨天看完NoisyTune论文,做好实验就来了。一篇ACL2022通过微调前给预训练模型参数增加噪音提高预训练语言模型在下游任务的效果方法-NoisyTune,论文全称《NoisyTune: A Little Noise Can Help You Finetune Pretrained Language Models Better》。

paper地址:https://aclanthology.org/2022.acl-short.76.pdf

由于仅加两行代码就可以实现,就在自己的数据上进行了实验,发现确实有所提高,为此分享给大家;不过值得注意的是,「不同数据需要加入噪音的程度是不同」,需要自行调参。

模型

自2018年BERT模型横空出世,预训练语言模型基本上已经成为了自然语言处理领域的标配,「pretrain+finetune」成为了主流方法,下游任务的效果与模型预训练息息相关;然而由于预训练机制以及数据影响,导致预训练语言模型与下游任务存在一定的Gap,导致在finetune过程中,模型可能陷入局部最优。

为了减轻上述问题,提出了NoisyTune方法,即,在finetune前加入给预训练模型的参数增加少量噪音,给原始模型增加一些扰动,从而提高预训练语言模型在下游任务的效果,如下图所示,

43feda12-e589-11ec-ba43-dac502259ad0.png

通过矩阵级扰动(matrix-wise perturbing)方法来增加噪声,定义预训练语言模型参数矩阵为,其中,表示模型中参数矩阵的个数,扰动如下:

其中,表示从到范围内均匀分布的噪声;表示控制噪声强度的超参数;表示标准差。

代码实现如下:

forname,parainmodel.namedparameters():
model.statedict()[name][:]+=(torch.rand(para.size())−0.5)*noise_lambda*torch.std(para)

这种增加噪声的方法,可以应用到各种预训练语言模型中,可插拔且操作简单。

如下表所示,在BERT、XLNET、RoBERTa和ELECTRA上均取得不错的效果。

444e5060-e589-11ec-ba43-dac502259ad0.png

并且比较的四种不同增加噪声的方法,发现在矩阵级均匀噪声最优。

448791e0-e589-11ec-ba43-dac502259ad0.png

在不同数据量下,NoisyTune方法相对于finetune均有所提高。

44bb1fec-e589-11ec-ba43-dac502259ad0.png

在不同噪声强度下,效果提升不同,对于GLUE数据集,在0.1-0.15间为最佳。

44f1b2f0-e589-11ec-ba43-dac502259ad0.png

总结

蛮有意思的一篇论文,加入少量噪音,提高下游微调效果,并且可插拔方便易用,可以纳入到技术库中。

本人在自己的中文数据上做了一些实验,发现结果也是有一些提高的,一般在0.3%-0.9%之间,但是噪声强度在0.2时最佳,并且在噪声强度小于0.1或大于0.25后,会比原始效果差。个人实验结果,仅供参考。


审核编辑 :李倩


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

    关注

    1

    文章

    170

    浏览量

    24456
  • 模型
    +关注

    关注

    1

    文章

    3648

    浏览量

    51710
  • 自然语言处理

    关注

    1

    文章

    629

    浏览量

    14563

原文标题:ACL2022 | NoisyTune:微调前加入少量噪音可能会有意想不到的效果

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

    , batch_size=512, epochs=20)总结 这个核心算法中的卷积神经网络结构和训练过程,是用来对MNIST手写数字图像进行分类的。模型将图像作为输入,通过卷积和池化层提取图像的特征,然后通过全连接层进行分类预测。训练
    发表于 10-22 07:03

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

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

    基于大规模人类操作数据训练的VLA模型H-RDT

    近年来,机器人操作领域的VLA模型普遍基于跨本体机器人数据集训练,这类方法存在两大局限:不同机器人本体和动作空间的差异导致统一训练困难;现
    的头像 发表于 08-21 09:56 778次阅读
    基于大规模人类操作数据<b class='flag-5'>预</b><b class='flag-5'>训练</b>的VLA<b class='flag-5'>模型</b>H-RDT

    运行kmodel模型验证一直报错怎么解决?

    我这运行kmodel模型验证一直报错,所以没法做kmodel模型好坏验证,不知道怎么解决这个问题,重新训练一个kmodel模型会和拿相同pt训练
    发表于 06-10 08:02

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

    ,使用PaddleNLP将FineWeb数据集中文本形式的数据,经过分词化(Tokenize),转换为大语言模型能直接使用的二进制数据,以便提升训练效果。 ChatGPT发布后,当代大语言模型
    的头像 发表于 03-21 18:24 3823次阅读
    用PaddleNLP为GPT-2<b class='flag-5'>模型</b>制作FineWeb二进制<b class='flag-5'>预</b><b class='flag-5'>训练</b>数据集

    忆联PCIe 5.0 SSD支撑大模型全流程训练

    到高频参数迭代,从模型微调到实时推理,大模型运行的每一个环节都需存储设备在“硬指标”与“软实力”间达成平衡。从产品可靠性视角出发,忆联新一代PCIe Gen5 ESSD UH812a/
    的头像 发表于 03-11 10:26 905次阅读
    忆联PCIe 5.0 SSD支撑大<b class='flag-5'>模型</b>全流程<b class='flag-5'>训练</b>

    YOLOv5类中rgb888p_size这个参数要与模型推理和训练的尺寸一致吗?一致会达到更好的效果

    YOLOv5类中rgb888p_size这个参数要与模型推理和训练的尺寸一致吗,一致会达到更好的效果
    发表于 03-11 08:12

    请问如何能让模型效果更好?

    重现步骤 我用yolov8n训练出的模型,跑出来的识别是没有问题的,问题是在部署到开发板上,无论是稳定性还是框的大小以及识别的准确性都比较差,再试了几次训练后的效果还是不好,请问有什么
    发表于 03-11 07:21

    从Open Model Zoo下载的FastSeg大型公共训练模型,无法导入名称是怎么回事?

    从 Open Model Zoo 下载的 FastSeg 大型公共训练模型。 运行 converter.py 以将 FastSeg 大型模型转换为中间表示 (IR): pyth
    发表于 03-05 07:22

    使用OpenVINO™训练扩展对水平文本检测模型进行微调,收到错误信息是怎么回事?

    已针对水平文本检测模型运行OpenVINO™训练扩展中的 微调 步骤,并收到错误消息: RuntimeError: Failed to find annotation files
    发表于 03-05 06:48

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

    手把手教您如何在单张消费级显卡上,利用PaddleNLP实践OpenAI的GPT-2模型训练。GPT-2的训练关键技术与流程与GPT-
    的头像 发表于 02-19 16:10 2132次阅读
    用PaddleNLP在4060单卡上实践大<b class='flag-5'>模型</b><b class='flag-5'>预</b><b class='flag-5'>训练</b>技术

    【「基于大模型的RAG应用开发与优化」阅读体验】+大模型微调技术解读

    ,减少了计算成本。LoRA(Low-Rank Adaptation):一种基于低秩分解的微调方法,通过分解模型参数矩阵为低秩矩阵来减少参数
    发表于 01-14 16:51

    《具身智能机器人系统》第7-9章阅读心得之具身智能机器人与大模型

    的应用。MAML算法通过二阶优化找到对任务变化敏感的模型参数,实现了快速适应。上下文学习则引入了注意力机制,使模型能够根据当前场景动态调整行为策略。在
    发表于 12-24 15:03

    KerasHub统一、全面的训练模型

    深度学习领域正在迅速发展,在处理各种类型的任务中,训练模型变得越来越重要。Keras 以其用户友好型 API 和对易用性的重视而闻名,始终处于这一动向的前沿。Keras 拥有专用的内容库,如用
    的头像 发表于 12-20 10:32 771次阅读

    AI模型部署边缘设备的奇妙之旅:目标检测模型

    分配方式,并采用VFL+GloU替代CELoss+IoU作为损失函数,从而提高模型训练效果。 激活函数和学习率策略: 将 H-Swish 替代 Relu 作为激活函数,采用 cosi
    发表于 12-19 14:33