Transformer網絡結構解析

博主會經常分享自己在人工智能階段的學習筆記,歡迎大家訪問我滴個人博客!(都不白來!)

小牛壯士 - 個人博客https://kukudelin.top/

前言

Transformer 廣泛應用于自然語言處理(如機器翻譯、文本生成)等領域,是BERT、GPT等大模型的基礎架構

  • 以自注意力機制為核心:讓模型關注輸入序列中不同位置的關聯

  • 具備強并行化能力:徹底擺脫了RNN等模型的序列依賴,能并行處理輸入數據

  • 采用編碼器 - 解碼器架構:分別負責處理輸入序列為上下文表示及據此生成輸出序列。

一、位置編碼Position Encoding

1.1 因

自注意力機制在計算關聯時,本質上是對序列中所有元素進行 “全局配對” 計算,沒有辦法考慮到元素的輸入順序,因此在輸入之前我們需要使用位置編碼使自注意力機制區分序列中不同位置的元素

1.2 果

在輸入到 Transformer 模型之前,每個詞的詞嵌入向量(包含語義信息的原始維度數據)會與對應的位置編碼向量(模型根據這個編碼來區分輸入特征的前后位置)進行逐元素相加,形成一個新的向量。這個新向量同時包含了詞的語義信息和它在序列中的位置信息。

1.2.1 固定函數生成位置編碼

對于一個長度為N,詞向量維度為d的句子,他在長度索引為i,維度索引為j的位置編碼計算公式如下

例如步長為5的句子“I am a handsome boy”,經過嵌入層得到4個維度的詞向量,那么對應的位置編碼為:

最終得到的位置編碼與詞嵌入向量逐元素相加,得到最終輸入模型的矩陣

二、層歸一化

與批歸一化不同,層歸一化是對神經網絡某一層所有輸入特征按樣本計算均值和方差,再進行標準化以穩定訓練的技術,他的范圍是一個輸入詞向量在神經網絡中的某一層的所有特征維度。

相當于對句子中每一個詞對應的行向量求歸一化,可以看看這個案例:

三、編碼器Encoder

編碼器主要負責對輸入序列進行深度處理和信息提取,將原始輸入(如一句話、一段文本)轉換為包含豐富上下文信息的向量表示

模塊組成部分:

  • Multi-Head Attention:多頭注意力機制

  • Feed Forward:前饋神經網絡,就是一個線性層

  • Add&Norm:殘差連接和歸一化(經過注意力機制和歸一化后的輸出和最初輸入進行逐元素相加,輸入→處理→輸出 + 輸入

四、掩蔽多頭自注意力Masked Multi-Head

4.1、掩碼Mask

在文本生成任務中,由于模型需按順序生成內容且遵循“僅基于歷史內容預測下一個詞”的自回歸邏輯,生成第n個詞時只能受前n-1個詞影響,因此需引入掩碼來限制模型對后續未生成內容的關注

掩碼操作是加在QK轉置相乘后的原始注意力得分矩陣(每個元素表示 “查詢向量 Q 對鍵向量 K 的關聯強度”),從而限制模型關注范圍,下圖所示的掩碼矩陣中綠色部分值為0,按位相加后原得分矩陣值不變,表示模型需要關注的范圍,黃色部分為-∞,按位相加后仍為-∞,模型不關注這部分

  • 第一步

最終得到的掩碼得分矩陣再與V進行加權求和,得到最后Z矩陣,他 “融合了上下文的語義向量”(比如第 0 行 Z 融合了第 0 個位置能關注到的信息)

  • 第二步

以第0行為例,掩碼得分舉證只顯現了第一個詞的語義信息,那么當Z處理第 0 個位置的詞時,模型只能看到自己的語義,然后把‘自己的語義’作為輸出

而對比第1行,Z處理第 1 個詞時,模型可以參考‘第 0 個詞(歷史)’和‘自己(第 1 個詞)’的語義,融合后輸出

五、解碼器Decoder

Transformer 通過編碼器輸出的全局語義信息結合自回歸機制(通過掩碼限制僅關注歷史生成內容),逐詞生成目標序列

注意在解碼器的第二個多頭注意力機制上融合了編碼器的信息依據 Encoder 輸出 ( C ) 得到 ( K )、( V ),并以上一個 Decoder block 輸出 ( Z ),構建注意力交互基礎 。

六、預測輸出

始終通過前一個詞來預測后一個詞,保持模型的自回歸屬性

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

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

相關文章

gateway進行接口日志打印

打印需求:對所有的接口打印:請求方式,請求路徑,請求參數,用戶id,訪問IP,訪問時間對增刪改操作的接口打印:接口響應打印方案:給GET設置一個白名單(因為get請求…

MATLAB實現圖像增強(直方圖均衡化)

直方圖均衡化是一種常用的圖像增強技術,它通過重新分布圖像的像素強度值來增強圖像的對比度。以下是MATLAB中實現直方圖均衡化的詳細方法。%% 直方圖均衡變換 clc;close all;clear all;warning off;%清除變量 rand(seed, 100); randn(seed, 100); format long g;%% …

java15學習筆記-密封類

360:Sealed Classes (Preview) 封閉類(預覽) 總結 使用密封類和接口增強Java編程語言。密封類和接口限制了哪些其他類或接口可以擴展或實現它們。這是JDK 15中的預覽語言功能。 目標 允許類或接口的作者控制負責實現它的代碼。 提供一種比訪問…

西門子PLC通過穩聯技術EtherCAT轉Profinet網關連接baumuller伺服器的配置案例

西門子PLC用穩聯技術的EtherCAT轉Profinet網關,連上baumuller伺服器的配置例子本案例實現西門子S71200 PLC通過EtherCAT轉Profinet網關對baumuller(Baumller)伺服器的實時控制,適用于高精度運動控制場景(如精密機床、自…

Ansible 詳細筆記

Ansible 詳細筆記 一、Ansible 基礎概述 1.1 定義與定位 Ansible 是由 Red Hat 主導開發的開源自動化運維工具,基于 Python 語言實現,專注于簡化 IT 基礎設施的配置管理、應用部署、任務編排等操作。它采用無代理架構,通過 SSH 協議與被控節點…

【Java 后端】Spring Boot 集成 JPA 全攻略

Spring Boot 集成 JPA 全攻略 一、前言 在 Java Web 開發中,數據庫訪問是繞不開的話題。 傳統方式使用 JDBC 編寫 SQL,維護困難、可讀性差。后來有了 MyBatis 這種半自動 ORM 框架,再到 JPA(Java Persistence API)這…

pytorch學習筆記-加載現有的網絡模型(VGG16)、增加/修改其中的網絡層(修改為10分類)

寫在前面:有些地方和視頻里不一樣的是因為官方文檔更新了,一些參數用法不一樣也很正常,包括我現在的也是我這個時間節點最新的,誰知道過段時間會不會更新呢 建議大家不要一味看視頻/博客,多看看官方文檔才是正道&#…

RocketMQ 4.9.3源碼解讀-NameServer組件啟動流程分析

作者源碼閱讀筆記主要采用金山云文檔記錄的,所有的交互圖和代碼閱讀筆記都是記錄在云文檔里面,本平臺的文檔編輯實在不方便,會導致我梳理的交互圖和文檔失去原來的格式,所以整理在文檔里面,供大家閱讀交流 【金山文檔 | WPS云文檔】 namesrv 啟動流程 相關重要類介紹說明…

《嵌入式 C 語言編碼規范與工程實踐個人筆記》參考華為C語言規范標準

《嵌入式 C 語言編碼規范與工程實踐個人筆記》參考華為C語言規范標準 前言 在電子系統開發領域,C 語言作為底層開發的核心語言,其代碼質量直接關系到系統的穩定性、可維護性和擴展性。良好的編碼規范不僅是團隊協作的基礎,更是降低生命周期成…

純半精度模型和全精度模型的耗時分別為248微秒和1400微秒。混合精度模型371微秒比原始模型快大約四倍!

不過有一點需要注意:在上下文管理器內部生成的任何輸出,必然會采用該上下文管理器的數據類型。因此,之后我們必須將這些輸出轉換回FP32(例如,使用float()函數)。 with torch.autocast(device_type="cuda", dtype=torch.float16): res16 = mixed32(torch.randn…

一款開源的遠程桌面軟件,旨在為用戶提供流暢的游戲體驗,支持 2K 分辨率、60 FPS,延遲僅為 40ms。

軟件介紹 CloudPlayPlus(云玩加)是一款令人驚艷的開源遠程桌面、串流軟件,云玩加由個人開發者開發者,具有四大特征:開源、免費、低延遲、安全。 軟件使用 客戶端支持多個平臺,包括 Windows、Mac OS、安卓…

MySql——binlog和redolog的區別

目錄一、binlog和redolog的區別一、binlog和redolog的區別 binlog和redolog都是存儲修改的新數據,是否保留binlog和redolog中的一個即可。 binlog屬于整個mysql,是所有引擎共用的,不是只屬于innoDB引擎。而redolog屬于InnoDB存儲引擎。binlo…

軟件著作權產生與登記關鍵點

知識講解一、 軟件著作權的核心特征與權利內容自動產生原則: 這是軟件著作權最核心、最重要的特征。產生時間: 軟件著作權自軟件開發完成之日起自動產生。法律依據: 《中華人民共和國著作權法》第二條及《計算機軟件保護條例》第五條明確規定…

什么是主成分分析(PCA)和數據降維

主成分分析(PCA)和數據降維是機器學習和統計學中處理高維數據的核心工具。下面用清晰的結構解釋其概念、原理和應用: 一、數據降維(Dimensionality Reduction) 1. 是什么? 目標:將高維數據&…

圖論(4)單源賦權最短路徑算法實現(BFS實現)

目錄 1. 什么是賦權最短路徑 2. 賦權最短路徑中的關鍵概念 3. Dijkstra 算法的基本思想 4. Dijkstra 算法實現(Java) 1. 什么是賦權最短路徑 在圖論中,最短路徑問題是指在圖中尋找兩點之間路徑總權重最小的路徑問題。如果圖的每條邊都帶…

【Lua】題目小練9

題目:實現一個簡單的“銀行賬戶”類要求:使用 元表 模擬面向對象。支持以下功能:Account:new(owner, balance) 創建賬戶(初始余額可選,默認為 0)。deposit(amount) 存款(不能為負數)…

【二分圖】染色問題

核心思想&#xff1a;為每一個未染色的&#xff0c;對它自己和它的鄰居進行染色&#xff0c;看是否會出現沖突時間復雜度O&#xff08;nm&#xff09;#include<bits/stdc.h> using namespace std; using lllong long; const int N200010; int n,m; vector<int>edge…

報數游戲(我將每文更新tips)

今日tips&#xff1a;報數游戲題目描述報數游戲的游戲規則如下&#xff1a;對一個區間內的整數進行報數&#xff0c;若遇到的數字是質數或個位數是 1&#xff0c;則不報數&#xff0c;輸出 pass。 給定開始游戲的第一個整數 a&#xff0c;及結束游戲時的最后一個整數 b&#xf…

大模型開發 - 基于Spring AI 借助MCP Client 通過STDIO和SSE協議調用MCP Server (上)

文章目錄概述MCP協議&#xff1a;為AI應用連接外部世界的橋梁MCP Server&#xff1a;上下文與能力的提供者基于Spring AI 1.0.0的開發之路1. 使用Spring AI構建MCP客戶端2. 使用Spring AI構建MCP服務器Mcp Client 實戰整體架構概覽技術棧Codepom配置mcp servers(sse&stdio)…

分析三個文件--啟動文件、鏈接文件、map文件

目錄 啟動文件 鏈接文件 部分map文件內容 FLASH物理地址(0x08000000開始)的映射關系 0x08000000 之前地址空間 啟動文件 ;******************** (C) COPYRIGHT 2016 STMicroelectronics ******************** ;* File Name : startup_stm32f40_41xxx.s ;* Author…