RoPE 旋轉位置編碼,詳細解釋(下)NLP 面試的女生徹底說明白了

RoPE 旋轉位置編碼,詳細解釋(下)NLP 面試的女生徹底說明白了

原創?看圖學?看圖學?2024年07月01日 07:55?北京

圖片

書接上文,上文見:這么解釋 RoPE 旋轉位置編碼,女朋友睜大了雙眼(上)

下面簡單回顧一下上文的重點,后面復數域的解釋會用到一些結論,詳細的可以點擊上面的文章觀看。

實數域的 RoPE 解釋(重點回顧)

RoPE 的實現和解釋,完全可以只在實數域中進行。比如 llama 的實現,就完全沒有用到復數的概念。

而在實數域上關于 RoPE 的解釋,核心就一句話:在內積空間中,內積具有旋轉不變性?

也就是下面這個性質:

也就是說 兩個旋轉向量的內積等于其中一個向量旋轉它們角度差的結果與另一個原始向量的內積。也可以看作是一個向量逆時針旋轉了?,?另一個向量逆時針旋轉了?,然后這兩個向量又同時順時針旋轉了?,?于是第一個向量處在?的位置,第二個向量則轉到了實數軸上,角度為0. 因為內積的旋轉不變性,兩個內積依然相等記住這句話,后面在復數域證明還能用。

復數域的 RoPE 解釋

其實涉及到旋轉的計算,到復數域里會變得特別方便,因為虛數? i 的物理含義就是旋轉

為了理解虛數/復數,我們先拿負數來做個對比。

負數的出現讓人們困惑了很久,我現在有1個蘋果,被女朋友拿走了2個,實在是有些腦殼疼。但是現在我們很容易能理解負數,就是欠我一個蘋果唄。如果較真的話,那 -1 個蘋果在哪里?可能是我從室友那里借了一個。

圖片

可以想象一下,在一維的實數軸上,取負可以讓1變成-1,再取負又變成1,然后循環。

還有其他的方法能從1到-1么?這時候認知就要提高了,就好像古代人的活動范圍很小,那自然認為地球是平的。知道后來可以航海,發現為什么船接近的時候為什么總是先看到船帆然后才看到船的身子,這個時候就開始思考了,地球有沒有可能是圓的。

從1到-1如果只在實數軸上移動,那只能是取負。如果把數軸擴展到2維,新增一個虛數軸,那就可以旋轉了。1 乘以 i 就跑到虛數軸的上面再乘以 i 就跑到-1 了。再乘以i就跑到虛數軸的下面,再乘以i就回到了1. 如下圖所示:

圖片

所以為什么?, 其含義就是在復平面上轉了2次,從 1 轉到了 -1.

歐拉公式??提出來很久之后,大家才嘗試從幾何的角度去理解歐拉公式。

歐拉公式其實就是在復平面上旋轉,復平面是一個2d 平面。為了看的更清楚一點呢,我們再升一維。新增一個與復平面正交的軸代表 x。如下面視頻所示。

看圖學

,贊16

這個3維空間上就很好的展示了隨著 x 的增大,?就一直在旋轉的畫圈。這個旋轉的曲線投影到復平面上,那就是在復平面畫圓;如果投影到?x?與 實數軸的平面上,就是?cos?函數;如果投影到 x 與 虛數軸的平面上,那就是?sin?函數。

再回想一下 RoPE 的旋轉角度的函數,恰好就是一個 sin 函數和一個 cos 函數,所以說?RoPE 就如同上面歐拉公式的視頻一樣,在一直轉圈,所以叫旋轉編碼

然后在實數域證明中,我們已經證明了通過旋轉矩陣來解釋 RoPE。在復數域一個向量旋轉怎么表示呢?非常簡單,逆時針旋轉??度等于 乘以?. 證明如下:

你看,旋轉矩陣又出來了。

所以論文中的

就是 q 和 k 分別旋轉了??和?

復數域中同樣滿足內積旋轉不變性。只不過復數域中的內積不再是簡單的相乘,而是要取共軛。

比如復數??和?,內積定義為:

其中??是??的共軛復數(論文中的共軛是用??來表示的)。

計算復內積:

之所以采用共軛復數,完全是為了滿足內積的三個性質:正定性,共軛對稱性,第一變元線性

共軛復數的物理意義就是順時針旋轉還記得 逆時針旋轉??度等于 乘以?,那么乘以共軛復數??就是 順時針旋轉??度(?逆時針旋轉 -?度)。

復數域的旋轉不變性證明如下:

這基本上就是 RoPE 在數學上的解釋。

最后論文中就還剩下一個 Re (實部)沒有解釋。看上面復數的內積公式就可以看出,復數域內積的實部(Re)等于實數域兩個向量的內積。也就是

注意左邊二維向量的實數域的表示,右邊則是復數域的表示。

然后 RoPE 的論文里公式的表示似乎沒那么嚴謹,在論文表述的過程中相同的符號含義發生了變化。所以有時候看上去有些困惑,看完本文和下圖的解釋應該就明白了。

圖片

?

— END?—

薦閱讀:

這么解釋 RoPE 旋轉位置編碼,女朋友睜大了雙眼(上)

Transformers 中的 Position Embedding 的作用

看圖學大模型:Transformers 的前生今世(上)

內積,點積,數量積是一樣的么?

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

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

相關文章

C++ explicit 用法

一、概述 explicit關鍵字用于防止構造函數或轉換操作符在不明確的情況下被隱式調用,從而避免意外的類型轉換。這在類的設計中非常有用,可以增強代碼的可讀性和安全性。 二、用法示例 1. 用于構造函數 假設有一個簡單的類 A: class A { p…

metersphere鏈接騰訊郵箱步驟

1、打開騰訊郵箱生成授權碼 路徑:設置-賬戶-賬戶安全 生成的授權碼只會展示1次,注意保存 2、在系統設置-系統參數設置-郵件設置填寫授權碼和SMTP信息 SMTP信息在郵箱的客戶端設置中可以獲取到對應的信息 3、信息填寫完后,可以測試連接&…

python中TensorFlow框架的簡單深度學習項目圖像分類示例

??引言 👍👍點關注編程夢想家(大學生版)-CSDN博客不迷路?? 這個示例項目使用了CIFAR-10數據集,這是一個包含10個類別的60,000張32x32彩色圖像的數據集,類別包括飛機、汽車、鳥類等。模型是一個簡單的…

Pytest單元測試系列[v1.0.0][高級技巧]

playwright結合pytest使用 安裝配置環境 PS D:\Programs\Python\com.davieyang.demo> pip install pytest-playwright Collecting pytest-playwrightDownloading pytest_playwright-0.3.0-py3-none-any.whl (10 kB) Requirement already satisfied: pytest in c:\program …

集成sa-token前后端分離部署配置corsFliter解決跨域失效的真正原因

文章目錄 1.前言2.問題復現3.解決方法3.1 方式一:后端修改CorsFilter源碼3.2 方式二:前端禁用或移除瀏覽器referrer-policy引用者策略 4.總結 1.前言 緣由請參看下面這篇文章:sa-token前后端分離解決跨域的正確姿勢 https://mp.weixin.qq.co…

桌面記筆記的軟件:能加密的筆記app

在日常生活和工作中,很多人都有記筆記的習慣。無論是記錄會議要點、學習心得,還是生活中的點滴靈感,筆記都是我們不可或缺的好幫手。然而,傳統的紙筆記錄方式逐漸不能滿足現代人的需求,因為紙質筆記不易保存、查找困難…

STM32 - SPI硬件外設

配合我的上一篇SPI ??????通信 協議-CSDN博客一起理解更佳,本文后看 SPI 是由摩托羅拉(Motorola)公司開發的全雙工同步串行總線,是 MCU 和外圍設備之間進行通信的同步串行端口。主要應用在EEPROM、Flash、RTC、ADC、網絡控制器、MCU、DSP以及數字信…

網上怎么樣可以掙錢,分享幾種可以讓你在家賺錢的兼職項目

當今社會,壓力越來越大,工作、家庭、生活等等,方方面面都需要錢,僅靠一份工作賺錢,已經很難滿足我們的需求。所以很多人都會嘗試做一些副業,兼職來補貼家用。 現在呢,有很多人都想在網上賺錢&am…

微型導軌如何提升數控機床的穩定性?

數控機床是加工設備中常用的機床,精度和穩定性是衡量數控機床性能的重要指標。而微型導軌作為數控機床中重要的傳動元件,數控機床與其具體結構性能是密不可分的,那么微型導軌如何提高數控機床的穩定性呢? 1、微型導軌通過采用先進…

githup開了代理push不上去

你們好,我是金金金。 場景 git push出錯 解決 cmd查看 git config --global http.proxy git config --global https.proxy 如果什么都沒有,代表沒設置全局代理,此時如果你開了代理,則執行如下,設置代理 git con…

關于SQL NOT IN判斷失效的情況記錄

1.準備測試數據 CREATE TABLE tmp_1 (val integer);CREATE TABLE tmp_2 (val integer, val2 integer);INSERT INTO tmp_1 (val) VALUES (1); INSERT INTO tmp_1 (val) VALUES (2); INSERT INTO tmp_2 (val) VALUES (1); INSERT INTO tmp_2 (val, val2) VALUES (NULL,0);2.測…

掃地機器人工作原理

掃地機器人的工作原理主要可以歸納為以下幾個步驟: 一、啟動與建圖 掃地機器人開機后,通常會從充電底座啟動。使用激光導航或視覺導航技術的掃地機器人會開始掃描周圍環境,繪制室內地圖。激光導航的掃地機器人通過激光發射器和接收器測量機…

數據無憂:Ubuntu 系統遷移備份全指南

嘮嘮閑話 最近電腦出現了一些故障,送修期間,不得不在實驗室的臺式機上重裝系統,配環境的過程花費了不少時間。為避免未來處理類似事情時耗費時間,特此整理一些備份策略。 先做以下準備: U盤啟動盤,參考 …

什么是靜態住宅代理?一文看懂它

靜態住宅代理(也稱為 ISP 代理)是最流行的代理類型之一。它們也是隱藏身份和在線匿名的最佳方式之一。但是您需要了解它們什么?是什么讓它們如此特別?為什么您要使用住宅代理而不是僅僅使用常規代理服務?如果你感興趣&…

exel帶單位求和,統計元素個數

如果exel表格中,如果數據有單位,無法直接用 自動求和 直接求和。如下圖所示,求和結果為0,顯然不是我們想要的。 用下面的公式求和,單位不是“個”的時候記得替換單位。統計范圍不是“C1:C7”也記得換一下啊&#xff01…

華為的服務器創新之路

華為作為全球領先的信息與通信技術解決方案供應商,其在服務器領域的創新方法不僅推動了企業自身的發展,也為整個行業的進步做出了重要貢獻。以下是華為在服務器領域所采取的一些關鍵創新方法: 芯片級的自主創新 華為通過自主研發的“鯤鵬”處…

線程相關概念及操作

【1】線程的概念 1.線程-->進程會得到一個內存地址,進程是資源分配的基本單位線程才是真正進程里處理數據與邏輯的東西進程---》被分配一定的資源線程---》利用進程資源處理數據與邏輯 【2】進程和線程關系: 進程與進程之間是競爭關系,競…

【北京迅為】《i.MX8MM嵌入式Linux開發指南》-第一篇 嵌入式Linux入門篇-

i.MX8MM處理器采用了先進的14LPCFinFET工藝,提供更快的速度和更高的電源效率;四核Cortex-A53,單核Cortex-M4,多達五個內核 ,主頻高達1.8GHz,2G DDR4內存、8G EMMC存儲。千兆工業級以太網、MIPI-DSI、USB HOST、WIFI/BT…

BFS:邊權相同的最短路問題

一、邊權相同最短路問題簡介 二、迷宮中離入口最近的出口 . - 力扣&#xff08;LeetCode&#xff09; class Solution { public:const int dx[4]{1,-1,0,0};const int dy[4]{0,0,1,-1};int nearestExit(vector<vector<char>>& maze, vector<int>& e…

論文閱讀:Rethinking Interpretability in the Era of Large Language Models

Rethinking Interpretability in the Era of Large Language Models 《Rethinking Interpretability in the Era of Large Language Models》由Chandan Singh、Jeevana Priya Inala、Michel Galley、Rich Caruana和Jianfeng Gao撰寫&#xff0c;探討了在大型語言模型&#xff…