<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          清華大學(xué)汪玉教授團(tuán)隊(duì)力作《高效深度學(xué)習(xí)》出版:有效降低大模型應(yīng)用成本

          共 14417字,需瀏覽 29分鐘

           ·

          2024-07-03 18:08


          --文末贈(zèng)書--

          以 ChatGPT、CoPilot 等應(yīng)用為代表,大型語言模型的應(yīng)用已經(jīng)在各個(gè)領(lǐng)域展示出極大的潛力,甚至有望引領(lǐng)人機(jī)交互范式的巨大改變。然而,隨著大語言模型規(guī)模的增長,模型的計(jì)算和存儲(chǔ)開銷與實(shí)際可用的硬件資源之間的矛盾日益加劇。在這個(gè)背景下,高效深度學(xué)習(xí)領(lǐng)域顯得尤為關(guān)鍵,得到了廣泛關(guān)注。

          本文節(jié)選自《高效深度學(xué)習(xí):模型壓縮與設(shè)計(jì)(全彩)》一書。

          作者是清華大學(xué)電子工程系汪玉教授團(tuán)隊(duì),致力于提供通用人工智能算力解決方案。

          近期,汪玉團(tuán)隊(duì)在“高效大模型”推理方向做了一系列新工作,包括“Skeleton-of-Thought:Large Language Models Can Do Parallel Decoding”的高效算法設(shè)計(jì)工作、“FlashDecoding++:Faster Large Language Model Inference on GPUs”的 GPU 軟件算子設(shè)計(jì)工作,以及“FlightLLM:Efficient Large Language Model Inference witha Complete Mapping Flow on FPGAs”的 FPGA 硬件加速器設(shè)計(jì)工作等。

          汪玉教授團(tuán)隊(duì)在高效深度學(xué)習(xí)方法論上的認(rèn)知總結(jié)為本書,希望通過本書的出版幫助對(duì)這個(gè)領(lǐng)域感興趣的讀者,推動(dòng)領(lǐng)域的發(fā)展。




          大語言模型的架構(gòu)和推理過程

          當(dāng)前的大語言模型主要基于 Transformer 模型。最早的 Transformer 模型由一個(gè)編碼器(Encoder)和一個(gè)解碼器(Decoder)組成,這種結(jié)構(gòu)也被稱為 Encoder-Decoder 結(jié)構(gòu)。Encoder-Decoder 結(jié)構(gòu)最初被用于處理機(jī)器翻譯任務(wù),具體而言,編碼器將輸入詞塊(語言 A)序列編碼成高維的表征序列,解碼器利用編碼器輸出的高維表征序列自回歸地生成輸出詞塊序列(語言 B)。Encoder-Decoder 結(jié)構(gòu)的代表模型包括 T5、GLM等。

          除了 Encoder-Decoder結(jié)構(gòu),還有兩種常用的 Transformer 模型結(jié)構(gòu),分別是 Encoder-only 結(jié)構(gòu)Decoder-only結(jié)構(gòu)。顧名思義,這兩種結(jié)構(gòu)分別僅包含編碼器和解碼器。Encoder-only 結(jié)構(gòu)的代表模型包括BERT、RoBERTa等。2021 年 OpenAI 發(fā)布 GPT 系列模型后,Decoder-only 結(jié)構(gòu)逐漸成為主流,其代表模型包括 GPT、OPT、LLaMA 等。下面以常用的 Decoder-only 結(jié)構(gòu)為例,介紹基于 Transformer 的大語言模型的基本組成和推理過程。

          Decoder-only 的 Transformer 模型由若干個(gè) Transformer 模塊重復(fù)堆疊而成,其中每個(gè)模塊包含多頭自注意力(Multi-Head self-Attention,MHA)模塊、前饋神經(jīng)網(wǎng)絡(luò)(Feed ForwardNetwork,F(xiàn)FN)模塊和層歸一化操作,如圖 10.1 所示。

          Transformer 模型的完整推理流程通常包括預(yù)處理、模型推理和后處理三個(gè)步驟。其中,預(yù)處理將用戶提供的文本切分成詞塊序列用于模型推理,后處理則將模型推理得到的詞塊序列轉(zhuǎn)換成文本反饋給用戶。通常,使用預(yù)訓(xùn)練的分詞器(Tokenizer)完成上述詞塊序列和文本之間的轉(zhuǎn)換,常見的分詞器包括 BPE、SentencePiece等。模型推理時(shí),大語言模型需要進(jìn)行多次模型前向推理,每次前向推理均基于已有的詞塊序列生成一個(gè)新詞塊。若每次前向推理時(shí),均將新生成詞塊拼接在已有詞塊序列之后,并對(duì)整個(gè)詞塊序列進(jìn)行前向計(jì)算,就會(huì)產(chǎn)生大量的重復(fù)計(jì)算,增加模型端到端的推理延時(shí)。

          為了解決該問題,Pope 等人提出了 Key-Value 緩存技術(shù)。該技術(shù)的核心思想是,每次進(jìn)行前向推理時(shí),無須重新計(jì)算多頭注意力機(jī)制中的 Key 和 Value 矩陣,而是可以復(fù)用先前的計(jì)算結(jié)果進(jìn)行完整的多頭自注意力計(jì)算。因此,可以將每次前向推理得到的 Key 和 Value 矩陣存儲(chǔ)起來,以便在后續(xù)的計(jì)算中復(fù)用。Key-Value 緩存技術(shù)用額外存儲(chǔ)量換取了計(jì)算量的減少,被廣泛應(yīng)用于主流大語言模型推理引擎中。采用 Key-Value 緩存技術(shù)之后,可以將模型推理分為以下兩個(gè)階段。

          (1)預(yù)填充階段(Prefill Stage): 在該階段中,模型接收初始輸入文本并計(jì)算得到初始的Key-Value 緩存用以之后的詞塊生成。

          (2)解碼階段(Decoding Stage): 在該階段中,模型逐一生成詞塊。產(chǎn)生每個(gè)詞塊時(shí),模型會(huì)將初始的輸入和已經(jīng)產(chǎn)生的詞塊拼接在一起作為輸入,并根據(jù)模型輸出的概率分布采樣當(dāng)前詞塊。




          大語言模型的高效性分析


          效率瓶頸

          筆者將大語言模型推理時(shí)的效率瓶頸歸因于以下三個(gè)方面。

          (1)模型規(guī)模大。大語言模型擁有數(shù)十億至數(shù)千億的龐大參數(shù)量,例如 Meta 發(fā)布的開源大語言模型 LLaMA系列中最大的模型擁有 700 億個(gè)參數(shù)。龐大的參數(shù)量會(huì)帶來巨大的存儲(chǔ)開銷、訪存開銷及計(jì)算開銷。

          (2)注意力模塊開銷大。注意力模塊是 Transformer 模型的核心組件之一。以 LLaMA-7B 模型為例,當(dāng)輸入序列長度為 8 000 個(gè)詞塊時(shí),預(yù)填充階段的注意力模塊的延時(shí)占總延時(shí)的 71.8%。

          (3)解碼方式開銷大。大語言模型推理過程的解碼階段會(huì)依次、逐個(gè)地生成新詞塊。每生成一個(gè)新詞塊都需要進(jìn)行一次模型前向推理,這意味著模型的所有參數(shù)需要完成一次從 GPU顯存到 GPU 計(jì)算核心上的加載過程。這樣的負(fù)載計(jì)算強(qiáng)度低,在 GPU 平臺(tái)上運(yùn)行時(shí)訪存受限,不能充分利用 GPU 的算力,在批大?。˙atch Size)較小時(shí)尤為顯著。隨著解碼的進(jìn)行,詞塊序列的長度不斷增長,導(dǎo)致所需的 Key-Value 緩存空間持續(xù)增大。若無合適的存儲(chǔ)管理機(jī)制,可能導(dǎo)致內(nèi)存碎片和非連續(xù)訪存,增加存儲(chǔ)開銷訪存開銷。

          優(yōu)化路徑

          1. 模型層次優(yōu)化

          模型層次優(yōu)化通過調(diào)整模型實(shí)現(xiàn)延時(shí)、吞吐率、存儲(chǔ)等目標(biāo),包括模型結(jié)構(gòu)設(shè)計(jì)和模型壓縮兩方面。其中,模型結(jié)構(gòu)設(shè)計(jì)方法通常需要較大的訓(xùn)練開銷,主要包括以下三點(diǎn)。

          (1)混合專家動(dòng)態(tài)推理:對(duì)于給定的輸入,僅激活部分專家模塊完成推理,讓大參數(shù)量的模型能擁有更高的推理效率。

          (2)低復(fù)雜度注意力機(jī)制:降低注意力算子的平方復(fù)雜度。

          (3)多查詢注意力(Multi-Query Attention,MQA)機(jī)制:減小注意力算子的存儲(chǔ)量和訪存量。

          2. 系統(tǒng)層次優(yōu)化

          系統(tǒng)層次優(yōu)化通過設(shè)計(jì)軟硬件系統(tǒng)無損地加速模型推理。針對(duì)大語言模型推理的訪存受限特性,許多工作通過優(yōu)化計(jì)算圖、實(shí)現(xiàn)融合算子來降低訪存開銷。代表性工作為 FlashAt-tention,它通過算子融合和分塊計(jì)算技術(shù)避免了注意力圖在顯存和高速緩存之間的搬運(yùn),大幅降低了推理過程中預(yù)填充階段或訓(xùn)練過程的訪存和存儲(chǔ)開銷。

          2023 年,筆者團(tuán)隊(duì)提出的FlashDecoding++ 對(duì)大語言模型的兩類主要計(jì)算都進(jìn)行了進(jìn)一步優(yōu)化。對(duì)于注意力計(jì)算,F(xiàn)lashDecoding++ 基于注意力輸入的數(shù)值分布特性,引入預(yù)設(shè)好的最大值,去除了 FlashAt-tention 中的額外更新操作。對(duì)于線性層計(jì)算,F(xiàn)lashDecoding++ 實(shí)現(xiàn)了解碼階段矩陣乘算子的針對(duì)性優(yōu)化,并通過預(yù)先建立的映射表,動(dòng)態(tài)選擇大語言模型中所有線性層的最優(yōu)底層實(shí)現(xiàn),實(shí)現(xiàn)了端到端推理性能的提升。

          服務(wù)系統(tǒng)軟件(Serving Systems Software)旨在提高系統(tǒng)吞吐率。批次化技術(shù)是提升服務(wù)器系統(tǒng)軟件效率的必備技術(shù),它將多個(gè)用戶的查詢打包成一個(gè)批次,以提升硬件利用效率,從而提高整體吞吐率。隨后的研究對(duì)批次化技術(shù)進(jìn)行了各種改進(jìn)和變體。模型并行(Model Parallelism)和計(jì)算/存儲(chǔ)卸載(Offloading)等技術(shù)也常被用于提升大語言模型訓(xùn)練或推理的吞吐率?;诮o定的計(jì)算圖和硬件配置,這些技術(shù)決定輸入計(jì)算圖上計(jì)算和存儲(chǔ)的切分、硬件資源的分配,以及時(shí)序調(diào)度。

          此外,高效內(nèi)存管理技術(shù)也是服務(wù)系統(tǒng)中重要的組成部分。在硬件加速器設(shè)計(jì)方面,筆者團(tuán)隊(duì)提出了一種面向現(xiàn)場(chǎng)可編程門陣列(Field-Programmable Gate Array,F(xiàn)PGA)的大語言模型輕量化部署流程 FlightLLM,首次在單塊 Xilinx U280FPGA 上實(shí)現(xiàn)了 LLaMA2-7B 的高效推理。

          3. 解碼方式優(yōu)化

          在大語言模型的推理過程中,自回歸式的解碼階段占據(jù)了主要的端到端延時(shí)。由于詞塊之間存在前后依賴關(guān)系,多個(gè)詞塊對(duì)應(yīng)的計(jì)算無法并行進(jìn)行,導(dǎo)致 GPU 計(jì)算單元的利用率極低。針對(duì)這一問題,解決思路可分為以下三類。

          (1)猜測(cè)解碼技術(shù)(Speculative Decoding)。這類技術(shù)的核心思想是先使用更廉價(jià)的方式猜測(cè)接下來的候選詞塊序列,再使用大語言模型并行地驗(yàn)證并接收其中匹配大語言模型驗(yàn)證結(jié)果的詞塊。

          (2)非自回歸式解碼技術(shù)(Non-Autoregressive Generation,NAG)。這些工作設(shè)計(jì)專用解碼方式并行采樣相鄰的若干個(gè)詞塊,且大多需要額外的模型設(shè)計(jì)或訓(xùn)練。為了保證生成質(zhì)量,許多非自回歸式解碼方法會(huì)迭代多次修正生成結(jié)果。

          (3)筆者團(tuán)隊(duì)提出了思維骨架(Skeleton-of-Thought,SoT),利用大語言模型的規(guī)劃和指令跟隨能力實(shí)現(xiàn)并行生成,從而優(yōu)化計(jì)算利用率和端到端延時(shí)。具體地,思維骨架通過提示詞引導(dǎo)大語言模型組織答案的提綱或框架,再并行解碼提綱中的每個(gè)要點(diǎn)。

          上述三類工作分別實(shí)現(xiàn)了大語言模型的連續(xù)并行驗(yàn)證、連續(xù)并行采樣、分段并行生成,能提升計(jì)算利用率,減少端到端生成延時(shí)。




          典型的大語言模型的壓縮方法:量化


          模型量化可以從優(yōu)化問題的視角來看,即在滿足硬件約束的前提下,通過優(yōu)化量化格式、量化參數(shù)和量化值,最小化模型的算法性能損失。按工作流程來分類,模型量化可分為訓(xùn)練后量化和量化感知訓(xùn)練兩種。

          在研究量化之前,首先需要明確兩個(gè)不同的過程。

          1. 離線的模型量化過程

          運(yùn)行量化算法將高位寬、高精度的權(quán)重轉(zhuǎn)換為低位寬的權(quán)重。若需要對(duì)激活值進(jìn)行量化,并且不是在線統(tǒng)計(jì)激活值量化參數(shù),則還需要確定激活值的量化參數(shù)。

          2. 在線量化推理過程

          這是從離線過程得到量化模型,再用量化模型做推理的過程。根據(jù)是否使用低精度計(jì)算,將在線推理階段分為以下兩類。

          (1)使用低精度計(jì)算:計(jì)算單元采用低精度。一個(gè)典型的流程如下:執(zhí)行兩個(gè) INT8 低精度數(shù)的低精度乘法后進(jìn)行累加,累加器一般需要更大位寬(如 INT32),最后還需要對(duì)位寬放大的累加輸出做再量化,將輸出量化回 INT8。

          (2)使用高精度計(jì): 將低位寬表示的權(quán)重或激活值去量化為高位寬高精度表示,然后使用高精度計(jì)算單元進(jìn)行計(jì)算。最后,可能需要將計(jì)算結(jié)果量化回低位寬表示,如用于降低訓(xùn)練時(shí)激活值的存儲(chǔ)和通信開銷等。

          相比于量化傳統(tǒng)小模型,量化大語言模型存在以下新挑戰(zhàn)和新需求。

          (1)算法性能上:大語言模型權(quán)重包含分布范圍更廣的離群值,且保留這些離群值對(duì)模型精度很關(guān)鍵。對(duì)離群權(quán)重的保留會(huì)導(dǎo)致小權(quán)重的舍入誤差較大。

          (2)推理效率上:在不同場(chǎng)景下,大語言模型推理的效率瓶頸不同,需要不同的量化方法。大語言模型在不同階段、不同批大小、不同輸入文本長度的效率瓶頸分析如圖 10.2 所示。

          在預(yù)填充階段,當(dāng)輸入文本較長或批大小較大時(shí),模型中線性層的計(jì)算訪存比 I 將大于 I0(I0 表示對(duì)應(yīng) Roofline 拐點(diǎn)的計(jì)算強(qiáng)度),推理瓶頸為計(jì)算瓶頸。反之,當(dāng)輸入文本較短或批大小較小時(shí),推理瓶頸為權(quán)重訪存瓶頸。在解碼階段,僅有批大小會(huì)影響效率瓶頸,與預(yù)填充階段類似,當(dāng)批大小較大時(shí),模型中線性層的實(shí)際計(jì)算訪存比 I 將大于 I0,推理瓶頸為計(jì)算瓶頸。反之,當(dāng)批大小較小時(shí),推理瓶頸為權(quán)重訪存瓶頸。對(duì)于瓶頸為權(quán)重訪存瓶頸的場(chǎng)景,常用“僅權(quán)重量化方法”(Weight-only Quantization)降低權(quán)重的訪存量,實(shí)現(xiàn)推理加速。對(duì)于瓶頸為計(jì)算瓶頸的場(chǎng)景,由于“僅權(quán)重量化方法”不使用低精度計(jì)算單元,甚至還會(huì)引入額外的去量化計(jì)算開銷,因而并不能實(shí)現(xiàn)推理加速。此時(shí),需依賴使用低精度計(jì)算的“權(quán)重激活量化方法”(Weight-activation Quantization)加速推理,在這些方法里,權(quán)重和激活值都被量化為低位寬和低精度。

          研究者針對(duì)上述特點(diǎn)設(shè)計(jì)了適合大語言模型的量化算法,表 10.1 總結(jié)了若干個(gè)大語言模型量化方法在量化格式、量化參數(shù)、量化值等多個(gè)維度的策略選取以及量化效果。

          從主要目的來看,LLM.int8()、SmoothQuant和 AWQ的目的是保持算法性能。這些工作均針對(duì)大語言模型中的權(quán)重離群值進(jìn)行特殊處理,更好地平衡截?cái)嗪蜕崛胝`差。GPTQ的目的是加速離線量化過程,其基于已有的 OBQ方法做改進(jìn)。LUT-GEMM的目的是加速在線量化推理。FlexGen的目的是降低在線量化推理過程的內(nèi)存開銷。從量化方式來看,GPTQ、LUT-GEMM和 AWQ僅量化權(quán)重,計(jì)算時(shí)會(huì)將低精度權(quán)重去量化為高精度表示,再和高精度的激活值進(jìn)行計(jì)算;而 LLM.int8()、SmoothQuant同時(shí)量化了權(quán)重和激活值,使用了高效的低精度計(jì)算;除了量化權(quán)重,F(xiàn)lexGen還量化了 Key-Value 緩存這一類激活值。下面列出這幾個(gè)代表工作所使用的方法。

          (1)GPTQ:傳統(tǒng)量化算法 OBQ基于逐層重建誤差最小化原則,對(duì)矩陣的每一行采用逐權(quán)重量化。具體來說,OBQ 對(duì)每一行選取其最優(yōu)的權(quán)重量化順序,選取方法依賴重建誤差相對(duì)于當(dāng)前未被量化權(quán)重的二階梯度信息(Hessian 矩陣)。OBQ 的計(jì)算復(fù)雜度非常高,原因是在每個(gè)權(quán)重被量化后,Hessian 矩陣都需要更新。若不同行所選取的量化順序不同,則每一行量化過程中都要進(jìn)行大量的 Hessian 矩陣計(jì)算,計(jì)算開銷大。針對(duì)該問題,GPTQ 提出了所有行都使用相同的權(quán)重量化順序,即按照統(tǒng)一、從左往右的順序量化權(quán)重矩陣的所有行。此時(shí),不同行在量化過程中所使用的多個(gè) Hessian 矩陣是完全相同的,因此僅需要在一行的量化過程中計(jì)算 Hessian 矩陣,即可復(fù)用在其他行的量化過程中,實(shí)現(xiàn)量化過程的加速。

          (2)LUT-GEMM:當(dāng)前的僅權(quán)重量化方法一般會(huì)將權(quán)重去量化操作和高精度矩陣乘操作融合在一個(gè)算子里,以降低訪存開銷,但是去量化操作仍然引入了額外的計(jì)算開銷。為降低去量化操作的計(jì)算開銷,LUT-GEMM 設(shè)計(jì)了基于查找表(Look-Up-Table,LUT)的去量化操作。這種去量化方法可簡單地支持均勻量化和非均勻量化格式的去量化。在數(shù)據(jù)格式層面,作者使用了一種基于可學(xué)習(xí)量化間隔的非均勻量化格式。

          (3)AWQ:在大語言模型中,不同通道的權(quán)重并非同等重要。作者觀察到,激活值中存在離群數(shù)據(jù)的輸入通道對(duì)應(yīng)的權(quán)重通道更為重要。為了更有效地保存重要通道的權(quán)重,作者采用了重參數(shù)化技術(shù),并通過網(wǎng)格搜索的方法選擇重參數(shù)化系數(shù),以最小化重建誤差。

          (4)LLM.int8():在大語言模型中,激活值的數(shù)據(jù)范圍顯著大于權(quán)重的數(shù)據(jù)范圍,這使得激活值更難以被量化為低精度。作者發(fā)現(xiàn)激活值中的離群數(shù)據(jù)僅分布在少數(shù)通道中?;谶@一觀察,為了降低激活值的量化誤差,作者按照輸入通道將激活值和權(quán)重拆分為兩個(gè)部分,包含離群數(shù)據(jù)的激活值和權(quán)重通道以 FP16 格式存儲(chǔ),其他激活值和權(quán)重通道量化為 INT8 格式存儲(chǔ)。這兩部分矩陣分別進(jìn)行 FP16 和 INT8 的矩陣乘法,將 INT8 數(shù)據(jù)的計(jì)算結(jié)果去量化,再將兩部分的計(jì)算結(jié)果相加,得到最終結(jié)果。

          (5)SmoothQuant:如上所述,大語言模型中的激活值比權(quán)重更難量化,并且激活值中離群數(shù)據(jù)僅分布于少數(shù)通道。為了縮小激活值中離群數(shù)據(jù)通道的數(shù)據(jù)范圍,作者使用重參數(shù)化技術(shù)擴(kuò)大權(quán)重中對(duì)應(yīng)通道的數(shù)據(jù)范圍,使權(quán)重和激活值均易于量化。

          (6)FlexGen:在大批次(批大小 ? 1)推理時(shí),存儲(chǔ)和訪存開銷的主要來源是模型權(quán)重量和 Key-Value 緩存量。為了實(shí)現(xiàn)更大的吞吐率,作者通過將權(quán)重和 Key-Value 緩存量化為 4-bit 來減小存儲(chǔ)和訪存開銷。

          大語言模型是一類能夠解決多種任務(wù)的通用模型,因此充分了解不同量化方案對(duì)任務(wù)性能的影響,能夠切實(shí)地指導(dǎo)實(shí)際應(yīng)用場(chǎng)景中量化方案的選取。





          目錄



          向上滑動(dòng)閱覽                                             

          第1部分  基礎(chǔ)

          1 緒論 2

          1.1 神經(jīng)網(wǎng)絡(luò)技術(shù)的發(fā)展 2

          1.2 神經(jīng)網(wǎng)絡(luò)的高效化需求 3

          1.3 神經(jīng)網(wǎng)絡(luò)的高效化路徑 4

          1.4 本書主要內(nèi)容 6


          2 基礎(chǔ)知識(shí) 7

          2.1 優(yōu)化問題 7

          2.1.1 優(yōu)化問題的定義和分類 7

          2.1.2 優(yōu)化方法的分類 9

          2.2 卷積神經(jīng)網(wǎng)絡(luò)模型 10

          2.2.1 基礎(chǔ)模塊 10

          2.2.2 代表性模型介紹 13

          2.3 視覺Transformer模型 15

          2.3.1 基礎(chǔ)模塊 16

          2.3.2 模型分類與總結(jié) 18


          第2部分  高效模型壓縮方法論

          3 高效模塊設(shè)計(jì) 20

          3.1 概述 20

          3.2 代表性模型介紹 21

          3.2.1 SqueezeNet  21

          3.2.2 MobileNet系列 22

          3.2.3 ShuffleNet系列 24

          3.2.4 GhostNet 26

          3.2.5 ConvNeXt 27

          3.2.6 VoVNet系列 28

          3.2.7 RepVGG  29

          3.3 高效模塊的5個(gè)設(shè)計(jì)維度 30

          3.4 本章小結(jié) 31


          4 模型剪枝 32

          4.1 模型剪枝的定義和分類 32

          4.2 模型敏感度分析方法 34

          4.2.1 層內(nèi)和層間敏感度分析 34

          4.2.2 層內(nèi)敏感度分析指標(biāo) 35

          4.3 結(jié)構(gòu)化剪枝方法 37

          4.3.1 基于權(quán)重正則的結(jié)構(gòu)化剪枝方法 37

          4.3.2 基于搜索的結(jié)構(gòu)化剪枝方法 39

          4.3.3 給定資源限制的條件下的結(jié)構(gòu)化剪枝方法 44

          4.4 近似低秩分解方法 47

          4.5 非結(jié)構(gòu)化剪枝方法 48

          4.6 半結(jié)構(gòu)化剪枝方法 51

          4.7 針對(duì)激活值的剪枝方法 53

          4.8 剪枝方法的經(jīng)驗(yàn)性選擇 55

          4.8.1 剪枝流程的選擇 55

          4.8.2 剪枝稀疏模式的選擇 56

          4.8.3 關(guān)于任務(wù)性能的經(jīng)驗(yàn) 56

          4.9 Group Lasso 結(jié)構(gòu)化剪枝的實(shí)踐案例 57

          4.10 本章小結(jié) 60


          5 模型量化 61

          5.1 模型量化的定義和分類 61

          5.2 模型量化過程和量化推理過程 64

          5.3 量化格式和操作 65

          5.3.1 均勻量化格式 66

          5.3.2 非均勻量化格式 68

          5.3.3 三種量化操作 71

          5.4 量化參數(shù) 73

          5.4.1 縮放系數(shù) 73

          5.4.2 零點(diǎn)位置 74

          5.4.3 量化位寬 74

          5.5 訓(xùn)練后量化75

          5.5.1 訓(xùn)練后量化的流程 75

          5.5.2 重參數(shù)化 76

          5.5.3 縮放系數(shù)的選取方法 80

          5.5.4 量化值調(diào)整 83

          5.6 量化感知訓(xùn)練 87

          5.6.1 基礎(chǔ)與流程 87

          5.6.2 調(diào)整模型架構(gòu)的方法 90

          5.6.3 量化器設(shè)計(jì)的技巧 92

          5.6.4 常用的訓(xùn)練技巧 97

          5.7 混合位寬量化 97

          5.7.1 基于敏感度指標(biāo)的混合位寬量化 97

          5.7.2 基于搜索的混合位寬量化 99

          5.8 量化方法的經(jīng)驗(yàn)性選擇 100

          5.8.1 量化流程的選擇 100

          5.8.2 數(shù)據(jù)表示的設(shè)計(jì)和決定 100

          5.8.3 算子的選擇與處理和計(jì)算圖的調(diào)整 102

          5.8.4 關(guān)于任務(wù)性能的經(jīng)驗(yàn) 104

          5.9 拓展:低比特推理硬件實(shí)現(xiàn) 104

          5.9.1 定點(diǎn)計(jì)算的硬件效率 104

          5.9.2 浮點(diǎn)計(jì)算轉(zhuǎn)定點(diǎn)計(jì)算的原理 105

          5.9.3 非均勻量化格式的計(jì)算 111

          5.9.4 典型的計(jì)算單元和加速器架構(gòu) 112

          5.10 拓展:低比特訓(xùn)練簡介 115

          5.10.1 應(yīng)用背景 115

          5.10.2 挑戰(zhàn)分析 116

          5.10.3 相關(guān)工作 116

          5.11 本章小結(jié) 117


          6 模型二值化 118

          6.1 模型二值化的定義和分類 118

          6.2 模型二值化的基礎(chǔ):以XNOR-Net為例 120

          6.3 二值化方式 122

          6.3.1 樸素二值化方式 123

          6.3.2 間接二值化方式 127

          6.4 訓(xùn)練技巧 131

          6.4.1 修改損失函數(shù) 132

          6.4.2 降低梯度估計(jì)誤差 133

          6.4.3 多階段的訓(xùn)練方法 135

          6.4.4 訓(xùn)練經(jīng)驗(yàn) 136

          6.5 架構(gòu)設(shè)計(jì) 137

          6.5.1 模型架構(gòu)的調(diào)整 138

          6.5.2 模型架構(gòu)搜索 141

          6.5.3 集成方法與動(dòng)態(tài)模型 142

          6.6 模型二值化在其他任務(wù)與架構(gòu)中的應(yīng)用 142

          6.7 本章小結(jié) 144


          7 神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索146

          7.1 神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索的定義和分類 146

          7.2 搜索空間 149

          7.2.1 人工設(shè)計(jì)搜索空間 150

          7.2.2 自動(dòng)設(shè)計(jì)搜索空間 154

          7.2.3 總結(jié) 156

          7.3 搜索策略 157

          7.3.1 基于強(qiáng)化學(xué)習(xí)的搜索策略 157

          7.3.2 基于進(jìn)化算法的搜索策略 159

          7.3.3 隨機(jī)搜索策略 160

          7.3.4 基于架構(gòu)性能預(yù)測(cè)器的搜索策略 160

          7.3.5 總結(jié) 164

          7.4 評(píng)估策略 165

          7.4.1 獨(dú)立訓(xùn)練策略 166

          7.4.2 基于權(quán)重共享的單次評(píng)估策略 167

          7.4.3 基于權(quán)重生成的單次評(píng)估策略 172

          7.4.4 零次評(píng)估策略 172

          7.5 可微分神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索 175

          7.5.1 連續(xù)松弛方法 175

          7.5.2 優(yōu)化方法 176

          7.5.3 搜索坍縮問題 177

          7.5.4 更高效的可微分搜索算法 179

          7.6 考慮硬件效率的神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索 180

          7.6.1 考慮硬件效率的搜索空間設(shè)計(jì) 181

          7.6.2 硬件效率指標(biāo)的加速評(píng)估方法 182

          7.6.3 考慮多種硬件效率目標(biāo)的搜索策略 184

          7.6.4 面向多種硬件設(shè)備及約束的神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索方法 186

          7.7 本章小結(jié) 188


          8 知識(shí)蒸餾 190

          8.1 知識(shí)蒸餾的定義和分類 190

          8.2 知識(shí)類型和知識(shí)分量:“學(xué)什么”  192

          8.2.1 基于響應(yīng)的知識(shí) 192

          8.2.2 基于特征的知識(shí) 194

          8.2.3 基于關(guān)系的知識(shí) 197

          8.3 知識(shí)來源:“向誰學(xué)” 199

          8.3.1 離線蒸餾 199

          8.3.2 互學(xué)習(xí) 199

          8.3.3 自蒸餾 200

          8.4 本章小結(jié) 201


          第3部分  拓展和前沿

          9 相關(guān)領(lǐng)域:高效靈活的AI推理硬件和系統(tǒng) 203

          9.1 概述 203

          9.2 硬件加速器設(shè)計(jì)和軟硬件協(xié)同優(yōu)化 204

          9.2.1 從CPU到硬件加速器 204

          9.2.2 AI加速器中的軟硬件協(xié)同優(yōu)化 206

          9.2.3 Roofline分析模型 207

          9.2.4 基于指令集的AI加速器 210

          9.3 神經(jīng)網(wǎng)絡(luò)計(jì)算資源虛擬化 211

          9.3.1 虛擬化的概念 211

          9.3.2 AI加速器的時(shí)分復(fù)用與空分復(fù)用虛擬化 212

          9.3.3 相關(guān)工作簡介 214

          9.4 本章小結(jié) 215


          10 前沿應(yīng)用:大語言模型的加速和壓縮 218

          10.1 大語言模型的發(fā)展 218

          10.2 大語言模型的架構(gòu)和推理過程 219

          10.3 大語言模型的高效性分析 220

          10.3.1 效率瓶頸 220

          10.3.2 優(yōu)化路徑 221

          10.4 典型的大語言模型的壓縮方法:量化 223

          10.5 本章小結(jié) 226


          后記 227

          參考文獻(xiàn) 229



          限時(shí)優(yōu)惠,快快搶購吧! 



             

          互動(dòng)有獎(jiǎng)

          按以下方式與博文菌互動(dòng),即有機(jī)會(huì)獲贈(zèng)圖書!

          活動(dòng)方式:在評(píng)論區(qū)留言參與“你如何看待大模型的加速和壓縮”等話題互動(dòng),屆時(shí)會(huì)在參與的小伙伴中抽取1名幸運(yùn)鵝贈(zèng)送圖書盲盒一份!

          說明:留言區(qū)收到回復(fù)“恭喜中獎(jiǎng)”者將免費(fèi)獲贈(zèng)本圖書,中獎(jiǎng)?wù)哒?qǐng)?jiān)谑盏酵ㄖ?4小時(shí)內(nèi)將您的“姓名+電話+快遞地址”留言至原評(píng)論下方處即可,隱私信息不會(huì)被放出,未在規(guī)定時(shí)間內(nèi)回復(fù)視作自動(dòng)放棄兌獎(jiǎng)資格。

          活動(dòng)時(shí)間:截至7月8日開獎(jiǎng)。

          快快拉上你的小伙伴參與進(jìn)來吧~~

          溫馨提示可以將“博文視點(diǎn)”設(shè)為星標(biāo)以免錯(cuò)過贈(zèng)書活動(dòng)哦!




          發(fā)布:劉恩惠

          審核:陳歆懿

               
                 
           


          如果喜歡本文
          歡迎 在看留言分享至朋友圈 三連
          <
           PAST · 往期回顧 
          >


          書單 | 7月新書速遞!


          瀏覽 221
          1點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          1點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  feifeibebe | 五月天激情国产综合婷婷婷 | 麻豆亚洲AV永久无码精品久久 | 狼人干综合亚洲 | 性爱视频中文字幕 |