大模型学习笔记------Llama 3模型架构之旋转编码(RoPE)

news2025/3/15 22:29:19

大模型学习笔记------Llama 3模型架构之旋转编码(RoPE)

    • 1、位置编码简介
      • 1.1 绝对位置编码
      • 1.2 相对位置编码
    • 2、旋转编码(RoPE)
      • 2.1 基本概念---旋转矩阵
      • 2.2 RoPE计算原理
        • 2.2.1 绝对位置编码
        • 2.2.2 相对位置编码
    • 3、旋转编码(RoPE)的优点

    上文简单介绍了 Llama 3模型架构。旋转位置编码(Rotary Position Embedding,RoPE)来自论文 Roformer: Enhanced Transformer With Rotray Position Embedding ,LLama 3、GLM 等模型都是使用了这种编码方式。RoPE是一种能够将相对位置信息依赖集成到 self-attention 中并提升 transformer 架构性能的位置编码方式。

1、位置编码简介

    位置编码(Positional Encoding)主要是为了解决Transformer中的时序问题,类似RNN的结构包含序列的时序信息。因此,位置编码是Transformer中确保模型能够理解序列顺序信息的重要部分。
    怎样理解位置编码呢?在Transformer结构中,将每个位置进行编号(即位置编码),并将每个位置编号(位置向量)对应一个词向量。通过结合位置向量和词向量作为输入embedding,就给每个词都引入了一定的位置信息,这样Attention就可以分辨出不同位置的词了。
    Transformer中常见的位置编码方法主要是绝对位置编码(Absolute Positional Encoding)和相对位置编码(Relative Positional Encoding)。

  • 绝对位置编码:在序列中的每个位置直接关联一个固定的嵌入;
  • 相对位置编码:表示序列中每两个token之间的相对位置信息;

1.1 绝对位置编码

    绝对位置编码的经典方法为正弦-余弦绝对位置编码,具体计算如下所示:
在这里插入图片描述其中, pos 表示序列中的位置, d 表示嵌入维度。例如pos分别等于0、1、2,其计算如下:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
    这种方法通过给定的位置索引为每个位置提供唯一的编码,确保模型能够理解token之间的顺序。

1.2 相对位置编码

    给定两个位置 i 和 j,其相对距离具体计算如下所示:
在这里插入图片描述
    相对位置可以是正的也可以是负的。相对位置编码关注的是序列中两个token之间的相对距离,而非绝对位置。

    这里就衍生出来了一个很有趣的问题,两种编码哪个更好一些呢?当然是相对位置编码。原因如下:
    绝对位置编码为每个位置生成独特的编码,这种方式对具体位置非常依赖,因此模型在处理输入时位置信息的影响很大。例如,输入序列中的一个特定单词在不同的句子位置上可能会有不同的表示,导致模型对该位置产生过度依赖。
    相对位置编码强调的是元素之间的相对位置(即一个元素与其他元素的相对距离),而不是它们的具体绝对位置。这使得模型能够在不同的上下文中识别相似的模式,因为相对位置与具体的序列长度和起始位置无关,从而增加了模型的泛化能力。

2、旋转编码(RoPE)

    RoPE(Rotary Position Embedding)结合了绝对和相对位置编码的优点。它使用旋转矩阵对每个位置进行编码,并直接将相对位置信息引入自注意力操作中。

2.1 基本概念—旋转矩阵

    在固定坐标系中,给定向量在这里插入图片描述以逆时针旋转O得到在这里插入图片描述
在这里插入图片描述
    其计算如下所示:
在这里插入图片描述
在这里插入图片描述

2.2 RoPE计算原理

2.2.1 绝对位置编码

    假设输入向量为在这里插入图片描述,其第 在这里插入图片描述个位置的编码向量可以表示为:

在这里插入图片描述
    旋转矩阵 在这里插入图片描述用二维旋转矩阵的张量乘积进行定义。将向量在这里插入图片描述拆分为一系列长度为2的子向量 在这里插入图片描述。其旋转形式为:
在这里插入图片描述
在这里插入图片描述
    这个矩阵表示每个位置在这里插入图片描述的绝对编码。

    经过RoPE编码后的输入向量与旋转矩阵结合,使得位置信息被直接嵌入到输入向量中。任意偶数维的RoPE,我们都可以表示为二维情形的拼接,即将词嵌入向量元素按照两两一组分组
在这里插入图片描述
    RoPE 的 self-attention 操作的流程如下:
在这里插入图片描述

2.2.2 相对位置编码

    RoPE在自注意力计算中引入相对位置信息。经过RoPE编码的 query(查询)向量在这里插入图片描述和key(键)向量在这里插入图片描述,在自注意力机制中的点积计算如下:

在这里插入图片描述
在这里插入图片描述
    这意味着RoPE在计算query和key之间的点积时,将相对位置信息直接融入了自注意力操作中。

3、旋转编码(RoPE)的优点

    RoPE的优点主要有以下几个方面:

    1)保持绝对位置信息:
      RoPE通过旋转矩阵编码每个位置的绝对信息,有效地保持了模型对绝对位置感知能力;
    2)引入相对位置信息:
      RoPE能够在自注意力操作中直接编码相对位置信息,使模型具有较好的相对位置感知能力;
    3)高效处理长序列:
      RoPE在处理长序列时通过在每一层的自注意力计算中使用旋转变换,确保了位置信息能够被有效保留和利用。这种方法减少了位置信息的损失,使得模型在处理长序列时能够保持较好的性能‌。

    RoPE通过旋转矩阵将绝对位置与相对位置信息相结合,既提供了绝对位置信息的精确性,又具备相对位置感知的灵活性,成为LLaMA等大型语言模型中重要的位置编码方法。

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

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

相关文章

04 1个路由器配置一个子网的dhcp服务

前言 这是最近一个朋友的 ensp 相关的问题, 这里来大致了解一下 ensp, 计算机网络拓扑 相关基础知识 这里一系列文章, 主要是参照了这位博主的 ensp 专栏 这里 我只是做了一个记录, 自己实际操作了一遍, 增强了一些 自己的理解 当然 这里仅仅是一个 简单的示例, 实际场景…

安装open-webui

open-webui是一个开源的大语言模型交互界面 前提:Ollama已安装,并下载了deepseek-r1:1.5b模型 拉取镜像 docker pull ghcr.io/open-webui/open-webui:main 配置docker-compose.yml services:open-webui:image: ghcr.io/open-webui/open-webui:mainv…

HCIA-11.以太网链路聚合与交换机堆叠、集群

链路聚合背景 拓扑组网时为了高可用,需要网络的冗余备份。但增加冗余容易后会出现环路,所以我们部署了STP协议来破除环路。 但是,根据实际业务的需要,为网络不停的增加冗余是现实需要的一部分。 那么,为了让网络冗余…

Amazon RDS ProxySQL 探索(一)

:::info 💡 在日常开发中,开发者们会涉及到数据库的连接,在使用Amazon RDS数据库时,若使用集群模式或者多数据库时,会出现一写多读多个Endpoint,在实际开发中, 开发者们配置数据库连接通常希望走…

200多种算法应用于二维和三维无线传感器网络(WSN)覆盖场景

2.1 二元感知模型 在当前无线传感器网络(WSN)覆盖场景中,最常见且理想的感知模型是二元感知模型[27]。如图2所示, Q 1 Q_1 Q1​和 Q 2 Q_2 Q2​代表平面区域内的两个随机点。 Q 1 Q_1 Q1​位于传感器的检测区域内,其感…

模拟类似 DeepSeek 的对话

以下是一个完整的 JavaScript 数据流式获取实现方案&#xff0c;模拟类似 DeepSeek 的对话式逐段返回效果。包含前端实现、后端模拟和详细注释&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><titl…

Flutter PopScope对于iOS设置canPop为false无效问题

这个问题应该出现很久了&#xff0c;之前的组件WillPopScope用的好好的&#xff0c;flutter做优化打算“软性”处理禁用返回手势&#xff0c;出了PopScope&#xff0c;这个组件也能处理在安卓设备上的左滑返回事件。但是iOS上面左滑返回手势禁用&#xff0c;一直无效。 当然之…

SpringBoot + ResponseBodyEmitter 实时异步流式推送,优雅!

ChatGPT 的火爆&#xff0c;让流式输出技术迅速走进大众视野。在那段时间里&#xff0c;许多热爱钻研技术的小伙伴纷纷开始学习和实践 SSE 异步处理。 我当时也写过相关文章&#xff0c;今天&#xff0c;咱们换一种更为简便的方式来实现流式输出&#xff0c;那就是 ​​Respon…

网络运维学习笔记(DeepSeek优化版) 016 HCIA-Datacom综合实验01

文章目录 综合实验1实验需求总部特性 分支8分支9 配置一、 基本配置&#xff08;IP二层VLAN链路聚合&#xff09;ACC_SWSW-S1SW-S2SW-Ser1SW-CoreSW8SW9DHCPISPGW 二、 单臂路由GW 三、 vlanifSW8SW9 四、 OSPFSW8SW9GW 五、 DHCPDHCPGW 六、 NAT缺省路由GW 七、 HTTPGW 综合实…

02 windows qt配置ffmpeg开发环境搭建

版本说明 首先我使用ffmpeg版本是4.2.1 QT使用版本5.14.2 我选择是c编译 在02Day.pro⾥⾯添加ffmpeg头⽂件和库⽂件路径 win32 { INCLUDEPATH $$PWD/ffmpeg-4.2.1-win32-dev/include LIBS $$PWD/ffmpeg-4.2.1-win32-dev/lib/avformat.lib \$$PWD/ffmpeg-4.2.1-win32-dev/l…

vue-treeselect 【单选/多选】的时候只选择最后一层(绑定的值只绑定最后一层)

欢迎访问我的个人博客 &#xff5c;snows_ls BLOGhttp://snows-l.site 一、单选 1、问题&#xff1a; vue-treeselect 单选的时候只选择最后一层&#xff08;绑定的值只绑定最后一层&#xff09; 2、方法 1、只需要加上 :disable-branch-nodes"true" 就行&#xff0…

微信小程序实现根据不同的用户角色显示不同的tabbar并且可以完整的切换tabbar

直接上图上代码吧 // login/login.js const app getApp() Page({/*** 页面的初始数据*/data: {},/*** 生命周期函数--监听页面加载*/onLoad(options) {},/*** 生命周期函数--监听页面初次渲染完成*/onReady() {},/*** 生命周期函数--监听页面显示*/onShow() {},/*** 生命周期函…

Elastic Stack 8.16.0 日志收集平台的搭建

简介 1.1 ELK 介绍 ELK 是 ‌Elasticsearch‌、‌Logstash‌、‌Kibana‌ 三款开源工具的首字母缩写&#xff0c;构成了一套完整的日志管理解决方案&#xff0c;主要用于日志的采集、存储、分析与可视化‌。 1&#xff09;Logstash&#xff1a;数据管道工具&#xff0c;负责从…

江科大51单片机笔记【16】AD/DA转换(下)

写在前言 此为博主自学江科大51单片机&#xff08;B站&#xff09;的笔记&#xff0c;方便后续重温知识 在后面的章节中&#xff0c;为了防止篇幅过长和易于查找&#xff0c;我把一个小节分成两部分来发&#xff0c;上章节主要是关于本节课的硬件介绍、电路图、原理图等理论知识…

Podman 运行redis 报错

Podman 运行redis 报错 一、报错内容 find: .: Permission denied chown: changing ownership of .: Permission denied二、问题分析 SELinux 模式 SELinux(Security-Enhanced Linux)是一种安全模块,旨在通过强制访问控制(MAC)来增强 Linux 系统的安全性。SELinux 具有…

基于深度学习的多模态人脸情绪识别研究与实现(视频+图像+语音)

这是一个结合图像和音频的情绪识别系统&#xff0c;从架构、数据准备、模型实现、训练等。包括数据收集、预处理、模型训练、融合方法、部署优化等全流程。确定完整系统的组成部分&#xff1a;数据收集与处理、模型设计与训练、多模态融合、系统集成、部署优化、用户界面等。详…

以太坊AI代理与PoS升级点燃3月市场热情,2025年能否再创新高?

币热网深度报道&#xff1a;以太坊AI代理与PoS升级引爆3月热潮&#xff0c;2025年能否再攀历史新高&#xff1f; 原文来源&#xff1a;币热网 - 区块链信息资讯平台 以太坊升级&#xff0c;市场热情高涨 近期&#xff0c;以太坊市场犹如被一股神秘力量点燃&#xff0c;掀起了…

Web网页制作(静态网页):千年之恋

一、是用的PyCharm来写的代码 二、代码中所用到的知识点&#xff08;无 js&#xff09; 这段HTML代码展示了一个简单的注册页面&#xff0c;包含了多个HTML元素和CSS样式的应用。 这段HTML代码展示了一个典型的注册页面&#xff0c;包含了常见的HTML元素和表单控件。通过CSS样…

tomcat应用的作用以及安装,以及tomcat软件的开机自启动。

一.tomcat介绍 1.作用 tomcat是一款用来部署网站服务器的一款软件。 动态网站主流语言&#xff1a; PHP, lamp/lnmp平台 Java语言&#xff0c;运行在tomcat平台。【只要这个网站或者软件是Java语言写的&#xff0c;我们都可以在tomcat平台上去运行这个java程序。】 网站是…

Unity中WolrdSpace下的UI展示在上层

一、问题描述 Unity 中 Canvas使用World Space布局的UI&#xff0c;想让它不被3d物体遮挡&#xff0c;始终显示在上层。 二、解决方案 使用shader解决 在 UI 的材质中禁用深度测试&#xff08;ZTest&#xff09;&#xff0c;强制 UI 始终渲染在最上层。 Shader "Custo…