200万上下文窗口创飞Gemini 1.5!微软来砸谷歌场子了

谷歌刚刷新大模型上下文窗口长度记录,发布支持100万token的Gemini 1.5,微软就来砸场子了。

推出大模型上下文窗口拉长新方法——LongRoPE,一口气将上下文拉至2048k token,也就是200多万!

并且1000步微调内,即可完成从短上下文到长上下文的扩展,同时保持原来短上下文窗口性能,也就是说训练成本和时间又省了一大笔。

网友看不下去了,直呼“谷歌太惨了”:

此外值得一提的是,这次LongRoPE为纯华人团队,论文一作Yiran Ding,就读于杭州电子科技大学,于实习期间完成该项工作。

LongRoPE究竟长啥样?先来看一波测试效果。

拿LLaMA2和Mistral试试水

上下文窗口有效拉长,语言模型长文本理解能力可以得到很大提高。研究人员在LLaMA2-7BMistral-7B上应用LongRoPE,从三个方面评估了其性能。

第一项测试是在长文档上评估扩展上下文语言模型的困惑度。

在256k以内的评估长度上,研究人员使用Proof-pile和PG19数据集来进行测试。

LongRoPE在4k-256k的文本长度上,整体上显示出困惑度下降的趋势,优于基准。

LongRoPE在Proof-pile数据集上的表现

即使在上下文窗口长度是标准长度16倍的条件下,LongRoPE-2048k模型在256k上下文长度内也超过了最新基线水平。

LongRoPE在PG19数据集上的表现

接下来上难度,从Books3数据集中随机选取20本书,每本长度超2048k,使用256k的滑动窗口。

研究人员观察到2048k的LLaMA2和Mistral之间性能差异显著。

在8k-128k的文本长度上二者均取得了与基线相当的或更优的困惑度。LLaMA2的困惑度随着文本长度的增加而逐渐下降,在1024k和2048k长度处略有上升,展示了较好的性能。

不过,Mistral在较短的长度上胜过基线,但当文本长度超过256k时,其困惑度急剧上升。研究人员分析,主要原因是对于Mistral的微调采用了与YaRN相同的设置,即使用16k长度的文本进行训练,导致了模型难以有效处理更长的文本。

第二项测试是用Passkey检索任务评估在海量无关文本中检索简单密钥的能力。

也就是在很长的文本中随机隐藏一个五位数的密码,让模型找出这个密码。

结果显示,现有模型的准确率在文本超度超128k后迅速下降到0。

而LLaMA2-2048k在4k-2048k文本范围内保持了90%以上的检索准确率,Mistral-2048k在1800k之前保持了100%的准确率,在2048k时准确率下降到60%。

第三项测试是在短4096上下文窗口长度内的标准大语言模型基准测试上评估。

这项测试,主要是为了检验模型上下文窗口被扩展后,在原有任务上的表现会不会受到负面影响。

LongRoPE-2048k模型在原始上下文窗口大小的任务上,与原始模型相比表现相当。

在TruthfulQA上,扩展后的Mistral比原始高出0.5%;LLaMA2性能略微下降,但在合理的范围内。

这是如何做到的?

LongRoPE可以有效扩展模型上下文窗口关键有三:非均匀位置插值、渐进式扩展策略、短上下文窗口性能恢复。

非均匀位置插值

位置嵌入(Positional Embeddings)在Transformer架构中,用于帮助模型理解长句中token的顺序。

位置嵌入通常是预先定义的,并与模型的其他参数一起训练,当模型需要处理的文本长度超过其训练时的上下文窗口时,新出现的token的位置就需要新的位置嵌入。

而LongRoPE通过识别并利用位置嵌入中两个形式的非均匀性,即不同的RoPE维度和token位置,优化了位置嵌入,不用微调就能实现8倍的上下文窗口扩展。

这种方法通过有效的搜索算法来确定每个RoPE维度的最佳缩放因子,针对每个RoPE维度的旋转角进行了重新缩放,同时也考虑了token位置的影响。

这样,模型在扩展上下文窗口的同时,能够更好地保留关键的维度和位置信息,减少信息损失。

渐进式扩展策略

此外,LongRoPE采用了一种渐进式扩展的方法。研究人员先对预训练的大模型进行微调,使其适应256k长度的文本。

然后,在微调后模型基础上进行搜索,找到新的位置插值参数以重新缩放RoPE,最终实现2048k上下文窗口,这个过程无需额外微调。

短上下文窗口性能恢复

在RoPE(旋转位置编码)中,超长上下文窗口会使得原始窗口内的维度被迫聚集在更小范围内,从而影响模型性能。

为此,研究人员调整了短上下文窗口RoPE的重缩放因子,使其与长上下文时不同,缓解了性能下降的问题。

通过这种动态调整机制,LongRoPE在处理极长文本和处理短文本时都表现良好。

LongRoPE发布后,部分网友认为RAG恐面临淘汰:

不过也有质疑的声音:

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

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

相关文章

【刷题记录】链表的回文结构

本系列博客为个人刷题思路分享,有需要借鉴即可。 1.题目链接: LINK 2.详解思路: 思路:思路:先找到中间节点,然后逆置后半部分链表,一个指针指向链表的头节点,再一个指针指向逆置的头…

ELK介绍以及搭建

基础环境 hostnamectl set-hostname els01 hostnamectl set-hostname els02 hostnamectl set-hostname els03 hostnamectl set-hostname kbased -i s/SELINUXenforcing/SELINUXdisabled/ /etc/selinux/config systemctl stop firewalld & systemctl disable firewalld# 安…

c语言的数据结构:找环状链表入口处

一起<(&#xffe3;︶&#xffe3;)↗[GO!] 1.如何判断一个链表是否有环 思路:设定两个快慢指针fast和slow,fast每次走两个结点,slow每次走一个节点 如果fast指针遇到了Null,那么这个链表没有环,如果fast和slow可以相遇,则代表这个链表有环 代码如下 N:fast先进环,slow后…

鼠标右键助手专业版 MouseBoost PRO for Mac v3.3.6中文破解

MouseBoost Pro mac版是一款简单实用的鼠标右键助手专业版&#xff0c;MouseBoost Pro for Mac只要轻点你的鼠标右键&#xff0c;就可以激活你想要的各种功能&#xff0c;让你的工作效率大幅度提高&#xff0c;非常好用。 软件下载&#xff1a;MouseBoost PRO for Mac v3.3.6中…

leet hot 100-2 字母异位词分组

字母异位词分组 原题链接思路代码 原题链接 leet hot 100-2 49. 字母异位词分组 思路 要求把含有相同字母的放到一起&#xff0c;我们可以遍历每一个字符串 将他们重新排序&#xff0c;将排序完是一样的字符串放在一起 用无序容器存放起来 然后遍历这个无序map容器将排序后相…

解决数学计算公式在前端项目里的展示,涉及换肤适配各个框架

有时候我们项目里面会嵌套一些数学公式说明 例如 可能你会发现市面上有很多的第三方库可以实现&#xff0c;比如&#xff1a; MathJax&#xff1a; https://www.mathjax.org/ 但是我们项目里面用到公式可能就一个页面&#xff0c;引一个第三方库进来会显得十分臃肿&#xff0…

JavaScript原型继承与面向对象编程思想

原型继承与面向对象编程思想 在JavaScript中&#xff0c;原型(prototype)、构造函数(constructor)和实例对象(instance)是面向对象编程中的重要概念&#xff0c;并且它们之间存在着紧密的关系。 原型(prototype)&#xff1a;原型是JavaScript中对象之间关联的一种机制。每个Ja…

c++笔记理解

1.封装 &#xff08;1&#xff09;构造函数不是必须在的 可以通过行为修改属性 &#xff08;2&#xff09;private和protected区别在于继承那里要学 &#xff08;3&#xff09;类默认是私有&#xff0c;struct是共有 私有的好处&#xff1a;控制数据的有效性&#xff0c;意…

MATLAB练习题:估计离开家之前能拿到报纸的概率

​讲解视频&#xff1a;可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇&#xff08;数学建模清风主讲&#xff0c;适合零基础同学观看&#xff09;_哔哩哔哩_bilibili 清风订了一份报纸&#xff0c;送报人可能在早上6&#xff1a;…

Ansible service 模块 该模块用于服务程序的管理

目录 参数将服务设置为 自启动检查端口关闭服务再次查看端口 参数 arguments #命令行提供额外的参数 enabled #设置开机启动。 name #服务名称 runlevel #开机启动的级别&#xff0c;一般不用指定。 sleep #在重启服务的过程中&#xff0c;是否等待。如在服务关闭以后等待2秒再…

SpringBoot实现缓存预热的几种常用方案

&#x1f3f7;️个人主页&#xff1a;牵着猫散步的鼠鼠 &#x1f3f7;️系列专栏&#xff1a;Java全栈-专栏 &#x1f3f7;️个人学习笔记&#xff0c;若有缺误&#xff0c;欢迎评论区指正 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&…

《TCP/IP详解 卷一》第3章 链路层

目录 3.1 引言 3.2 以太网 3.3 全双工 省点 自动协商 流量控制 3.4 网桥和交换机 3.5 WiFi 3.6 PPP协议 3.6.1 PPP协议流程 3.7 环回 3.8 MTU和路径MTU 3.9 隧道基础 3.9.1 GRE 3.9.2 PPTP 3.9.3 L2TP 3.10 与链路层相关的攻击 3.11 总结 3.1 引言 城域网&…