LLM的基础模型6:Positional Encoding

news2024/11/20 2:45:38

大模型技术论文不断,每个月总会新增上千篇。本专栏精选论文重点解读,主题还是围绕着行业实践和工程量产。若在某个环节出现卡点,可以回到大模型必备腔调或者LLM背后的基础模型新阅读。而最新科技(Mamba,xLSTM,KAN)则提供了大模型领域最新技术跟踪。若对于具身智能感兴趣的请移步具身智能专栏。技术宅麻烦死磕AI架构设计。

位置编码

在自然语音处理器中,输入的单词或者Token序列的顺序及其在句子中的位置非常重要。毕竟若单词重排序,整个句子含义会改变。

在实现 NLP的解决方案时,RNN具有处理序列顺序的内置机制。然而,基于Transformer的大模型不使用递归或卷积,而是将每个数据视为独立于其他的数据。因此,位置信息需要被显式添加到模型中,以保留有关句子中单词顺序的信息,而位置编码则是其中的解决方案。

位置编码描述序列中实体的位置或位置,以便为每个位置分配唯一的表示形式。在Transformer模型中,不使用单个数字(例如索引值)来表示项目的位置的原因有很多。对于长序列,索引的数值会变大。若将索引值归一化为介于 0 和 1 之间,则可能会对可变长度序列产生问题。

Transformer使用智能位置编码方案,其中每个位置/索引都映射到一个向量。因此每个输入经过位置编码层的输出是一个向量。整个序列就组成了一个矩阵,其中矩阵的每一行表示序列的一个编码对象。下图显示了仅对位置信息进行编码的矩阵示例。

上面的例子序列长度为4,模型的编码的维度为d维

在继续往下之前,先帮助大家温习下正弦函数和余弦函数,两者的取值范围是 [-1,+1]。该波形的频率是一秒钟内完成的周期数。波长是波形重复的距离。不同波形的波长和频率如下图所示。

Transformer中的位置编码算法如下。这里假设有一个长度为L的输入序列,并且需要求出kth对象在此序列中的位置编码。偶数位置对应于正弦函数,奇数位置对应于余弦函数。

这里k代表某个对象在序列中的位置 0≤k<L/2;d代表单词嵌入(embedding)之后的向量维度;P(k,j)代表位置函数;n代表超参数,最初的设置为10000;i为映射使用的索引,0≤i<d/2。

上图是从侧面来理解这种编码。还是刚才的例子,通过上面的公式可以求出每个位置的数值,每一行即为某个单词的位置编码。

其实这个位置编码是固定的,在已经知道L,n和d的前提下。因此可以画出可视化的位置编码矩阵图。

这里假定n=10000,L=100,d=512,颜色代表着1到-1的取值

下面为不同模型的位置编码矩阵图,当然最新的还出现了一种CoPE:

位置编码真的有用?

有篇论文做了一些实验,试图搞清楚位置嵌入到底学到了什么。

研究小组的目的在于搞清楚预训练的 Transformer 位置嵌入的隐含含义。Transformer 编码器在类似掩码语言建模(Bert)中能有效的学习到局部的位置信息。用于自回归语言建模的 Transformer 解码器实际上学习的是绝对位置。对预训练位置嵌入的实证实验验证了上面的假设。

研究还表明具有不同模型架构和不同训练目标的NLP任务以不同的方式利用位置信息。因此根据目标NLP任务中选择合适的编码函数将成为后续需要持续关注的地方。

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

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

相关文章

学fpga需要有C语言基础吗。完全0代码基础?

在开始前刚好我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「C语言的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff01;作为FPGA开发者和FPGA实训负…

nvm 安装说明

1、下线nvm地址 https://nvm.uihtm.com/2、安装步骤 2.1、双击解压后的exe 2.2、选择I accept…&#xff0c;然后点击next 2.3、选择nvm安装位置,选择好后点击next 2.4、选择nodejs的安装位置&#xff0c;点击next&#xff0c;记住你的nodejs路径&#xff01;甚至可以复制这…

Kaggle命令行下载数据

Kaggle下载数据 从Kaggle网站下载数据&#xff0c;要么点击页面中的Download按钮&#xff0c;要么找到下面形式的命令 kaggle competitions download -c xxxxxxxx用命令行工具下载。 下载的前提&#xff1a;接受规则 在数据集的下方&#xff0c;往往有“接受规则”的选项&…

【网络安全的神秘世界】在Kali上轻松安装蚁剑详细教程

&#x1f31d;博客主页&#xff1a;泥菩萨 &#x1f496;专栏&#xff1a;Linux探索之旅 | 网络安全的神秘世界 | 专接本 下载源码&#xff1a;https://github.com/AntSwordProject/antSword 下载加载器&#xff1a;https://github.com/AntSwordProject/AntSword-Loader 往下…

Bosch力士乐控制器维修案例讲解

在工业自动化领域&#xff0c;伺服拧紧控制器扮演着至关重要的角色。它们精确控制拧紧力矩&#xff0c;确保产品质量的稳定性和可靠性。然而&#xff0c;当出现博世力士乐拧紧扳手控制器故障时&#xff0c;及时的维修和保养就变得尤为重要。【子锐机器人的维修测试平台是确保机…

刷题训练之分治归并

> 作者&#xff1a;დ旧言~ > 座右铭&#xff1a;松树千年终是朽&#xff0c;槿花一日自为荣。 > 目标&#xff1a;熟练掌握分治归并算法。 > 毒鸡汤&#xff1a;学习&#xff0c;学习&#xff0c;再学习 ! 学&#xff0c;然后知不足。 > 专栏选自&#xff1a;刷…

4.keepalived高可用

keepalived高可用 一、keepalived高可用介绍二、keepalived高可用设计1、两台haproxy负载均衡器配置一致2、在haproxy上分别安装keepalived3、配置keepalived实现高可用4、分别在两个调度器上查看浮动IP5、测试客户端通过浮动IP可正常访问业务6、模拟故障&#xff0c;将优先级高…

3个方法 介绍现货白银是如何操作的

很多朋友看到近期现货白银价格上涨得这么火热&#xff0c;他们也跟风入场开户&#xff0c;成为了白银投资者想去买卖白银。但是他们发现&#xff0c;看着走势涨涨跌跌&#xff0c;而自己却不会操作。下面我们就来讨论一下&#xff0c;现货白银是如何操作的。 看K线操作。我们打…

【菜狗学前端】在原生微信小程序使用腾讯地图API接口

一直想调用一下地图API接口什么的&#xff0c;刚好遇到了这个实验就浅浅研究写了一下&#xff0c;顺便总结一下给其他没太了解的人一点便利&#xff0c;希望能够对你有所帮助~ 如何引入、配置、使用、显示。 PS:要是嫌麻烦想要源码/有什么问题欢迎评论/私信&#xff0c;问题的话…

虹科案例|为什么PCAN MicroMod FD是数模信号转换的首选方案?

导读&#xff1a;精确的信号采集和转换是确保生产效率和质量的关键。虹科PCAN MicroMod FD系列模块&#xff0c;以其卓越的数模信号转换能力&#xff0c;为工程师们提供了一个强大的工具。本文将深入探讨如何通过虹科PCAN MicroMod FD系列模块&#xff0c;将模拟信号无缝转换为…

容器:现代计算的基础设施

人不走空 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌赋&#xff1a;斯是陋室&#xff0c;惟吾德馨 目录 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌…

15. 《C语言》——【如何动态内存开辟】

亲爱的读者&#xff0c;大家好&#xff01;我是一名正在学习编程的高校生。在这个博客里&#xff0c;我将和大家一起探讨编程技巧、分享实用工具&#xff0c;并交流学习心得。希望通过我的博客&#xff0c;你能学到有用的知识&#xff0c;提高自己的技能&#xff0c;成为一名优…

MySQL-----JOIN语句之左连接、右连接

接着上文我们将基于学生&#xff0c;课程&#xff0c;考试信息三个表对内连接的总结&#xff0c;我们再来对左右连接进行一个总结&#xff0c;三个表结构以及表内数据如下图所示&#xff1a; 左连接 为了便于展示左右连接的区别&#xff0c;我们在student表里插入了一位成员…

用英语介绍端午节,柯桥零基础英语培训

端午节 Dragon Boat Festival 中国传统节日&#xff0c;农历五月初五。相传古代诗人屈原在五月初五投江自杀&#xff0c;后人把这天作为节日纪念他。有划龙舟比赛、包粽子等风俗。 A traditional Chinese festival on the fifth day of the fifth lunar month. Legend has i…

2024苹果开发者大会:Siri 接上 ChatGPT,OpenAI苹果强强联合

一直在生成式AI战争中默默无闻的苹果终于憋不住了&#xff01; 北京时间6月11日凌晨1点&#xff0c;2024苹果WWDC全球开发者大会在苹果总部 Apple Park开幕。Day 1的发布会在介绍完各个操作系统的更新后&#xff0c;一半的时间都留给了本次WWDC的重头戏——苹果AI&#xff08;…

Windows11上安装docker(WSL2后端)和使用docker安装MySQL和达梦数据库

Windows11上安装docker&#xff08;WSL2后端&#xff09;和使用docker安装MySQL和达梦数据库 1. 操作系统环境2. 首先安装wsl2.1 关于wsl2.2 安装wsl2.3 查看可用的wsl2.4 安装ubuntu-22.042.5 查看、启动ubuntu-22.04应用2.6 上面安装开了daili2.7 wsl的更多参考 3. 下载Docke…

【图书推荐】《Spark 3.0大数据分析与挖掘:基于机器学习》

本书重点 学习Spark 3.0 ML模块的机器学习算法&#xff0c;用于大数据分析与挖掘。 内容简介 Spark作为新兴的、应用范围广泛的大数据处理开源框架&#xff0c;吸引了大量的大数据分析与挖掘从业人员进行相关内容的学习与开发&#xff0c;其中ML是Spark 3.0机器学习框架使用…

rigid_trans_object_model_3d----------对3D对象模型应用刚性3D转换

Description rigid_trans_object_model_3d对3D对象模型应用刚性3D变换&#xff0c;即旋转和平移&#xff0c;并返回转换后的3D对象模型的句柄。转换由Pose中给出的姿态来描述&#xff0c;形式如下&#xff0c;其中mcsi表示输入对象模型的坐标系&#xff0c;cst表示转换后模型的…

Vue 3与ESLint、Prettier:构建规范化的前端开发环境

title: Vue 3与ESLint、Prettier&#xff1a;构建规范化的前端开发环境 date: 2024/6/11 updated: 2024/6/11 publisher: cmdragon excerpt: 这篇文章介绍了如何在Vue 3项目中配置ESLint和Prettier以统一代码风格&#xff0c;实现代码规范性与可读性的提升。通过设置规则、解…

C++入门 string(2)

目录 string类的常用接口说明 string类对象的容量操作 size & max_size & length & capacity empty & clear reserve & resize string类对象的元素访问 at & back & front string类对象的修改操作&#xff08;字符串操作&#xff09; sub…