DeepSeek最新論文科普解讀:NSA,物美價(jià)廉的超長(zhǎng)上下文方案

1 評(píng)論 1083 瀏覽 2 收藏 17 分鐘

DeepSeek在AI領(lǐng)域的發(fā)展一直備受關(guān)注,其最新論文《Native Sparse Attention: Hardware-Aligned and Natively Trainable Sparse Attention》更是引發(fā)了行業(yè)的廣泛討論。本文將深入解讀DeepSeek的這一創(chuàng)新成果,探討其如何通過(guò)稀疏注意力機(jī)制(Sparse Attention)解決超長(zhǎng)上下文處理中的成本與效率問(wèn)題。

2025年2月18日,DeepSeek在Twitter上公布了最新論文:Native Sparse Attention: Hardware-Aligned and Natively Trainable Sparse Attention。截止本篇解讀完成,已經(jīng)獲得100萬(wàn)閱讀量。

我對(duì)他的看法,可以引用Twitter上一名網(wǎng)友的評(píng)論:“Holy shit this shits on Grok 3”。

文雅地翻譯:“我的天,這比Grok3強(qiáng)多了”

我更喜歡我讀到這一句話時(shí),腦子里第一時(shí)間的譯法:“我的天,這簡(jiǎn)直是在Grok3頭上拉屎”

關(guān)于我的Grok3的看法,我會(huì)放到最后面,那不重要,我們先看這篇最新論文。

01 DeepSeek在解決什么問(wèn)題?

前置科普

模型訓(xùn)練以及推理,和“注意力”這個(gè)東西脫離不了關(guān)系。為了方便后文的閱讀,對(duì)注意力進(jìn)行一個(gè)簡(jiǎn)單的科普:

你可以想象,你在讀一本書(shū),你的目光會(huì)在書(shū)上掃來(lái)掃去,理論上說(shuō)是逐行閱讀對(duì)吧?

但實(shí)際上,只要是稍微喜歡閱讀的人,閱讀中的目光一定是圖像式的,也就是說(shuō)“一目十行”,會(huì)快速對(duì)某個(gè)區(qū)域的文本做一個(gè)瀏覽,幾乎不可能是一個(gè)字,一個(gè)字讀過(guò)去的。

注意力就是這里面對(duì)文字的專(zhuān)注捕捉,所以你是怎么一目十行的呢?很顯然,你進(jìn)行了跳過(guò),并只看了某些重點(diǎn)信息,你并不需要真的一個(gè)字一個(gè)字讀過(guò)去

p.s,當(dāng)我們讀英文的時(shí)候,卻沒(méi)有中文的這種速度,某種程度上就是注意力機(jī)制在跨語(yǔ)言的失效——我們的大腦只訓(xùn)練了中文注意力,而英文注意力很薄弱。

Get到了吧,這個(gè)時(shí)候就引入今天的主題:稀疏注意力(Sparse Attention),即一目十行;而與之相對(duì)的是全注意力(Full Attention)。

稀疏注意力的問(wèn)題

事實(shí)上,稀疏注意力不是一個(gè)獨(dú)創(chuàng)的概念,但他存在若干問(wèn)題:

① 大部分稀疏注意力是用在推理階段的,而不能用在訓(xùn)練,這就導(dǎo)致模型能力下降。諸葛亮讀書(shū)只求大略,然后嘎嘎輸出。結(jié)果我沒(méi)用諸葛亮的讀書(shū)方法,也想學(xué)諸葛亮嘎嘎輸出,這就有問(wèn)題了。

② 多數(shù)稀疏注意力方法,要么是只集中于預(yù)填充階段(Pre-fill),要么就是集中于解碼階段(Decoding),很少有兩者都能搞定的。

以輸入“你是誰(shuí)”,模型回答“我是馬丁”舉例說(shuō)明預(yù)填充和解碼的區(qū)別

預(yù)填充:拿到輸入“你是誰(shuí)”,計(jì)算出“我”,這個(gè)過(guò)程中“你是誰(shuí)”是一次性拿到的信息,所以他計(jì)算成本高,要一次性算三個(gè)字,出一個(gè)字,但內(nèi)存成本低

解碼:從“我”開(kāi)始,預(yù)測(cè)出“我是”,“我是馬”,“我是馬丁”。這里面每次解碼都要重新拿到前面算好的所有信息來(lái)預(yù)測(cè)下一個(gè)字。所以他的計(jì)算成本很低,每次就出一個(gè)字,前面的也不用算。但是內(nèi)存成本高

在預(yù)訓(xùn)練階段以及長(zhǎng)文摘要,閱讀理解這種推理任務(wù)上,預(yù)填充的壓力大,在如R1或代碼這種長(zhǎng)輸出的場(chǎng)景上,解碼的壓力大

③ 一些稀疏注意力方法,沒(méi)辦法和現(xiàn)在常見(jiàn)的高效架構(gòu)GQA、MQA兼容(在前文《萬(wàn)字長(zhǎng)文:DeepSeek 647天鑄就的登神長(zhǎng)階》有提到,DeepSeek-67B用的GQA,后來(lái)改為了自研的MLA)。

GQA就是把輸入的Token們生成的向量分成N組,然后組內(nèi)共享一個(gè)計(jì)算結(jié)果,這樣成本就下降N倍。

但是有些稀疏注意力方法,他一目十行挑重點(diǎn)內(nèi)容的時(shí)候,就是按Token挑的,例如從50個(gè)人里找1個(gè)帥的,結(jié)果50個(gè)人被GQA變成了5隊(duì)。一個(gè)帥的VS1隊(duì),這單位就匹配不上了。

當(dāng)然還有其他各種兼容問(wèn)題,這只是其中一個(gè)例子。

所以,DeepSeek要什么?

① 我要一個(gè)能同時(shí)用在訓(xùn)練上和推理上的稀疏注意力方法,這樣模型的智力才不會(huì)下降!

② 我要能夠同時(shí)作用在預(yù)填充階段和解碼階段的方法,長(zhǎng)文摘要的命是命,代碼長(zhǎng)輸出的命也是命!為我發(fā)聲!

③ 我要能夠兼容GQA、MQA這種方案的方法。一個(gè)成本折扣還不夠,我要來(lái)個(gè)折上折!

總之,物美價(jià)廉!

02 DeepSeek的解決方案

神說(shuō)要有光,然后挨了三板磚,吃了一顆糖

物美價(jià)廉的大方針確定了,DeepSeek開(kāi)始嘗試業(yè)內(nèi)的各個(gè)學(xué)術(shù)方案

如ClusterKV,Quest,InfLLM等等,但不是成本高,就是不好用

最后他們把他們一個(gè)用常規(guī)全注意力方法訓(xùn)練的27B模型可視化了一下

看到里面橙色的東西沒(méi)有,那就是Token的注意力分?jǐn)?shù)。

他們發(fā)現(xiàn)在一些地方,似乎注意力的分?jǐn)?shù)是連續(xù)、聚類(lèi)的!

于是真正的方案來(lái)了:NSA

整個(gè)NSA的結(jié)構(gòu)分為三個(gè)部分

① Token Compression-壓縮塊(下圖最上)。把所有注意力,按時(shí)間順序壓縮成塊,然后只計(jì)算一個(gè)粗略的注意力分?jǐn)?shù)。這部分不求細(xì)節(jié),只求大略,不精準(zhǔn),但全面。

② Token Selection-選擇塊(下圖中間)。我要從全部注意力中,挑選出我要著重,特別注意的部分,算出他們的精確注意力分?jǐn)?shù)。在這里,會(huì)借用前面壓縮塊時(shí)已經(jīng)算過(guò)一遍的分?jǐn)?shù)來(lái)參考計(jì)算我這里選擇塊的分?jǐn)?shù),可以避免全部重算一遍(不然賊虧)。算完后,拿TOP-N作為被選擇的塊(就是圖中綠色部分)。

③ Sliding Window-滑動(dòng)窗口塊(下圖最下)。最后,預(yù)測(cè)的時(shí)候最近的內(nèi)容也很重要,所以我們做一個(gè)固定窗口的塊,專(zhuān)門(mén)計(jì)算最近Token內(nèi)容的分?jǐn)?shù)。

總而言之,我有全局(壓縮塊),我有精細(xì)調(diào)研(選擇塊),我還有實(shí)時(shí)近況(滑動(dòng)窗口塊),誰(shuí)能當(dāng)我!

如果這事兒這么簡(jiǎn)單就好了。事實(shí)上,模型在訓(xùn)練的時(shí)候會(huì)投機(jī)取巧,他們總能發(fā)現(xiàn)——我只要用近況去預(yù)測(cè),就已經(jīng)差不多準(zhǔn)了哎,要什么全局視野和精細(xì)調(diào)研(是不是和很多錯(cuò)誤決策很像?)。

于是DeepSeek專(zhuān)門(mén)把這三種策略在訓(xùn)練的時(shí)候隔離開(kāi)了,避免全局思維和精細(xì)思維沒(méi)被訓(xùn)練到,只訓(xùn)練到了豬突思維…

然后,他們又搞了CUDA內(nèi)核…

但是我看不懂…Infra真的是我的痛點(diǎn),誰(shuí)能教教我…請(qǐng)后臺(tái)私信留言,加個(gè)好友來(lái)聊聊

我最近對(duì)VLLM,KTransformer這些都很感興趣,但不知道從何學(xué)起

最后,可怕的不是價(jià)廉,而是物美

NSA這個(gè)方案,他們?cè)?7B(3B激活參數(shù))的MoE架構(gòu)模型上做了多項(xiàng)測(cè)試

成本上爆炸降低:

后向傳播,提升6倍;前向傳播提升9倍;解碼速度提升11.6倍!

模型預(yù)訓(xùn)練中用到前向傳播+后向傳播;模型推理的時(shí)候用到前向傳播+解碼。

這個(gè)結(jié)果在64K上下文中測(cè)試得出——并且隨著上下文長(zhǎng)度增加,這個(gè)提升倍數(shù)還會(huì)進(jìn)一步上升。

例如下圖,解碼中每次注意力操作的內(nèi)存訪問(wèn)量,8K上下文只提了4倍,64K就11.6倍了,終有一天,200K也能廉價(jià)地走進(jìn)千家萬(wàn)戶(hù)——AI編程有福了!希望編程廠商到時(shí)候別再偷偷閹割我的上下文了T-T。

更可怕的是,性能上居然還提升了?!

你能想象,你一天到晚一目十行,學(xué)諸葛亮只求大略,然后你真成諸葛亮了……?

大家可以看下面這張圖,左側(cè)就是NSA方法對(duì)比全注意力方法的模型能力評(píng)測(cè)

從左到右依次是:常見(jiàn)任務(wù),超長(zhǎng)上下文任務(wù),推理任務(wù)

發(fā)現(xiàn)了嗎?全線超出,甚至在推理任務(wù)上非常明顯!

DeepSeek的猜測(cè)是:

在訓(xùn)練過(guò)程中,NSA逼迫模型專(zhuān)注于最重要的信息,可能是通過(guò)過(guò)濾掉不相關(guān)的注意力噪聲來(lái)提高能力。

什么PUA圣經(jīng)???也就是說(shuō),要求AI讀殘頁(yè),AI讀不好就罵他,結(jié)果AI變得特別擅長(zhǎng)讀殘頁(yè),知道自己去捕捉重點(diǎn)信息,甚至因此還變得更加聰明。

受啟發(fā)了!下次訓(xùn)練視覺(jué)大模型的時(shí)候可以給AI戴個(gè)獨(dú)眼龍眼罩o.O

好了,快樂(lè)的論文解讀時(shí)光結(jié)束了,聊點(diǎn)別的。是的,從我行文里面,你應(yīng)該看得出來(lái),真的是很快樂(lè)哈哈。

主要因?yàn)檫@篇論文他Infra的內(nèi)容只有一個(gè)章節(jié),比V3好讀太多了。

03 一些觀后感

時(shí)間比較晚了,沒(méi)想到太多,想到啥寫(xiě)啥

AI編程應(yīng)該會(huì)迎來(lái)新的爆發(fā)

① 這篇論文一方面是沖著超長(zhǎng)上下文的成本去優(yōu)化的,但另一方面——也使得模型在預(yù)訓(xùn)練階段喂入“超長(zhǎng)文本”成為可能,這就會(huì)導(dǎo)致能力和成本的雙重上升!

② 梁文峰出現(xiàn)在作者名單里了,之前也在MoE那篇論文里,除此以外他只出現(xiàn)在了DeepSeek-Coder系列里!老梁,快啊,加油干,我能不能從產(chǎn)品經(jīng)理變成真正的AI程序員就看你了?,F(xiàn)在的AI編程對(duì)于小白來(lái)說(shuō)真的只能用來(lái)做小工具啊

③ DeepSeek-CoderV2,已經(jīng)是24年6月,8個(gè)月前的模型了。現(xiàn)在有了更好的V3基座,能力上就會(huì)有加成,而且從過(guò)去的論文上看,預(yù)訓(xùn)練采集的數(shù)據(jù)質(zhì)量也會(huì)受益于基座能力的提升,雙倍加強(qiáng)!最重要的是,很多新技術(shù)DeepSeek-CoderV2還沒(méi)用上,我感覺(jué)是不是已經(jīng)在搞了,真的很期待。

開(kāi)源開(kāi)到我心痛

① 今天中午對(duì)岸的馬圣公布了Grok 3,用了地表最強(qiáng)來(lái)形容——但,怎么說(shuō)呢。90分相比89分,當(dāng)然是最強(qiáng),但是誰(shuí)在乎呢?DeepSeek可能只有85分,但人家是真教啊。這也是海外大面積對(duì)DeepSeek好感的核心原因。

② 但是,這樣開(kāi)源真的好心痛,因?yàn)榭ㄗ疃嗟膩?lái)自對(duì)岸,馬斯克那個(gè)20萬(wàn)卡,要是用上這個(gè)技術(shù),能省多少錢(qián),我想一想就心痛得無(wú)法呼吸…

③ 而且,雖然我非常喜歡這樣的英雄史詩(shī),但是智力、創(chuàng)造力和資源的天平真的難說(shuō)孰輕孰重。一個(gè)優(yōu)秀的方法,在不同資源體量下,撬動(dòng)的利益總量總是不一樣的。希望勇敢和智慧能戰(zhàn)勝財(cái)富,希望夢(mèng)想主義能戰(zhàn)勝電線桿上的枯鴉。

視覺(jué)系列

① DeepSeek-VL2是12月13日發(fā)布的模型,很快有VL3可能不太現(xiàn)實(shí)

② 不過(guò)我想今天這篇論文讓超長(zhǎng)上下文在成本和性能上有了突破,這里面的思路不知道能不能借鑒到VL2模型上?現(xiàn)在的VL模型基本上還是以理解靜態(tài)圖片為主的,畢竟圖片學(xué)習(xí)的Token很大(我記得VL2里單圖是576Token一張圖)。

當(dāng)然,這個(gè)有點(diǎn)玄幻了,不過(guò)我只是想到哪里說(shuō)哪里,那就這樣吧

為什么我要親自讀論文

有些朋友知道,我其實(shí)是一個(gè)文科背景的產(chǎn)品經(jīng)理,讀論文對(duì)我是一件很吃力的事情。我堅(jiān)持讀DeepSeek的論文有以下幾個(gè)原因:

① 我做判斷,需要一個(gè)底層的堅(jiān)固基座。所以關(guān)鍵信息,我不喜歡接收二手內(nèi)容,差之毫厘謬以千里。

② 關(guān)鍵也找不到太多和我知識(shí)水平匹配的高質(zhì)量的二手信息。懂的人只寫(xiě)給懂的人,上來(lái)就徒手推公式。不懂的人則把幾個(gè)名詞翻來(lái)覆去說(shuō)一遍,截幾張論文里的圖,賺一波流量就跑了。所以我真的是被迫去做這件痛苦的事情(主要是Infra痛苦)。

③ 我覺(jué)得DeepSeek的論文是一個(gè)很高質(zhì)量的信源。因?yàn)樗麖腄eepSeek-67B做到今天的DeepSeek-R1,整個(gè)過(guò)程中都寫(xiě)了論文,通過(guò)讀他的論文我可以遍歷整個(gè)語(yǔ)言大模型的技術(shù)線,整個(gè)知識(shí)是成體系,承上啟下的。有時(shí)候我甚至可以通過(guò)其中的草蛇灰線,感受到他們智力碰撞出來(lái)的火花。

④ 我覺(jué)得DeepSeek是真誠(chéng)的。很多廠商經(jīng)常今天又發(fā)明了什么方法,明天又屠了什么版,存在感刷得飛起?;蛟S100篇里有50篇是有價(jià)值、真實(shí)的。但我沒(méi)有這個(gè)能力和精力去挑選,所以我只看DeepSeek的論文。

我的朋友,我建議你也不要相信我,有能力和精力最好自己去讀原文,自己讀過(guò),想過(guò),寫(xiě)過(guò),才是自己的。

如果只是把這篇文章往朋友圈里轉(zhuǎn)一轉(zhuǎn),收藏夾里放一放,緩解焦慮是有用的,學(xué)到什么或許真的未必。

引用DeepSeek的引用——“務(wù)必要瘋狂地?fù)肀坌?,同時(shí)要瘋狂地真誠(chéng)”

作者:馬丁的面包屑 公眾號(hào):馬丁的面包屑

本文由@馬丁的面包屑 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。

題圖來(lái)自 Unsplash,基于 CC0 協(xié)議

該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺(tái)僅提供信息存儲(chǔ)空間服務(wù)。

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 博主執(zhí)行力好強(qiáng),博主是怎么讀這些論文的,遇到不懂的咋辦?

    來(lái)自上海 回復(fù)