英偉達Llama-3.1-Nemotron-Ultra-253B-v1語言模型論文快讀:FFN Fusion

FFN Fusion: Rethinking Sequential Computation in Large Language Models

代表模型:Llama-3.1-Nemotron-Ultra-253B-v1

1. 摘要

本文介紹了一種名為 FFN Fusion 的架構優化技術,旨在通過識別和利用自然并行化機會來減少大型語言模型(LLMs)中的順序計算。研究發現,移除特定注意力層后剩余的前饋網絡(FFN)層序列通常可以并行化,且對準確性影響最小。通過將這些序列轉換為并行操作,顯著降低了推理延遲,同時保留了模型行為。作者將這種技術應用于 Llama-3.1-405B-Instruct,創建了一個名為 Llama-Nemotron-Ultra-253B-Base 的高效模型,該模型在推理延遲上實現了 1.71 倍的速度提升,每令牌成本降低了 35 倍,同時在多個基準測試中保持了強大的性能。

2. 引言

大型語言模型(LLMs)已成為變革性技術,但其計算需求已成為部署成本和資源需求的根本瓶頸。現有的優化技術如量化、剪枝和專家混合(MoE)各自面臨挑戰。本文提出 FFN Fusion,通過識別 FFN 層中的計算獨立性模式,實現多 GPU 上的并行執行,提高硬件利用率。

3. 預備知識

Transformer 基礎

LLMs 通常基于 Transformer 架構,由一系列順序塊組成,每個塊包含注意力層和 FFN 層。FFN 層使用 SwiGLU 模塊,定義為:
其中,σ 是 SiLU 激活函數,

Puzzle 框架

Puzzle 是一種神經架構搜索(NAS)框架,通過剪枝或重新配置每個 Transformer 塊來優化訓練后的 LLM 的推理效率。Puzzle 通常會移除許多注意力層,留下連續的 FFN 層序列。

4. FFN Fusion 方法

關鍵洞察

FFN Fusion 的核心思想是,移除注意力層后,連續的 FFN 層序列可以被并行化。具體來說,多個順序 FFN 層可以融合成一個更寬的層,從而實現簡單的并行執行。

理論基礎

定理 3.1 表明,多個 FFN 函數的和等價于一個單一的 FFN 函數,其權重矩陣是原始 FFN 權重矩陣的拼接。這使得多個 FFN 層可以融合為一個更寬的層。

效率動機與分析

LLMs 的設計通常是順序塊,隨著模型規模的增大,塊的大小和數量增加。通過減少計算圖的深度,可以減少同步時間,提高硬件利用率。

塊依賴分析

通過計算塊之間的依賴關系,識別出適合并行化的 FFN 序列。依賴矩陣 M 的構造基于塊 j 在移除塊 i 后的貢獻變化,量化塊之間的依賴關系。

5. 大規模模型的 FFN Fusion 應用

從 Llama-405B 到 Ultra-253B-Base

通過 Puzzle 搜索結果,作者從 Llama-405B 派生出一個 253B 參數的基線模型,該模型移除了許多注意力層,留下 50 個連續的 FFN 層塊。應用 FFN Fusion 后,這些層被融合為更少的層,顯著減少了模型深度。

額外訓練

為了恢復性能,作者使用知識蒸餾(KD)對融合后的模型進行微調。結果顯示,融合后的模型在 MMLU 和 MT-Bench 等基準測試中的性能得到了恢復甚至提升。

效率提升

Ultra-253B-Base 在推理延遲上實現了 1.71 倍的速度提升,每令牌成本降低了 35 倍,同時在多個基準測試中匹配或超過了原始 Llama-405B 的性能。

6. 額外的實驗研究

FFN Fusion 在 70B 規模模型中的應用

作者在 Llama-3.1-70B-Instruct 的派生模型上應用 FFN Fusion,結果表明,隨著融合強度的增加,模型深度減少,準確性略有下降,但通過知識蒸餾可以恢復性能。

移除 FFN 層與 FFN Fusion 的比較

與直接移除 FFN 層相比,FFN Fusion 在保持模型質量方面具有明顯優勢。移除 FFN 層會導致顯著的準確性下降,而融合則通過保留所有參數在一個并行模塊中,最小化了性能損失。

FFN 序列中最后一層的敏感性

實驗表明,融合 FFN 序列中的最后一層往往會導致更大的準確性下降,因此通常選擇跳過這些層以實現高效的融合。

融合可解釋性

通過分析層輸入和輸出之間的關系,作者解釋了 FFN Fusion 的可行性,并指出融合區域的層間依賴性較低,使得融合對模型行為的影響較小。

7. 塊并行化

方法

作者擴展了塊依賴分析,識別出適合并行化的完整 Transformer 塊序列。通過貪心算法選擇依賴性較低的塊序列進行并行化。

結果

實驗結果表明,完整塊并行化比 FFN Fusion 更具挑戰性,因為完整塊之間的依賴性更強。盡管如此,某些塊序列仍然可以并行化,從而提高推理吞吐量。

8. 結論

FFN Fusion 是一種有效的優化技術,可以顯著減少 LLMs 的順序計算,提高推理效率。通過在不同規模的模型上進行廣泛實驗,作者證明了 FFN Fusion 的有效性,并指出了未來研究方向,包括模型可解釋性、新架構設計和擴展到 MoE 模型等。

整理

技術關系圖:

在這里插入圖片描述

核心技術表

技術名稱描述優勢應用場景
FFN Fusion通過識別 FFN 層中的計算獨立性模式,將多個順序 FFN 層融合為一個更寬的層,實現并行化。顯著降低推理延遲,減少模型深度,提高硬件利用率,保持模型性能。優化大型語言模型(LLMs),特別是在移除注意力層后的 FFN 序列。
Puzzle 框架一種神經架構搜索(NAS)方法,用于優化推理效率,通過剪枝或重新配置 Transformer 塊。移除冗余的注意力層,生成適合 FFN Fusion 的模型結構。作為 FFN Fusion 的前置步驟,優化模型架構。
注意力剪枝移除模型中的注意力層,減少模型深度,生成連續的 FFN 層序列。降低計算復雜度,提高硬件利用率,為 FFN Fusion 提供基礎。為 FFN Fusion 提供連續的 FFN 層序列。
塊依賴分析通過量化塊之間的依賴關系,識別適合并行化的區域。提供模型中適合并行化的區域的可視化和量化依據。模型架構優化,識別適合 FFN Fusion 或完整塊并行化的區域。
知識蒸餾(KD)使用知識蒸餾從原始模型中恢復或提升融合后的模型性能。提高模型準確性,尤其是在融合或剪枝后。模型微調,特別是在應用 FFN Fusion 后恢復性能。
完整塊并行化嘗試將完整的 Transformer 塊(包含注意力和 FFN)并行化。進一步提高推理吞吐量,特別是在大規模模型部署中。大規模模型部署,探索更高的并行化潛力。

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

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

相關文章

Django學習記錄-1

Django學習記錄-1 雖然網上教程都很多,但是感覺自己記錄一下才屬于自己,之后想找也方面一點,文采不佳看的不爽可繞道。 參考貼 從零開始的Django框架入門到實戰教程(內含實戰實例) - 01 創建項目與app、加入靜態文件、模板語法介紹&#xff…

Python爬蟲第7節-requests庫的高級用法

目錄 前言 一、文件上傳 二、Cookies 三、會話維持 四、SSL證書驗證 五、代理設置 六、超時設置 七、身份認證 八、Prepared Request 前言 上一節,我們認識了requests庫的基本用法,像發起GET、POST請求,以及了解Response對象是什么。…

Python 要致富先修路

今天準備在原有基礎上重新深入學習并記錄python學習進程。 # 整體思路 不廢話: 階段1:精選入門電子教程堅持學習; 階段2:跟著教程學習代碼思維,做好學習筆記并構建知識庫方便以后速查; 階段3&#xff…

微服務無感發布實踐:基于Nacos的客戶端緩存與故障轉移機制

微服務無感發布實踐:基于Nacos的客戶端緩存與故障轉移機制 背景與問題場景 在微服務架構中,服務的動態擴縮容、滾動升級是常態,而服務實例的上下線需通過注冊中心(如Nacos)實現服務發現的實時同步。但在實際生產環境…

2025年的Android NDK 快速開發入門

十年前寫過一篇介紹NDK開發的文章《Android實戰技巧之二十三:Android Studio的NDK開發》,今天看來已經發生了很多變化,NDK開發變得更加容易了。下面就寫一篇當下NDK開發快速入門。 **原生開發套件 (NDK) **是一套工具,使開發者能…

Shell 編程之條件語句

目錄 條件測試操作 文件測試 整數值比較 字符串比較 邏輯測試 if 條件語句 if語句的結構 1、單分支 if 語句 2、雙分支 if 語句 3、多分支 if 語句 if語句應用實例 1、單分支 if 語句應用 2、雙分支 if 語句應用 3、多分支 if 語句應用 case 分支語句 case語句的結構 case語…

【模板】縮點

洛谷p3387 思路: 算法:tarjan算法 根據題意,我們只要找到一個路徑,使得最終權重最大即可,首先,根據題目可知,如果一個點在一個環上,那么我們就將這整個環都選上,題目上允許我們能夠重復走,因此,我們可以將環縮成點,將環所稱點后,就可以轉換成樹,從沒有父節點的結點開始,我們向…

js觸發隱式類型轉換的場景

JavaScript 的隱式類型轉換(Implicit Type Coercion)會在某些操作或上下文中自動觸發,將值從一種類型轉換為另一種類型。以下是常見的觸發場景: 1. 使用 (寬松相等)比較時 會嘗試將兩邊的值轉換為相同類型后…

c++將jpg轉換為灰度圖

c將jpg轉換為灰度圖 step1:添加依賴 下載這兩個文件,放在cpp同一目錄下,編譯生成 https://github.com/nothings/stb/blob/master/stb_image_write.h https://github.com/nothings/stb/blob/master/stb_image.hstep2:C:\Users\wangrusheng\source\repos…

python——正則表達式

一、簡介 在 Python 中,正則表達式主要通過 re 模塊實現,用于字符串的匹配、查找、替換等操作。 二、Python的re模塊 使用前需要導入: import re 三、常用方法 方法描述re.match(pattern, string)從字符串開頭匹配,返回第一個匹…

Soybean Admin 配置vite兼容低版本瀏覽器、安卓電視瀏覽器(飛視瀏覽器)

環境 window10 pnpm 8.15.4 node 8.15.4 vite 5.1.4 soybean admin: 1.0.0 native-ui: 2.38.0 小米電視 MIUI TV版本:MiTV OS 2.7.1886(穩定版) 飛視瀏覽器:https://www.fenxm.com/1220.html在小米電視安裝飛視瀏覽器可以去小紅書查安裝教程&#xff1a…

系統與網絡安全------網絡通信原理(1)

資料整理于網絡資料、書本資料、AI,僅供個人學習參考。 文章目錄 網絡通信模型協議分層計算機網絡發展計算機網絡功能什么是協議為什么分層郵局實例 OSI模型OSI協議模型OSI七層模型OSI七層的功能簡介 TCP/IP模型OSI模型與TCP/IP模型TCP/IP協議族的組成各層PDU設備與…

如何使用通義靈碼完成PHP單元測試 - AI輔助開發教程

一、引言 在軟件開發過程中,測試是至關重要的一環。然而,在傳統開發中,測試常常被忽略或草草處理,很多時候并非開發人員故意為之,而是缺乏相應的測試思路和方法,不知道如何設計測試用例。隨著 AI 技術的飛…

批量清空圖片的相機參數、地理位置等敏感元數據

我們在使用相機或者手機拍攝照片的時候,照片中都會帶有一些敏感元數據信息,比如說相機的型號,參數,拍攝的時間地點等等。這些信息雖說不是那么引人注意,但是在某些時候他是非常隱私非常重要的。如果我們將這些信息泄露…

SQL優化算法解析 | PawSQL 如何將EXISTS子查詢“秒拆“為JOIN連接

在數據庫性能調優中,子查詢優化是提升查詢效率的關鍵點之一。今天,我們將分享一個使用 PawSQL 對EXISTS子查詢進行重寫優化的案例,展示如何通過合理的SQL重寫與索引設計,實現超過487516.45%的性能提升! 一、案例分析:EXISTS子查詢的性能困境 這個查詢的目的是找出…

大模型day1 - 什么是GPT

什么是GPT 全稱 Generative Pre-trained Transformer 是一種基于 Transformer 架構的大規模 預訓練 語言模型,由OpenAI研發,但GPT僅僅只是借鑒了Transformer 中 Decoder 的部分,并且做了升級 Transformer 架構 Transformer架構 是一種用于…

MDM功能演示:遠程鎖定與數據擦除,保障企業移動設備安全

在當今高度互聯的商業環境中,企業數據伴隨著員工穿梭于不同城市、時區和設備之間。智能手機、平板電腦和筆記本電腦賦予員工隨時隨地辦公的能力,但也帶來了新的安全挑戰:設備一旦遺失或落入不當之手,企業數據就面臨泄露風險。 無…

深度集成學習不均衡樣本圖像分類

用五個不同的網絡,然后對分類概率進行平均,得到分類結果。基本上分類精度可以提升10% 1.導入基本庫 import torch import copy import torch.nn as nn import torchvision.models as models from torchvision import datasets from torchvision import…

從零開始學java--泛型

泛型 目錄 泛型 引入 泛型類 泛型與多態 泛型方法 泛型的界限 類型擦除 函數式接口 Supplier供給型函數式接口: Consumer消費型函數式接口: Function函數型函數式接口: Predicate斷言式函數式接口: 判空包裝 引入 …

5?? Coze+AI應用基礎教學(2025年全新版本)

目錄 一、了解應用開發 1.1 扣子應用能做什么 1.2 開發流程 1.3 開發環境 二、快速搭建一個AI應用 2.1 AI翻譯應用介紹 2.2 設計你的應用功能 2.3 創建 AI 應用項目 2.4 編寫業務邏輯(新建工作流) 2.5 搭建用戶界面 2.6 效果測試 2.7 發布應用 一、了解應用開發 …