大模型微调技巧:在 Embeeding 上加入噪音提高指令微调效果

2023-12-17

大家好,在去年分享过一篇ACL2022的文章,通过微调前给预训练模型参数增加噪音提高预训练语言模型在下游任务的效果方法。NoisyTune方法在BERT、XLNET、RoBERTa和ELECTRA上均取得不错的效果。

图片

那么通过加入噪音的方式,对现在大型语言模型是否有效呢?

今天群里就有人分享了一篇文章《NEFTUNE: NOISY EMBEDDINGS IMPROVE INSTRUCTION FINETUNING》,通过在Embedding层上加入噪音提高指令微调的效果,思路与NoisyTune是基本一致的。

在AlpacaEval榜单上,利用GPT4作为评分器,在多个数据上微调Llama2-7B模型,NEFTune方法相较于直接微调方法,均有显著提高。

图片

Paper: https://arxiv.org/pdf/2310.05914.pdf
Github: https://github.com/neelsjain/NEFTune

方法

核心是输入经过Embedding层后,再加入一个均匀分布的噪声,噪声的采样范围为[-, ]之间,其中,为可调节参数,为输入长度,为Embedding层的维度,具体如下:

图片

代码实现也十分简单,核心代码如下:

from torch.nn import functional as F

def NEFTune(model, noise_alpha=5)
    def noised_embed(orig_embed, noise_alpha):
        def new_func(x):
            # during training, we add noise to the embedding
            # during generation, we don't add noise to the embedding
            if model.training:
                embed_init = orig_embed(x)
                dims = torch.tensor(embed_init.size(1) * embed_init.size(2))
                mag_norm = noise_alpha/torch.sqrt(dims)
                return embed_init + torch.zeros_like(embed_init).uniform_(-mag_norm, mag_norm)
            else:
                return orig_embed(x)
        return new_func
    ##### NOTE: this is for a LLaMA model ##### 
    ##### For a different model, you need to change the attribute path to the embedding #####
    model.base_model.model.model.embed_tokens.forward = noised_embed(model.base_model.model.model.embed_tokens, noise_alpha)
return model

结果&分析

Llama2-7B模型在不同数据集上正常微调和NEFTune方法微调后,与Text-Davinci-003的胜率,平均高出15%,提高了模型生成文本的质量。

图片

NEFTune方法,不仅在Llama2-7B模型有效,在OPT-6.7B、Llama1-7B上同样有效,如下图所示。

图片

但有一点注意的是,ChatGPT作为评价器,NEFTune方法效果的提高没有GPT4作为评价器提高的多。

并且从OpenLLM榜单上结果来看,NEFTune方法对模型推理、认知等能力并没有负作用。

图片

在高效调参方法(QLora)中使用NEFTune方法也依然有效。

图片

NEFTune方法通过增加噪音,会是训练集上的Loss变高,验证集上的Loss变低,说明有能力缓解模型过拟合现象。

图片

NEFTune方法会导致输出结果变长,但生成结果的重复率并没有显著提高,主要是提供了额外的细节。

图片

通过实验发现,通过prompt限制等强制模型输出生成更长的结果,会使得评分变高,但都不如NEFTune方法。 图片

并且对比了高斯噪声和均匀噪声,发现虽然高斯噪声会使得输出长度更长,但对结果并没有明显增益。 图片

总结

NEFTune方法可以缓解模型在指令微调阶段的过拟合现象,可以更好的利用预训练阶段的知识内容。但研究目前还存在一些缺陷,例如评价器为GPT4、没有在更大的模型上进行实验。

技术交流群

前沿技术资讯、算法交流、求职内推、算法竞赛、面试交流(校招、社招、实习)等、与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度等名校名企开发者互动交流~

建了技术答疑、交流群!想要进交流群、需要资料的同学,可以直接加微信号:mlc2060。加的时候备注一下:研究方向 +学校/公司+CSDN,即可。然后就可以拉你进群了。

方式①、添加微信号:mlc2060,备注:技术交流
方式②、微信搜索公众号:机器学习社区,后台回复:技术交流

资料1
在这里插入图片描述

资料2
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

大模型微调技巧:在 Embeeding 上加入噪音提高指令微调效果 的相关文章

随机推荐

  • AI科幻电影《黑客帝国4》

    AI科幻电影 黑客帝国4 电影 黑客帝国4 开场 我们看到了一位年轻的女孩 她的名字叫做蕾雅 蕾雅是一名天才黑客 她在网络上的表现引起了机器人的注意 机器人希望能够利用蕾雅的能力 帮助他们控制人类 但是蕾雅并不想成为机器人的工具 她决定加入
  • 刚clone下来的项目如何上传到新的仓库

    查看当前项目的git信息 git remote v 查看git目录上传到哪个路径下 拉下的项目如何上传到新的仓库 git clone xxx cd xxx rm r git 删除原有的git信息 有问题一直回车 git init 初始化gi
  • 测试架构师必备技能-Nginx安装部署实战

    Nginx engine x 是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的免费开源Web和 反向代理服务器 也是一个 IMAP POP3 SMTP 代理服务器 在高并发访问的情况下 Nginx是Apache服务器不错的替
  • 让高清媒体无限畅享——Movist Pro for Mac推广文章

    随着科技的迅猛发展 高清媒体已经成为我们日常生活中不可或缺的一部分 无论是观看电影 追剧 还是欣赏高清音乐视频 我们都希望能够获得最佳的视听体验 为了满足这一需求 我们向大家推荐一款强大的高清媒体播放器 Movist Pro for Mac
  • 【亚马逊】2025届暑期实习生 提前批!

    传音控股 重庆 校招待遇 统一给这些23届秋招毁意向 毁约的无良公司发封感谢信 互联网大厂 VS 体制内 薪资福利大对比 wxg 第一周实习感受与总结 1 2 5SlAM岗面经汇总 slam算法岗24届实习 0offer选手总结 211本硕
  • 测试用例设计方法之判定表详解!!

    理论部分 判定表 是分析和表达多种输入条件下系统执行不同动作的工具 它可以把复杂的逻辑关系和多种 条件组合的情况表达得既具体又明确 条件桩 Condition Stub 动作桩 Action Stub 条件项 Condition Entry
  • 题解 | #复制部分字符串#

    拒了华为 重回0 offer 目前在大三 寒假想找个实习 退役大学生 如题 uu们帮忙看看 25届 没有实习过 没有背过八股文 心里感觉很不稳 下学期想去暑期实习 uu们 德赛西威鸽 在中国电信公司工作一年后 我提桶跑路 东北辽宁就业求职好
  • 开题报告-基于SpringBoot互助志愿服务平台设计与实现

    一 设计课题的目的和意义 公益项目的创新 离不开以 新媒体 为载体的创新 移动新媒体的力量在中国公益界风起云涌 无论是公众抑或是公益机构都在这股新媒体力量的推动下 自觉不自觉地参与了中国公益事业的变革 随着传播媒介的不断增多 互联网时代向移
  • git代码管理学习文档

    1 版本控制 每一版本都会发生变化 更新版本 回退版本 版本控制实际就是控制文件的变化 服务器端和每个人的电脑上都会记录版本的变化 也就是说整个团队都记录了版本的变化 不需要连网 他是分布式的 在自己电脑上也可以操作 2 安装和使用Git
  • 面试了10几家软件公司测试岗位,做的面试题大盘点,重点大合集

    马上就是金三银四了 不知道小伙伴们有没有准备好呢 希望这篇文章的内容可以帮助到大家 另外文末给大家准备了资料 好几套面试题加学习资料等 需要自取 项目的测试流程 1 拿到需求文档后 写测试用例 2 审核测试用例 3 等待开发包 4 部署测试
  • 视频自动识别生成字幕难不难?这些软件操作技巧必收藏

    提问 视频自动生成字幕软件有方便快捷的吗 答案是当然有啦 你们有没有遇到过这样的情况 想要观看一段外语视频 但是却无法理解其中的对话内容 我曾经也是这样 直到我发现了一款令人惊叹的工具 它就是视频自动识别生成字幕的软件 在过去 为视频添加字
  • IDEA配置一个新项目

    git clone xxxxx 下载项目主分支 git checkout xxx 切换到需要开发的分支上 配置maven仓库 在File下的Settings中设置maven仓库 配置maven仓库的文件夹 配置好maven后 项目中会出现一
  • JDK8安装教程分享

    今天 在博客社区看到一篇非常好的 关于JDK8的安装教程 亲试有用 现分享给大家 JDK8安装
  • 使用 PAI-Blade 加速 StableDiffusion Fine-Tuning

    01 背景 Stable Diffusion 模型自从发布以来在互联网上发展迅猛 它可以根据用户输入的文本描述信息生成相关图片 用户也可以提供自己喜爱的风格的照片 来对模型进行微调 例如当我们输入 A photo of sks dog in
  • [英语学习][15][Word Power Made Easy]的精读与翻译优化

    序言 这次翻译 译者还是显得啰啰嗦嗦 另外还有一个地方没有能很准确的翻译出来 英文学习的目标 提升自身的英语水平 对日后编程技能的提升有很大帮助 希望大家这次能学到东西 同时加入我的社区讨论与交流英语相关的内容 原著英文与翻译版对照 第20
  • 超详细!大模型面经指南(附答案)

    大模型应该算是目前当之无愧的最有影响力的AI技术 它正在革新各个行业 包括自然语言处理 机器翻译 内容创作和客户服务等 成为未来商业环境的重要组成部分 截至目前大模型已超过100个 大模型纵横的时代 不仅大模型越来越卷 就连大模型相关面试也
  • 可观测性是什么?新手入门指南!

    如果您之前对可观测性重要性 益处 以及组成不甚了解 本文是一个合适的指南手册 什么是可观测性 可观测性被定义为根据系统产生的输出数据 如日志 指标和链路追踪 来衡量当前系统运行状态的能力 可观测性目前被广泛的用于提升分布式 IT 系统的稳定
  • Spring AOP 和 Spring Boot 统一功能处理

    文章目录 Spring AOP 是什么 什么是 AOP AOP 组成 切面 Aspect 连接点 Join Point 切点 Pointcut 通知 Advice 实现 Spring AOP
  • 找不到concrt140.dll怎么办?concrt140.dll丢失的5个解决方法

    无法找到concrt140 dll 的错误是一种常见的Windows系统错误信息 它通常表示系统中缺少了Microsoft Visual C 2015 Redistributable中名为concrt140 dll的动态链接库文件 当我们运
  • 大模型微调技巧:在 Embeeding 上加入噪音提高指令微调效果

    大家好 在去年分享过一篇ACL2022的文章 通过微调前给预训练模型参数增加噪音提高预训练语言模型在下游任务的效果方法 NoisyTune方法在BERT XLNET RoBERTa和ELECTRA上均取得不错的效果 那么通过加入噪音的方式