自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

為什么大語(yǔ)言模型難以處理長(zhǎng)上下文?從 Transformer 到 Mamba 原創(chuàng) 精華

發(fā)布于 2025-2-8 10:38
瀏覽
0收藏

編者按: 大語(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ò)展:

為什么大語(yǔ)言模型難以處理長(zhǎng)上下文?從 Transformer 到 Mamba-AI.x社區(qū)

在這個(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í)“思考”輸入中的所有單詞,從而突破了這一限制:

為什么大語(yǔ)言模型難以處理長(zhǎng)上下文?從 Transformer 到 Mamba-AI.x社區(qū)

如圖所示,基于 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è)單詞。如下圖中紅色箭頭所示:

為什么大語(yǔ)言模型難以處理長(zhǎng)上下文?從 Transformer 到 Mamba-AI.x社區(qū)

反向傳播需要保存前向傳遞中每一步的中間結(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 模型的工作圖:

為什么大語(yǔ)言模型難以處理長(zhǎng)上下文?從 Transformer 到 Mamba-AI.x社區(qū)

注意到各層間那些交錯(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??


?著作權(quán)歸作者所有,如需轉(zhuǎn)載,請(qǐng)注明出處,否則將追究法律責(zé)任
標(biāo)簽
收藏
回復(fù)
舉報(bào)
回復(fù)
相關(guān)推薦