前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >NEFTune: 通过简单的噪声提升指令精调效果

NEFTune: 通过简单的噪声提升指令精调效果

作者头像
Steve Wang
发布2023-11-17 10:14:09
4410
发布2023-11-17 10:14:09
举报
文章被收录于专栏:从流域到海域

NEFTune指的是Noise Embedding Finetuning(噪声嵌入精调),提出自论文:NEFTune: NOISY EMBEDDINGS IMPROVE INSTRUCTION FINETUNING

NEFTune方法的原理仅使用一句话就可以描述清楚:在finetune过程的词向量中引入一些均匀分布的噪声即可明显地提升模型的表现:

如上图,基于AlpacaEval进行评测,引入了噪声之后在Alpaca数据集上有34.9%的提升!!!其他数据集也有不低于7.5%的提升,效果惊人~。

噪声的生成方法也不复杂,就是按原向量维度生成每一项都是一个从-1到1之间的随机数的噪声向量,再乘以缩放因子

\frac{\alpha}{\sqrt{Ld}}

,缩放因子参考自论文:Freelb: Enhanced adversarial training for natural language understanding,它和

\frac{\alpha}{\sqrt{3}}

有着相似的expected Euclidean magnitude。

引入方法后的整个finetune过程引用原文的算法描述如下:

因为方法很简单,实现自然也很简单:

uniform_(a,b),即按替换原向量每一项为a到b之间的随机数。

代码语言:javascript
复制
>>> a = torch.zeros(3, 3)
>>> print(a)
tensor([[0., 0., 0.],
        [0., 0., 0.],
        [0., 0., 0.]])
>>> a.uniform_(-1, 1)
tensor([[-0.8951, -0.6760, -0.1516],
        [-0.6764, -0.6086, -0.4051],
        [-0.7278,  0.2884,  0.7550]])
>>> 

hugging face已在TRL (Transformer Reinforcement Learning) 库中支持了该方法。

参考文献
  1. NEFTune: NOISY EMBEDDINGS IMPROVE INSTRUCTION FINETUNING
  2. https://github.com/neelsjain/NEFTune
  3. Freelb: Enhanced adversarial training for natural language understanding
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-11-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 参考文献
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档