【LLM】位置編碼

【LLM】位置編碼

1 絕對位置嵌入

絕對位置嵌入是將每個位置獨立編碼為一個固定向量,并添加到對應的詞嵌入中,使模型能夠感知單詞在序列中的絕對位置。其公式為:
f t : t ∈ { q , k , v } ( x i , i ) : = W t : t ∈ { q , k , v } ( x i + p i ) f_{t: t \in \{q, k, v\}}\left(x_i, i\right) := W_{t: t \in \{q, k, v\}}\left(x_i + p_i\right) ft:t{q,k,v}?(xi?,i):=Wt:t{q,k,v}?(xi?+pi?)

其中, p i ∈ R d p_i\in\mathbb{R}^d pi?Rd是依賴于token x i x_i xi?所在位置的 d 維向量。例如,Vaswani 等人提出使用正弦函數生成 p i p_i pi?
{ p i , 2 t = sin ? ( p o s / 1000 0 2 t / d ) p i , 2 t + 1 = cos ? ( p o s / 1000 0 2 t / d ) \begin{cases} p_{i, 2t} = \sin\left( pos / 10000^{2t / d} \right) \\ p_{i, 2t + 1} = \cos\left( pos / 10000^{2t / d} \right) \end{cases} {pi,2t?=sin(pos/100002t/d)pi,2t+1?=cos(pos/100002t/d)?

式中, pos表示 x i x_i xi?在序列中的絕對位置。 p i , 2 t p_{i, 2t} pi,2t? 是d維向量 p i p_i pi? 的第 2 t 2t 2t 個元素。

為什么用 1000 0 2 t d 10000^{\frac{2t}{d}} 10000d2t??

核心是讓不同維度的位置編碼有不同的 “頻率”,模擬人類對 “絕對位置 + 相對距離” 的感知:
在這里插入圖片描述
這種設計能讓模型通過三角函數的相位差,隱式學習到 “相對位置”(比如詞 A 和詞 B 隔 5 個詞,它們的位置編碼在各維度的正弦 / 余弦值差異,會和 “隔 5 個詞” 的模式對應 ),同時用固定公式避免了可學習位置編碼的參數開銷。

2 相對位置嵌入

傳統絕對位置編碼給每個位置分配固定編碼,難以靈活體現元素間相對關系(比如長序列里 “詞 A 與詞 B 相隔多遠” 的信息)。相對位置編碼的目標,是讓模型感知 “元素間相對距離” 對語義的影響—— 比如句子里 “蘋果” 和 “吃”,不管它們在序列中絕對位置多靠后,“相鄰” 或 “間隔 1 個詞” 的相對關系,會讓注意力權重、語義關聯有差異.

在這里插入圖片描述

2.1 Shaw等人的方法(2018)

核心思想:對鍵(Key)和值(Value)添加可訓練的相對位置嵌入,并對超出一定范圍的相對距離進行截斷。

在這里插入圖片描述
在這里插入圖片描述

2.2 Dai等人的方法(2019)

核心思想:分解查詢(Query)與鍵(Key)的內積,將絕對位置嵌入替換為正弦編碼的相對位置嵌入。

在這里插入圖片描述
在這里插入圖片描述

2.3 Raffel 等人的方法(2020)

核心思想:簡化內積為內容項與可訓練偏置項的和。

在這里插入圖片描述

2.4 He 等人的方法(2020)

核心思想:完全用相對位置嵌入替代絕對位置嵌入,強調相對位置的建模。

在這里插入圖片描述

2.4 RoPE(2023)

Rotary position embedding(RoPE)是一種在 Transformer 架構中用于編碼位置信息的方法,其核心是利用旋轉矩陣對絕對位置進行編碼,并在自注意力機制中融入相對位置依賴關系。具體做法如下:

在這里插入圖片描述
在這里插入圖片描述
我們可以進一步將 f { q , k } f_{\{q,k\}} f{q,k}?寫成乘法矩陣形式

在這里插入圖片描述
具體來說,融入相對位置嵌入的方式非常直接:只需將仿射變換后的詞嵌入向量按其位置索引的角度倍數進行旋轉,這正是RoPE背后的核心思想。

在這里插入圖片描述

為了將我們在二維情況下的結果推廣到任意 x i ∈ R d x_i\in\mathbb{R}^d xi?Rd(其中 d 為偶數)的情形,我們將 d 維空間劃分為 d/2 個子空間,并利用內積的線性性質將它們組合起來,使 f { q , k } f_{\{q,k\}} f{q,k}?變為

在這里插入圖片描述

將我們的 RoPE 應用于 q T k q^Tk qTk的自注意力機制中
在這里插入圖片描述
其中
在這里插入圖片描述

**與先前工作(即2.1-2.3節)中采用的加法性質位置嵌入方法不同,我們的方法是乘法性質的。**此外,當將 RoPE 應用于自注意力機制時,它通過旋轉矩陣乘積自然地融入相對位置信息,而不是在加法位置編碼的展開式中修改項。

不過以上的計算方式并非高效。
在這里插入圖片描述

遵循Vaswani[2017]的做法,,可以證明RoPE具有長期衰減性,即相對距離較遠的一對 tokens 之間的關聯應當更弱。
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/88586.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/88586.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/88586.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java 根據分組key構建合并數據集

文章目錄 前言背景總結 前言 請各大網友尊重本人原創知識分享,謹記本人博客:南國以南i、 提示:以下是本篇文章正文內容,下面案例可供參考 背景 Java 需要返回一組數據供前端展示,獲取到的數據格式如下: …

Linux平臺Oracle開機自啟動設置

網上和官方文檔已經有不少介紹如何設置開機啟動Oracle實例的文章(Linux平臺),不過以sysvinit和service這種方式居多。最近遇到了UAT環境的服務器打補丁后需要重啟服務器的情況, 需要DBA去手工啟動Oracle實例的情形,和同事討論,決定…

商品中心—商品B端搜索系統的實現文檔(二)

8.步驟四:基于索引實現搜索功能 (1)基于suggest索引的自動補全實現 實現自動補全的代碼比較簡單,其原理是:把搜索詞匯和倒排索引里的所有前綴匹配的詞條進行score比較,然后把分數最高的那些返回,其中會涉及到suggest索…

Codeforces Round 1027 (Div. 3)

A. Square Year 題目大意 給你一個四個字符的字符串,代表一個數字s 問是否存在a,b兩個數字,使得 ( a b ) 2 s (ab)^2s (ab)2s 思路 如果s是奇數或不能被開根號一定不行 設sq為s開根號后的結果 將sq一分為2,考慮sq/2有沒有余數的情況 //…

時序數據庫IoTDB的架構、安裝啟動方法與數據模式總結

一、IoTDB的架構 IoTDB的架構主要分為三個部分: ?時序文件(Tsfile)?: 專為時序數據設計的文件存儲格式。支持高效的壓縮和查詢性能。可獨立使用,并可通過TsFileSync工具同步至HDFS進行大數據處理。 ?數據庫引擎?…

ArrayList和LinkedList詳解

在Java后端開發中,集合框架是我們日常編程不可或缺的工具,它為數據存儲和操作提供了豐富的實現方式。作為Java集合框架中最常用的兩種List實現,ArrayList和LinkedList各自具有獨特的特性和適用場景。 1. 基本概念 1.1 ArrayList的定義與特性…

警惕微軟Entra ID風險:訪客賬戶存在隱蔽的權限提升策略

訪客用戶訂閱權限漏洞解析 微軟Entra ID的訂閱管理存在訪問控制缺陷,允許訪客用戶在受邀租戶中創建和轉移訂閱,同時保留對這些訂閱的完全所有權。訪客用戶只需具備在源租戶創建訂閱的權限,以及受邀成為外部租戶訪客的身份即可實施此操作。這…

EEG分類攻略2-Welch 周期圖

在EEG信號處理的上下文中,使用Welch方法來估算信號的功率譜密度(Power Spectral Density, PSD)是一種常見的做法。你的代碼片段是利用**scipy.signal.welch**函數來進行功率譜密度估算,并且涉及到一些關鍵的參數和步驟。讓我們逐步…

開疆智能CCLinkIE轉ModbusTCP網關連接脈沖計數器配置案例

本案例是三菱PLC通過CCLinkIE轉ModbusTCP網關連接脈沖計數器的配置案例,具體配置如下。 配置過程: 首先設置從站通訊參數 主要設置IP地址,工作模式以及端口號(Modbus默認502) 找到通訊點表,找到需要讀寫的…

gRPC 使用(python 版本)

.proto 文件 .proto 文件 是 gRPC 和 Protocol Buffers 的接口定義文件,它描述了: 要傳遞什么數據(也就是消息體 message)。要暴露什么接口(也就是服務 service 和它們的 方法)。 也就是一份規范文件&am…

VMware安裝

勾選【增強型鍵盤驅動程序】 #后期虛擬機用鼠標鍵盤比較好用 VMware創建主機Windows2 選擇類型配置【自定義】 安裝客戶機操作系統【稍后安裝操作系統】 客戶機操作系統【Microsoft Windows】,版本選Windows最高版本 【固件類型】默認UEFI 【處理器配置】選1個處理…

【沉浸式解決問題】微服務子模塊引入公共模塊的依賴后無法bean未注入

目錄 一、問題描述二、場景還原三、原因分析四、解決方案五、拓展知識參考文獻 一、問題描述 在微服務項目中的公共模塊進行了Mybatis Plus配置,創建了配置類并添加了Configuration注解,其他模塊引入該模塊后不生效 我這里是在Mybatis Plus公共模塊中注…

SQL進階:CASE表達式

目錄 1、用一條SQL語句進行不同條件的統計 建表語句(MySQL8): 錄入數據: *按性別統計SQL 輸出結果(行列轉換) 2、在UPDATE語句里進行條件分支 建表語句(MySQL8):…

哪四款AI工具讓3D人物手辦制作如此簡單?

在當今數字化時代,AI技術的飛速發展為我們的生活帶來了諸多便利和驚喜。其中,AI生成3D人物手辦工具的出現,讓我們能夠輕松地將自己的創意和想象轉化為實體手辦,滿足了眾多手辦愛好者的個性化需求。今天,我將為大家推薦…

Docker高級管理--Dockerfile鏡像制作

目錄 一:Docker 鏡像管理 1:Docker 鏡像結構 2:Dockerfile介紹 二:Dockerfile 語法基礎 1:基礎指令 2:環境設置指令 3:文件操作指令 4:執行命令指令 5:網絡和暴露端口指令 6.容器掛載指令 三:dockerfile案例 1.構建nginx容器 一:Docker 鏡像管理 Docker…

數字時代的“靈魂”之爭:虛擬人形象的著作權困局與破局之道

首席數據官高鵬律師數字經濟團隊創作,AI輔助。 一、虛擬人的“數字生命”:一場關于“靈魂”的商業博弈 當一個虛擬偶像的“眼神”被復刻成千萬個相似的數字面孔,當一段虛擬主播的“聲音”被拆解為可交易的數據碎片——我們正在見證一個“數…

小型CI/CD搭建(TODO)

1 方案 因為是在國內,所以gitbub Actions,??Azure DevOps?這些就直接拜拜了。 目前主流的大概是三種: 1 阿里云效/騰訊云CODING 2 GitLab CE GitLab Runner 3 Gitee Jenkins deepeseek比較了一下如下: 阿里云效 vs Git…

Android Studio flutter項目運行、打包時間太長

Android Studio:Android Studio Meerkat Feature Drop | 2024.3.2 Patch 1 flutter Sdk:3.29.3 系統:windows flutter sdk從2.10.5升級到3.29.3,但是Flutter 3.16開始新增了使用 Gradle聲明式 plugins {} 塊,gradle文…

【OpenGL學習】(六)圖形添加紋理

文章目錄 【OpenGL學習】(六)圖形添加紋理紋理環繞紋理過濾紋理顏色與頂點顏色混合 OpenGL紋理介紹:https://learnopengl-cn.github.io/01%20Getting%20started/06%20Textures/ 【OpenGL學習】(六)圖形添加紋理 項目…

allure安裝

一、安裝java 需要安裝java環境,不安裝的話在運行前會報錯下列問題(前提是安裝了allure未安裝java) 1.官網地址:https://www.oracle.com/ 2.點擊”Download Java“ 3.選擇JDK正式版本(需要jdk1.8) 4.選擇W…