即便面臨眾多挑戰者,Transformer的強勢仍然遠遠沒有結束。但即便如此,Transformer本身的結構也一直在演進,從absolute embedding到RoPE,從dense到MoE,從CoT到think模型…那么,你對下一代的Transformer的猜想是什么?五年后的Transformer還會是現在的模樣嗎?
作者:THU Markov(清華大學 電子科學與技術博士)
數據、算法和算力。咋就沒人談談算力呢!!!
繼續走Transformer這條科技線 -> 需要低成本可擴展的算力 -> 并行序列解碼是必然的選擇
Speculative Decoding 的序列并行度通常有8-16,最好工作能實現4倍以上的解碼速率。但這還是太保守了,革命不徹底就是徹底不革命,只有全序列并行才能徹底繞過decoding 階段的存儲墻。Diffusion LLM是一個值得關注的方向。
首先框住研究對象,我定義的transformer:基于attention機制的自回歸編解碼器架構
它分為prefill和decoding兩個階段,我司的結論是各類應用,>90%的runtime都花在decoding上,而且decoding的性能完全是 bandwidth bound。計算單元閑置率極高,這意味著擴展性能=擴展帶寬
而帶寬擴展的成本高到嚇人。4xGB200 (cost > 200萬rmb)能提供768GB的存儲+32TB/s 帶寬,最多實現~50 Tokens/s 的 DS-R1 decoding 速度。服務器端還可以通過batching多個用戶,排隊,限制token usage來攤薄成本。邊緣端/客戶端芯片的賽道已經宣判游戲結束,花200w RMB搭建個人聊天機器人,從商業還是學術上都不是那么好推廣的。(默哀1秒鐘我在學校做的相關研究)
當前 transformer 架構算力方面的最大挑戰:自回歸解碼缺乏數據復用
怎么理解“數據復用”?最廣義的概念就是一個數據會參與到多少計算。
數據復用越大,意味著少量的帶寬就可以支持較多的計算單元。計算機分級存儲結構中,每層存儲介質都有各自的數據復用,暫時不展開。
以單張圖片輸入的 CNN 為例,卷積 kernel 會滑動過整個 feature map:
kernel weight 的復用次數就是 feature map 的像素數量 (PxQ)
feature map 的復用次數就是 kernel size (HxW) x kernel number (K)
兩者的典型值都在數千次及以上。
為什么要追求高數據復用呢?因為擴展帶寬的成本要比擴展計算單元的高的多。GPU (GB200)算力約 40PFLOPS (NVFP4),MAC 單元并行度~10M。
那需要多大的帶寬呢?公式如下:
Required Bandwidth = Compute / data_reuse
雙通道 DDR5 帶寬~100GB/s, 反推得出數據復用>20w 次才能支持 GB200 的算力。
很顯然這種場景是不太常見的。所以現代 GPU 通常采用昂貴的 HBM,例如 GB200 的 HBM3E 的帶寬約 8TB/s, 數據復用只需要達到 2500 次即可,這種場景就太多了。
但 HBM 代價是什么呢,HBM 成本+封裝成本+互聯成本遠遠超過了 GPU die 的流片成本,純屬倒反天罡了。
也就是說只要搞定 HBM 供應,人人都和 NVIDIA 同一起跑線?
參考 AMD Mi300x 系列,冷不丁就做出來了,指標還超了同期 H100。NV 帝國的根基開始動搖。。。。(當然還有 CUDA 天塹需要翻越)
回到 Transformer decoding,每個 user decoding 階段只有一維的 hidden 在 block 間正向傳播,在每個 block 中主要做 GEMV 計算(包括 attn 和 FC):
model weight 的復用次數就是 Batch size(B)
hidden 的復用次數就是 kernel number (K)
Q 和 Attn weight 的復用次數是 sequence length (L)
KV$ 的復用次數是 GQA_ratio
對個人產品而言 B 通常=1,服務器通常可以做到 64~256
GQA_ratio 通常在 4~16 之間
model weight 和 KV$ 的復用通常<100,因此 LLM decoding 的性能已經完全 bound 在 loading weight 或者 KV$ 上,compute unit 始終處在休眠或者圍觀看戲狀態。
總結來說,低數據復用是 decoding cost 高企的罪魁禍首。
題外話1:考慮到H100的算力太強,而decoding階段算力又都在休假,那是不是把計算單元砍一刀,成本更低還不會影響運算時間?沒錯,H20就是這種產品。那是不是不用nv的GPU做運算也行?沒錯,M3 ultra (512GB capacity+800GB/s bandwidth)就是,不講性價比的Mac反而成為了最具性價比的AI開發工作站。
題外話2:能做batching已經是萬幸,個人產品上batch size=1,用戶端DDR帶寬又小,decode真是又慢又貴,只剩一個privacy可以聊以慰藉了。
有了芯片成本以及數據復用的基礎知識,這個時候反思一個問題:為什么CNN處理圖片可以實現成千上萬的數據復用,到了LLM就不行了呢?本質區別是CNN是對數萬個像素并行計算,而transformer只能對單個token運算。
那假設有一個transformer能并行decoding多個token,是不是就能把數據復用拉上來?是的,你已經理解了研究并行解碼的動機。
那有沒有辦法并行解碼呢?目前最流行的speculative decoding就是了,先用低成本模型打一個草稿,target model只要并行驗證草稿+拒絕采樣即可。這種方法的采樣分布和原模型是一致的,從而不會降低回復的質量。LLM也可以直接decode多個token,包括Deepseek的MTP就是。但是為什么主流的模型都只訓練next-token predictor呢?希望LLM大佬賜教。
端午安康 粽情飄香
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.