o1、R1 等推理模型的出現(xiàn),給了長文本新課題。
嘉賓丨肖朝軍、傅天予整理丨程曼祺
上周,DeepSeek、Kimi 都放出了新的大模型架構改進和優(yōu)化成果,分別是 NSA、MoBA。二者都聚焦對大模型中 “注意力機制” 的改進。
注意力機制是當前大語言模型(LLM)的核心機制。2017 年 6 月那篇開啟大語言模型革命的 Transformer 八子論文,標題就是:Attention Is All You Need(注意力就是你所需要的一切)。
而優(yōu)化 Attention 的計算效率和效果,又能幫助解決 AI 學界和業(yè)界都非常關心的一個問題,就是長文本(long context)。
不管是要一次輸入一整本書,讓模型能幫我們提煉、理解;還是在生成現(xiàn)在 o1、R1 這類模型需要的長思維鏈;又或者是希望模型未來能有越來越長的 “記憶”,這都需要長文本能力的支持。
這期節(jié)目我們邀請了兩位做過 Attention 機制改進的 AI 研究者做嘉賓。
一位是清華計算機系自然語言處理實驗室的博士生肖朝軍,他是 InfLLM 注意力機制改進的一作,導師是清華計算機系副教授劉知遠。
另一位是清華大學 NICS-EFC 實驗室的博士生傅天予,他是 MoA 注意力機制改進的共同一作,導師是清華電子工程系主任汪玉。這個實驗室也做了很多與硬件層結合的優(yōu)化工作。
兩位有一些相互補充的視角,他們之前做的注意力機制改進也都和 NSA、MoBA 一樣,屬于 “稀疏注意力” 范疇。
傅天予分享了一個他的導師汪玉,對大模型優(yōu)化目標的簡潔描述:
神經網絡就是 y=f(x)。x 是輸入,y 是輸出,f 是這個網絡。
現(xiàn)在的趨勢是,x 越變越長,這是多模態(tài)等帶來的;y 也越變越長,這是思維鏈帶來的。f 要做的事就是,當 x 和 y 都變得這么長時,怎么能算得快,同時又能正確地輸入 x,并正確地輸出想要的 y。這就是大家努力的總體目標。
f 要怎么做到這兩點,改進注意力機制就是方法之一。
以下是本期播客的實錄,文字有精簡。
Attention 的提出就是為了長文本,只是當時的 “長” 不是現(xiàn)在的 “長長長”
晚點:兩位可以先自我介紹一下,以及講講你們過去和注意力機制改進相關的研究。
肖朝軍:我是來自清華大學計算機系的博士生肖朝軍,一直專注于大模型高效架構層面的研究。2024 年,我們發(fā)布了 InfLLM,也是做大模型注意力機制的改進。
一年多前,開源模型最多也就處理 8K 就是 8000 token 左右的文本長度。我們就想,能不能在無需訓練的情況下,在推理階段(可以理解為大模型的使用階段)用稀疏注意力機制處理更長的 128K 甚至 1000K 的文本。這個注意力機制的思路和現(xiàn)在的 DeepSeek NSA 類似。而 NSA 是進一步把稀疏注意力做到了預訓練階段,寫了非常豐富的算子,做了很精細的設計,是一個很大的進步。
(注:大模型里,稀疏指僅部分連接,效率更高;對應的稠密,也就是 dense,指數據 / 計算全連接。)
傅天予:我是來自清華大學電子系的博士生傅天予,我們也一直關注神經網絡模型的高效性優(yōu)化。
也是在 24 年,我們發(fā)布了一篇和今天要聊的 MoBA 標題很像的論文,叫 MoAMixture of Sparse Attention(混合稀疏注意力機制),而 MoBA 是 Mixture of Block Attention(混合分塊注意力機制)。我們發(fā)現(xiàn),之前的一些稀疏注意力機制,雖然能使模型流暢地輸出內容,但模型其實沒有有效利用遠距離的上下文信息,我們就希望能分析不同注意力頭的各自特性,找到究竟其中哪些對模型能真正利用長上下文很關鍵,然后更多保留這部分注意力頭。
晚點:我們可以先聊關于 Attention 的一些基礎問題。2017 年提出目前大語言模型主流架構 Transformer 的那篇論文,標題就是 Attention Is All You Need。簡單來說,Attention 作為大模型的核心模塊,它是用來做什么的?
傅天予:要解釋這個,我們要先知道一個大模型的輸入和輸出是什么,它的輸入就是一系列 Token,也就是 “詞元”,簡單理解就是一個詞。每個詞本身有一個含義,但也有必須聯(lián)系上下文才能表達的含義,比如代詞 “it”,要放到上下文里才知道指什么。所以 Attention 機制的核心思想就是希望能知道輸入的每一個詞和之前的詞的關系。
在標準 Attention 里,每新輸入一個詞都要和前面輸入的所有詞去計算相關性,它是一個關系強弱加權。這樣不僅能幫大模型理解這個詞本身,還能理解它的語境
肖朝軍:補充一下,大家也可能需要了解,再往前,神經網絡是怎么處理序列(輸入模型的一系列 Token 整體上是一個序列)的。
之前的主流方法是循環(huán)神經網絡(RNN)。循環(huán)是什么意思呢?就是一個詞、一個詞地去理解,去動態(tài)維護一個 “記憶”。
比如當 RNN 來處理 “我是肖朝軍” 這句話時,會先處理 “我”,再是 “是”,再是 “肖”,每處理一步,就把之前所有輸入都變成 “記憶”,也就是系統(tǒng)里的一堆矩陣。在 “我是肖朝軍” 的例子里,RNN 處理到 “肖” 時,已經把 “我” 和 “是” 轉化成了一個 “記憶”。
RNN 里的 “記憶” 的存儲大小是不變的,但這會使它 “遺忘” 很久以前的詞元。當只是一句話時,這個問題不嚴重。但如果像我們今天這樣錄 2 個小時的播客,我最開始說完我是誰后,之后只會說 “我”,這樣到后面,模型就會忘掉 “我” 和 “肖朝軍” 的關系。這是 RNN 的缺陷。
而 Transformer,它所使用的 Attention 機制,就是把過往所有詞都以一個個向量的形式存儲下來。這樣在 2 小時的聊天里,我每次提到 “我”,它都會去和過往所有詞做一次相關性計算,就能知道 “我” 和 “肖朝軍” 高度相關。
這也導致,Attention 的 “記憶” 不是固定的存儲大小,而是把 “記憶” 擴展為過往全部詞元,這就能改進 RNN 長序列的遺忘問題。
晚點:所以當年從 RNN 到 Transformer 提出 Attention,本身就是為了解決長文本問題。
肖朝軍:對,不過當時的長,也沒多長,就是幾百 Token。
在 Attention 之后,很快就提出了稀疏 Attention,最開始是為了 BERT(注:Google 最早的 Transformer 架構的大語言模型,但它的優(yōu)化目標和同為 Transformer 架構的 OpenAI 的 GPT 系列模型略微不同,BERT 一度是比 GPT 更主流的大模型),它只能處理 512 Token。
然后稀疏 Attention 出來后,讓模型能處理 4K token 了,這是 18、19 年的事,那時大家認為這已經非常長了。
而到了現(xiàn)在,動輒是 128k 甚至 1M(100 萬)的長度,發(fā)展非?臁K Transformer 確實是為了長文本,只是這個長和現(xiàn)在的長還不太一樣。
原初 Attention 兩大瓶頸:“顯存開銷” 和 “計算復雜度”
晚點:從長文本到了長長長長長文本。后來原初 Transfomer 里標準的 Full Attention 又遇到了什么瓶頸,為什么不夠用呢?
肖朝軍:首先就是存儲問題,其實就是剛才講的,它的 “記憶” 大小是不固定的,序列越長,記憶就越大。比如有幾百萬個詞,那存下來要好幾百 G,現(xiàn)在 GPU 的顯存(顯存是 GPU 的 “專屬內存”,最初主要存儲圖像信息,在大語言模型里,它用來存儲模型參數和訓練數據)就幾十 G,存儲遠遠不夠。
第二是計算復雜度的問題,因為 Full Attention,是每處理一個 Token 時,都需要和前面所有 Token 做一遍相關性計算,如果序列長度是 N,它的計算復雜度就是 N 的平方,當長度越長,計算時間就會越來越高。
傅天予:我補充一點關于訓練和推理階段的 Attention 的區(qū)別。之前很多稀疏注意力工作都是一個稠密訓練的 Attention,但在推理階段把它變成稀疏的。這是因為我們發(fā)現(xiàn) Attention 本身含有稀疏性。
這可能有幾個主要原因:一是 Attention 里有 Softmax(軟最大值)機制。簡單理解,它是一個 “更軟” 版本的取最大值的過程。一般取最大值時,會把最大的數取為 1,其他全部取 0。而 Softmax 是把最大的那個取為 0.9,第二大的可能是 0.09,第三大的是 0.009……這導致在這么多相關性數值里,我們一般叫 Attention Score 或 Attention Weights,本來就只有很少的數很大,這就為稀疏性提供了一個潛在的數學保證。
(注:如前文所說,Transfomer 里的 Attention 是每輸入一個新 Token,要計算它與前面所有 Token 的相關性,所以會得到一組值。常規(guī)在一組值里取最大值時,是將最大的設為 1,其他都設為 0;而 Softmax 是對所有值進行一種函數處理,使它們都分布在 0 到 1 之間,且總和為 1,最大值會得到最高的權重。這些權重之間的數值懸殊很大,是 “稀疏” 的,一些很小的值,后續(xù)處理時可能被舍棄。)
二是從語言學的角度,比如我們今天播客可能有 2 小時,但在 “朝軍” 和 “我” 之間產生的關聯(lián)非常稀疏,就是這 2 小時里,前面有幾萬個 Token,但和 “朝軍” 有強相關性的只有 “我” 這個詞,關聯(lián)本身就很稀疏。
最后是從人腦角度,也不是所有神經元都和所有神經元連接,它的連接也非常稀疏,并且隨著年齡增大,會越來越稀疏。
所以無論從數學上,還是語言學上,還是神經科學上的啟發(fā),大家就覺得稀疏 Attention 本來就存在,并且是可以被利用起來提高效率。
晚點:總結而言,在 Full Attention 的基礎上,后來有哪些改進思路?
肖朝軍:我認為主流分類就是稀疏注意力和剛才提到的 RNN(循環(huán)神經網絡),它又復活了,比如 Mamba 這類模型,RNN 計算很高效,但有遺忘機制。
(注:Mamaba 是由卡內基梅隆大學在 2023 年提出的基于狀態(tài)空間模型的高效長序列建模架構,主要作者是 Tri Dao 和 Albert Gu 等,后文提及的 FlashAttention 的作者也是 Tri Dao。)
傅天予:不過現(xiàn)在大家好像不喜歡說自己是 RNN,會說是線性注意力。我覺得線性注意力里的一些工作確實還是以循環(huán)的方式在進行,但也會有少部分工作,雖然也是把很長的序列壓縮到一個 “記憶” 里,但不像傳統(tǒng) RNN 是逐詞迭代進行的。
晚點:哪種更主流呢?最近的 NSA 和 MoBA 都是稀疏注意力方向的改進。
肖朝軍:在 Mamba 之前,稀疏更主流。但 Mamba 之后,線性注意力機制的改進也非常多。
傅天予:稀疏注意力整體對原本注意力的改動沒那么激進,與現(xiàn)有很多方法能直接搭上。而線性注意力可能描繪了一個更美好的藍圖。
因為它的存儲大小是固定的(注:線性注意力可理解為 RNN,前文有提及 RNN 的存儲大小是固定的),計算復雜度隨序列變長,不是平方增長,而是線性增長(這和它的計算方式有關)。
所以從 Scaling Laws 角度看,當輸入比較短時,線性注意力的提效可能不如稀疏注意力,但輸入特別長時,線性注意力的效率優(yōu)勢會上來。
不過目前大家更多嘗試稀疏注意力,因為很多學界探索表明,純線性注意力的效果(效率衡量的是速度和計算資源消耗,效果衡量的是模型 “聰明” 程度)欠佳,還需要混合其它注意力機制。
晚點:Attention 的提出和后來的改進都是為了處理長文本。除了改進 Attention 機制本身,還有哪些努力能幫助處理長文本?
傅天予:優(yōu)化一個大模型,會有 3 個層次:算法、系統(tǒng)和硬件。硬件層很好理解,你用更快的 GPU,當然可以變快。
系統(tǒng)層稍難理解,比如 FlashAttention 就是一個系統(tǒng)層改進。雖然 GPU 的峰值算力和峰值顯存是固定的,但代碼寫得好不好,決定了你能用到百分之多少。系統(tǒng)層的工作就是追求提高這個百分比,充分利用帶寬、顯存、算力。FlashAttention 讓 Attention 的計算效率提升了一個臺階,顯存則至少降了一個量級。
再上面是算法層,細分又有模型層和更普遍意義的算法。稀疏注意力、MoE(混合專家系統(tǒng))都是對模型層的改進。而改變生成范式比如從一個、一個詞往外蹦,變成兩個詞、兩個詞往外蹦,則是更普遍的算法改進。
(注:MoE 現(xiàn)在是一個主流的大模型架構,比如 DeepSeek-V3 就是一個 MoE 模型,它也是 DeepSeek-R1 的基座模型。V3 也有生成方式上的改進,使用了 Meta 提出的 Multi-token Prediction,一次生成兩個詞。)
肖朝軍:算法層有很多改進,因為長文本的問題很多,不僅僅是計算復雜度和顯存。那針對不同場景,就有不同的優(yōu)化方向。
比如 DeepSeek 在 DeepSeek-V2 里提出的 MLA 也是一個算法改進,它解決什么問題呢?就是剛才提到的,Transformer 需要把所有詞元都存下來,存儲量很大,這樣每次去訪問它的時間會很長,要一個一個讀出來。所以 DeepSeek 就想把這個維度壓低、存儲變小,就做了這方面的一個改進。
(注:MLA 是 Multi-head Latent Attention,多頭潛在注意力。它通過一種聯(lián)合壓縮技術,把算注意力分數時的顯存占用減少了超 90%,同時保持了模型性能。)
解決長思維鏈生成,是 o1/R1 的 RL(強化學習)方法繼續(xù)發(fā)展的關鍵
晚點:接下來,我們來看 NSA 和 MoBA 的一些具體改進。整體上,兩位看到的 NSA 和 MoBA 的最大亮點是什么?
傅天予:我認為最有意思的是,他們都在預訓練階段就引入了稀疏注意力,而此前多數工作是做稠密訓練,在推理時才稀疏。訓練與推理的不一致難免會引入誤差。
所以業(yè)界和學界都很好奇:如果在預訓練階段就引入稀疏性,對模型最終效果是什么影響?
這兩個成果,解答了這個大家關心的問題:就是稀疏注意力經過充分訓練,性能上可以比肩稠密注意力,甚至某些情況下還能超越。
這給稀疏注意力領域打了一劑強心針,之前很多審稿人會質疑,稀疏雖然讓模型變快了很多,但變笨了一點,這能否接受?而這些新成果就是告訴大家,你可以快的同時也很聰明。
肖朝軍:補充一下,從推理階段的稀疏到預訓練階段的稀疏,gap 其實挺大的。因為硬件上,GPU 本身不太適合稀疏計算,而適合稠密計算。把稀疏機制引入預訓練,怎么實現(xiàn)加速是一個難點。
晚點:為什么是在這個時間點,DeepSeek、Kimi 等公司不約而同地要把稀疏從推理階段引入預訓練?
肖朝軍:其實這和 o1/R1 密切相關,這類推理模型會用 RL(強化學習)在訓練中生成很長的思維鏈(CoT),這是讓模型變聰明的必然趨勢。
所以 “輸出很長” 變得更重要了,之前大家更關注 “輸入很長”,比如 Kimi 產品早期的特性就是輸入很長。但當前 DeepSeek 可能更關注輸出很長時的加速。
NSA 論文中的效果(左表)和效率(右表)提升。肖朝軍關注的輸出很長時的加速,體現(xiàn)在右表中的第一欄,Decode,即解碼、生成過程的加速;NSA 相比 Full Attention 加速了 11.6 倍。
其實我之前也想過把稀疏注意力引入訓練階段,但當時我沒有現(xiàn)在的認知,只是想提升訓練階段的效率。
現(xiàn)在的新認知是,解決長 CoT 才是未來繼續(xù) RL Scaling 的關鍵點。DeepSeek-R1 報告里有一張圖:隨著 RL 的訓練步數增加,整個輸出會越來越長。可以預想,訓練步數還會繼續(xù)增加,輸出長度也會繼續(xù)突破。這時把稀疏注意力引入預訓練階段,尤其是 RL 的訓練但這件事(把稀疏引入 RL 訓練)NSA 論文里還沒體現(xiàn)它一定是個未來趨勢。
DeepSeek-R1 技術報告中展示隨訓練步數增長(橫軸),輸出長度(縱軸)持續(xù)增長。
所以我特別關注 NSA 和 MoBA 的理論加速比能不能落到實際,從論文看,他們都做得比較好。我們之前的 InfLLM 就是理論加速比高,但實際加速比不夠好。
晚點:為什么之前加速比很難落下去?
肖朝軍:我一直在搞算法,不是很懂底層系統(tǒng),當時我也和別人討論過,就覺得稀疏天然不適合 GPU,就做罷了。
但看到 NSA 之后,我覺得還是自己的認知有局限,就是我不懂硬件,沒有在算子層做優(yōu)化。而 DeepSeek 真能把這個想法推下去,這是 NSA 給我的最大沖擊。
改進稀疏注意力的思路已比較成熟,但 DeepSeek 和 Kimi 真的把加速落到了真實系統(tǒng)
晚點:這次 NSA 也特別強調了它是 hardware-aligned(硬件協(xié)同)的,就是結合硬件層做了優(yōu)化,這個可以解釋一下嗎?
傅天予:這需要理解 GPU 到底在怎么做計算。GPU 的一個特性就是 “single instruction, multiple data”(單指令、多數據流),即給出一條相同指令,對不同數據做同樣的操作。
比如只計算一個矩陣時,GPU 比較慢,但如果對 20 個矩陣做同樣操作,它就很高效。所以 GPU 是高度并行計算,并行度越高,對 GPU 越友好。這是計算方面。
在內存方面,計算機的內存是存一串連續(xù)數字。GPU 順序訪問連續(xù)數字的效率很高,但如果要訪問的數據比較碎片化,GPU 一次取一大塊數,卻只有其中一小部分有用,效率就會很低,反之,如果取一大塊數,這些數都有用,效率就很高。
理解這兩點后再來看 NSA,它做了一個對 GPU 很友好的操作,就是它是 Block(塊,可以簡單理解為是一組數)的,這又進到了 Kimi 的 MoBA 的標題里了,MoBA 的 B 就指 Block。
所以 NSA 雖然是一個稀疏注意力,但它的粒度是到 “塊” 的,要么這一塊都有用,要么都沒用。這就滿足了剛才說的兩個期待:內存上是連續(xù)訪問,計算上是對同一塊數據做相同計算。它對硬件層的主要優(yōu)化,就是提升 Block 的計算。
肖朝軍:對,打個廣告。我 24 年 2 月的 InfLLM 的核心觀點也是,稀疏注意力,就應該在塊層級去做,才會對硬件更友好。
晚點:其實我也問過 R1,NSA 和 MoBA 的異同,它說:“MoBA 更側重 Block 級別的調控,而 NSA 更側重 Token 級別的精細化操作和硬件優(yōu)化! 實際上二者都是 Block 級別的嗎?
肖朝軍:NSA 也是在 Block level 做的,但文章里沒特別強調。因為即使是 Block,真要做到非常好的硬件優(yōu)化,還是需要很多操作,所以它后面更多強調了它的硬件優(yōu)化。
晚點:硬件優(yōu)化靠什么具體方法實現(xiàn)呢?就是前面提到的寫算子?
肖朝軍:對,就是寫一些系統(tǒng)層的算子(注:算子是神經網絡中執(zhí)行具體數學運算的模塊、它在模型較底層,直接與芯片硬件交互)。DeepSeek 在 NSA 上寫算子時用的是 Triton,這是 OpenAI 開源的、在英偉達的 CUDA 上再抽象了一層的接口。
傅天予:我想補充一個非常有意思的事,因為 Triton 是 GPT 3 那會兒出來的(注:Triton 開源于 2021 年,GPT-3 發(fā)布于 2020 年 6 月)。一個不靠譜的坊間傳聞是,GPT 曾嘗試用稀疏注意力來訓練,所以去做了系統(tǒng)適配,這就有了 Triton。
不管傳聞真假,Triton 確實非常適合做塊狀稀疏計算。雖然 OpenAI 最后自己可能沒有用 Triton,但它已經成為學界要做塊狀稀疏計算的很好的工具。
晚點:所以這是 OpenAI 還 open 的時候,給社區(qū)帶來的一些貢獻。
肖朝軍:補充一下,我覺得 DeepSeek 未來可能會繼續(xù)深入到 CUDA 層(CUDA 是英偉達自己提供的,可以幫開發(fā)者更好使用 GPU 的一套軟件平臺)去寫優(yōu)化。因為 Triton 是對編碼友好,CUDA 可以做更深。
還想補充一點, OpenAI 有沒有做稀疏注意力我不知道,但它一定在長文本上做了新的工作。最近它發(fā)了 DeepResearch,可以想象,長文本能力一定很強,只不過它自己沒有強調。
晚點:具體到 MoBA 和 NSA 的注意力機制的設計,它們的異同是什么呢?
傅天予:我覺得共同點主要有三點。一是,它們都是先從更高層次選一塊需要關注的上下文,這個所謂的 “一塊” 就是 “Block Level”,具體選法,二者有細微差別,但總之要先選一塊,把這一塊內容拿進來,再去關注塊內部的細節(jié)。
二是,它們選詞時,都傾向關注離當前這個詞最近的詞,這也非常自然,因為即使是稠密注意力,天然也會表現(xiàn)出對臨近的詞更關注。這從語言學上也能理解。
三是,二者都是對于每一個輸入的詞(更具體的說是詞的查詢向量),它選的 Block 是不一樣的,就是它會針對當前在 decode(解碼,這里指生成過程)的詞,選不同的上下文塊。
肖朝軍:所以整體思路其實挺相似,除了怎么選塊的差別,還有對塊的表示可能有細微差別。
還是我剛才提到的那個點,現(xiàn)在改進注意力的思想已經比較一致了,但他們能把加速比落到真實的系統(tǒng)里,這件事很關鍵。
晚點:除了你們提到的,NSA 和 MoBA 都是在塊級別上做計算,它們也提到自己都是動態(tài)稀疏注意力。這里的 “動態(tài)” 是什么意思,那么相對應的靜態(tài)呢?
傅天予:其實 NSA 和 MoBA 都是既有動態(tài),也有靜態(tài)。
解釋這個問題,還是要回到大模型怎么處理文本。文本進入一個模型時,其實是進來了兩個東西,一是每個詞說了什么,二是這些詞的位置,而位置就是靜態(tài)的。
所以,如果一種注意力機制和位置強綁定,比如總是關注句子開頭的幾個詞,就偏靜態(tài);如果是更多關注詞的內容,就是動態(tài)。
在 MoBA 里,它會先固定選擇某個 Token 所在的 Block,其實就是在選擇臨近的位置的 Token,它也有靜態(tài)的部分在。
肖朝軍:NSA 里用到的滑動窗口也是一種靜態(tài)稀疏注意力。因為它已經預設了這個詞要和哪些窗口里的一組詞做相關,而不是動態(tài)地決定和哪些詞相關。
那它的問題也可以想象,比如 “我是肖朝軍” 這個例子,在很長的文本里,就需要動態(tài)地去關聯(lián) “朝軍” 和 “我”,靜態(tài)可能就滑不到那么前面的 “我” 了。
傅天予:一般而言,靜態(tài)效率高,但效果稍差。動態(tài)效果更好,因為它同時關注位置和內容信息,但這導致在輸入具體內容前,不知道具體要看哪里,這種計算對 GPU 不是很友好,就會比較慢。所以二者是一種權衡。
訓練曲線揭曉懸念:稀疏注意力一定更快,但它也能更好嗎?
晚點:NSA 和 MoBA 都做了一系列測試來驗證自己的效果和效率提升的有效性,在這些測試與實驗成果中,你們看到的亮點是什么?
傅天予:我個人更關注他們的 Training Curve(訓練曲線)的下降情況。
NSA 展示了 270 億參數大小模型上的訓練損失曲線(Training Loss Curve)。
MoBA 展示的訓練損失曲線。左圖的常用預測損失包含所有詞元,即也包含大量段前位置的詞元(相當于短文本);而右圖則展示了 32K 輸入長度下,最后 1K 詞元的預測損失,這種長文本末尾的預測損失,更能突出表現(xiàn)模型在上下文變長后的預測性能。
因為我們關注一個改進是否在帕累托前沿上,即同等速度下模型是否最聰明,同等聰明時模型是否最快。
稀疏注意力一定比稠密注意力更快,而訓練曲線會揭示,在投入足夠多的資源時,稀疏注意力能否和稠密注意力一樣好?這件事我們之前不知道。這兩份工作都給了一個比較積極的答案,就是稀疏和稠密的效果大概率會趨于一致,甚至稀疏會更好。
肖朝軍:我個人最關注的是在預訓練階段引入洗漱注意力后,模型在長推理、數學題上的效果。就還是長思維鏈的表現(xiàn)。
NSA 在主要 Benchmark 上與 Full Attention 的對比。涉及通用知識、推理和編程;在 4 項推理 Benchmark 中,NSA 的效果都好于 Full Attention。
除了 MMLU(是涉及幾十個學科的通用知識測試)和 MBPP(測試模型從自然語言合成簡短 Python 的能力)兩個指標,NSA 的表現(xiàn)都好于 Full Attention。
這張表中,NSA 則對比了 H2O、InfLLM 等過往稀疏注意力改進和 Full Attention 在測試長文本能力的 LongBench 上的表現(xiàn),并展示了 MQA(多文檔問答)、Code(代碼)等細分任務上的得分。
MoBA 與 Full Attention 的效果對比。MoBA 與 NSA 的基準選擇有重合,也有區(qū)別。比如二者都測了衡量推理能力的 BBH、GSM8K,和與編程任務有關的 MBPP,也都測了綜合衡量長文本能力的 LongBench。
晚點:這部分最后想補充問一下,之前很多工作,包括兩位自己的工作,都沒有把稀疏注意力引入預訓練階段,除了前面提到的認知問題,是不是也和學界的算力資源比較少有關?
肖朝軍:這有兩方面,一是學界要去搞預訓練,確實開銷很大,但我覺得這是很小的一方面。更多還是我之前說的認知問題,我不太會做底層優(yōu)化,而且 InfLLM 是 2023 年就開始做的,當時也不知道生成長思維鏈對 RL 很重要。
傅天予:學界還有一個問題是缺數據。如果我們要把稀疏引入預訓練,并且想證明它好用,就需要讓它變得和稠密模型一樣強。但稠密模型那么強,所用的數據、和一些訓練上的技巧,學界可能沒有或不知道。
你當然可以用一樣的方法、一樣的數據去訓練稀疏注意力和稠密注意力的兩個模型,如果稀疏的稍微聰明一點,好像也能證明問題。但工業(yè)界其實不會太認可。并且驗證成本也很高。
所以我們當時做 MoA 時,最大出發(fā)點就是不要訓練,我一定不要訓練。預訓練可能算力不夠,但微調(后訓練)還是做得起的。但我們就不要微調,因為我們希望 MoA 能即插即用,任何人訓練一個稠密注意力的模型后,都能直接用。
我們也不希望我們的方法改變原來模型的偏好。你一旦訓練,可能會讓一個本來禮貌的模型,突然變得機靈,我們不想這樣。所以當時是故意拿掉了訓練部分。
肖朝軍:對對對,我 InfLLM 論文的標題里就寫了 Training-Free,就是不要訓練。
大模型訓練分預訓練、微調兩個階段。2023 年時,第一個階段還是短的輸入和輸出,第二階段才會用比較少量的數據把它訓長。所以當時還是想在訓練之后的階段把效率打上去。而現(xiàn)在看,從預訓練階段就引入稀疏,一是效果會更好,二是因為長 CoT,現(xiàn)在也真的需要這么做。
多模態(tài)疊加長思維鏈,文本還會更長長長
晚點:再往下,你們認為注意力機制有哪些探索方向?剛才也講到了一些,如長思維鏈生成的相關優(yōu)化。還有呢?
肖朝軍:還有一點是,隨著長文本變得更長,稀疏注意力遲早會面臨存儲問題,因為它的存儲復雜度其實沒變,還是得存前面的全部內容。
存儲改進的極致是 RNN,也可以說是線性注意力,它的存儲大小是固定的,但性能可能有上限。在這兩個存儲的極端之間,有沒有一個中和?
晚點:想請?zhí)煊柩a充一下,存儲這件事,它能如何從硬件上優(yōu)化嗎?
傅天予:這很難。對比計算和存儲,計算發(fā)展得非?,但片上存儲,例如顯存發(fā)展很慢。最近 4 年,英偉達芯片的算力翻了幾十倍,存儲連兩倍都沒到。(英偉達 2025 年發(fā)布的 B200 的算力是 2021 年 A100 的 64 倍,顯存則是 1.2 倍)。
這是因為快速存儲非常占芯片面積。而芯片面積再增大,良率會快速衰減,成本就會高得不可接受。
肖朝軍:當然存儲相對便宜,不一定用顯存,也可以用計算機內存,或直接掛硬盤,但這又帶來數據傳輸的速度問題。
其實人腦就不需要那么多存儲。有沒有可能再進一步向人的機制靠近?就是能動態(tài)決策,什么時候、什么東西該存,什么不該存,這可能是下一步要探索的。
晚點:長文本,目前階段看還是以語言為主,未來多模態(tài)的注意力要怎么優(yōu)化?
傅天予:我手頭正在探索多模態(tài)注意力的特點。一是模態(tài)變多時,上下文會有非常大的增長。對標人類,人 1 小時能讀 18K 的文本,但聽 1 小時音頻轉化成模型輸入是 90K,看 1 小時視頻,即使每秒只看 1 幀(正常視頻至少每秒 24 幀),輸入到模型也是 100 萬(具體數值和分辨率有關)。100 萬 token 什么概念?差不多能放下 3 冊《哈利波特》。
二是,不同模態(tài)也會改變注意力的稀疏模式。文本中常見的稀疏模式是關注臨近的詞。而對視頻而言,可能需關注不同幀的相同位置比如在觀察球的運動軌跡時,那些和當前 Token 最相關的 Token 并非總是鄰近的,而是會跳躍,比如每隔 220 個 Token 看一下。所以不同模態(tài)對注意力設計也有不同要求。
我們最近剛開源了一個工作 FrameFusion,它雖然不是處理注意力問題,但也是希望解決長序列下的視頻理解問題。這個工作發(fā)現(xiàn),現(xiàn)在我們在文本里選擇舍棄哪部分注意力的值時,更多是從重要性考慮;而視頻里,有些東西雖然很重要,但它每幀都出現(xiàn),就不需要重復看。所以我們會更多從冗余性出發(fā),只保留重要且獨特的部分。
晚點:你們覺得,我們現(xiàn)在已經看到的 NSA、MoBA 這些注意力機制,離我們理想中的注意力,總體還有多大差距?
肖朝軍:還是要從能力出發(fā)去思考這個問題,就是如何探索長文本的記憶能力。注意力機制本身能改的、大的東西也不多了。而獲得更長的 “記憶” 可能需要新的架構改進。
傅天予:汪玉老師特別喜歡說一個例子:神經網絡就是 y=f(x)。x 是輸入,y 是輸出,f 是這個網絡。
現(xiàn)在的趨勢是,x 越變越長,這是多模態(tài)等帶來的;y 也越變越長,這是思維鏈帶來的。f 要做的事就是,當 x 和 y 都變得這么長時,我怎么能算得快,同時又能正確地輸入 x,并正確地輸出想要的 y。這就是大家努力的總體目標。
至于 f 怎么做到這兩點,注意力改進是方法之一。但也有其他方法能服務這個目標。
用 AGI 解決可控核聚變,然后供能 AGI?
晚點:我們又回到了長文本。未來更長的文本,可以用來做什么呢?
肖朝軍:按 OpenAI 的規(guī)劃,下一步就是做創(chuàng)新。比如我們博士生做科研,從選題到做實驗,到最后寫 paper,整個過程會歷時幾個月甚至一、兩年,這幾個月時間里的思考如果都存下來,現(xiàn)在的存儲肯定不夠。
(注:OpenAI 去年 7 月定義了 AGI 路線圖的 5 個階段:聊天者、推理者、智能體、創(chuàng)新者、組織者)。
而我覺得,AGI 的實現(xiàn),未來一定要做科研。
晚點:為什么你認為科研這個場景這么重要?
肖朝軍:因為科研需要非常綜合的能力。能做科研,意味著 AI 要有思考能力、記憶能力、高效學習能力等等,所以科研是 AGI 發(fā)展到較高水平時的集中體現(xiàn)。
有了這種能力,AI 能拓展人類知識的邊界,提出新范式,探索新的宇宙奧秘。
晚點:OpenAI 的路線圖里,創(chuàng)新者之后還有一個組織者。
肖朝軍:其實我不太認同這個。組織可能先于創(chuàng)新發(fā)生,它不一定是高智能水平才能做到的事,螞蟻間也有組織。
這(創(chuàng)新和組織)可能是兩個方向:一是單體智能增強,一是從單體向多體合作發(fā)展,誰先發(fā)展不一定。
大家以前會想,能不能讓大語言模型自己生成文本,再自己訓練自己,越訓越聰明,F(xiàn)在發(fā)現(xiàn),這樣訓練完的大模型會直接崩掉。但如果 AI 真能做科研的話,其實有希望讓它自己迭代、自己升級,甚至有可能出現(xiàn)超越人類的智能。
晚點:現(xiàn)在有看到任何這樣的苗頭嗎?
肖朝軍:現(xiàn)在還沒有,但我覺得未來 AGI 總會發(fā)現(xiàn)自己的缺陷,那就得改自己。
晚點:它為什么會產生這個動機呢?
肖朝軍:這個就是 AGI 的未來了。它現(xiàn)在肯定沒有動機。
晚點:對,現(xiàn)在只有人給它的學習目標,比如人給 GPT 設定的學習目標是預測下一個詞,給 o1 的目標是用長思維鏈來 “思考”。再往下會是什么呢?
肖朝軍:那就看人類怎么想了。也可以設計一個損失函數(Loss Function,它用來衡量模型預測值與真實值之間的誤差解釋,可為模型優(yōu)化提供指導),告訴它,目標就是自我迭代,越來越聰明。
晚點:那么什么叫聰明呢?好像還是得人來定義。
肖朝軍:當然了,這個其實很難。人怎么定義自己的智能,又怎么定義人工智能,都有很多分歧。比如這個話筒,它能錄我的聲音,這是智能嗎?
晚點:好像不是一般人理解的智能。
肖朝軍:但是大家肯定認為人臉識別是智能,它也和話筒一樣,只能做一個任務。為什么話筒不是智能,人臉識別是智能?
人類對智能的定義現(xiàn)在還不完善。也許未來我們給 AGI 創(chuàng)造足夠多的能力后,它的目標不是人定的,而是它自己定的。
晚點:這個目標會是人類想要的嗎?
肖朝軍:這很難想象。我傾向認為未來 AGI 可能是自組織形式,一個 AI 可以帶著一堆 AI 工作,也會和人類一樣有分工,老板負責 “畫餅”、定目標,只是這個目標是否服務人類社會,這是未知的。
傅天予:人類總覺得自己的智能好像高人一等,大腦奧秘真是難以捉摸。但人類智能在機理上是不是就比其他智能高級呢?或者說什么機理最合適、最好呢?智能也不一定是越像人越好。
晚點:其實一開始聊稀疏注意力時,天予就提到,神經科學研究也發(fā)現(xiàn)神經元之間的連接是稀疏的。好像大家下意識還是把 AI 和人類大腦做類比。
傅天予:我覺得人是提供了一個可行解,而且是較優(yōu)的解,但不能保證是最優(yōu)解。
當大家都不相信一件事能行時,提供一個可行解或較優(yōu)解,能幫助把事做成。但是去思考這件事怎么做到最好時,只提供可行解是不夠的。
晚點:人腦的效率遠優(yōu)于現(xiàn)在 AI。
肖朝軍:對,因為人的能源就是有限的,每天只能吃這么多?刂颇芎氖巧镞M化的一個關鍵限制。但對 AI,假如它的智能水平足夠高,我們就能給它提供足夠的算力。
晚點:地球能源不也是有限的嗎?這是要實現(xiàn)可控核聚變呢?
肖朝軍:可以讓 AGI 去研究這個,然后再給自己供能。所以還是回到剛才說的,我認為科研會是 AGI 最重要的一個問題。
*附文中提到的主要工作的 GitHub 或 arxiv 鏈接:
NSA:
https://arxiv.org/abs/2502.11089
MoBA:
https://github.com/MoonshotAI/MoBA
InfLLM:
https://arxiv.org/abs/2402.04617
MoA:
https://github.com/thu-nics/MoA
FlashAttention:
https://github.com/Dao-AILab/flash-attention
題圖來源:《社交網絡》