噪声嵌入提升语言模型微调性能

在自然语言处理(NLP)的快速发展中,大模型(LLMs)的微调技术一直是研究的热点。最近,一篇名为《NEFTUNE: NOISY EMBEDDINGS IMPROVE INSTRUCTION FINETUNING》的论文提出了一种新颖的方法,通过在训练过程中向嵌入向量添加噪声来提升模型的微调性能。这一发现为LLMs的进一步优化提供了新的思路。

传统的LLMs通常在原始网络数据上进行训练,然后针对较小但经过精心策划的指令数据集进行微调。这种指令微调对于发挥LLMs的潜力至关重要,而模型的实用性很大程度上取决于我们如何充分利用这些小型指令数据集。NEFTune的核心思想是在微调过程中的前向传播阶段向训练数据的嵌入向量添加随机噪声。这一简单的技巧可以在没有额外计算或数据开销的情况下显著提升指令微调的结果。实验表明,使用噪声嵌入对原始LLM(如LLaMA-2-7B)进行微调时,其在AlpacaEval上的性能从29.79%提升至64.69%,显示出约35个百分点的显著提升。

NEFTune(Noisy Embedding Instruction Fine Tuning)是一种新颖的微调技术,它通过在训练过程中向嵌入向量添加噪声来增强语言模型的性能。这种方法的核心思想是利用随机噪声作为一种正则化手段,以减少模型对训练数据的过度拟合,并提高其泛化能力。以下是NEFTune方法的详细说明:

噪声嵌入的引入

在传统的语言模型微调中,模型的嵌入层会将输入的词汇映射为固定长度的向量,这些向量随后会被用来生成模型的输出。NEFTune方法在这一过程中引入了随机噪声,具体做法是在嵌入向量的前向传播过程中添加一个随机噪声向量。

噪声的生成与缩放

NEFTune生成的噪声向量是通过独立同分布(iid)均匀分布采样得到的,然后通过一个缩放因子对整个噪声向量进行缩放。其中,L 是序列长度,d 是嵌入维度,而α 是一个可调参数。

这个缩放规则借鉴了对抗性机器学习文献中的噪声缩放规则,它会产生一个期望欧几里得范数约为 的随机向量。

训练过程

NEFTune的训练过程从数据集中采样一个指令,将其标记转换为嵌入向量。然后,与标准训练不同的是,NEFTune会向这些嵌入向量添加一个随机噪声向量。具体来说,算法的步骤如下:

  1. 初始化从预训练模型中得到的模型参数 θ。
  2. 重复以下步骤直到满足停止条件或达到最大迭代次数:
    • 从数据集 D 中采样一个minibatch的数据和标签(Xi​,Yi​)。
    • 将输入Xi​ 转换为嵌入向量 
    • 采样一个噪声向量ϵ,并将其缩放后加到嵌入向量上,得到噪声嵌入
    • 使用噪声嵌入进行预测
    • 根据损失函数 更新模型参数θ。
实验效果

实验结果表明,NEFTune在多个数据集上显著提升了模型的文本质量。例如,在7B规模的模型上,AlpacaEval的平均提升为15.1%。此外,即使是经过多轮RLHF调整的高级聊天模型(如LLaMA-2-Chat),也能通过NEFTune获得额外的性能提升。

结论

NEFTune通过在嵌入层引入噪声,作为一种数据增强手段,有效地提高了语言模型在指令微调任务上的性能。这种方法简单易行,且不需要额外的计算或数据开销,为LLMs的微调提供了一种有效的改进策略。

论文链接:http://arxiv.org/pdf/2310.05914

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/6635.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数据结构】--- 深入剖析二叉树(上篇)--- 初识树和二叉树

Welcome to 9ilks Code World (๑•́ ₃ •̀๑) 个人主页: 9ilk (๑•́ ₃ •̀๑) 文章专栏: 数据结构之旅 🏠 初识树 📒 树的概念 树是一种非线性的数据结构,它是由n(n>0)个有限结点…

分布式与一致性协议之一致哈希算法(三)

一致哈希算法 如何使用一致哈希算法实现哈希寻址 我们一起来看一个例子,对于1000万个key的3节点KV存储,如果我们使用一致哈希算法增加1个节点,即3节点集群变为4节点集群,则只需要迁移24.3%的数据,如代码所示 package mainimpor…

微搭低代码入门03页面管理

目录 1 创建页面2 页面布局3 页面跳转总结 上一篇我们介绍了应用的基本操作,掌握了应用的概念后接着我们需要掌握页面的常见操作。 1 创建页面 打开应用的编辑器,在顶部导航条点击创建页面图标 在创建页面的时候可以从空白新建,也可以使用模…

【原件】软件需求分析报告

第1章 序言 第2章 引言 2.1 项目概述 2.2 编写目的 2.3 文档约定 2.4 预期读者及阅读建议 第3章 技术要求 3.1 软件开发要求 第4章 项目建设内容 第5章 系统安全需求 5.1 物理设计安全 5.2 系统安全设计 5.3 网络安全设计 5.4 应用安全设计 5.5 对用户安全管理 …

Mysql复习笔记: 基础概念(待补充)

一. 基础概念 通用概念: 网络连接必须得分配给一个线程去进行处理,由一个线程来监听请求以及读取请求数据,比如从网络连接中读取和解析出来一条我们的系统发送过去的SQL语句 在数据库中,哪怕执行一条SQL语句,其实也可以是一个独立…

PostgreSQL自带的命令行工具06- pg_isready

PostgreSQL自带的命令行工具06- pg_isready 基础信息 OS版本:Red Hat Enterprise Linux Server release 7.9 (Maipo) DB版本:16.2 pg软件目录:/home/pg16/soft pg数据目录:/home/pg16/data 端口:5777pg_isready 是 Po…

2024牛客五一集训派对day2 Groundhog Looking Dowdy 个人解题思路

前言: 被实验室教练要求要打的这次五一牛客的训练赛,这些区域赛难度的题对于大一的我来说难度实在是太高了,我和我的队友只写了一些非常简单的签到题,其他题目都没怎么看(我们太弱了),但我可以分…

线上线下交友社区系统,支持打包小程序/公众号/H5,源码交付!

上网交友的好处有很多,以下是一些主要的好处: 1. 拓展人际关系:通过上网交友可以认识更多的人,拓展自己的社交圈。这有助于扩大自己的视野、增加人生经验和开阔心胸。 2. 找到志同道合的朋友:在网络上,我们…

JavaWeb请求响应概述

目录 一、请求响应流程-简述 二、深入探究 三、DispatcherServlet 四、请求响应流程-详细分析 一、请求响应流程-简述 web应用部署在tomcat服务器中,前端与后端通过http协议进行数据的请求和响应。前端通过http协议向后端发送数据请求,就可以访问到部…

持续总结中!2024年面试必问 100 道 Java基础面试题(二十九)

上一篇地址:持续总结中!2024年面试必问 100 道 Java基础面试题(二十八)-CSDN博客 五十七、静态内部类和普通内部类有什么区别? 在Java中,内部类是指定义在另一个类中的类,而内部类的类型有很多…

分割回文串(力扣131)

解题思路&#xff1a;仍就是上递归三部曲&#xff0c;但于此同时要明白此时的index就可以作为切割回文串的线了 具体代码如下&#xff1a; class Solution { private: vector<vector<string>> result; vector<string> path; // 放已经回文的子串 void back…

批量抓取某电影网站的下载链接

思路&#xff1a; 进入电影天堂首页&#xff0c;提取到主页面中的每一个电影的背后的那个urL地址 a. 拿到“2024必看热片”那一块的HTML代码 b. 从刚才拿到的HTML代码中提取到href的值访问子页面&#xff0c;提取到电影的名称以及下载地址 a. 拿到子页面的页面源代码 b. 数据提…

【leetcode】DFS递归题目总结

DFS&#xff08;深度优先搜索&#xff09; 深度优先搜索是一种用于遍历或搜索树或图的算法&#xff0c;其基本思路是从起始节点开始&#xff0c;沿着一条路径一直走到底&#xff0c;直到无法再走下去为止&#xff0c;然后回溯到上一个节点&#xff0c;继续走到另外一个路径&…

第二代增强-创建采购申请时的增强

文章目录 第二代增强-创建采购申请时的增强业务要求实现过程创建项目编写代码激活增强 维护消息类运行效果断点 第二代增强-创建采购申请时的增强 业务要求 实现过程 创建项目 编写代码 "AFNAM&#xff0c;申请人 "需求&#xff1a;NB类型的采购申请&#xff0c;需要…

嵌入式全栈开发学习笔记---C语言笔试复习大全10

目录 字符数组&#xff08;笔试重点&#xff09; 字符数组初始化 字符串数组输出 字符串的输入 字符串处理函数 puts()输出字符串 gets()输入字符串 strlen()计算字符串长度 strcpy()将后面的字符串拷贝到前面的字符串数组里面 笔试题12 strcmp()比较字符串的大小 …

自动化机器学习——网格搜索法:寻找最佳超参数组合

自动化机器学习——网格搜索法&#xff1a;寻找最佳超参数组合 在机器学习中&#xff0c;选择合适的超参数是模型调优的关键步骤之一。然而&#xff0c;由于超参数的组合空间通常非常庞大&#xff0c;手动调整超参数往往是一项耗时且困难的任务。为了解决这个问题&#xff0c;…

大模型引领NLP研究新范式:从统计机器学习到预训练语言模型

自然语言处理&#xff08;NLP&#xff09;研究范式经历了从浅层到深层、从局部到整体、从特定到通用的演进过程。下面我们来详细回顾这一过程。 一、早期的统计机器学习方法&#xff08;20世纪90年代 - 21世纪初&#xff09; 词袋模型&#xff08;Bag-of-Words&#xff09; 将…

C语言 | Leetcode C语言题解之第67题二进制求和

题目&#xff1a; 题解&#xff1a; void reserve(char* s) {int len strlen(s);for (int i 0; i < len / 2; i) {char t s[i];s[i] s[len - i - 1], s[len - i - 1] t;} }char* addBinary(char* a, char* b) {reserve(a);reserve(b);int len_a strlen(a), len_b st…

性能优化(一):ArrayList还是LinkedList?

引言 集合作为一种存储数据的容器&#xff0c;是我们日常开发中使用最频繁的对象类型之一。JDK为开发者提供了一系列的集合类型&#xff0c;这些集合类型使用不同的数据结构来实现。因此&#xff0c;不同的集合类型&#xff0c;使用场景也不同。 很多同学在面试的时候&#x…

大厂案例 - 通用的三方接口调用方案设计(中)

文章目录 Pre阿里云华为云【AK和SK生成方案】最佳实践1. 创建API密钥管理系统2. 生成AK和SK3. 存储和管理AK和SK4. 提供API密钥分发机制5. 安全性6. 其他注意事项 DB Model Design表结构Next考虑其他建议 API接口设计指导1. 使用POST作为接口请求方式2. 客户端IP白名单3. 单个接…