<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

首個線性注意力Transformer大模型!1750億參數,速度和精度更優

CVer ? 來源:機器之心 ? 2023-07-31 15:20 ? 次閱讀

GPT 等大型語言模型(LLM)的成功離不開 Softmax 注意力機制,但這一機制也存在著成本高等一些缺點。

近日,上海人工智能實驗室和 OpenNLPLab 的一個研究團隊提出了一種新的大型語言模型 TransNormerLLM,其中完全拋棄了基于 Softmax 的注意力機制,而是使用了新提出的線性注意力。據介紹,TransNormerLLM 是首個基于線性注意力的大型語言模型(LLM),其在準確度和效率方面的表現優于傳統的基于 Softmax 注意力的模型。研究者也將發布其預訓練模型的開源版本。

97997bce-2ef2-11ee-815d-dac502259ad0.png

論文:https://arxiv.org/abs/2307.14995

模型:https://github.com/OpenNLPLab/TransnormerLLM

大型語言模型已經為自然語言處理(NLP)領域帶來了變革。它們能出色地處理許多不同類型的任務,提升了在計算框架中使用人類語言進行理解、生成和交互的能力。之前語言建模的發展主要圍繞 Transformer 架構,其中堪稱支柱的模型包括基本的 Transformer、GPT 系列、BERT 和 BART 等開創性的模型。Transformer 架構的成功立足于 softmax 注意力機制,該機制可以識別出數據驅動的模型方案中輸入 token 之間的依賴關系,其還能感知全局位置,讓模型能有效處理自然語言的長程動態情況。

即便如此,傳統的 Transformer 依然存在局限。首要的一點,它們有著對于序列長度的二次時間復雜度,這會限制它們的可擴展性并拖累訓練和推理階段的計算資源和時間效率。為了將這種二次時間復雜性簡化至線性復雜性,已經有不少研究者提出了多種不同的序列建模方法。但是,這些方法卻難以用于 LLM,原因有二:1) 它們在語言建模任務上的表現往往不如人意;2) 它們在真實世界場景中并沒有展現出速度優勢。

這篇論文提出的 TransNormerLLM 是首個基于線性注意力的 LLM,其在準確度和效率方面都優于傳統的 softmax 注意力。TransNormerLLM 的構建基于之前的線性注意力架構 TransNormer,同時也做了一些修改讓性能更優。TransNormerLLM 中關鍵性的改進包括位置嵌入、線性注意力加速、門控機制、張量歸一化和推理加速。

其中值得格外注意的一項改進是將 TransNormer 的 DiagAttention 替換成線性注意力,從而可提升全局的互動性能。研究者還引入了帶指數衰減的 LRPE 來解決 dilution 問題。此外,研究者還引入了 Lightning Attention(閃電注意力)這種全新技術,并表示其可以將線性注意力在訓練時的速度提升兩倍,并且其還能通過感知 IO 將內存用量減少 4 倍。不僅如此,他們還簡化了 GLU 和歸一化方法,而后者將整體的速度提升了 20%。他們還提出了一種穩健的推理算法,可以在不同的序列長度下保證數值穩定和恒定的推理速度,由此能提升模型在訓練和推理階段的效率。

為了驗證 TransNormerLLM 的效果,研究者精心收集了一個大型語料庫,其大小超過 6TB,token 數更是超過 2 萬億。為了確保數據的質量,他們還開發了一種用于過濾所收集語料庫的自清理(self-cleaning)策略。如表 1 所示,研究者對原始 TransNormer 模型進行了擴展,得到了參數量從 3.85 億到 1750 億的多個 TransNormerLLM 模型。然后他們基于新的大型語料庫進行了全面實驗和控制變量研究,結果表明新方法的性能優于基于 softmax 注意力的方法并且還有更快的訓練和推理速度。

97a652a4-2ef2-11ee-815d-dac502259ad0.png

表 1:TransNormerLLM 模型的多種變體

為了促進 LLM 領域的研究,上海人工智能實驗室和 OpenNLPLab 的這些研究者也將開源自己的預訓練模型,他們表示這是為了「讓研究者和實踐者基于我們的成果構建應用以及探索用于 LLM 的高效 transformer 結構」。

TransNormerLLM

架構改進

下面將簡單介紹 TransNormerLLM 的各個模塊以及研究者提出的一些改進措施。

改進一:位置編碼

TransNormer 中的較低層使用了 DiagAttention 來避免 dilution 問題。但是,這會導致 token 之間缺乏全局互動能力。為了解決這個問題,研究者為 TransNormerLLM 使用了帶指數衰減的 LRPE(線性化相對位置編碼),從而可在較低層保留完整的注意力。研究者把這種方法稱為 LRPE-d。

改進二:門控機制

門控可以增強模型的性能并使訓練過程平滑。研究者為 TransNormerLLM 使用了來自論文《Transformer quality in linear time》的 Flash 方法并在 token 混合中使用了門控式線性注意力(GLA)的結構。

為了進一步提升模型速度,他們還提出了 Simple GLU(SGLU),其去除了原始 GLU 結構的激活函數,因為門本身就能引入非線性。

改進三:張量歸一化

研究者使用了 TransNormer 中引入的 NormAttention。在 TransNormerLLM 中,他們使用一種新的簡單歸一化函數 SimpleRMSNorm(簡寫為 SRMSNorm)替換了 RMSNorm。

整體結構

圖 1 展示了 TransNormerLLM 的整體結構。

97e756b4-2ef2-11ee-815d-dac502259ad0.png

圖 1:新提出模型的整體架構

在該結構中,輸入 X 的更新通過兩個連續步驟完成:首先,其通過使用了 SRMSNorm 歸一化的門控式線性注意力(GLA)模塊。然后,再次通過使用了 SRMSNorm 歸一化的簡單門控式線性單元(SGLU)模塊。這種整體架構有助于提升模型的性能表現。下方給出了這個整體流程的偽代碼:

97ed3976-2ef2-11ee-815d-dac502259ad0.png

訓練優化

閃電注意力

為了加快注意力計算速度,研究者引入了閃電注意力(Lightning Attention)算法,這能讓新提出的線性注意力更適合 IO(輸入和輸出)處理。

算法 1 展示了閃電注意力的前向通過的實現細節,算法 2 則是后向通過的。研究者表示,他們還有一個可以更快計算梯度的實現版本,這會在未來發布。

9803e0b8-2ef2-11ee-815d-dac502259ad0.png

98613bd2-2ef2-11ee-815d-dac502259ad0.png

模型并行化

為了在計算機集群上分散所有模型參數、梯度和優化器狀態張量,研究者使用了全分片數據并行(FSDP/Fully Sharded Data Parallel)。這種策略性分區方法可減少對每個 GPU 的內存占用,從而優化了內存利用率。為了進一步提高效率,他們使用了激活檢查點(Activation Checkpointing),這可減少后向通過過程中緩存在內存中的激活數量。相反,當計算這些梯度時,這些梯度會被移除并重新計算。該技術有助于提升計算效率和節省資源。此外,為了在減少 GPU 內存消耗的同時加快計算速度,研究者還使用了自動混合精度(AMP)。

除了上述成果外,研究者還更進一步通過對線性 transformer 執行模型并行化而進行了系統工程優化,其靈感很大程度上來自于英偉達的 Megatron-LM 模型并行化,在傳統的 Transformer 模型中,每個 transformer 層都有一個自注意力模塊,其后跟著一個兩層多層感知器(MLP)模塊。當使用 Megatron-LM 模型并行性時,是在這兩個模塊上獨立使用。類似地,TransNormerLLM 結構也是由兩個主要模塊構成:SGLU 和 GLA;這兩者的模型并行化分開執行。

穩健推理

這讓 TransNormerLLM 能以 RNN 的形式執行推理。算法 3 給出了這個過程的細節。但其中存在數值精度問題。

986974a0-2ef2-11ee-815d-dac502259ad0.png

為了避免這些問題,研究者提出了穩健推理算法,見算法 4。

9885e6a8-2ef2-11ee-815d-dac502259ad0.png

原推理算法和穩健推理算法得到的結果是一樣的。

語料庫

研究者從互聯網收集了大量可公開使用的文本,總大小超過 700TB。收集到的數據經由他們的數據預處理程序進行處理,如圖 2 所示,留下 6TB 的干凈語料庫,其中包含大約 2 萬億 token。為了提供更好的透明度,幫助用戶更好理解,他們對數據源進行了分門別類。表 2 給出了具體的類別情況。

98adce0c-2ef2-11ee-815d-dac502259ad0.png

圖 2:數據預處理流程

98b4ebba-2ef2-11ee-815d-dac502259ad0.png

表 2:語料庫統計數據

實驗

研究者在 Metaseq 框架中使用 PyTorch 和 Trition 實現了 TransNormerLLM。模型的訓練使用了 Adam 優化器,FSDP 也被用于高效地將模型擴展到 NVIDIA A100 80G 集群。他們也適當地使用了模型并行技術來優化性能。

架構消融實驗

98dff3c8-2ef2-11ee-815d-dac502259ad0.png

表 3:Transformer vs TransNormerLLM。在相同的配置下,當模型參數數量為 385M 和 1B 時,TransNormerLLM 的性能比 Transformer 分別好 5% 和 9%。

990048f8-2ef2-11ee-815d-dac502259ad0.png

表 4:TransNormer vs TransNormerLLM。TransNormerLLM 的實驗結果是最好的。

9911405e-2ef2-11ee-815d-dac502259ad0.png

表 5:位置編碼組合使用 LRPE+LRPE-d 得到的結果最優。

993472cc-2ef2-11ee-815d-dac502259ad0.png

表 6:衰減溫度方面的消融實驗結果。結果表明新方法更優。

994ee63e-2ef2-11ee-815d-dac502259ad0.png

表 7:門控機制方面的消融實驗結果。使用該門控機制的模型表現更好。

996e0e4c-2ef2-11ee-815d-dac502259ad0.png

表 8:GLA 激活函數的消融實驗結果。用不同激活函數得到結果差不多。

9977845e-2ef2-11ee-815d-dac502259ad0.png

表 9:GLU 激活函數的消融實驗結果。去除激活函數對結果沒有負面影響。

9992c232-2ef2-11ee-815d-dac502259ad0.png

表 10:歸一化函數。使用以下歸一化函數的結果差異不大。

99b740da-2ef2-11ee-815d-dac502259ad0.png

圖 3:對 SRMSNorm 實現的性能評估

99c82bde-2ef2-11ee-815d-dac502259ad0.png

圖 4:線性注意力和閃電注意力之間的內存和速度比較

99f63f60-2ef2-11ee-815d-dac502259ad0.png

圖 5:推理時間和內存占用情況

系統優化

9a00c6ec-2ef2-11ee-815d-dac502259ad0.png

表 11:模型并行性性能

9a207eb0-2ef2-11ee-815d-dac502259ad0.png

表 12:訓練不同大小的模型的效率

9a4bce62-2ef2-11ee-815d-dac502259ad0.png

表 13:訓練 Transformer 和 TransNormerLLM 的最大上下文長度

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 線性
    +關注

    關注

    0

    文章

    188

    瀏覽量

    24973
  • 語言模型
    +關注

    關注

    0

    文章

    434

    瀏覽量

    10044
  • Transformer
    +關注

    關注

    0

    文章

    130

    瀏覽量

    5898
  • 大模型
    +關注

    關注

    2

    文章

    1516

    瀏覽量

    1099

原文標題:放棄Softmax!首個線性注意力Transformer大模型!1750億參數,速度和精度更優

文章出處:【微信號:CVer,微信公眾號:CVer】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    基于Transformer的多模態BEV融合方案

    由于大量的相機和激光雷達特征以及注意力的二次性質,將 Transformer 架構簡單地應用于相機-激光雷達融合問題是很困難的。
    發表于 01-23 11:39 ?222次閱讀
    基于<b class='flag-5'>Transformer</b>的多模態BEV融合方案

    全新近似注意力機制HyperAttention:對長上下文友好、LLM推理提速50%

    已經成功應用于自然語言處理、計算機視覺和時間序列預測等領域的各種學習任務。雖然取得了成功,但這些模型仍面臨著嚴重的可擴展性限制,原因是對其注意力層的精確計算導致了二次(在序列長度上)運行時和內存復雜性。這對將 Transformer
    的頭像 發表于 11-20 09:15 ?297次閱讀
    全新近似<b class='flag-5'>注意力</b>機制HyperAttention:對長上下文友好、LLM推理提速50%

    模型基礎Transformer結構的原理解析

    該研究的結果適用于一般數據集,可以擴展到交叉注意力層,并且研究結論的實際有效性已經通過徹底的數值實驗得到了驗證。該研究建立一種新的研究視角,將多層 transformer 看作分離和選擇最佳 token 的 SVM 層次結構。
    發表于 09-07 10:50 ?801次閱讀
    大<b class='flag-5'>模型</b>基礎<b class='flag-5'>Transformer</b>結構的原理解析

    阿里平頭哥發布首個 RISC-V AI 軟硬全棧平臺

    HHB 實現了在典型網絡性能比第三方工具平均提升 88%,并增加支持運行 Transformer、TensorFlow、PyTorch 等 170 余個主流框架 AI 模型。 基于此,平頭哥發布了首個
    發表于 08-26 14:14

    語音應用中Transformer和循環神經網絡的比較

    Transformer中,注意力圖的某些頭部并不總是像Tacotron 2中那樣是對角線的。因此,我們需要選擇在哪些位置應用引導性注意力損失[24]。-使用Transformer進行
    發表于 07-24 11:30 ?408次閱讀
    語音應用中<b class='flag-5'>Transformer</b>和循環神經網絡的比較

    詳細介紹?注意力機制中的掩碼

    注意力機制的掩碼允許我們發送不同長度的批次數據一次性的發送到transformer中。在代碼中是通過將所有序列填充到相同的長度,然后使用“attention_mask”張量來識別哪些令牌是填充的來做到這一點,本文將詳細介紹這個掩碼的原理和機制。
    的頭像 發表于 07-17 16:46 ?458次閱讀
    詳細介紹?<b class='flag-5'>注意力</b>機制中的掩碼

    transformer模型詳解:Transformer 模型的壓縮方法

    ?動機&背景 Transformer 模型在各種自然語言任務中取得了顯著的成果,但內存和計算資源的瓶頸阻礙了其實用化部署。低秩近似和結構化剪枝是緩解這一瓶頸的主流方法。然而,作者通過分析發現,結構化
    的頭像 發表于 07-17 10:50 ?1344次閱讀
    <b class='flag-5'>transformer</b><b class='flag-5'>模型</b>詳解:<b class='flag-5'>Transformer</b> <b class='flag-5'>模型</b>的壓縮方法

    如何計算transformer模型參數

    參數規模大,訓練數據規模大。以GPT3為例,GPT3的參數量為1750億,訓練數據量達到了570GB。進而,訓練大規模語言模型面臨兩個主要挑戰:顯存效率和計算效率。 現在業界的大語言
    的頭像 發表于 07-10 09:13 ?7372次閱讀
    如何計算<b class='flag-5'>transformer</b><b class='flag-5'>模型</b>的<b class='flag-5'>參數</b>量

    圖解transformer中的自注意力機制

    在整個注意力過程中,模型會學習了三個權重:查詢、鍵和值。查詢、鍵和值的思想來源于信息檢索系統。所以我們先理解數據庫查詢的思想。
    的頭像 發表于 06-29 17:06 ?794次閱讀
    圖解<b class='flag-5'>transformer</b>中的自<b class='flag-5'>注意力</b>機制

    基于transformer的編碼器-解碼器模型的工作原理

    與基于 RNN 的編碼器-解碼器模型類似,基于 transformer 的編碼器-解碼器模型由一個編碼器和一個解碼器組成,且其編碼器和解碼器均由 殘差注意力模塊 (residual a
    發表于 06-11 14:17 ?1312次閱讀
    基于<b class='flag-5'>transformer</b>的編碼器-解碼器<b class='flag-5'>模型</b>的工作原理

    PyTorch教程-16.5。自然語言推理:使用注意力

    )提出用注意力機制解決自然語言推理,并將其稱為“可分解注意力模型”。這導致模型沒有循環層或卷積層,在 SNLI 數據集上以更少的參數獲得了
    的頭像 發表于 06-05 15:44 ?343次閱讀
    PyTorch教程-16.5。自然語言推理:使用<b class='flag-5'>注意力</b>

    PyTorch教程-11.5。多頭注意力

    與較長范圍)在一個序列中。因此,這可能是有益的 允許我們的注意力機制聯合使用查詢、鍵和值的不同表示子空間。 為此,可以使用以下方式轉換查詢、鍵和值,而不是執行單個注意力池h獨立學習線性投影。那么
    的頭像 發表于 06-05 15:44 ?367次閱讀
    PyTorch教程-11.5。多頭<b class='flag-5'>注意力</b>

    基于YOLOv5s基礎上實現五種視覺注意力模塊的改進

    基礎上實現五種視覺注意力模塊的改進,然后訓練相同的輪次,橫向比較模型精度。 YOLOv5添加注意模塊魔改 ?視覺注意力機制是一個好東西,即
    的頭像 發表于 06-02 14:52 ?943次閱讀
    基于YOLOv5s基礎上實現五種視覺<b class='flag-5'>注意力</b>模塊的改進

    計算機視覺中的注意力機制

    計算機視覺中的注意力機制 卷積神經網絡中常用的Attention 參考 注意力機制簡介與分類 注意力機制(Attention Mechanism) 是機器學習中的一種數據處理方法,廣泛應用
    發表于 05-22 09:46 ?0次下載
    計算機視覺中的<b class='flag-5'>注意力</b>機制

    詳解五種即插即用的視覺注意力模塊

    SE注意力模塊的全稱是Squeeze-and-Excitation block、其中Squeeze實現全局信息嵌入、Excitation實現自適應權重矯正,合起來就是SE注意力模塊。
    的頭像 發表于 05-18 10:23 ?1881次閱讀
    詳解五種即插即用的視覺<b class='flag-5'>注意力</b>模塊
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>