位置编码学习

news2024/10/6 17:24:53

基本概念

  • 关于位置编码的一切:https://kexue.fm/archives/8130#T5%E5%BC%8F

残差连接

Post Norm

关注深度

  • 残差的意思是给前面的层搞一条“绿色通道”,让梯度可以更直接地回传,但是在Post Norm中,这条“绿色通道”被严重削弱了,越靠近前面的通道反而权重越小,残差“名存实亡”,因此还是不容易训练。

举个例子:假设初始状态下x,F(x)的方差均为1,那么x+F(x)的方差就是2,而Normalization操作负责将方差重新降为1

Pre Norm

关注宽度
每一条残差通道都是平权的,残差的作用会比Post Norm更加明显,所以它也更好优化。当然,这样最后的xl方差将会很大,所以在接预测层之前xl也还要加个Normalization。

Scale 缩放

  • NTK参数化:均值为0、方差为1的随机分布”来初始化,但是将输出结果除以 m \sqrt{m} m

  • 注意力机制中的缩放,使得q和k的方差为1
    在这里插入图片描述

熵不变性

  • a i , j a_{i,j} ai,j是注意力的分布
    在这里插入图片描述

在这里插入图片描述

  • 因为当n较大时,缩放因子过大,会导致严重的梯度消失
  • 但是对于长度具有比较好的外推性

直接外推

  • 输入的一些维度训练阶段设为0,推理阶段直接改为其他数字,这就是外推(Extrapolation)。
    在这里插入图片描述
    在这里插入图片描述
    外推的问题:
  • 训练阶段预留的维度一直是0,如果推理阶段改为其他数字,效果不见得会好,因为模型对没被训练过的情况不一定具有适应能力。也就是说,由于某些维度的训练数据不充分,所以直接进行外推通常会导致模型的性能严重下降。
  • 外推比内插确实需要更多的微调步数。

线性内插

在这里插入图片描述
线性内插的问题:

  • 当处理范围进一步增大时,相邻差异则更小,并且这个相邻差异变小集中在个位数,剩下的百位、十位,还是保留了相邻差异为1。换句话说,内插方法使得不同维度的分布情况不一样,每个维度变得不对等起来,模型进一步学习难度也更大。

进制转换 NTK

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

NTK-aware Scaled RoPE

  • 位置编码更依赖于序信息,而进制转换基本不改变序的比较规则
  • NTK-aware Scaled RoPE在不微调的情况下,也能在更长Context上取得不错的效果。
  • 神经网络无法直接学习高频信号,解决办法是要将它转化为Fourier特征

在这里插入图片描述

  • 把外推和内插结合起来——高频外推、低频内插
    在这里插入图片描述

实验结论:

  1. 直接外推的效果不大行;
  2. 内插如果不微调,效果也很差;
  3. NTK-RoPE不微调就取得了非平凡(但有所下降)的外推结果;
  4. 加入 l o g n logn logn来集中注意力确实有帮助。

小结一下

我们也可以从语言模型的局域性来考察这些方法。
所谓局域性,是指语言模型在推断下一个token时,明显更依赖于邻近的token。

  • 直接外推保持了局域性(0附近位置编码不变),效果差是因为引入了超出训练长度的位置编码;

  • 位置内插虽然没有外推位置编码,但扰乱了局域性(0附近位置编码被压缩为),所以不微调效果也不好;

  • 而NTK-aware Scaled RoPE通过“高频外推、低频内插”隐含了两者优点,保证了局域性,又没有明显外推位置编码,所以不微调也有不错的效果。


HWFA

局部的window attention

  • 感受野被限制在w内:由于每层的感受野被限制在w
    内,注意力机制的能力大大削弱

  • window attention缺少全局依赖性:我们对长度外推的期望其实不仅仅是“平移不变性”,而是“平移更好性”,也就是说越往后效果应该越好才对(比如In Context Learning场景,给的examples越多,效果应该越好),所以模型还应该要能捕捉全局依赖的能力。

分析:

  • Window Attention得到的结果本质上就是某种n-gram特征,只不过在多层堆叠之下这个n会变得比较大;
  • 而单层的Full Attention可以看作是某种“检索”(从query、key、value这些称呼就可以看出)和“融合”,它的规律相对来说比较容易分析
  • 单层(全)注意力可以通过增加 l o g n logn logn缩放因子来增强长度外推性的结论

Hybird Window-Full Attention

提出思路:

如果前面L−1层通过Window Attention获得了n-gram特征,最后一层可否替换为带logn因子的Full Attention来检索和整合这些特征,以弥补效果上的差距和获得全局依赖的能力呢?

在这里插入图片描述

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

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

相关文章

助贷行业的业务增长工具:CRM客户管理系统的核心作用与应用流程

在当前助贷行业,企业如何更好地抓住客户需求、提高业务效率、优化服务体验一直是助贷企业关注的焦点。在这个背景下,一款优秀的CRM客户管理系统无疑成为了实现这些目标的关键。本文将探讨这样一款专为助贷行业打造的CRM客户管理系统,看它是如…

极市平台 | 综述:一文详解50多种多模态图像融合方法

本文来源公众号“极市平台”,仅用于学术分享,侵权删,干货满满。 原文链接:综述:一文详解50多种多模态图像融合方法 0 极市导读 本工作总结了50篇论文中Lidar和camera的多模态融合的一些概念方法。笔者结合原文以及自…

重庆餐饮设计公司排行榜曝光,这些企业值得关注!

在如今饮食文化多元化、餐饮产业蓬勃发展的时代,餐饮设计企业扮演着至关重要的角色。一个好的餐厅设计可以为顾客提供舒适、美观的用餐环境,也能够提升餐厅的整体形象和竞争力。重庆作为中国西南地区的经济中心和旅游胜地,餐饮业发展迅速&…

用二八定律分析零售数据,不就更直观了吗?

20%的商品贡献了80%的销售金额,你会不会想知道这些商品的销售金额、毛利、销售金额累计占比、毛利累计占比,会不会想知道这些商品在各个门店的销售表现?看是否能进一步提高销售金额,提高毛利。这样的报表该怎么做?奥威…

JVM高级篇之GC

文章目录 版权声明垃圾回收器的技术演进ShenandoahShenandoah GC体验Shenandoah GC循环过程 ZGCZGC简介ZGC的版本更迭ZGC体验&使用ZGC的参数设置ZGC的调优 版权声明 本博客的内容基于我个人学习黑马程序员课程的学习笔记整理而成。我特此声明,所有版权属于黑马…

Vue - 你知道Vue中computed和watch的区别吗

难度级别:中高级及以上 提问概率:70% 二者都是用来监听数据变化的,而且在日常工作中大部分时候都只是局限于简单实用,所以到了面试中很难全面说出二者的区别。接下来我们看一下,二者究竟有哪些区别呢? 先说computed,它的主要用途是监听…

Java中网络编程,Junit单元测试详解

文章目录 软件结构C/S结构B/S结构 概述三要素IP (银行的位置)端口 (银行中某个柜台号)协议 (填写取款单的规则)TCP通信程序TCP通信原理客户端发送数据服务端接收数据过程图三次握手 Junit单元测试概述常见的注解使用断言概述使用 软件结构 C/S结构 客户…

Windows深度学习环境----Cuda version 10.2 pytorch3d version 0.3.0

Requirements Python version 3.8.5Pytorch version: pytorch1.6.0 torchvision0.8.2 torchaudio0.7.0 cudatoolkit10.2.89pytorch3d version 0.3.0Cuda version 10.2 感觉readme文件里的不适配,跟pytorch官网不同 以前的 PyTorch 版本 |PyTorch的 # CUDA 10.2 c…

HDLbits 刷题 --Popcount255

A "population count" circuit counts the number of 1s in an input vector. Build a population count circuit for a 255-bit input vector. 译: 一个“population count”电路用于计算输入向量中1的数量。为一个255位的输入向量构建一个人口计数电路…

【免费使用AI工具】国内AI网站集合

文章目录 文心一言腾讯混元助手讯飞星火认知大模型:文心一格(绘图)云雀大模型(文本对话)智谱AI:(GLM大模型)百川智能(百川大模型)MiniMax(ABAB大模型)万维天工ChatGPT3.5镜像网站通义千问文心一言 https://yiyan.baidu.com/ 腾讯混元助手 微信搜索【腾讯混元助手】小…

金蝶BI方案的报表,主打做得快、易理解

金蝶做数据分析报表慢、步骤多、数据不够直观?但奥威-金蝶BI方案的报表就不一样了,不仅做得快,还十分好理解,因为它做出来的是随时可以按需自助的BI智能数据可视化分析报表。 有多快? 注册奥威BI SaaS平台&#xff0…

提升Python网络编程效率:深入学习furl库

🍀 前言 博客地址: CSDN:https://blog.csdn.net/powerbiubiu 👋 简介 furl 是一个 Python 库,用于处理 URL。它提供了一个简洁而强大的接口,用于构建、解析和操作 URL。本文章介绍下 furl 库的使用。 &a…

01 _ 分布式缘何而起:从单兵,到游击队,到集团军

这里先来聊聊什么是分布式。 与其直接用些抽象、晦涩的技术名词去给分布式下一个定义,还不如从理解分布式的发展驱动因素开始,我们一起去探寻它的本质,自然而然地也就清楚它的定义了。 这里将介绍分布式的起源,是如何从单台计算…

申请专利有用吗 好处

申请专利:一项值得考虑的策略 随着科技的快速发展和市场竞争的日益激烈,创新成为了企业或个人取得竞争优势的关键。在这样的背景下,申请专利成为了许多创新者保护自己创意和技术的重要手段。 申请专利真的有用吗? 申请专利可以…

Golang学习笔记

Golang学习笔记 安装Golang 来源:linux 安装 golang - 知乎 (zhihu.com) 由于我用的是linux系统,所以本文采用linux的安装方式介绍,如果你使用的是Windows/Mac 也可以看下该文章,或者自己去下列地址进行操作。 Download and in…

python--面向对象的三大特征---封装、继承、多态

1.封装: 1,在面向对象中,封装指的是一种安全机制,不让外界修改或者直接操作,将属性私有化; 如果要访问属性,提供公开的方法(getter,setter) 2. python的类如…

【Mybatis】Mybatis 二级缓存全详解教程

【Mybatis-Plus】Mybatis-Plus 二级缓存全详解 一,Mybatis-Plus介绍 MyBatis-Plus(简称MP)是一个基于 MyBatis 的增强工具,它简化了 MyBatis 的开发,并且提供了许多便利的功能,帮助开发者更高效地进行持久…

基于java+springboot+vue实现的健身房管理系统(文末源码+Lw)23-223

摘 要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装健身房管理系统软件来发挥其高效地信息处理的作用&#xf…

如何实现无感刷新(附前后端实现)?

无感刷新的核心思路: 无感刷新机制的目的是在用户不知情的情况下,自动更新其认证令牌(通常是Access Token),以保证用户的会话不会中断。这通常涉及到两种类型的令牌: Access Token:它是用户进行…

C++:if语句(20)

介绍 c最基本的三种程序运行模式为:顺序执行,判断执行,循环执行 顺序执行:前面我们的代码都是从上往下,依次执行的,这就是按顺序依次执行 判断执行:通过我们写的判断条件,去判断要不…