為什么大語(yǔ)言模型難以處理長(zhǎng)上下文?從 Transformer 到 Mamba 原創(chuàng) 精華
編者按: 大語(yǔ)言模型真的能像人類(lèi)一樣高效處理海量信息嗎?我們今天為大家?guī)?lái)的這篇文章,作者揭示了大語(yǔ)言模型在長(zhǎng)上下文處理中的技術(shù)挑戰(zhàn)與未來(lái)發(fā)展路徑。
文章重點(diǎn)聚焦于三個(gè)關(guān)鍵層面:首先,解析了 Transformer 模型注意力機(jī)制的計(jì)算成本問(wèn)題,指出隨著上下文長(zhǎng)度增加,計(jì)算復(fù)雜度呈指數(shù)級(jí)增長(zhǎng);其次,探討了 Mamba 等新興架構(gòu)在突破傳統(tǒng)模型局限性方面的潛力;最后,強(qiáng)調(diào)需要跳出現(xiàn)有思維模式,尋找處理海量信息的創(chuàng)新方法。
作者 | Timothy B. Lee
編譯 | 岳揚(yáng)
OpenAI 在兩年前推出 ChatGPT 時(shí),其能夠處理的上下文信息僅有 8,192 個(gè) tokens1。換言之,如果輸入的文本超過(guò)大約 15 頁(yè),它就會(huì)“遺忘”最初的上下文內(nèi)容。這一限制使得 ChatGPT 在處理任務(wù)時(shí)的規(guī)模和復(fù)雜度都受到了影響。
而現(xiàn)今的 LLMs 能力有了顯著提升:
- OpenAI 的 GPT-4o[1] 現(xiàn)在能夠處理多達(dá) 128,000 個(gè) tokens 的上下文。
- Anthropic 的 Claude 3.5 Sonnet[2] 可以處理 200,000 個(gè) tokens 的上下文。
- Google 的 Gemini 1.5 Pro[3] 更是擁有 2 百萬(wàn)個(gè) tokens 的上下文處理能力。
盡管如此,要想讓 AI 系統(tǒng)達(dá)到人類(lèi)水平的認(rèn)知能力,我們還需要取得更多的進(jìn)步。
許多人展望未來(lái),認(rèn)為 AI 將能夠承擔(dān)大部分甚至全部的人類(lèi)工作。然而,人類(lèi)在工作生涯會(huì)閱讀和聽(tīng)到數(shù)以億計(jì)的文字,并且還能通過(guò)視覺(jué)、聽(tīng)覺(jué)和嗅覺(jué)從周?chē)h(huán)境中獲取更多信息。要使 AI 達(dá)到人類(lèi)智能水平,它們也需要具備處理如此大量信息的能力。
目前,處理大量信息的最流行 LLM 系統(tǒng)構(gòu)建方法是“檢索增強(qiáng)生成”(RAG)。這類(lèi)系統(tǒng)會(huì)尋找與用戶查詢相關(guān)的文檔,并將最相關(guān)的部分嵌入到 LLM 的上下文中。
盡管 RAG 系統(tǒng)在某些情況下能夠有超越傳統(tǒng)搜索引擎的表現(xiàn),但目前這類(lèi)系統(tǒng)仍存在諸多不足。它們只有在成功將最關(guān)鍵的文檔嵌入 LLM 的上下文時(shí),才能產(chǎn)出滿意的結(jié)果。然而,用于檢索這些文檔的技術(shù),通常是在向量數(shù)據(jù)庫(kù)[4]中進(jìn)行搜索 —— 并不夠精細(xì)。如果用戶提出的問(wèn)題復(fù)雜或含糊不清,RAG 系統(tǒng)很可能會(huì)錯(cuò)誤地檢索文檔,導(dǎo)致聊天機(jī)器人給出錯(cuò)誤的回答。
此外,RAG 系統(tǒng)并未讓 LLM 在處理大量文檔時(shí)展現(xiàn)出更高級(jí)的推理能力:
- 例如,律師可能需要 AI 幫助審閱和總結(jié)數(shù)十萬(wàn)封電子郵件。
- 工程師可能需要 AI 分析數(shù)千小時(shí)的工廠監(jiān)控視頻。
- 醫(yī)學(xué)研究者可能需要 AI 在數(shù)以萬(wàn)計(jì)的患者病歷中識(shí)別趨勢(shì)。
這些任務(wù)任何一個(gè)都可能需要超過(guò) 200 萬(wàn)個(gè) tokens 的上下文處理能力。而且,我們希望 AI 系統(tǒng)在完成這些任務(wù)后,不是一切從頭開(kāi)始,而是能夠像人類(lèi)工作者一樣,通過(guò)經(jīng)驗(yàn)積累不斷提升。計(jì)算機(jī)的超強(qiáng)記憶力和耐力一直是其重要優(yōu)勢(shì),在 AI 時(shí)代,我們并不想放棄這些特性。但目前 LLMs 在吸收和解讀大量信息的能力上,還遠(yuǎn)未能達(dá)到人類(lèi)水平。
確實(shí),LLMs 在訓(xùn)練過(guò)程中吸收的信息量遠(yuǎn)遠(yuǎn)超過(guò)了人類(lèi)。最新的人工智能模型已經(jīng)在數(shù)萬(wàn)億個(gè) tokens 上進(jìn)行了訓(xùn)練,這遠(yuǎn)遠(yuǎn)超過(guò)了一個(gè)人一生中所能閱讀或聽(tīng)到的信息量。然而,許多有價(jià)值的資料是保密的、具有時(shí)效性的,或者因?yàn)槠渌驘o(wú)法用于訓(xùn)練。
因此,我們希望 AI 模型在推理階段能夠閱讀并記住遠(yuǎn)超 200 萬(wàn)個(gè) tokens 的信息。但這并非易事。
基于 transformer 的 LLMs 的核心創(chuàng)新在于“注意力”機(jī)制,這是一種數(shù)學(xué)運(yùn)算,使得模型能夠“回顧”之前的 tokens。在 LLM 生成新 token 之前,它會(huì)執(zhí)行一次注意力操作,將當(dāng)前 token 與之前的所有 tokens 進(jìn)行比較。這導(dǎo)致傳統(tǒng)的 LLMs 在上下文增長(zhǎng)時(shí)效率逐漸降低。
目前,許多人正在研究解決這一問(wèn)題的方法,我將在本文后續(xù)部分討論其中的一些方案。但在此之前,我需要解釋一下我們是如何從一開(kāi)始就形成了這樣一個(gè)復(fù)雜的架構(gòu)。
01 GPUs 讓深度學(xué)習(xí)成為現(xiàn)實(shí)
個(gè)人電腦的核心 —— 中央處理單元(CPUs) ,曾是通過(guò)提高時(shí)鐘頻率來(lái)提升性能的。但進(jìn)入 21 世紀(jì)初期,由于過(guò)熱問(wèn)題,芯片制造商大多放棄了這種提速方法。
芯片制造商轉(zhuǎn)而開(kāi)始研發(fā)能夠同時(shí)處理多個(gè)指令的 CPU[5]。然而,它們的進(jìn)步受到了需要指令按順序執(zhí)行的傳統(tǒng)編程模式的限制。
為了充分發(fā)揮摩爾定律[6]的潛力,一種全新的架構(gòu)應(yīng)運(yùn)而生,那就是 Nvidia 推出的 GPUs。
1999 年,Nvidia 開(kāi)始銷(xiāo)售 GPU,旨在加快 3D 游戲如《Quake III Arena》的渲染速度。這些作為 PC 擴(kuò)展卡的 GPU,任務(wù)是迅速繪制構(gòu)成游戲中墻壁、武器、怪物等物體的成千上萬(wàn)的三角形。
這種任務(wù)不需要順序編程:屏幕上不同區(qū)域的三角形可以任意順序繪制。因此,Nvidia 的首款 GPU[7] 并不是采用單個(gè)處理器逐個(gè)執(zhí)行指令,而是擁有十幾個(gè)專(zhuān)用核心 —— 類(lèi)似于微型的CPU —— 它們并行作業(yè),共同繪制場(chǎng)景。
隨著摩爾定律的發(fā)展,Nvidia 制造的 GPU 計(jì)算核心數(shù)量從數(shù)十個(gè)增加到數(shù)百個(gè),最終甚至達(dá)到數(shù)千個(gè)。人們逐漸意識(shí)到,GPU 強(qiáng)大的并行計(jì)算能力不僅可以用于視頻游戲,還能應(yīng)用于其他領(lǐng)域。
2012 年,多倫多大學(xué)的計(jì)算機(jī)科學(xué)家 Alex Krizhevsky、Ilya Sutskever 和 Geoffrey Hinton 利用兩塊 Nvidia GTX 580 GPUs[8] 訓(xùn)練了一個(gè)用于圖像識(shí)別的神經(jīng)網(wǎng)絡(luò)。這兩塊 GPU 各自擁有 512 個(gè)核心,提供了巨大的計(jì)算能力,使他們能夠訓(xùn)練出一個(gè)擁有 6000 萬(wàn)個(gè)參數(shù)的神經(jīng)網(wǎng)絡(luò)。他們?cè)?ImageNet 圖像分類(lèi)競(jìng)賽[9]中取得了新的準(zhǔn)確率紀(jì)錄[10](該競(jìng)賽的目標(biāo)是將圖像歸類(lèi)到 1000 個(gè)不同類(lèi)別之一)。
不久之后,研究人員開(kāi)始將這些技術(shù)應(yīng)用于更多領(lǐng)域,自然語(yǔ)言處理便是其中之一。
02 Transformers 打破了自然語(yǔ)言理解的瓶頸
在 2010 年代初,循環(huán)神經(jīng)網(wǎng)絡(luò)(RNNs)是處理自然語(yǔ)言的主流架構(gòu)。RNNs 采用逐詞處理的方式。神經(jīng)網(wǎng)絡(luò)在處理完每個(gè)單詞后,會(huì)更新其隱藏狀態(tài)(hidden state),這是一組數(shù)字,代表了神經(jīng)網(wǎng)絡(luò)對(duì)句子當(dāng)前理解的程度。
RNNs 在處理短句時(shí)表現(xiàn)尚可,但面對(duì)長(zhǎng)句時(shí)就顯得力不從心,更別提段落或更長(zhǎng)的文本了。在分析長(zhǎng)句時(shí),RNN 有時(shí)會(huì)“遺忘”句子開(kāi)頭的關(guān)鍵詞。 2014 年,計(jì)算機(jī)科學(xué)家 Dzmitry Bahdanau、KyungHyun Cho 和 Yoshua Bengio 發(fā)現(xiàn)[11],通過(guò)引入一個(gè)注意力機(jī)制,允許網(wǎng)絡(luò)“回顧”句子中的早期單詞,可以提升循環(huán)神經(jīng)網(wǎng)絡(luò)的性能。
2017 年,谷歌發(fā)布了《Attention Is All You Need》[12]這篇論文,它被譽(yù)為機(jī)器學(xué)習(xí)史上最重要的論文之一。在 Bahdanau 及其團(tuán)隊(duì)的研究基礎(chǔ)上,谷歌的研究人員摒棄了 RNN 及其隱藏狀態(tài)的概念。他們采用的模型利用注意力機(jī)制來(lái)掃描先前的單詞,以獲取相關(guān)的上下文信息。
這種被谷歌命名為 transformer 的新架構(gòu),其重要性不言而喻,因?yàn)樗藬U(kuò)展語(yǔ)言模型的一個(gè)關(guān)鍵障礙。
以下動(dòng)畫(huà)展示了 RNNs 為何難以擴(kuò)展:
在這個(gè)假想的 RNN2 中,神經(jīng)網(wǎng)絡(luò)試圖預(yù)測(cè)句子中的下一個(gè)單詞,預(yù)測(cè)結(jié)果展示在圖表的頂部。這個(gè)神經(jīng)網(wǎng)絡(luò)由三層組成,每層用一個(gè)矩形表示。它的處理方式是線性的:必須先完成對(duì)第一個(gè)單詞“How”的分析,然后將隱藏狀態(tài)傳遞回底層,網(wǎng)絡(luò)才能開(kāi)始分析第二個(gè)單詞“are”。
這種限制在機(jī)器學(xué)習(xí)算法在 CPU 上運(yùn)行時(shí)還不是大問(wèn)題。但當(dāng)人們開(kāi)始利用 GPU 的并行計(jì)算能力時(shí),RNN 的線性架構(gòu)就成為了瓶頸。
transformer 通過(guò)讓神經(jīng)網(wǎng)絡(luò)能夠同時(shí)“思考”輸入中的所有單詞,從而突破了這一限制:
如圖所示,基于 transformer 的模型進(jìn)行的計(jì)算量與前面圖中的 RNN 模型相當(dāng)。因此,在(單核)CPU 上,它的運(yùn)行速度可能不會(huì)更快。但由于模型不需要在處理“are”、“you”或“doing”之前完成對(duì)“How”的分析,它可以同時(shí)處理這些單詞。這意味著在擁有多個(gè)并行執(zhí)行單元的 GPU 上,它的運(yùn)行速度可以大幅提升。
速度提升有多大?速度的潛在提升與輸入單詞的數(shù)量成正比。以我的動(dòng)畫(huà)為例,transformer 模型處理四詞輸入的速度大約是 RNN 的四倍。而對(duì)于 LLMs,其輸入可能包含數(shù)千個(gè)單詞。因此,在強(qiáng)大的 GPU 支持下,基于 transformer 的模型速度可以比類(lèi)似的 RNN 快出幾個(gè)數(shù)量級(jí)。
你可能會(huì)問(wèn),為何不能同時(shí)用多個(gè)文檔來(lái)訓(xùn)練RNN—— 即在文檔層面而非單個(gè)單詞層面利用 GPU 的并行處理能力。
這是因?yàn)橛?xùn)練過(guò)程的第二階段——反向傳播的限制。在這個(gè)過(guò)程中,訓(xùn)練軟件會(huì)“逆向”工作,通過(guò)微積分調(diào)整模型的參數(shù),以提高得出正確答案的概率。對(duì)于 RNN 來(lái)說(shuō),反向傳播需要從輸入的最后一個(gè)單詞反向追溯到第一個(gè)單詞。如下圖中紅色箭頭所示:
反向傳播需要保存前向傳遞中每一步的中間結(jié)果——也就是說(shuō),訓(xùn)練軟件需要存儲(chǔ)圖表中每個(gè)矩形的輸出。對(duì)于大模型,這些數(shù)據(jù)占用的空間極大,以至于無(wú)法同時(shí)并行訓(xùn)練大量實(shí)例。 3
簡(jiǎn)而言之,transformer 釋放了 GPU 的全部處理能力,推動(dòng)了語(yǔ)言模型規(guī)模的飛速增長(zhǎng)。領(lǐng)先 LLMs 的參數(shù)量從 2018 年的數(shù)億[13]增長(zhǎng)到了 2020 年的數(shù)千億[14]。由于傳統(tǒng)的基于 RNN 的模型受到線性架構(gòu)的限制,它們無(wú)法在 GPU 上高效訓(xùn)練,因此無(wú)法達(dá)到如此龐大的規(guī)模。
03 Transformers 模型存在擴(kuò)展問(wèn)題
我曾提到,在本文動(dòng)畫(huà)中,循環(huán)神經(jīng)網(wǎng)絡(luò)與 transformer 模型“大致完成了相等的工作量”。然而,兩者的工作量并非完全一致。我們?cè)賮?lái)看看 transformer 模型的工作圖:
注意到各層間那些交錯(cuò)的對(duì)角線箭頭了嗎?它們代表了注意力機(jī)制的運(yùn)轉(zhuǎn)?;?transformer 的語(yǔ)言模型在創(chuàng)造新 token 前,會(huì)“審視”之前每一個(gè)已有的標(biāo)記,以確定哪些最為相關(guān)。
在較小規(guī)模的上下文中,這些比較的成本微不足道。例如,對(duì)于僅有 10 個(gè)、100 個(gè)甚至 1000 個(gè) tokens 的上下文,這些成本并不構(gòu)成負(fù)擔(dān)。但隨著上下文長(zhǎng)度的增加,注意力機(jī)制的計(jì)算成本也隨之攀升。上下文越長(zhǎng),為了生成下一個(gè) token,所需的注意力操作(以及相應(yīng)的計(jì)算資源)就越多。
這導(dǎo)致了一個(gè)問(wèn)題:注意力機(jī)制總的計(jì)算能力需求與 tokens 總數(shù)成二次方關(guān)系增長(zhǎng)。舉例來(lái)說(shuō),如果一個(gè) 10 個(gè) tokens 的提示詞需要 414,720 次注意力操作4,那么:
- 處理一個(gè) 100 個(gè) tokens 的提示詞,將需要 4560 萬(wàn)次注意力操作。
- 處理一個(gè) 1000 個(gè) tokens 的提示詞,將需要 46 億次注意力操作。
- 處理一個(gè) 10000 個(gè) tokens 的提示詞,將需要 4600 億次注意力操作。
這或許也解釋了為何當(dāng)上下文超過(guò) 128,000 個(gè) tokens 時(shí),谷歌會(huì)對(duì) Gemini 1.5 Pro 的收費(fèi)翻倍。因?yàn)樯傻?128,001 個(gè) token 時(shí),需要與前面 128,000 個(gè) tokens 進(jìn)行比較,其成本遠(yuǎn)高于生成第一個(gè)、第十個(gè)或第一百個(gè) token。
04 提升注意力的效率和可擴(kuò)展性
研究者們投入了大量精力優(yōu)化注意力機(jī)制。其中一條研究路徑旨在最大化單個(gè) GPU 的運(yùn)算效率。
我們?cè)谇拔牧私獾?,現(xiàn)代 GPU 包含了成千上萬(wàn)的執(zhí)行單元。但在 GPU 開(kāi)始進(jìn)行數(shù)學(xué)運(yùn)算之前,它需要將數(shù)據(jù)從較慢的共享內(nèi)存(即高帶寬內(nèi)存)轉(zhuǎn)移到特定執(zhí)行單元內(nèi)更快的內(nèi)存(即SRAM)。有時(shí),GPU 在移動(dòng)數(shù)據(jù)上耗費(fèi)的時(shí)間甚至超過(guò)了執(zhí)行計(jì)算的時(shí)間。
在一系列論文中[15][16][17],普林斯頓大學(xué)的計(jì)算機(jī)科學(xué)家 Tri Dao 及其合作者開(kāi)發(fā)了 FlashAttention,這種計(jì)算注意力的方式能夠最大限度地減少慢速內(nèi)存操作的需求。Dao 等人的工作顯著提升了現(xiàn)代 GPU 上 transformers 的表現(xiàn)。
另一條研究路徑則著眼于如何在多個(gè) GPU 上高效擴(kuò)展注意力。其中一篇被廣泛引用的論文介紹了環(huán)形注意力機(jī)制(ring attention)[18],它通過(guò)將 input tokens 分成塊,并將每個(gè)塊分配給不同的 GPU 來(lái)工作。之所以稱為環(huán)形注意力,是因?yàn)?GPU 被構(gòu)想為一個(gè)環(huán)形結(jié)構(gòu),每個(gè) GPU 將其數(shù)據(jù)傳遞給相鄰的 GPU。
這讓我想起了曾參加過(guò)的一堂交誼舞課,舞伴們圍成一圈,女性保持不動(dòng),而男性則輪換舞伴。最終,每個(gè)男性都能與每位女性共舞。環(huán)形注意力的原理與之類(lèi)似。"女性"代表查詢(query)向量(描述每個(gè) token 所“尋找”的內(nèi)容),"男性"代表鍵(key)向量(描述每個(gè) token 的特征)。鍵向量在一連串 GPU 中傳遞,依次與所有查詢向量相乘。
總的來(lái)說(shuō),環(huán)形注意力機(jī)制通過(guò)在多個(gè) GPU 間分配計(jì)算任務(wù),使得大語(yǔ)言模型(LLM)能夠處理更大的上下文窗口。然而,它并未降低單個(gè)注意力計(jì)算的成本。
05 RNN 能否卷土重來(lái)?
由于 RNN 擁有固定大小的隱藏狀態(tài)(hidden state),因此它不會(huì)存在與 transformer 相同的擴(kuò)展難題。無(wú)論是生成第一個(gè)、第一百個(gè)還是第一百萬(wàn)個(gè) token,RNN 所需的計(jì)算資源都相差無(wú)幾。這一點(diǎn),相較于基于注意力機(jī)制的模型,RNN 具有顯著優(yōu)勢(shì)。
盡管在 transformer 問(wèn)世后,RNN 的地位有所下滑,但研究者們并未放棄,他們繼續(xù)探索適合在現(xiàn)代 GPU 上訓(xùn)練的 RNN 新版本。
今年 4 月,谷歌推出了一款名為 Infini-attention[19] 的新模型。這個(gè)模型可謂是 transformer 與 RNN 的“混血兒”。Infini-attention 像傳統(tǒng) transformer 那樣處理最近的 tokens,利用注意力機(jī)制記住它們并召回它們。
不過(guò),Infini-attention 并未試圖記住所有上下文中的 tokens。相反,它采用一種“壓縮記憶(compressive memory)”來(lái)存儲(chǔ)較舊的 tokens,這種方式與 RNN 的隱藏狀態(tài)有幾分相似。這種數(shù)據(jù)結(jié)構(gòu)能夠完美地存儲(chǔ)和召回少量 tokens,但隨著 tokens 數(shù)量的增加,召回率也會(huì)越來(lái)越低。
然而,機(jī)器學(xué)習(xí)領(lǐng)域的 YouTube 紅人 Yannic Kilcher 對(duì)谷歌的這種做法并不感冒[20]。
“我非常愿意相信這個(gè)方法確實(shí)有效,也認(rèn)同這是實(shí)現(xiàn)無(wú)限注意力的一種途徑,但我還是持懷疑態(tài)度,”Kilcher表示?!八褂玫氖且环N邊走邊存的壓縮記憶方法,并沒(méi)有真正學(xué)會(huì)如何存儲(chǔ),只是按照一種確定性的方式在存儲(chǔ),這意味著我們對(duì)存儲(chǔ)的內(nèi)容和方式幾乎沒(méi)有控制權(quán)?!?/p>
06 Mamba 會(huì)是未來(lái)嗎?
在復(fù)興循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的眾多嘗試中,Mamba 架構(gòu)無(wú)疑是最引人注目的。它是 2023 年 12 月發(fā)表的一篇論文[21]中公布的一種架構(gòu),其開(kāi)發(fā)者是計(jì)算機(jī)科學(xué)家 Tri Dao(他也是我之前提到的 FlashAttention 的負(fù)責(zé)人)和 Albert Gu。
與傳統(tǒng)的 RNN 一樣,Mamba 并不依賴于注意力機(jī)制。它擁有一個(gè)充當(dāng)“記憶”角色的隱藏狀態(tài)。由于這個(gè)隱藏狀態(tài)的大小是固定的,因此即使輸入的提示詞更長(zhǎng),也不會(huì)增加 Mamba 處理每個(gè) token 的成本。
我在三月著手撰寫(xiě)這篇文章時(shí),本打算深入剖析 Mamba 的架構(gòu)。然而,到了五月,研究團(tuán)隊(duì)推出了 Mamba-2[22],其架構(gòu)較之初代 Mamba 有了顯著的改變。坦白說(shuō),我一直在努力理解初代 Mamba 的原理,而對(duì)于 Mamba-2 的工作機(jī)制更是尚未完全弄清。
然而,我們需要明白的是,Mamba 有潛力將 transformer 模型的性能和傳統(tǒng) RNN 的效率結(jié)合起來(lái)。
在六月,Dao 和 Gu 與 Nvidia 的研究人員合作發(fā)表了一篇論文[23],對(duì)擁有 80 億參數(shù)的 Mamba 模型進(jìn)行了評(píng)估。研究發(fā)現(xiàn),Mamba 模型在多項(xiàng)任務(wù)中與同等規(guī)模的模型不相上下,但在“上下文學(xué)習(xí)”和“從上下文中提取信息”的能力上,Mamba 模型仍略遜一籌。
transformer 模型之所以擅長(zhǎng)信息提取,是因?yàn)樗鼈兡軌颉坝涀 鄙舷挛闹械拿恳粋€(gè) token —— 這也是為什么隨著上下文長(zhǎng)度的增加,transformer 模型的效率會(huì)降低。而 Mamba 則試圖將整個(gè)上下文壓縮到一個(gè)固定大小的狀態(tài)中,這意味著在處理長(zhǎng)上下文時(shí),它不得不舍棄一部分信息。
Nvidia 團(tuán)隊(duì)發(fā)現(xiàn),通過(guò)采用一種混合架構(gòu),該架構(gòu)將 24 個(gè) Mamba 層與 4 個(gè)注意力層交錯(cuò)排列,他們獲得了最佳性能。這種混合架構(gòu)的表現(xiàn)優(yōu)于單純的 transformer 模型或單純的 Mamba 模型。
模型需要一些注意力層來(lái)記住其早期上下文中的關(guān)鍵細(xì)節(jié)。但是,似乎只需要少量的注意力層就夠了;其余的注意力層可以由成本更低的 Mamba 層替換,而對(duì)模型的整體性能影響很小。
在八月,一家名為 AI21 的以色列初創(chuàng)公司發(fā)布了其 Jamba 1.5 系列模型[24]。其中最大版本的參數(shù)數(shù)量達(dá)到了 3980 億,使其在規(guī)模上與 Meta 的 Llama 405B 模型相當(dāng)。Jamba 1.5 Large 模型的 Mamba 層數(shù)量是注意力層的七倍。因此,Jamba 1.5 Large 所需的內(nèi)存遠(yuǎn)少于 Meta 和其他公司的同類(lèi)模型。例如,AI21 估計(jì) Llama 3.1 70B 需要 80 GB 的內(nèi)存來(lái)跟蹤 256,000 個(gè)上下文 token ,而 Jamba 1.5 Large 只需要 9 GB,這使得模型能夠在性能較弱的硬件上運(yùn)行。
Jamba 1.5 Large 模型的 MMLU 得分為 80,顯著低于 Llama 3.1 70B 的 86 分。因此,按照這個(gè)標(biāo)準(zhǔn),Mamba 并沒(méi)有完全超越 transformer 模型。然而,這可能并不是一個(gè)完全公平的比較。像 Meta 這樣的前沿實(shí)驗(yàn)室在訓(xùn)練數(shù)據(jù)和后訓(xùn)練基礎(chǔ)設(shè)施上投入了大量資金,以在 MMLU 等基準(zhǔn)測(cè)試中提高幾個(gè)百分點(diǎn)的性能。同樣的高強(qiáng)度優(yōu)化可能會(huì)縮小 Jamba 與前沿模型之間的差距。
因此,雖然更長(zhǎng)上下文窗口的好處顯而易見(jiàn),但達(dá)到這一目標(biāo)的最優(yōu)策略尚不明確。短期內(nèi), AI 公司可能會(huì)繼續(xù)使用巧妙的效率和擴(kuò)展技巧(如 FlashAttention 和 Ring Attention)來(lái)擴(kuò)展標(biāo)準(zhǔn)的 LLMs。長(zhǎng)期來(lái)看,我們可能會(huì)看到對(duì) Mamba 以及其他無(wú)注意力架構(gòu)的興趣日益增長(zhǎng)?;蛘咭苍S有人會(huì)提出一種全新的架構(gòu),使 transformers 過(guò)時(shí)。
但我確信,僅僅依靠擴(kuò)大基于 transformers 的前沿模型規(guī)模并不是一個(gè)完整的解決方案。如果我們想要能夠處理數(shù)十億個(gè) tokens 的模型——許多人都有這樣的需求,我們就需要跳出固有的思維模式,尋找新的方法。
1 有網(wǎng)絡(luò)消息指出,ChatGPT 起初設(shè)定的上下文窗口為 4,096 個(gè) tokens,但發(fā)布后不久的一次實(shí)驗(yàn)[25]顯示,它能夠記憶超過(guò)這個(gè)數(shù)量的信息。
2 在十年前,循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)通常會(huì)包含編碼器和解碼器兩部分,而像 GPT-3 這樣的現(xiàn)代大語(yǔ)言模型(LLM)則只有解碼器。出于教學(xué)目的,我展示了一個(gè)與歷史不符的、僅包含解碼器的 RNN 模型,這樣可以更容易地與 GPT-3 等現(xiàn)代 LLM 進(jìn)行對(duì)比。同樣的分析方法也適用于 2010 年代初的真實(shí) RNN 模型,但那時(shí)的模型圖會(huì)更加復(fù)雜。
3 GPU 能夠?qū)⒅虚g計(jì)算結(jié)果傳輸?shù)剿拇笕萘扛邘拑?nèi)存中。但是,由于高帶寬內(nèi)存(HBM)[26]的速度限制,這一操作并不會(huì)提升訓(xùn)練速度。
4 這是我針對(duì)擁有 1750 億參數(shù)版本的 GPT-3 的一個(gè)初步估算,該模型包含 96 層,每層有 96 個(gè)注意力頭。因此,實(shí)際上每對(duì) tokens 之間需要進(jìn)行 9,216 次注意力計(jì)算。
5 Jamba 模型是一種混合專(zhuān)家模型,這意味著對(duì)于任何一個(gè) token,只有網(wǎng)絡(luò)中的一部分(980 億參數(shù)中的 3980 億)會(huì)被激活和使用。
Thanks for reading!
Hope you have enjoyed and learned new things from this blog!
About the author
Timothy B. Lee
I write the newsletter Understanding AI and cohost the AI Summer podcast. Previously I was a reporter at Ars Technica, Vox, and the Washington Post. ??twitter.com/binarybits??
END
本期互動(dòng)內(nèi)容 ??
?在您看來(lái),長(zhǎng)上下文處理能力對(duì) AI 發(fā)展意味著什么?人類(lèi)和 AI 在信息處理能力上最大的差距是什么?
??文中鏈接??
[1]??https://platform.openai.com/docs/models/gp??
[2]??https://www.anthropic.com/news/claude-3-5-sonnet??
[3]??https://blog.google/technology/ai/google-gemini-update-flash-ai-assistant-io-2024/??
[4]??https://en.wikipedia.org/wiki/Vector_database??
[5]??https://en.wikipedia.org/wiki/Multithreading_(computer_architecture)??
[6]??
[7]??https://en.wikipedia.org/wiki/GeForce_256??
[8]??https://www.techpowerup.com/gpu-specs/geforce-gtx-580.c270??
[9]??https://www.understandingai.org/p/why-the-deep-learning-boom-caught??
[10]??https://arstechnica.com/science/2018/12/how-computers-got-shockingly-good-at-recognizing-images/3/??
[11]??https://arxiv.org/pdf/1409.0473??
[12]??https://arxiv.org/abs/1706.03762??
[13]??https://en.wikipedia.org/wiki/GPT-1??
[14]??https://en.wikipedia.org/wiki/GPT-3??
[15]??https://arxiv.org/abs/2205.14135??
[16]??https://arxiv.org/abs/2307.08691??
[17]??https://arxiv.org/abs/2407.08608??
[18]??https://arxiv.org/abs/2310.01889??
[19]??https://arxiv.org/abs/2404.07143??
[20]??https://www.youtube.com/watch?v=r_UBBfTPcF0&t=2s??
[21]??https://arxiv.org/abs/2312.00752??
[22]??https://arxiv.org/abs/2405.21060??
[23]??https://arxiv.org/abs/2406.07887??
[24]??https://arxiv.org/abs/2408.12570??
[25]??https://x.com/goodside/status/1598874674204618753??
[26]??https://en.wikipedia.org/wiki/High_Bandwidth_Memory??
原文鏈接:
??https://www.understandingai.org/p/why-large-language-models-struggle??
