91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Transformer模型結(jié)構(gòu),訓(xùn)練過(guò)程

新機(jī)器視覺(jué) ? 來(lái)源:哈工大SCIR ? 作者:Alexander Rush ? 2022-06-20 14:26 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

導(dǎo)讀

本文分享一篇來(lái)自哈佛大學(xué)關(guān)于Transformer的文章,作者為此文章寫(xiě)了篇注解文檔,詳細(xì)介紹了模型結(jié)構(gòu),訓(xùn)練過(guò)程并給出了可實(shí)現(xiàn)的Transformer的代碼。本文僅作為研究人員和開(kāi)發(fā)者的入門(mén)版教程。

下面分享一篇實(shí)驗(yàn)室翻譯的來(lái)自哈佛大學(xué)一篇關(guān)于Transformer的詳細(xì)博文。

e88aea92-efd1-11ec-ba43-dac502259ad0.jpg

"Attention is All You Need"[1] 一文中提出的Transformer網(wǎng)絡(luò)結(jié)構(gòu)最近引起了很多人的關(guān)注。Transformer不僅能夠明顯地提升翻譯質(zhì)量,還為許多NLP任務(wù)提供了新的結(jié)構(gòu)。雖然原文寫(xiě)得很清楚,但實(shí)際上大家普遍反映很難正確地實(shí)現(xiàn)。

所以我們?yōu)榇宋恼聦?xiě)了篇注解文檔,并給出了一行行實(shí)現(xiàn)的Transformer的代碼。本文檔刪除了原文的一些章節(jié)并進(jìn)行了重新排序,并在整個(gè)文章中加入了相應(yīng)的注解。此外,本文檔以Jupyter notebook的形式完成,本身就是直接可以運(yùn)行的代碼實(shí)現(xiàn),總共有400行庫(kù)代碼,在4個(gè)GPU上每秒可以處理27,000個(gè)tokens。

想要運(yùn)行此工作,首先需要安裝PyTorch[2]。這篇文檔完整的notebook文件及依賴可在github[3] 或 Google Colab[4]上找到。

需要注意的是,此注解文檔和代碼僅作為研究人員和開(kāi)發(fā)者的入門(mén)版教程。這里提供的代碼主要依賴OpenNMT[5]實(shí)現(xiàn),想了解更多關(guān)于此模型的其他實(shí)現(xiàn)版本可以查看Tensor2Tensor[6] (tensorflow版本) 和 Sockeye[7](mxnet版本)

  • Alexander Rush (@harvardnlp[8] or srush@seas.harvard.edu)

0.準(zhǔn)備工作

# !pip install http://download.pytorch.org/whl/cu80/torch-0.3.0.post4-cp36-cp36m-linux_x86_64.whl numpy matplotlib spacy torchtext seaborn
e89735fe-efd1-11ec-ba43-dac502259ad0.png

內(nèi)容目錄

準(zhǔn)備工作

背景

模型結(jié)構(gòu)

- Encoder和Decoder

- Encoder

- Decoder

- Attention

- Attention在模型中的應(yīng)用

- Position-wise前饋網(wǎng)絡(luò)

- Embedding和Softmax

- 位置編碼

- 完整模型

(由于原文篇幅過(guò)長(zhǎng),其余部分在下篇)

訓(xùn)練

- 批和掩碼

- 訓(xùn)練循環(huán)

- 訓(xùn)練數(shù)據(jù)和批處理

- 硬件和訓(xùn)練進(jìn)度

- 優(yōu)化器

- 正則化

- 標(biāo)簽平滑

第一個(gè)例子

- 數(shù)據(jù)生成

- 損失計(jì)算

- 貪心解碼

真實(shí)示例

- 數(shù)據(jù)加載

- 迭代器

- 多GPU訓(xùn)練

- 訓(xùn)練系統(tǒng)附加組件:BPE,搜索,平均

結(jié)果

- 注意力可視化

結(jié)論

本文注解部分都是以引用的形式給出的,主要內(nèi)容都是來(lái)自原文。

1.背景

減少序列處理任務(wù)的計(jì)算量是一個(gè)很重要的問(wèn)題,也是Extended Neural GPU、ByteNet和ConvS2S等網(wǎng)絡(luò)的動(dòng)機(jī)。上面提到的這些網(wǎng)絡(luò)都以CNN為基礎(chǔ),并行計(jì)算所有輸入和輸出位置的隱藏表示。

在這些模型中,關(guān)聯(lián)來(lái)自兩個(gè)任意輸入或輸出位置的信號(hào)所需的操作數(shù)隨位置間的距離增長(zhǎng)而增長(zhǎng),比如ConvS2S呈線性增長(zhǎng),ByteNet呈現(xiàn)以對(duì)數(shù)形式增長(zhǎng),這會(huì)使學(xué)習(xí)較遠(yuǎn)距離的兩個(gè)位置之間的依賴關(guān)系變得更加困難。而在Transformer中,操作次數(shù)則被減少到了常數(shù)級(jí)別。

Self-attention有時(shí)候也被稱為Intra-attention,是在單個(gè)句子不同位置上做的Attention,并得到序列的一個(gè)表示。它能夠很好地應(yīng)用到很多任務(wù)中,包括閱讀理解、摘要、文本蘊(yùn)涵,以及獨(dú)立于任務(wù)的句子表示。端到端的網(wǎng)絡(luò)一般都是基于循環(huán)注意力機(jī)制而不是序列對(duì)齊循環(huán),并且已經(jīng)有證據(jù)表明在簡(jiǎn)單語(yǔ)言問(wèn)答和語(yǔ)言建模任務(wù)上表現(xiàn)很好。

據(jù)我們所知,Transformer是第一個(gè)完全依靠Self-attention而不使用序列對(duì)齊的RNN或卷積的方式來(lái)計(jì)算輸入輸出表示的轉(zhuǎn)換模型。

2.模型結(jié)構(gòu)

目前大部分比較熱門(mén)的神經(jīng)序列轉(zhuǎn)換模型都有Encoder-Decoder結(jié)構(gòu)[9]。Encoder將輸入序列映射到一個(gè)連續(xù)表示序列。

對(duì)于編碼得到的z,Decoder每次解碼生成一個(gè)符號(hào),直到生成完整的輸出序列:。對(duì)于每一步解碼,模型都是自回歸的[10],即在生成下一個(gè)符號(hào)時(shí)將先前生成的符號(hào)作為附加輸入。

e8aa504e-efd1-11ec-ba43-dac502259ad0.jpg

Transformer的整體結(jié)構(gòu)如下圖所示,在Encoder和Decoder中都使用了Self-attention, Point-wise和全連接層。Encoder和decoder的大致結(jié)構(gòu)分別如下圖的左半部分和右半部分所示。

e8b8348e-efd1-11ec-ba43-dac502259ad0.jpg

2.Encoder和Decoder

Encoder

Encoder由N=6個(gè)相同的層組成。

e8c927c6-efd1-11ec-ba43-dac502259ad0.jpg

我們?cè)诿績(jī)蓚€(gè)子層之間都使用了殘差連接(Residual Connection) [11]和歸一化 [12]。

e8da3818-efd1-11ec-ba43-dac502259ad0.pnge8f4e65e-efd1-11ec-ba43-dac502259ad0.jpge905b722-efd1-11ec-ba43-dac502259ad0.jpg

每層都有兩個(gè)子層組成。第一個(gè)子層實(shí)現(xiàn)了“多頭”的 Self-attention,第二個(gè)子層則是一個(gè)簡(jiǎn)單的Position-wise的全連接前饋網(wǎng)絡(luò)。

e90f83ec-efd1-11ec-ba43-dac502259ad0.jpg

Dncoder

Decoder也是由N=6個(gè)相同層組成。

e918170a-efd1-11ec-ba43-dac502259ad0.jpg

除了每個(gè)編碼器層中的兩個(gè)子層之外,解碼器還插入了第三種子層對(duì)編碼器棧的輸出實(shí)行“多頭”的Attention。與編碼器類似,我們?cè)诿總€(gè)子層兩端使用殘差連接進(jìn)行短路,然后進(jìn)行層的規(guī)范化處理。

e92985d0-efd1-11ec-ba43-dac502259ad0.jpge938dfbc-efd1-11ec-ba43-dac502259ad0.jpge9450a62-efd1-11ec-ba43-dac502259ad0.jpg

3.Attention

e9545bb6-efd1-11ec-ba43-dac502259ad0.jpge9684de2-efd1-11ec-ba43-dac502259ad0.jpge97583cc-efd1-11ec-ba43-dac502259ad0.jpg

“多頭”機(jī)制能讓模型考慮到不同位置的Attention,另外“多頭”Attention可以在不同的子空間表示不一樣的關(guān)聯(lián)關(guān)系,使用單個(gè)Head的Attention一般達(dá)不到這種效果。

e98bf5d0-efd1-11ec-ba43-dac502259ad0.jpge998afaa-efd1-11ec-ba43-dac502259ad0.jpge9a2f74e-efd1-11ec-ba43-dac502259ad0.jpg

4.Attention在模型中的應(yīng)用

Transformer中以三種不同的方式使用了“多頭”Attention:

1) 在"Encoder-Decoder Attention"層,Query來(lái)自先前的解碼器層,并且Key和Value來(lái)自Encoder的輸出。Decoder中的每個(gè)位置Attend輸入序列中的所有位置,這與Seq2Seq模型中的經(jīng)典的Encoder-Decoder Attention機(jī)制[15]一致。

2) Encoder中的Self-attention層。在Self-attention層中,所有的Key、Value和Query都來(lái)同一個(gè)地方,這里都是來(lái)自Encoder中前一層的輸出。Encoder中當(dāng)前層的每個(gè)位置都能Attend到前一層的所有位置。

3) 類似的,解碼器中的Self-attention層允許解碼器中的每個(gè)位置Attend當(dāng)前解碼位置和它前面的所有位置。這里需要屏蔽解碼器中向左的信息流以保持自回歸屬性。具體的實(shí)現(xiàn)方式是在縮放后的點(diǎn)積Attention中,屏蔽(設(shè)為負(fù)無(wú)窮)Softmax的輸入中所有對(duì)應(yīng)著非法連接的Value。

5.Position-wise前饋網(wǎng)絡(luò)

e9b135d4-efd1-11ec-ba43-dac502259ad0.jpg

6.Embedding和Softmax

e9c15568-efd1-11ec-ba43-dac502259ad0.jpg

7.位置編碼

e9cf8e58-efd1-11ec-ba43-dac502259ad0.jpge9d868c0-efd1-11ec-ba43-dac502259ad0.jpge9e8b4fa-efd1-11ec-ba43-dac502259ad0.jpg

我們也嘗試了使用預(yù)學(xué)習(xí)的位置Embedding,但是發(fā)現(xiàn)這兩個(gè)版本的結(jié)果基本是一樣的。我們選擇正弦曲線版本的實(shí)現(xiàn),因?yàn)槭褂么税姹灸茏屇P湍軌蛱幚泶笥谟?xùn)練語(yǔ)料中最大序了使用列長(zhǎng)度的序列。

8.完整模型

下面定義了連接完整模型并設(shè)置超參的函數(shù)。

e9fda4b4-efd1-11ec-ba43-dac502259ad0.jpg

審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4970

    瀏覽量

    74023
  • Transformer
    +關(guān)注

    關(guān)注

    0

    文章

    156

    瀏覽量

    6941
  • pytorch
    +關(guān)注

    關(guān)注

    2

    文章

    813

    瀏覽量

    14857

原文標(biāo)題:搞懂Transformer結(jié)構(gòu),看這篇PyTorch實(shí)現(xiàn)就夠了

文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺(jué)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Transformer 入門(mén):從零理解 AI 大模型的核心原理

    分?jǐn)?shù)轉(zhuǎn)換為概率 Layer Norm (x-μ)/σ 穩(wěn)定訓(xùn)練過(guò)程 殘差連接 y = F(x) + x 幫助梯度流動(dòng) GELU x × Φ(x) 添加非線性 關(guān)鍵概念回顧 概念 一句話解釋 Token
    發(fā)表于 02-10 16:33

    Transformer如何讓自動(dòng)駕駛大模型獲得思考能力?

    在談及自動(dòng)駕駛時(shí),Transformer一直是非常關(guān)鍵的技術(shù),為何Transformer在自動(dòng)駕駛行業(yè)一直被提及?
    的頭像 發(fā)表于 02-01 09:15 ?4211次閱讀

    在Ubuntu20.04系統(tǒng)中訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型的一些經(jīng)驗(yàn)

    , batch_size=512, epochs=20)總結(jié) 這個(gè)核心算法中的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)訓(xùn)練過(guò)程,是用來(lái)對(duì)MNIST手寫(xiě)數(shù)字圖像進(jìn)行分類的。模型將圖像作為輸入,通過(guò)卷積和池化層提取圖像的特征,然后通過(guò)全連接層進(jìn)行分類預(yù)
    發(fā)表于 10-22 07:03

    【「AI芯片:科技探索與AGI愿景」閱讀體驗(yàn)】+第二章 實(shí)現(xiàn)深度學(xué)習(xí)AI芯片的創(chuàng)新方法與架構(gòu)

    運(yùn)算符用于編碼器層和解碼器層。 ②LightSeq2采用了混合精度更新進(jìn)行訓(xùn)練。 ③LightSeq2推出了加速整個(gè)Transformer訓(xùn)練過(guò)程的方案。 4、基于FPGA的大模型計(jì)算
    發(fā)表于 09-12 17:30

    AI的核心操控:從算法到硬件的協(xié)同進(jìn)化

    到頂層的應(yīng)用算法,共同構(gòu)成AI的“智能引擎”。 算法層:模型架構(gòu)與訓(xùn)練控制 現(xiàn)代AI的核心是深度學(xué)習(xí)算法,其操控依賴于神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)設(shè)計(jì)和訓(xùn)練過(guò)程的精細(xì)化調(diào)控。例如,
    的頭像 發(fā)表于 09-08 17:51 ?1004次閱讀

    自動(dòng)駕駛中Transformer模型會(huì)取代深度學(xué)習(xí)嗎?

    [首發(fā)于智駕最前沿微信公眾號(hào)]近年來(lái),隨著ChatGPT、Claude、文心一言等大語(yǔ)言模型在生成文本、對(duì)話交互等領(lǐng)域的驚艷表現(xiàn),“Transformer架構(gòu)是否正在取代傳統(tǒng)深度學(xué)習(xí)”這一話題一直被
    的頭像 發(fā)表于 08-13 09:15 ?4207次閱讀
    自動(dòng)駕駛中<b class='flag-5'>Transformer</b>大<b class='flag-5'>模型</b>會(huì)取代深度學(xué)習(xí)嗎?

    如何在Ray分布式計(jì)算框架下集成NVIDIA Nsight Systems進(jìn)行GPU性能分析

    在大語(yǔ)言模型的強(qiáng)化學(xué)習(xí)訓(xùn)練過(guò)程中,GPU 性能優(yōu)化至關(guān)重要。隨著模型規(guī)模不斷擴(kuò)大,如何高效地分析和優(yōu)化 GPU 性能成為開(kāi)發(fā)者面臨的主要挑戰(zhàn)之一。
    的頭像 發(fā)表于 07-23 10:34 ?2426次閱讀
    如何在Ray分布式計(jì)算框架下集成NVIDIA Nsight Systems進(jìn)行GPU性能分析

    make sence成的XML文件能上傳到自助訓(xùn)練模型上嗎?

    make sence成的XML文件能上傳到自助訓(xùn)練模型上嗎
    發(fā)表于 06-23 07:38

    Transformer架構(gòu)中編碼器的工作流程

    編碼器是Transformer體系結(jié)構(gòu)的基本組件。編碼器的主要功能是將輸入標(biāo)記轉(zhuǎn)換為上下文表示。與早期獨(dú)立處理token的模型不同,Transformer編碼器根據(jù)整個(gè)序列捕獲每個(gè)to
    的頭像 發(fā)表于 06-10 14:27 ?1084次閱讀
    <b class='flag-5'>Transformer</b>架構(gòu)中編碼器的工作流程

    【書(shū)籍評(píng)測(cè)活動(dòng)NO.62】一本書(shū)讀懂 DeepSeek 全家桶核心技術(shù):DeepSeek 核心技術(shù)揭秘

    、語(yǔ)言一致性),優(yōu)化模型在數(shù)學(xué)、編程等結(jié)構(gòu)化任務(wù)中的表現(xiàn)。 通用對(duì)齊RL:融入人類偏好獎(jiǎng)勵(lì)模型,確保模型在開(kāi)放域任務(wù)中的安全性與實(shí)用性。 DeepSeek-R1 的
    發(fā)表于 06-09 14:38

    算力網(wǎng)絡(luò)的“神經(jīng)突觸”:AI互聯(lián)技術(shù)如何重構(gòu)分布式訓(xùn)練范式

    ? 電子發(fā)燒友網(wǎng)綜合報(bào)道 隨著AI技術(shù)迅猛發(fā)展,尤其是大型語(yǔ)言模型的興起,對(duì)于算力的需求呈現(xiàn)出爆炸性增長(zhǎng)。這不僅推動(dòng)了智算中心的建設(shè),還對(duì)網(wǎng)絡(luò)互聯(lián)技術(shù)提出了新的挑戰(zhàn)。 ? 在AI大模型訓(xùn)練過(guò)程
    的頭像 發(fā)表于 06-08 08:11 ?7472次閱讀
    算力網(wǎng)絡(luò)的“神經(jīng)突觸”:AI互聯(lián)技術(shù)如何重構(gòu)分布式<b class='flag-5'>訓(xùn)練</b>范式

    海思SD3403邊緣計(jì)算AI數(shù)據(jù)訓(xùn)練概述

    模型,將模型轉(zhuǎn)化為嵌入式AI模型,模型升級(jí)AI攝像機(jī),進(jìn)行AI識(shí)別應(yīng)用。 AI訓(xùn)練模型是不斷迭
    發(fā)表于 04-28 11:11

    請(qǐng)問(wèn)如何在imx8mplus上部署和運(yùn)行YOLOv5訓(xùn)練模型?

    我正在從事 imx8mplus yocto 項(xiàng)目。我已經(jīng)在自定義數(shù)據(jù)集上的 YOLOv5 上訓(xùn)練了對(duì)象檢測(cè)模型。它在 ubuntu 電腦上運(yùn)行良好。現(xiàn)在我想在我的 imx8mplus 板上運(yùn)行該模型
    發(fā)表于 03-25 07:23

    數(shù)據(jù)標(biāo)注服務(wù)—奠定大模型訓(xùn)練的數(shù)據(jù)基石

    數(shù)據(jù)標(biāo)注是大模型訓(xùn)練過(guò)程中不可或缺的基礎(chǔ)環(huán)節(jié),其質(zhì)量直接影響著模型的性能表現(xiàn)。在大模型訓(xùn)練中,數(shù)據(jù)標(biāo)注承擔(dān)著將原始數(shù)據(jù)轉(zhuǎn)化為機(jī)器可理解、可學(xué)
    的頭像 發(fā)表于 03-21 10:30 ?3378次閱讀

    標(biāo)貝數(shù)據(jù)標(biāo)注服務(wù):奠定大模型訓(xùn)練的數(shù)據(jù)基石

    數(shù)據(jù)標(biāo)注是大模型訓(xùn)練過(guò)程中不可或缺的基礎(chǔ)環(huán)節(jié),其質(zhì)量直接影響著模型的性能表現(xiàn)。在大模型訓(xùn)練中,數(shù)據(jù)標(biāo)注承擔(dān)著將原始數(shù)據(jù)轉(zhuǎn)化為機(jī)器可理解、可學(xué)
    的頭像 發(fā)表于 03-21 10:27 ?1132次閱讀
    標(biāo)貝數(shù)據(jù)標(biāo)注服務(wù):奠定大<b class='flag-5'>模型</b><b class='flag-5'>訓(xùn)練</b>的數(shù)據(jù)基石