本博客介紹了五個(gè)基本概念,闡述了大語言模型如何處理上下文窗口中的輸入。通過明確的例子和實(shí)踐中獲得的見解,本文介紹了多個(gè)與上下文窗口有關(guān)的基本概念,如詞元化、序列長度和注意力等。本文的目標(biāo)是幫助讀者深入了解 AI 應(yīng)用程序中的上下文如何影響模型行為。我們還通過用于評(píng)估系統(tǒng)行為的分析模型展示了相關(guān)結(jié)果,以演示當(dāng)改變輸入和輸出序列長度時(shí),對(duì)應(yīng)的響應(yīng)時(shí)間如何改變。演示結(jié)果表明,解碼更長的輸出需要花費(fèi)更多時(shí)間。這意味著,在執(zhí)行大規(guī)模高效推理時(shí),HBM 等高速內(nèi)存系統(tǒng)至關(guān)重要。對(duì)于正在使用或設(shè)計(jì)生成式 AI 系統(tǒng)提示詞的人,這些概念都非常有幫助。
上下文窗口與上下文長度
使用大語言模型時(shí),我們有必要了解上下文窗口、上下文長度和序列長度等概念之間的差別。這些術(shù)語經(jīng)常被互換使用,可能會(huì)讓一些人感到迷惑。在本博客中,我們將把它們定義為不同的概念。
上下文窗口是模型的最大容量,也就是模型可以同時(shí)處理的詞元總數(shù),包括您的輸入和模型的輸出。舉個(gè)簡單的例子:我們將下面的矩形大小定義為可容納 10 萬個(gè)詞元的上下文窗口。

圖 1:10 萬詞元上下文窗口的大小
上下文長度則是指您在該空間中放置了多少詞元,即您與模型對(duì)話期間當(dāng)前實(shí)際使用過的詞元數(shù)量,包括輸入詞元(藍(lán)色)和輸出詞元(綠色)。例如,如果模型具有可容納 10 萬個(gè)詞元的上下文窗口,并且您的輸入使用了 7.5 萬個(gè)詞元,那么,只有 2.5 萬個(gè)詞元可用于模型的響應(yīng),繼續(xù)輸出便會(huì)超出窗口的上限。
序列長度通常是指上下文窗口內(nèi)單個(gè)輸入或輸出序列的長度。這是一種更精細(xì)的測(cè)量方法,可在模型訓(xùn)練和推理過程中跟蹤每個(gè)文本段的長度。

圖 2:7.5 萬個(gè)輸入詞元和 2.5 萬個(gè)輸出詞元
上下文窗口決定了模型可以處理的信息量上限,但它并不直接反映模型的智能水平。窗口越大,可容納的輸入信息就越多,但輸出質(zhì)量往往取決于輸入信息的結(jié)構(gòu)化程度與實(shí)際利用效率。一旦達(dá)到窗口的容量上限,模型在處理時(shí)可能會(huì)失去連貫性,進(jìn)而導(dǎo)致不理想的結(jié)果(例如,AI 幻覺)。

圖 3:輸入和輸出序列長度
詞元不是單詞
如果上下文窗口由一個(gè)上限(例如 10 萬個(gè))來定義,那么詞元就是衡量其容量的計(jì)量單位。重要的是,我們需要理解:詞元并非單詞。您在提示詞中輸入的單詞將首先進(jìn)入一個(gè)“詞元分詞器”中,該分詞器將把文本分解為詞元。一個(gè)單詞可能會(huì)分解成幾個(gè)詞元。例如,“strawberry”會(huì)分解成三個(gè)詞元,“trifle”則會(huì)分解成兩個(gè)詞元。有時(shí)候,一個(gè)單詞可能只包含一個(gè)詞元,例如“cake”。

我們可以用簡·奧斯汀的小說《愛瑪》中的句子來測(cè)試單詞與詞元的關(guān)系。
“Seldom, very seldom, does complete truth belong to any human disclosure; seldom can it happen that something is not a little disguised or a little mistaken.”
這段文本包含 26 個(gè)單詞,當(dāng)我們使用 lunary.ai1提供的 Mistral 語言模型來處理這段文本時(shí),模型自帶的詞元分詞器將生成 36 個(gè)詞元。這個(gè)例子中,每個(gè)詞元大約對(duì)應(yīng) 0.72 個(gè)單詞,或者說大約對(duì)應(yīng)四分之三個(gè)單詞。

不同類型的文本中,詞元與單詞的比例各不相同。不過,就英語單詞而言,每個(gè)詞元平均對(duì)應(yīng)大約 0.75 個(gè)單詞。因此,擁有 10 萬詞元上下文窗口(每用戶)的模型不一定能處理 10 萬個(gè)單詞。在實(shí)際應(yīng)用中,該模型也許只能處理將近 7.5 萬個(gè)英語單詞,或者更少,具體取決于文本類型。
估計(jì)值詞元數(shù)≈單詞數(shù)?1.33
為進(jìn)一步在更大規(guī)模上測(cè)試詞元與單詞的比率,我們使用了來自“古騰堡計(jì)劃”(Project Gutenberg,一個(gè)包含超過 7.5 萬本免費(fèi)電子書的圖書館)的八部知名文學(xué)作品,對(duì)其中的文本進(jìn)行了快速分析。首先,我們計(jì)算了每本書中的單詞數(shù),然后通過詞元分詞器運(yùn)行全部文本,以獲得詞元數(shù)。在對(duì)這些數(shù)字進(jìn)行比較后,我們發(fā)現(xiàn),每詞元平均對(duì)應(yīng)大約 0.75 個(gè)單詞。

a數(shù)據(jù)來自于上列美國和英國文學(xué)作品的純文本版本(通過“古騰堡計(jì)劃”獲得)。詞元數(shù)通過 Lunary 公開提供的 OpenAI 詞元分詞器進(jìn)行計(jì)算1。詞元數(shù)與單詞數(shù)的平均比例(1 詞元 ≈ 0.75 單詞)通過八部文學(xué)作品得到了驗(yàn)證。
了解詞元數(shù)與單詞數(shù)的平均比例,可以讓經(jīng)常使用 AI 的用戶更有效地與 AI 互動(dòng)。大多數(shù) AI 平臺(tái)(如 ChatGPT 或 Claude)在提供服務(wù)時(shí)都有詞元總數(shù)限制。也就是說,這些平臺(tái)使用詞元而非單詞來處理文本。這就導(dǎo)致用戶很容易誤判實(shí)際上可以輸入的提示詞單詞量,或者 AI 響應(yīng)時(shí)輸出的單詞數(shù)量。由于平臺(tái)通常以詞元而非單詞來衡量輸入輸出的內(nèi)容量,因此了解詞元與單詞的比率,可以讓您更好地理解平臺(tái)的限制,從而更巧妙地規(guī)劃您的輸入。例如,如果一個(gè)模型的輸入限制為 4,000 詞元,則大約對(duì)應(yīng) 3,000 單詞。在為模型提供長文檔或數(shù)據(jù)集時(shí),最好了解這一點(diǎn),以便更有效地完成諸如查找關(guān)鍵見解或回答問題等任務(wù)。

圖 4:單詞與詞元的比率
注意力在上下文窗口內(nèi)并非均勻分布
人們經(jīng)常會(huì)誤解 AI 幻覺,將其視為模型的異常行為,或者將其作為語言模型存在問題以及不可靠的證據(jù)。但 AI 幻覺并非隨機(jī)產(chǎn)生的;它們往往源于模型如何處理信息以及優(yōu)先處理哪些信息,而這又取決于模型的訓(xùn)練效果、注意力分配機(jī)制等因素。在 GPT 或 Claude 等基于轉(zhuǎn)換器的模型中,注意力是一種機(jī)制,用來幫助模型決定上下文中的哪些部分與用戶的意圖最相關(guān),然后據(jù)此生成響應(yīng)。為了更好地理解注意力的概念,設(shè)想您現(xiàn)在正身處一個(gè)嘈雜的雞尾酒會(huì)上。如果旁邊有人叫您的名字,您會(huì)本能地集中注意力。
“Frodo! 來這里!”
但是,如果四個(gè)人從房間的不同角落同時(shí)叫您的名字,情況又如何呢?
“Frodo!我是 Sam!”
“Frodo!快過來!”
“Frodo!看這邊?!?/p>
“Frodo……啊,親愛的 Frodo……”
您聽到了所有這些招呼,但您的注意力現(xiàn)在被分散了。您可能更關(guān)注熟悉的聲音,或者距離您最近的聲音。每個(gè)聲音都讓您分出了一部分注意力,但這些部分的大小并不相同。這個(gè)例子并不完全貼切,但可以幫助我們理解大語言模型中注意力的運(yùn)作方式。模型會(huì)分配注意力給上下文窗口中的所有詞元,但其中一些詞元的權(quán)重高于其他詞元。這就是為什么大語言模型中的注意力通常被描述為“加權(quán)式”,這意味著并非所有詞元都獲得了同樣的注意力。這種不均勻分配是理解模型如何優(yōu)先處理信息,以及它們有時(shí)似乎會(huì)“走神”的關(guān)鍵。
更多上下文不一定意味著更好的答案
模型會(huì)掃描上下文窗口內(nèi)的所有詞元,但它不會(huì)為每個(gè)詞元分配相等的注意力。隨著窗口中的內(nèi)容越來越多(例如,多達(dá) 10 萬個(gè)詞元),模型的注意力會(huì)變得更加分散。模型試圖跟蹤所有詞元,這可能導(dǎo)致模型失去清晰的目標(biāo)。
當(dāng)這種情況發(fā)生時(shí),模型會(huì)逐漸偏離當(dāng)前對(duì)話,用戶可能會(huì)感覺到回應(yīng)變慢、不太連貫,甚至出現(xiàn)混淆對(duì)話前后內(nèi)容的情況。這個(gè)時(shí)候,AI 經(jīng)常會(huì)出現(xiàn)“幻覺”(Hallucinations,源自拉丁詞 hallucinat,原意為“思想進(jìn)入歧途”)。重要的是,我們要明白,這并不是模型出現(xiàn)故障的跡象。這實(shí)際上標(biāo)志著模型已接近其能力閾值,正在滿負(fù)荷運(yùn)行。在此節(jié)點(diǎn)上,模型可能難以在過長的輸入中保持連貫性或相關(guān)性。
從模型的角度來看,先前輸入的詞元仍然可見。但隨著窗口內(nèi)容的增加,注意力的分散,響應(yīng)的精度可能會(huì)降低。模型可能會(huì)將先前提示詞中提到的事實(shí)錯(cuò)誤地放到當(dāng)前問題中,或者將不相關(guān)的想法融合到輸出中,使輸出看起來很連貫但卻毫無意義。在出現(xiàn)幻覺的情況下,模型不是在撒謊。它正在試圖從無法清晰區(qū)分的大量片段中得出合理的響應(yīng),在注意力不足的情況下進(jìn)行猜測(cè)。公允地說,模型其實(shí)是在基于現(xiàn)有信息努力運(yùn)作,試圖理解一段已超出其可靠處理能力的冗長對(duì)話。通過這種方式來理解注意力,有助于解釋為什么更多上下文并不一定意味著更好的答案。2
話雖如此,較長的上下文窗口(超過 20 萬詞元,目前已經(jīng)有模型支持 100 萬或更多詞元)也可能確實(shí)非常有用,特別是對(duì)于復(fù)雜的推理以及視頻處理等新興應(yīng)用。一些新模型正在接受訓(xùn)練,旨在更有效地處理更長的上下文。通過優(yōu)化架構(gòu)和訓(xùn)練,模型可以更有效地管理對(duì)輸入的注意力,減少幻覺,提高響應(yīng)的質(zhì)量。因此,盡管更多的上下文并不一定帶來更好的答案,但新模型在保持注意力方面表現(xiàn)得越來越好,即使在處理特別長的對(duì)話時(shí)也是如此。
序列長度影響響應(yīng)時(shí)間
在解析注意力機(jī)制之后,了解序列長度如何影響模型推理同樣很有幫助?,F(xiàn)在,我們可以問一個(gè)很實(shí)用的問題:當(dāng)我們改變序列長度時(shí),會(huì)發(fā)生什么?
輸入序列長度會(huì)影響首詞元時(shí)延 (TTFT)——即從輸入請(qǐng)求到收到第一個(gè)輸出詞元的時(shí)間。TTFT 與 GPU 性能密切相關(guān),因?yàn)樗从沉?GPU 處理輸入、執(zhí)行計(jì)算,然后輸出第一個(gè)詞元的速度。而改變輸出序列長度會(huì)影響詞元間延遲 (ITL)——兩個(gè)相繼生成的詞元之間的時(shí)間。b該延遲與內(nèi)存的使用情況關(guān)系更大。
為進(jìn)一步探究這一點(diǎn),我們使用了一階分析模型,來估計(jì)大語言模型推理期間的端到端延遲。我們?cè)趩蝹€(gè) GPU 上使用 Llama 3 70B 來運(yùn)行該模型,該 GPU 帶有高帶寬內(nèi)存(HBM3E 12H,8 層堆疊,36GB 容量),模型的上下文窗口為 128,000 個(gè)詞元。c
b關(guān)鍵推理指標(biāo):首詞元時(shí)延 (TTFT):模型在收到輸入后到開始生成輸出所需的時(shí)間(預(yù)填充性能)。詞元間延遲 (ITL):兩個(gè)相繼生成的詞元之間的時(shí)間(解碼性能)。端到端延遲:從提交查詢到收到完整響應(yīng)所需的時(shí)間。3
c性能估算基于內(nèi)部分析模型,旨在近似模擬推理行為。本研究中構(gòu)建的系統(tǒng)基于估計(jì)的 GPU 配置,該配置反映了市售硬件平臺(tái)的一般特性。所選配置不代表任何特定產(chǎn)品,僅用于支持本分析中的技術(shù)目標(biāo)。這些估算值并不反映經(jīng)過優(yōu)化的軟件或硬件配置,因此可能與實(shí)際結(jié)果不同。
下圖顯示了輸入序列長度 (ISL) 和輸出序列長度 (OSL) 逐漸增加時(shí)對(duì)整個(gè)端到端延遲的影響。每次測(cè)量的批量大小為 1(即單個(gè)請(qǐng)求)。所需能耗較少。

圖 5:不同輸出和輸入序列長度對(duì)應(yīng)的每用戶端到端延遲(秒)
關(guān)鍵要點(diǎn)
測(cè)量延遲時(shí)的一個(gè)重要結(jié)論是,模型生成長響應(yīng)所需的時(shí)間,要遠(yuǎn)遠(yuǎn)超過處理長提示詞時(shí)所需的時(shí)間。該模型能夠一次性讀取和理解輸入,即使是特別長的提示詞,處理速度也相對(duì)較快。但是,在模型生成響應(yīng)時(shí),是逐詞元依次生成的,每個(gè)新詞元的生成,都取決于之前已經(jīng)生成的所有內(nèi)容。這需要更多的時(shí)間,因?yàn)槟P蜁?huì)執(zhí)行自動(dòng)回歸流程,這意味著每個(gè)新詞元都建立在之前生成的所有詞元基礎(chǔ)上。例如,將輸入序列長度 (ISL) 從 2,000 個(gè)詞元增加到 125,000 個(gè)詞元,僅導(dǎo)致延遲增加大約兩倍。相比之下,在同樣范圍內(nèi)增加輸出序列長度 (OSL),延遲將增加大約 68 倍。d之所以產(chǎn)生這種差異,是因?yàn)檩^長的輸入序列引發(fā)了更多預(yù)填充計(jì)算,可并行處理多個(gè)詞元。與之相反,解碼在本質(zhì)上是一個(gè)串行過程,只能依次生成每一個(gè)詞元,這需要耗費(fèi)更多時(shí)間,以及更多的內(nèi)存帶寬。
這意味著更長的輸出序列會(huì)導(dǎo)致更長的解碼時(shí)間,同時(shí) GPU 和內(nèi)存子系統(tǒng)保持活躍狀態(tài)的時(shí)間也會(huì)變長。這種情況下,硬件級(jí)別的功效將會(huì)變得特別重要。類似美光 HBM3Ee 這樣的內(nèi)存設(shè)備,其運(yùn)行功耗比同類高帶寬內(nèi)存設(shè)備低得多,能夠以較少的能量完成相同的推理任務(wù)。
d此處給出的估計(jì)值來自未優(yōu)化的分析模型,因此它們僅用于說明一般趨勢(shì),而非峰值性能。
e美光 HBM3E 的功耗比市場(chǎng)上同類高帶寬內(nèi)存設(shè)備低 30%。
對(duì)用戶而言,上述結(jié)論彰顯出優(yōu)化提示詞以及管理輸入長度(例如,精簡任何不必要的內(nèi)容)的重要性。如果您正在構(gòu)建實(shí)時(shí)應(yīng)用程序,您通??梢苑判奶幚砀L的輸入,不會(huì)有太多問題。而保持簡潔的輸出,可能有助于您的系統(tǒng)運(yùn)行更快,響應(yīng)更迅速。
內(nèi)存在處理更長上下文時(shí)的重要作用
推理延遲不僅取決于序列長度,還取決于系統(tǒng)在處理輸入和生成輸出時(shí)如何管理模型對(duì)計(jì)算和內(nèi)存的需求。許多近期發(fā)布的語言模型正在宣傳其超過百萬詞元的上下文窗口。這些較大的上下文窗口(當(dāng)完全利用時(shí))將對(duì)內(nèi)存子系統(tǒng)產(chǎn)生更大的壓力,其后果在用戶看來可能包括執(zhí)行速度較慢、運(yùn)行時(shí)間增加等。新一代內(nèi)存技術(shù)將提供更高的帶寬和更大的容量,可支持這些更大的上下文窗口,幫助縮短響應(yīng)時(shí)間,提高整體吞吐量(每秒生成的詞元數(shù))。但是,伴隨著這些性能提升,也出現(xiàn)了系統(tǒng)能耗過大的問題。隨著推理工作負(fù)載擴(kuò)大到支持?jǐn)?shù)百萬個(gè)詞元,設(shè)計(jì)出能夠高效使用能源的系統(tǒng),變得越來越重要。長時(shí)間保持活動(dòng)狀態(tài)的系統(tǒng)需要消耗更多能源,為解決這一挑戰(zhàn),需要同時(shí)具備高帶寬和低功耗特性的內(nèi)存設(shè)備。例如,美光 HBM3E 的功耗遠(yuǎn)低于市場(chǎng)上的同類高帶寬內(nèi)存設(shè)備。此類低功耗產(chǎn)品有助于減少 AI 在運(yùn)行推理工作負(fù)載(涉及數(shù)百萬詞元上下文窗口)期間所消耗的能量。展望未來,HBM4 和 HBM4E 等下一代內(nèi)存技術(shù)旨在提供更高的內(nèi)存帶寬和容量,同時(shí)提高能效。這些改進(jìn)源于工藝技術(shù)的進(jìn)步(美光使用 1-gamma DRAM),預(yù)計(jì)將以更低的能源成本實(shí)現(xiàn)更快的數(shù)據(jù)移動(dòng)。此外,隨著這些技術(shù)的成熟,可能會(huì)進(jìn)一步減少延遲,提高大規(guī)模 AI 部署的吞吐量并節(jié)約能源。
技術(shù)貢獻(xiàn)者
Felippe Vieira Zacarias
系統(tǒng)性能工程師
Shanya Chaubey
生態(tài)系統(tǒng)開發(fā)經(jīng)理
本文作者
Evelyn Grevelink
內(nèi)容戰(zhàn)略營銷負(fù)責(zé)人
-
內(nèi)存
+關(guān)注
關(guān)注
9文章
3231瀏覽量
76496 -
AI
+關(guān)注
關(guān)注
91文章
40941瀏覽量
302517 -
模型
+關(guān)注
關(guān)注
1文章
3810瀏覽量
52253
原文標(biāo)題:大語言模型中與上下文窗口有關(guān)的五個(gè)基本概念
文章出處:【微信號(hào):gh_195c6bf0b140,微信公眾號(hào):Micron美光科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
關(guān)于進(jìn)程上下文、中斷上下文及原子上下文的一些概念理解
進(jìn)程上下文與中斷上下文的理解
中斷中的上下文切換詳解
基于多Agent的用戶上下文自適應(yīng)站點(diǎn)構(gòu)架
基于交互上下文的預(yù)測(cè)方法
終端業(yè)務(wù)上下文的定義方法及業(yè)務(wù)模型
基于Pocket PC的上下文菜單實(shí)現(xiàn)
基于Pocket PC的上下文菜單實(shí)現(xiàn)
基于上下文相似度的分解推薦算法
Web服務(wù)的上下文的訪問控制策略模型
初學(xué)OpenGL:什么是繪制上下文
如何分析Linux CPU上下文切換問題
我們能否擴(kuò)展現(xiàn)有的預(yù)訓(xùn)練 LLM 的上下文窗口
NVIDIA BlueField-4為推理上下文記憶存儲(chǔ)平臺(tái)提供強(qiáng)大支持
大語言模型如何處理上下文窗口中的輸入
評(píng)論