【NLP 51、一些LLM模型結構上的變化】

目錄

一、multi-head 共享

二、attention結構

1.傳統的Tranformer結構

2.GPTJ —— 平行放置的Transformer結構

三、歸一化層位置的選擇

1.Post LN:

2.Pre-LN【目前主流】:

3.Sandwich-LN:

四、歸一化函數選擇

1.傳統的歸一化函數 LayerNorm

2.RMSNorm

五、激活函數

六、LLama2結構

七、MoE架構 混合專家模型

? ? ? ? ? ? ? ? ? ? ? ? ????????????????????SWITCH TRANSFORMERS

八、DeepSeek Moe

九、位置編碼和長度外推性

1.為何需要位置編碼

2.長度外推性

3.目前的主流位置編碼

Ⅰ、正余弦位置編碼

Ⅱ、可學習位置編碼

Ⅲ、ROPE相對位置編碼

Ⅳ、Alibi位置編碼

① 相對位置矩陣生成

② 頭特定斜率參數

③ 偏差矩陣計算

④ 偏差注入與注意力計算

Ⅴ、總結

十、DeepSeek MLA —— Multi - head Latent Attention(多頭潛在注意力)


I will love you in your freezing night

Please just hold me tight

????????????????????????????????????????????????????????—— 25.3.27

大語言模型都是基于transformer結構來做

一、multi-head 共享

Values:10×64

Keys:10×64

Queries:10×64

多頭注意力(MHA) —— 12個頭:

縮小Key和Value,多查詢注意力(MQA) —— 1個頭:

縮小Key和Value,分組查詢注意力(GQA) —— 4個頭:

效果隨頭的數量減少而減弱,減少運算量,加速訓練


二、attention結構

1.傳統的Tranformer結構

????????多層感知機(MLP)位于多頭自注意力機制之后,對自注意力機制輸出的特征表示進行進一步的非線性變換。自注意力機制雖然能夠有效地捕捉序列中的長距離依賴關系,生成豐富的上下文感知表示,但這些表示可能仍然需要進一步處理,以更好地適應下游任務。MLP 通過將輸入特征映射到一個更高維的空間,然后再投影回原始維度,能夠增強特征的表達能力,使模型能夠學習到更復雜的模式。

公式:

MLP(多層感知機)的作用是:對經過注意力機制和層歸一化處理后的特征進行非線性變換

流程:

① 第一次層歸一化:對輸入?x?進行層歸一化(LayerNorm),得到 LayerNorm(x),穩定數據分布。

② 注意力計算:將?LayerNorm(x)?輸入到注意力模塊(Attention),計算?Attention(LayerNorm(x)),捕捉序列依賴關系。

③ 第一次殘差連接:將?x? Attention(LayerNorm(x))?相加,即?x + Attention(LayerNorm(x)),保留原始信息并促進梯度傳播。

④ 第二次層歸一化:對殘差連接結果進行層歸一化,得到 LayerNorm(x + Attention(LayerNorm(x)),再次穩定數據分布。

⑤ MLP 變換:將 LayerNorm(x + Attention(LayerNorm(x)))?輸入到多層感知機(MLP),通過非線性變換提取高級特征,得到?MLP(LayerNorm(x + Attention(LayerNorm(x))))

⑥ 第二次殘差連接:將原始輸入?x?與?MLP 的輸出相加,得到最終結果?y = x + MLP(LayerNorm(x + Attention(LayerNorm(x)))),融合原始信息與處理后的特征。

MLP的核心作用:

① 增加非線性:MLP 通過激活函數(如 ReLU)引入非線性,使模型能學習更復雜的映射關系。

② 特征變換與融合:對注意力處理后的特征進行二次加工,整合不同維度的信息,提升特征的表征能力

③ 配合殘差連接:最終輸出?y?再次通過殘差連接(x + MLP(?)),確保原始信息不丟失,同時促進梯度傳播,防止訓練中的梯度消失問題。


2.GPTJ —— 平行放置的Transformer結構

GPTJ結構,平行放置attention layerfeed forward layer

moss, palm用的這種結構,目前不算太主流

公式:

流程:

① 層歸一化:對輸入?x?進行層歸一化(LayerNorm),得到 LayerNorm(x),穩定特征分布。

② 并行處理

????????將?LayerNorm(x)?輸入到?MLP?模塊,計算?MLP(LayerNorm(x)),通過非線性變換提取特征。

????????將?LayerNorm(x)?輸入到?Attention?模塊,計算?Attention(LayerNorm(x)),捕捉序列依賴關系。

③ 殘差融合:將原始輸入?x、MLP?的輸出、Attention?的輸出相加,即?y = x + MLP(LayerNorm(x)) + Attention(LayerNorm(x)),實現信息融合與殘差連接,保留原始信息并促進梯度傳播。


三、歸一化層位置的選擇

1.Post LN:

流程:先進行子層計算,再對子層輸出進行層歸一化,最后殘差連接。

特點:子層輸出可能因未歸一化而波動較大,深層訓練時穩定性較差,但早期 Transformer 架構常用此方式。使用post-LN的深層transformer容易出現訓練不穩定的問題。

2.Pre-LN【目前主流】:

流程:在進入子層(如注意力層或 MLP 層)之前先進行層歸一化

特點:使每個子層的輸入分布穩定,緩解梯度消失問題,便于深層模型訓練;相比于Post-LN,使用Pre-LN的深層transformer訓練更穩定,可以緩解訓練不穩定問題;相比于Post-LN,Pre-LN的模型效果略差

3.Sandwich-LN:

流程:在子層的輸入和輸出端都應用層歸一化,形成 “三明治” 結構。

在pre-LN的基礎上,額外插入了一個layer norm

Cogview用來避免值爆炸的問題

特點:結合 Pre - LN 和 Post - LN 的優勢,進一步穩定特征分布,同時增強模型對特征的表達能力

缺點:訓練不穩定,可能會導致訓練崩潰。


四、歸一化函數選擇

1.傳統的歸一化函數 LayerNorm

2.RMSNorm

目前主流做法是:將Norm層提前到attention之前


五、激活函數

FeedFoward層所使用激活函數的演進

初始Transformer:relu()

Bert:gelu()

目前最主流的激活函數:Swish()


六、LLama2結構

分詞器:使用字節對編碼(BPE)算法,詞匯表大小為 32,000 tokens,支持多語言文本的高效編碼。? ?

????????① 初始化詞匯表:把文本中所有單詞分解成最小字符單位,這些字符構成初步詞匯表 。比如單詞 “look” 會被分解為 “l”“o”“o”“k”。

? ? ? ? ② 統計字符對頻率:遍歷文本,計算每對相鄰字符出現的頻次。例如在單詞 “look” 中,字符對為(“l”,“o”)、(“o”,“o”)、(“o”,“k” ) ,在整個文本范圍內統計它們出現的次數。

? ? ? ? ③ 合并最頻繁字符對:找出出現頻率最高的字符對,將其合并成一個新符號。比如統計后發現 “lo” 出現頻率最高,就把 “l” 和 “o” 合并為 “lo” 。

? ? ? ? ④ 更新文本和詞匯表:在文本中把所有該字符對的實例替換為新合并的符號,同時更新詞匯表。如 “look” 變為 “lo”“ok” ,詞匯表中新增 “lo”。

? ? ? ? ⑤ 重復迭代:不斷重復步驟 2 - 4 ,直到達到預設的詞匯表大小,或者字符對不再頻繁出現。

位置編碼:采用旋轉位置編碼(RoPE),通過旋轉矩陣實現相對位置關系建模,支持上下文窗口擴展至 4096 tokens。

預歸一化:在每個 Transformer 層的輸入前應用RMSNorm(均方根歸一化),而非傳統的 LayerNorm,提高訓練穩定性和收斂速度。

多頭注意力(MHA)

????????分組查詢注意力(GQA):在 70B 版本中,將查詢頭分為 G 組,每組共享鍵(K)和值(V)投影例如:70B 模型采用 32 組,每組 2 個查詢頭,總頭數 64 個。這種設計減少了內存占用,尤其在長序列推理時優勢顯著1315。

????????多查詢注意力(MQA):7B 和 13B 模型采用 MQA,所有查詢頭共享同一組 K 和 V,進一步降低參數規模315。

前饋網絡(FFN):使用SwiGLU 激活函數,公式為SwiGLU(x) = x * σ(β * x) * W,其中 σ 為 Sigmoid 函數,β 為可學習參數。相比 ReLU,SwiGLU 在保持非線性能力的同時提升了模型表達能力。

語言建模頭:通過線性層將最終隱藏狀態映射到詞匯表空間,輸出下一個 token 的概率分布。


七、MoE架構 混合專家模型

????????MOE 的核心思想是將復雜任務分解為多個 “專家” 子模型,每個專家專注于處理特定類型的輸入,通過門控機制動態決定輸入數據由哪些專家處理

輸入層:將原始數據編碼為特征向量。

門控網絡(Gating Network):計算每個輸入分配給不同專家的概率。

????????實現方式

? ? ? ? ? ? ? ? ① 軟門控:使用 Softmax 或 Sigmoid 函數計算概率,允許多個專家共同處理輸入(如 Google Switch Transformer)。

? ? ? ? ? ? ? ? ② 硬門控:僅選擇一個專家處理輸入(如 BERT-MOE)。

????????負載均衡:通過正則化(如 L2 損失)避免某些專家過載。

專家網絡(Expert Network):多個獨立的子模型,每個專家負責處理特定類型的輸入。

????????結構:每個專家是一個獨立的神經網絡(如 MLP、Transformer 塊),可共享或獨立訓練。

????????多樣性:不同專家可學習不同的特征模式,例如一個專家擅長處理文本分類,另一個擅長翻譯。

????????并行計算:輸入僅激活部分專家,減少冗余計算。

輸出層:整合專家的輸出結果,生成最終預測。

? ? ? ? ? ? ? ? ? ? ? ? ????????????????????SWITCH TRANSFORMERS

MoE架構,會帶來分類預測和整體模型的參數數量不同


八、DeepSeek Moe

????????除了隨機挑選專家外,還有一位專家總是在工作(一位專家主要做工作,其余隨機挑選的專家進行改進)

如圖所示,增加了“共享專家”,總是會使用這個“專家”進行計算,其余的按照傳統Moe方式由模型自己隨機進行挑選


九、位置編碼和長度外推性

1.為何需要位置編碼

由于transformer中使用的都是線性層,編碼過程中沒有明顯的位置信息

字詞位置的交換,僅相當于矩陣中行位置的交換

帶來并行計算的優勢,但是也弱化了語序信息

因此需要引入位置編碼來彌補

如果不引入位置編碼,當語序位置不同時,最終歸一化后也并不能體現出差異;

引入位置編碼,當語序改變時,每個位置位置編碼的權重值不同,整體相乘后,值也會發生變化;


2.長度外推性

預測時序列長度比訓練時候長,模型依然有好的表現,稱為有較好的長度外推性

比如: 訓練樣本最大長度為512;預測過程中輸入的樣本長度為1024

長度外推性是一種理想的性質,并非是必要的


3.目前的主流位置編碼

相對位置編碼是目前LLM的主流

RoPE是相對位置編碼的主流

Ⅰ、正余弦位置編碼

優點:① 理論上可以進行一定程度的外推,但是效果不是很好?② 是一個固定的位置編碼

位置編碼向量 + token向量 得到編碼后的embedding

我們稱之為Positional Encoding


Ⅱ、可學習位置編碼

一般稱為position embedding,以Bert為代表

如同token embedding一樣,隨機初始化之后,靠梯度更新學習調整

缺點:無法外推,需要預設最大長度


Ⅲ、ROPE相對位置編碼

????????ROPE(Rotary Position Embedding,旋轉位置編碼)是一種結合絕對位置編碼與相對位置編碼優勢的技術,通過旋轉矩陣將位置信息融入自注意力機制,使模型能顯式學習相對位置關系。

ROPE 對查詢(Q)和鍵(K)向量的每個偶數 - 奇數維度對進行旋轉:

相對位置編碼在計算Self-attention時做這個注意力矩陣

公式:

相對位置編碼需要找到符合如下條件的f、q函數:

x_m:輸入的Embedding

m:相對位置

f_q:對x_m和相對位置m做的一種變換

x_n:輸入的Embedding

n:相對位置

f_k:對x_n和相對位置n做的一種變換

g:對于q和k做上述變換后再做內積得到的一種相對位置編碼

施加在Transformer每一個q、k相乘計算之后使用,沒有長度限制,只與傳入的m、n值有關,計算其差值

最后找到的函數:

?—— Re代表[值]的實數部分


Ⅳ、Alibi位置編碼

????????ALiBi(Attention with Linear Biases)是一種非學習型相對位置編碼方法,通過在注意力分數中注入線性偏差來隱式編碼序列的相對位置關系。其核心思想是利用注意力機制的數學特性,在不引入額外參數的情況下提升模型對長序列的處理能力。

????????ALiBi 的核心是在注意力分數計算階段直接添加位置偏差,而非通過位置嵌入或旋轉操作。

① 相對位置矩陣生成

② 頭特定斜率參數

③ 偏差矩陣計算

④ 偏差注入與注意力計算

公式:

值越大,兩位置差距越大,值越小,兩位置差距越小

多個頭時,乘以不同的系數值


Ⅴ、總結

對于文本類NLP任務,位置信息是很重要的

可學習的位置編碼缺點在于沒有長度外推性

相對位置編碼不需要學習,有一定的長度外推性,但是相對位置編碼具有天然的遠程衰減性

目前的主流是RoPEAlibi兩種相對位置編碼


十、DeepSeek MLA —— Multi - head Latent Attention(多頭潛在注意力)

主要著重于self-attention的重點

通過一個大的線性層計算Q、K

將Q、K拆分為Q1,Q2和K1和K2,

Q1,K1過RoPE相對位置編碼,Q2和K2不過RoPE相對位置編碼

然后將Q1和Q2相加,K1和K2相加

Q、K拆分的比例通過實驗確定

效果:

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

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

相關文章

VS+Qt配置QtXlsx庫實現execl文件導入導出(全教程)

一、配置QtXlsx 1.1 下載解壓QtXlsxWriter(在github下載即可) 網址:https://github.com/dbzhang800/QtXlsxWriter 1.2 使用qt運行 點擊qtxlsx.pro運行QtXlsxWriter 選擇DesktopQt51211MSVC201564bit編譯器(選擇自己本地電腦qt…

Golang的文件處理優化策略

Golang的文件處理優化策略 一、Golang的文件處理優化策略概述 是一門效率高、易于編程的編程語言,它的文件處理能力也非常強大。 在實際開發中,需要注意一些優化策略,以提高文件處理的效率和性能。 本文將介紹Golang中的文件處理優化策略&…

自學-C語言-基礎-數組、函數、指針、結構體和共同體、文件

這里寫自定義目錄標題 代碼環境:?問題思考:一、數組二、函數三、指針四、結構體和共同體五、文件問題答案: 代碼環境: Dev C ?問題思考: 把上門的字母與下面相同的字母相連,線不能…

VMware+Ubuntu+VScode+ROS一站式教學+常見問題解決

目錄 一.VMware的安裝 二.Ubuntu下載 1.前言 2.Ubuntu版本選擇 三.VMware中Ubuntu的安裝 四.Ubuntu系統基本設置 1.中文更改 2.中文輸入法更改 3. 輔助工具 vmware tools 五.VScode的安裝ros基本插件 1.安裝 2.ros輔助插件下載 六.ROS安裝 1.安裝ros 2.配置ROS…

PostgreSQL pg_repack 重新組織表并釋放表空間

pg_repack pg_repack是 PostgreSQL 的一個擴展,它允許您從表和索引中刪除膨脹,并可選擇恢復聚集索引的物理順序。與CLUSTER和VACUUM FULL不同,它可以在線工作,在處理過程中無需對已處理的表保持獨占鎖定。pg_repack 啟動效率高&a…

5G_WiFi_CE_射頻輸出功率、發射功率控制(TPC)和功率密度測試

目錄 一、規范要求 1、法規目錄: (1)RF Output Power (2)Transmit Power Control (TPC) (3)Power Density 2、限值: 二、EIRP測試方法 (1)測試條件 (2&#xff…

掃描線離散化線段樹解決矩形面積并-洛谷P5490

https://www.luogu.com.cn/problem/P5490 題目描述 求 n n n 個四邊平行于坐標軸的矩形的面積并。 輸入格式 第一行一個正整數 n n n。 接下來 n n n 行每行四個非負整數 x 1 , y 1 , x 2 , y 2 x_1, y_1, x_2, y_2 x1?,y1?,x2?,y2?,表示一個矩形的四個…

Java項目之基于ssm的簡易版營業廳寬帶系統(源碼+文檔)

項目簡介 簡易版營業廳寬帶系統實現了以下功能: 此營業廳寬帶系統利用當下成熟完善的SSM框架,使用跨平臺的可開發大型商業網站的Java語言,以及最受歡迎的RDBMS應用軟件之一的Mysql數據庫進行程序開發。實現了營業廳寬帶系統基礎數據的管理&…

從入門到入土,SQLServer 2022慢查詢問題總結

列為,由于公司原因,作者接觸了一個SQLServer 2022作為數據存儲到項目,可能是上一任的哥們兒離開的時候帶有情緒,所以現在項目的主要問題就是,所有功能都實現了,但是就是慢,列表頁3s打底,客戶很生氣,經過幾周摸爬滾打,作以下總結,作為自己的成長記錄。 一、索引問題…

PDF處理控件Aspose.PDF教程:在Python、Java 和 C# 中旋轉 PDF 文檔

您是否希望快速輕松地在線旋轉PDF文檔?無論您需要修復文檔的方向還是只想重新排列頁面,本指南都能滿足您的需求。有簡單的方法可以解決此問題 - 無論您喜歡在線工具還是編程解決方案。 在本指南中,我們將向您展示如何免費在線旋轉 PDF&#…

編譯原理:first集和follow

一、First 集(首符號集) 定義: 對于符號(非終結符或終結符)或符號串,First 集是該符號串能夠推導出的所有可能開頭的終結符的集合。若符號串可以推導出空串(ε),則 ε 也…

python實現簡單fast-cgi服務,對接到nginx

python代碼 import socket import struct import threading# FastCGI 頭格式(8 字節) FCGI_HEADER_FORMAT "!BBHHBx" FCGI_VERSION 1 FCGI_TYPE_BEGIN_REQUEST 1 FCGI_TYPE_PARAMS 4 FCGI_TYPE_STDIN 5 FCGI_TYPE_STDOUT 6 FCGI_TYPE_E…

vue開始時間小于等于結束時間,且開始時間小于等于系統時間,時間格式:年月日時分

// 日期配置 export const DATA_CONFIGS [{itemKey: "startDate",startDateKey: "startDate",endDateKey: "endDate",isStart: true,},{itemKey: "endDate",startDateKey: "startDate",endDateKey: "endDate",is…

PyCharm 下載與安裝教程:從零開始搭建你的 Python 開發環境

PyCharm 是一款專為 Python 開發設計的集成開發環境(IDE),它提供了強大的代碼編輯、調試、版本控制等功能,是 Python 開發者的必備工具之一。如果你是初學者,或者正在尋找一款高效的開發工具,這篇文章將幫助…

Qt線程等待條件QWaitCondition

Qt 線程等待條件 概念 Qt提供了QWaitCondition類實現“等待條件”式的線程控制方法,它讓線程阻塞在等待條件的地方,直到條件滿足后才繼續執行下去。也就是說,QWaitCondition可以使一個線程在滿足一定條件時通知其他多個線程,使它…

RAG 和 RAGFlow 學習筆記

一、RAG(檢索增強生成) 1. RAG 的定義與核心思想 RAG(Retrieval-Augmented Generation,檢索增強生成) 是一種結合 信息檢索(Retrieval) 和 文本生成(Generation) 的技術…

Windows連接服務器Ubuntu_MobaXterm

通過 SSH 遠程連接(命令行方式) 🔧 所需工具: Windows:MobaXterm(強烈推薦)或 PuTTY Ubuntu:已開啟 SSH 服務 Ubuntu 開啟 SSH 服務(僅需一次) 在 Ubuntu …

Rust 中的高效視頻處理:利用硬件加速應對高分辨率視頻

引言 在視頻處理領域,隨著4K、8K甚至更高分辨率內容的普及,傳統的CPU計算方式逐漸顯得力不從心。無論是視頻剪輯、直播流處理還是格式轉換,高負載場景下CPU占用過高的問題常常讓開發者頭疼。硬件加速技術通過利用GPU等專用硬件分擔編解碼任務…

大模型提示工程中,提示、補全、指令、上下文和樣本這幾個概念的區別是什么?

提示 (Prompt) 定義:輸入給大模型的完整文本刺激,是與模型交互的主要方式。 特點: 是最廣義的概念,包含其他幾個元素整體輸入的總和,包括指令、上下文和樣本等內容決定模型如何理解和處理請求 示例: 分…

AI的未來演進

企業數字IP實戰:創始人分身如何實現品宣獲客雙贏? ——從量子化建模到聯邦學習的全鏈路技術拆解 一、行業痛點:品牌信任與獲客效率的雙重困局 2025年數據顯示,73%的企業因傳統營銷模式效率低下錯失市場機遇(家居品牌…