教程簡介及目錄見: 從零實現(xiàn)BERT、GPT及Difussion類算法:文章簡介及目錄
(資料圖)
本章完整源碼見https://github.com/firechecking/CleanTransformer/blob/main/CleanTransformer/transformer.py
這一章將參考《attention is all you need》論文,實現(xiàn)Multi-head Attention、LayerNorm、TransformerBlock,有了這章的基礎后,在下一章就可以開始搭建Bert、GPT等模型結(jié)構(gòu)了
Multi-head Attention
參考:https://arxiv.org/abs/1706.03762
Attention介紹(選讀)
先簡單介紹下一般性的Attention,如果已經(jīng)了解的同學可以跳過
Attention字面意思是注意力,也就是讓模型能夠學習到一個權(quán)重,來將輸入選擇性的傳入下一層
比較常用的操作如下:
首先假定輸入tensor為q, k, v,其中
self-attention是attention的一個特例:q=k=v
以下給出基礎attention的偽代碼
Multi-head Attention基礎原理
由以上論文截圖可知,
所以實現(xiàn)步驟如下(可以和上文基礎Attention對比著看):
對Q,K,V進行Linear:得到新的Q、K、V的size不變
Multi-Head拆分:
使用Q、K計算Weight(其中第二行是Transformer在attention基礎上增加的一個scaling factor)
使用Weight和V,計算新的V
對V進行維度變換
Multi-head Attention實現(xiàn)代碼
代碼不是太復雜,結(jié)合上文和注釋,應該能很容易看懂
LayerNorm
參考
https://arxiv.org/abs/1607.06450
https://arxiv.org/abs/1607.06450
https://pytorch.org/docs/stable/generated/torch.nn.LayerNorm.html
https://blog.csdn.net/xinjieyuan/article/details/109587913
BatchNorm與LayerNorm的差異
batch normalization
對每一個輸入,先在mini-batch上計算輸入的均值、標準差,然后當前層的每個輸入值使用均值、標準差進行正則計算
公式如下
先在mini-batch上計算出每個位置的均值、標準差,其中為mini-batch大小
然后對每個值應用變換
提示:這里之所以有下標i,是因為batch normalization是在batch內(nèi),對不同樣本的相同位置進行歸一
layer normalization
batch normalization是在batch內(nèi),對不同樣本的相同位置進行歸一;而layer normalization是在layer內(nèi),對同一個樣本的不同位置進行歸一
batch normalization不在整個mini-batch上計算均值、標準差,而是在當前層的當前樣本計算輸入的均值、標準差,然后對當前層的當前樣本輸入值使用均值、標準差進行正則計算(也可以理解為Layer Normalization是和batch無關(guān),而是對每個樣本單獨處理)
公式如下
先在單個樣本上計算出每一層的均值、標準差,其中為當前l(fā)ayer的大小hidden units數(shù)量
然后對每個值應用變換
Layer Normalization代碼實現(xiàn)
代碼如下
eps為一個較小值,是為了防止標準差std為0時,0作為除數(shù)
從上文公式看出,標準差是計算的均值后開根號,所以代碼中有std = self._mean((x - mean).pow(2) + self.eps).pow(0.5),是復用了self._mean()的計算均值操作
為了和pytorch的LayerNorm保持一致,這里同樣可以接受normalized_shape參數(shù),表示Normalization要在哪幾個維度上進行計算,可以結(jié)合_mean()函數(shù)中的代碼進行理解
TransformerBlock
參考
https://arxiv.org/abs/1706.03762
Transformer原理
從《Attention Is All You Need》論文中這張圖可以看出以下幾點信息:
Encoder、Decoder基本相同,最大差別是Decoder上多了一層Multi-Head Attention
每一個TransformerBlock只由Multi-Head Attention、Add、LayerNorm、Linear這4種操作組合而成
在上文已經(jīng)實現(xiàn)的Multi-Head Attention、LayerNorm基礎上,再來實現(xiàn)TransformerBlock就很簡單了
為進一步簡化,在本章我們先只實現(xiàn)Encoder,并且省略掉mask等額外操作。到之后講到GPT時再來實現(xiàn)Decoder以及更完善的TransformerBlock
Transformer代碼實現(xiàn)
代碼主要由attention+Add+Norm,以及FFW+Add+Norm這2個部分組成,其中ffw是兩層全連接中間夾一個ReLU激活函數(shù)
從以上代碼看出TransformerBlock還是非常簡潔的,而Bert、GPT等模型就是對TransformerBlock的堆疊,這部分內(nèi)容將放在下一章講解
關(guān)鍵詞:
-
從零實現(xiàn)BERT、GPT及Difussion類算法-3:Multi-head Attention & Transformer|熱資訊
教程簡介及目錄見:從零實現(xiàn)BERT、GPT及Difussion類算法:文章簡介及目錄本章完整源碼見https: github com
-
祆教 景教_祆
1、襖ǎo基本字義1 有襯里的上衣:夾~。2、棉~。3、皮~。4、詳細字義〈名〉1 (形聲。5、從衣,夭聲。6、
-
下周股市五大看點:年報、季報披露即將收官 天天新資訊
下周,滬深港通交易日歷優(yōu)化正式實施;第四屆聯(lián)合國世界數(shù)據(jù)論壇等多個數(shù)據(jù)產(chǎn)業(yè)會議將舉辦;中國汽車動力電池
-
每日速訊:“老人推倒摩托車案”判決后繼承人仍拒絕賠付,車主已申請強制執(zhí)行
揚子晚報網(wǎng)4月23日訊(見習記者徐韶達)廣受關(guān)注的“老人推倒摩托車案”法院一審判推車老人繼承人賠付車主1
-
天天微頭條丨讀書之美丨閱讀的力量
閱讀的力量
-
路亞翹嘴用什么假餌最好 路亞翹嘴用什么假餌
今天來聊聊關(guān)于路亞翹嘴用什么假餌最好,路亞翹嘴用什么假餌的文章,現(xiàn)在就為大家來簡單介紹下路亞翹嘴用什
-
當前熱點-陳夢丟冠黑臉!馬龍丟冠也不開心!王楚欽能4-0橫掃馬龍有原因
第四局,王楚欽8-2領先,雖然馬龍追至6-9,但王楚欽還是以11-7鎖定勝局。第一局是最重要的,因為是在7-10落
-
原銀監(jiān)會處置非法集資辦公室主任劉張君被查
新京報訊據(jù)中央紀委國家監(jiān)委駐中國銀保監(jiān)會紀檢監(jiān)察組、河南省監(jiān)察委員會消息:原中國銀行業(yè)監(jiān)督管理委員會
-
炭疽菌的生命周期
炭疽菌是一種生活在植物中的真菌。在一些植物中,它會引起一種叫做炭疽病的疾病。許多不同種類的炭疽菌感染
-
當前訊息:起底蕭縣立亭合作社 蕭縣立亭合作社2022年參保人數(shù)為0
據(jù)蕭縣發(fā)布官微消息,近日,公安機關(guān)對蕭縣立亭合作社涉嫌違法經(jīng)營行為進行立案查處。相關(guān)部門已成立調(diào)查處
-
非法處置非法出口固體廢物怎么判刑啊?
違反國家規(guī)定,將境外的固體廢物進境傾倒、堆放、處置的,處五年以下有期徒刑或者拘役,并處罰金;造成重大
-
2023上海徐匯區(qū)餐飲消費券領取時間+入口+流程-環(huán)球即時
2023上海徐匯區(qū)餐飲消費券領取方式一、領取時間2023年4月28日-5月3日(每日10:00-22:00)二、領取平臺【i購徐
-
【速看料】行走黃渤海|在山東,遇見海鮮的N種打開方式
行走黃渤海|在山東,遇見海鮮的N種打開方式4月17日-22日,山東省組織的“走文化廊道進經(jīng)濟園區(qū)看山東高質(zhì)
-
17+8+11!哈登持續(xù)低迷,76人橫掃籃網(wǎng),三將成晉級最大功臣
這場比賽,籃網(wǎng)確實拼盡全力了,丁威迪、布里奇斯、克拉克斯頓都展現(xiàn)了自身實力,特別是丁威迪與克拉克斯頓
-
當前視訊!山東政商要情(4.17—4.23)
1 山東省委書記林武主持召開座談會研究經(jīng)濟社會發(fā)展工作近日,山東省委書記林武主持召開座談會,聽取教育、
-
財報速遞:寧波方正2022年全年凈利潤1764.70萬元,總體財務狀況一般-觀點
4月24日,A股上市公司寧波方正發(fā)布2022年全年業(yè)績報告。其中,凈利潤1764 70萬元,同比下降31 95%。根據(jù)同
-
視焦點訊!西南石油大學教務處處長_西南石油大學教務處
1、成都市新都區(qū)新都大道8號(成都校區(qū))郵編:610500電話:028-83032308南充市順慶區(qū)油院路
-
國金證券給予順絡電子買入評級 盈利能力環(huán)比改善 新業(yè)務進展順利-全球觀焦點
國金證券04月23日發(fā)布研報稱,給予順絡電子(002138 SZ,最新價:22 54元)買入評級。評級理由主要包括:1
-
塑造好體態(tài),6-12歲是關(guān)鍵!-天天時快訊
好體態(tài)塑造好氣質(zhì)身體姿態(tài)指的是身體的骨骼位置排列是否正確,身體功能是否異常,完成動作時身體各部位姿勢
-
cdr是什么格式_這里有具體介紹
cdr是什么格式,這里有具體介紹很多人還不知道,現(xiàn)在讓我們一起來看看吧!解答:1、Cdr文件是CorelDRAW矢量繪圖