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

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

3天内不再提示

RoPE可能是LLM时代的Resnet

深度学习自然语言处理 来源:深度学习自然语言处理 2023-07-14 16:58 次阅读

因为和苏神做过一段时间同事,所以2021年就知道RoPE了,当时也没太在意,因为位置编码是在为transformer类模型提供位置信息,在我实际实验中不同位置编码对最终效果差别很小。

2023年LLM大爆发,facebook开源了LLAMA模型,并且采用了RoPE,我也第一时间用上了LLAMA,那会感觉RoPE有点东西,但是还是心理觉得位置编码没那么重要

直到最近fb发了一篇文章《EXTENDING CONTEXT WINDOW OF LARGE LANGUAGE MODELS VIA POSITION INTERPOLATION》通过线性插值+少量微调的方式将LLAMA原始2k的模型轻松拓展到了32k,这时候我感觉到RoPE的强大之处。

进NLP群—>加入NLP交流群

通过线性插值RoPE扩张LLAMA context长度最早其实是在llamacpp项目中被人发现,有人在推理的时候直接通过线性插值将LLAMA由2k拓展到4k,性能没有下降,引起了很多人关注。fb的论文给这个发现提供了理论和实验支撑,进一步发现通过线性插值+微调可以扩展到32k长度。实现非常简单,只需要对位置编码进行线性插值,初始化的时候增加几行代码就行

defRotaryEmbedding(torch.nn.Module):
def__init__(self,dim,max_position_embeddings=2048,base=10000,device=None):
super().__init__()
inv_freq=1.0/(base**(torch.arange(0,dim,2).float().to(device)/dim))
self.register_buffer("inv_freq",inv_freq)

max_position_embeddings=8192

#Buildheretomake`torch.jit.trace`work.
self.max_seq_len_cached=max_position_embeddings
t=torch.arange(
self.max_seq_len_cached,
device=self.inv_freq.device,
dtype=self.inv_freq.dtype,
)

self.scale=1/4
t*=self.scale

freqs=torch.einsum("i,j->ij",t,self.inv_freq)
#Differentfrompaper,butitusesadifferentpermutationinordertoobtainthesamecalculation
emb=torch.cat((freqs,freqs),dim=-1)
self.register_buffer(
"cos_cached",emb.cos()[None,None,:,:],persistent=False
)
self.register_buffer(
"sin_cached",emb.sin()[None,None,:,:],persistent=False
)

这两天reddit上又出现了ntk RoPE通过引入新的插值的scale,来扩展context,甚至微调都不需要!让人震撼。实现也是极其简单

importtransformers

old_init=transformers.models.llama.modeling_llama.LlamaRotaryEmbedding.__init__
defntk_scaled_init(self,dim,max_position_embeddings=2048,base=10000,device=None):

#Themethodisjustthesethreelines
max_position_embeddings=16384
a=8#Alphavalue
base=base*a**(dim/(dim-2))#Basechangeformula

old_init(self,dim,max_position_embeddings,base,device)


transformers.models.llama.modeling_llama.LlamaRotaryEmbedding.__init__=ntk_scaled_init

具体解释可以参考苏神自己写的文章[1]

为什么说RoPE会成为LLM时代的Resnet,首先是两者解决的问题有相似性。

Resnet解决了卷积模型变深之后梯度消失的问题,使的深度模型大放光彩。

RoPE类似的也解决了LLM context过长之后引起的上下文无法关联问题。

两者都有结构简单,方法有效的优点,这个在工程上有极大的优势,个人预感RoPE将会被大规模采用。如同当年Resnet一样。


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

    关注

    1

    文章

    2825

    浏览量

    48056
  • resnet
    +关注

    关注

    0

    文章

    12

    浏览量

    3133
  • LLM
    LLM
    +关注

    关注

    0

    文章

    222

    浏览量

    252

原文标题:RoPE可能是LLM时代的Resnet

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

收藏 人收藏

    评论

    相关推荐

    晶振不起振也可能是PCB设计的锅

    PCB设计在电子产品中的重要性不言而喻,也因此,产品一旦出现了问题,就需要考虑是否是因为PCB设计不良的问题。比如,产品调试时晶振不起振,这可能是因为晶振器件本身的问题,也有可能是因为PCB设计
    的头像 发表于 12-29 15:46 1662次阅读

    对比解码在LLM上的应用

    为了改进LLM的推理能力,University of California联合Meta AI实验室提出将Contrastive Decoding应用于多种任务的LLM方法。实验表明,所提方法能有效改进LLM的推理能力。让我们走进
    发表于 09-21 11:37 435次阅读
    对比解码在<b class='flag-5'>LLM</b>上的应用

    labview中while循环不执行可能是什么原因

    请教一下,labvlew中while循环不执行可能是什么原因?
    发表于 05-13 18:29

    请问这个可能是什么IC

    请问这个可能是什么IC
    发表于 02-15 10:23

    IPv6协议栈中AH可能是和谐的吗

    在IPv6协议栈中,AH可能是和谐的吗?如果你使用的是MZ芯片上的密码?随着最近基于物联网的攻击,安全性成为了一个大话题。
    发表于 04-26 09:28

    基于resnet10+ssd的虹膜检测方式

    基于resnet10+ssd的虹膜检测
    发表于 05-01 15:17

    这个三脚的元器件可能是什么东西

    这个三脚的东西可能是什么,在电路板上是个很小的元件,一开始猜是个稳压管,但是上侧的二极管和电阻说不通
    发表于 05-15 20:33

    伺服电机异响可能是哪方面的原因?

    伺服电机异响可能是哪方面的原因?
    发表于 11-15 07:02

    8K已成未来主流 4K可能是假的

    8K已然成为显示行业未来主流的发展方向。先别着急看8K,你看到的4K可能是假的。如果你购买的4K产品不支持H.265视频格式的话,基本上就是假的4K产品了。
    发表于 03-08 08:57 1264次阅读

    5G难改手机市场格局 更大的可能是强者恒强

    4G时代国内手机市场形成了华米欧维新四大,有人认为5G时代的到来或将如4G时代一样导致国内智能手机市场的变局,不过笔者认为这种可能性不大,更大的可能
    的头像 发表于 07-30 10:10 2945次阅读

    单片机程序死机,可能是这几个原因

    单片机程序死机,可能是这几个原因
    的头像 发表于 06-19 17:18 8267次阅读
    单片机程序死机,<b class='flag-5'>可能是</b>这几个原因

    LLM在各种情感分析任务中的表现如何

    地址 :https://arxiv.org/pdf/2305.15005.pdf 代码 :https://github.com/DAMO-NLP-SG/LLM-Sentiment 这篇工作调查了LLM时代情感分析的研究现状,旨
    的头像 发表于 05-29 17:24 1738次阅读
    <b class='flag-5'>LLM</b>在各种情感分析任务中的表现如何

    PyTorch教程8.6之残差网络(ResNet)和ResNeXt

    电子发烧友网站提供《PyTorch教程8.6之残差网络(ResNet)和ResNeXt.pdf》资料免费下载
    发表于 06-05 10:08 0次下载
    PyTorch教程8.6之残差网络(<b class='flag-5'>ResNet</b>)和ResNeXt

    PLC指示灯异常闪烁可能是哪些原因造成的?

    PLC指示灯异常闪烁可能是由多种原因造成的。以下是一些常见的可能原因
    的头像 发表于 12-05 09:03 7626次阅读

    英特尔携手腾讯云用CPU打造LLM时代数据中枢,共筑AGI基建

    英特尔携手腾讯云用CPU打造LLM时代数据中枢,共筑AGI基建
    的头像 发表于 05-27 11:53 284次阅读
    英特尔携手腾讯云用CPU打造<b class='flag-5'>LLM</b><b class='flag-5'>时代</b>数据中枢,共筑AGI基建