偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

vLLM 背后的架構(gòu):PagedAttention 如何提升內(nèi)存利用率

人工智能
對(duì)于企業(yè)而言,PagedAttention 不僅是一項(xiàng)技術(shù)優(yōu)化,更是讓 LLM 從“高成本實(shí)驗(yàn)”走向“大規(guī)模商用”的關(guān)鍵橋梁——無(wú)論是客服機(jī)器人、智能助手還是代碼生成工具,都能通過(guò) vLLM 實(shí)現(xiàn)更低成本、更高并發(fā)的部署,推動(dòng) AI 技術(shù)真正落地到各行各業(yè)。

在大語(yǔ)言模型(LLM)應(yīng)用日益普及的今天,模型部署的成本與效率問(wèn)題逐漸成為行業(yè)痛點(diǎn)。以 LLaMA 4 為代表的大型模型,不僅計(jì)算開(kāi)銷高昂,更受限于內(nèi)存利用效率低下,導(dǎo)致單次請(qǐng)求成本可達(dá)傳統(tǒng)搜索查詢的 10 倍。其中,負(fù)責(zé)存儲(chǔ)對(duì)話上下文的 KV 緩存(Key-Value Cache)是核心瓶頸——它雖需占用 GPU 內(nèi)存的 30%,但現(xiàn)有系統(tǒng)因分配策略不合理,竟會(huì)浪費(fèi)其中 60%-80% 的空間。

本文將深入解析 vLLM 框架的核心技術(shù) PagedAttention(分頁(yè)注意力機(jī)制):它如何借鑒操作系統(tǒng)的內(nèi)存管理思想,打破傳統(tǒng) KV 緩存的效率困局,最終實(shí)現(xiàn)內(nèi)存利用率與推理吞吐量的雙重突破。

一、先搞懂:為什么 KV 緩存是內(nèi)存“吞金獸”?

要理解 PagedAttention 的價(jià)值,首先需要明確 LLM 推理中 KV 緩存的作用,以及傳統(tǒng)內(nèi)存管理為何會(huì)造成巨大浪費(fèi)。

1.1 什么是 KV 緩存?

LLM 生成文本時(shí),會(huì)以“token(詞元,即單詞或單詞片段)”為單位逐次處理。每次生成新 token,模型都需要通過(guò)“注意力機(jī)制”回顧對(duì)話歷史中的所有 token——這個(gè)過(guò)程中,“鍵(Key)”用于計(jì)算注意力權(quán)重,“值(Value)”用于生成上下文關(guān)聯(lián)的輸出。

如果沒(méi)有 KV 緩存,生成 100 個(gè) token 的響應(yīng)需要重復(fù)計(jì)算 100 次歷史 token 的注意力,效率極低;而 KV 緩存的作用,就是將首次計(jì)算的 Key 和 Value 存儲(chǔ)起來(lái),后續(xù)生成新 token 時(shí)直接復(fù)用,大幅減少重復(fù)計(jì)算,是 LLM 實(shí)現(xiàn)快速推理的關(guān)鍵組件。

1.2 傳統(tǒng) KV 緩存的“致命浪費(fèi)”

以 130 億參數(shù)的 LLaMA-13B 模型為例,其 KV 緩存的內(nèi)存需求已十分驚人:

  • 單個(gè) token 需占用 800KB 緩存空間;
  • 模型支持的最大序列長(zhǎng)度為 2048 個(gè) token,意味著單輪對(duì)話的 KV 緩存最大需 1.6GB(2048×800KB)。

但傳統(tǒng)系統(tǒng)采用“預(yù)分配策略”:無(wú)論實(shí)際對(duì)話長(zhǎng)度如何,都會(huì)直接分配“最大序列長(zhǎng)度對(duì)應(yīng)的緩存空間”。例如,當(dāng)用戶僅發(fā)送“什么是人工智能?”(僅 4 個(gè) token,實(shí)際需 3.2MB 緩存)時(shí),系統(tǒng)仍會(huì)分配 2048 個(gè) token 的 1.6GB 空間——內(nèi)存浪費(fèi)率高達(dá) 99.8%。

這種“一刀切”的分配方式,在高并發(fā)場(chǎng)景下會(huì)迅速耗盡 GPU 內(nèi)存,迫使系統(tǒng)不得不拒絕新請(qǐng)求,嚴(yán)重制約 LLM 服務(wù)的規(guī)?;渴稹?/span>

二、PagedAttention:從操作系統(tǒng)“偷師”的內(nèi)存革命

PagedAttention 的核心靈感,來(lái)自操作系統(tǒng)中早已成熟的“虛擬內(nèi)存分頁(yè)技術(shù)”——就像操作系統(tǒng)通過(guò)分頁(yè)解決物理內(nèi)存碎片化問(wèn)題一樣,vLLM 將這一思想移植到 KV 緩存管理中,徹底改變了緩存的存儲(chǔ)與分配邏輯。

傳統(tǒng)方案中,單輪對(duì)話的 KV 緩存是一個(gè)連續(xù)的“整塊”,必須占用一段完整的物理內(nèi)存;而 PagedAttention 則將 KV 緩存拆分為多個(gè)小的、固定大小的“塊”,這些塊可以分散存儲(chǔ)在物理內(nèi)存的任意空閑位置,無(wú)需連續(xù)。

2.1 核心機(jī)制一:基于塊的模塊化存儲(chǔ)

PagedAttention 首先將 KV 緩存“化整為零”,拆分為統(tǒng)一大小的“緩存塊”,具體邏輯如下:

  • 塊大小設(shè)計(jì):以 13B 模型為例,每個(gè)塊固定存儲(chǔ) 16 個(gè) token 的 KV 數(shù)據(jù),對(duì)應(yīng) 12.8KB 內(nèi)存(16×800KB)。這個(gè)尺寸經(jīng)過(guò)權(quán)衡——足夠小以減少浪費(fèi),又足夠大以保證 GPU 計(jì)算效率。
  • 動(dòng)態(tài)分配邏輯

a.初始化階段:僅分配處理用戶輸入“提示詞(Prompt)”所需的塊,不預(yù)分配多余空間;

b.生成階段:當(dāng)當(dāng)前塊存滿 16 個(gè) token 時(shí),再新增一個(gè)塊,按需擴(kuò)展;

c.對(duì)話結(jié)束:立即釋放該對(duì)話占用的所有塊,供其他對(duì)話復(fù)用。

這種“按需分配、即時(shí)回收”的模式,從根本上避免了傳統(tǒng)預(yù)分配策略的“閑置浪費(fèi)”——即使對(duì)話僅需 4 個(gè) token,也只需占用 1 個(gè)塊(12.8KB),而非 1.6GB 的整塊空間。

2.2 核心機(jī)制二:虛擬-物理地址映射(塊表系統(tǒng))

為了讓模型“感知不到”緩存塊的分散存儲(chǔ),PagedAttention 引入了塊表(Block Table),本質(zhì)是為 KV 緩存構(gòu)建一套“虛擬內(nèi)存系統(tǒng)”:

  • 對(duì)模型而言,它看到的是“連續(xù)的虛擬塊”(邏輯上按 token 順序排列);
  • 對(duì)物理內(nèi)存而言,這些虛擬塊通過(guò)“塊表”映射到實(shí)際的物理塊位置(可能分散在內(nèi)存各處);
  • 模型無(wú)需關(guān)心物理塊的位置,只需通過(guò)塊表查詢“虛擬塊對(duì)應(yīng)的物理地址”,即可正常讀取 KV 數(shù)據(jù)。

這套映射機(jī)制的最大價(jià)值,是打破了“連續(xù)內(nèi)存”的限制——物理內(nèi)存中零散的空閑塊都能被利用,大幅減少了“有內(nèi)存但因不連續(xù)而無(wú)法使用”的碎片化問(wèn)題。

2.3 核心機(jī)制三:跨請(qǐng)求的內(nèi)存共享

塊表系統(tǒng)還解鎖了一項(xiàng)關(guān)鍵能力——多個(gè)對(duì)話請(qǐng)求共享物理塊,這是傳統(tǒng)方案完全無(wú)法實(shí)現(xiàn)的內(nèi)存優(yōu)化。

典型場(chǎng)景如“多用戶共享系統(tǒng)提示詞”:假設(shè) 3 個(gè)用戶的請(qǐng)求都基于同一個(gè)系統(tǒng)提示詞(如“你是一名AI導(dǎo)師,需用簡(jiǎn)單類比解釋概念”),該提示詞對(duì)應(yīng) 3 個(gè)物理塊(約 38.4KB)。

  • 傳統(tǒng)方案:每個(gè)請(qǐng)求需單獨(dú)存儲(chǔ)一份系統(tǒng)提示詞的 KV 緩存,總占用 3×38.4KB=115.2KB;
  • PagedAttention:系統(tǒng)提示詞的 3 個(gè)物理塊僅存儲(chǔ)一次,3 個(gè)請(qǐng)求的塊表都“指向”這 3 個(gè)物理塊,每個(gè)請(qǐng)求只需額外存儲(chǔ)自己的用戶查詢(約 50KB),總占用僅 38.4KB+50KB=88.4KB,內(nèi)存節(jié)省超 20%。

在批量生成場(chǎng)景(如為單個(gè)請(qǐng)求生成 N 個(gè)不同輸出)中,這種共享機(jī)制的優(yōu)勢(shì)更明顯——只需存儲(chǔ)一份輸入的 KV 緩存,N 個(gè)輸出共享同一物理塊,內(nèi)存開(kāi)銷幾乎不隨輸出數(shù)量增加而增長(zhǎng)。

三、實(shí)測(cè)驗(yàn)證:PagedAttention 帶來(lái)的吞吐量飛躍

為驗(yàn)證 PagedAttention 的實(shí)際效果,我們基于 vLLM 框架與傳統(tǒng) Hugging Face Transformers 庫(kù),進(jìn)行了吞吐量對(duì)比實(shí)驗(yàn)。實(shí)驗(yàn)環(huán)境為 8 張 NVIDIA A10G GPU,統(tǒng)一使用 OPT-1.3B 模型,處理 5 個(gè)包含相同系統(tǒng)提示詞的并發(fā)請(qǐng)求(每個(gè)請(qǐng)求生成 50 個(gè)新 token)。

3.1 實(shí)驗(yàn)結(jié)果:吞吐量提升 2 倍

推理方式

處理時(shí)間(秒)

吞吐量(請(qǐng)求/秒)

核心差異

傳統(tǒng)逐次推理

5.53

0.90

無(wú)批處理,逐個(gè)請(qǐng)求計(jì)算

傳統(tǒng)批量推理

1.07

4.68

支持批處理,但 KV 緩存預(yù)分配

vLLM(PagedAttention)

0.51

9.74

塊存儲(chǔ)+內(nèi)存共享,KV 緩存按需分配

從數(shù)據(jù)可見(jiàn):

  • 相比傳統(tǒng)批量推理,vLLM 的吞吐量提升超 2 倍(9.74 vs 4.68);
  • 相比逐次推理,吞吐量提升超 10 倍(9.74 vs 0.90)。

這一提升的核心原因,是 PagedAttention 讓 GPU 內(nèi)存不再是瓶頸——更多請(qǐng)求可以同時(shí)放入內(nèi)存進(jìn)行批處理,無(wú)需因“預(yù)分配導(dǎo)致內(nèi)存不足”而限制并發(fā)量。

3.2 關(guān)鍵日志解讀

vLLM 啟動(dòng)時(shí)的日志進(jìn)一步驗(yàn)證了內(nèi)存優(yōu)化效果:

  • “# GPU blocks: 2873, # CPU blocks: 1365”:GPU 被劃分為 2873 個(gè)緩存塊,空閑時(shí)可將塊暫存到 CPU 內(nèi)存,進(jìn)一步擴(kuò)展可用空間;
  • “Maximum concurrency for 2048 tokens per request: 22.45x”:在最大序列長(zhǎng)度下,vLLM 的并發(fā)能力是傳統(tǒng)方案的 22.45 倍——這意味著相同 GPU 資源下,vLLM 可同時(shí)處理 20 倍以上的請(qǐng)求。

四、PagedAttention 讓 LLM 部署“經(jīng)濟(jì)可行”

PagedAttention 并非對(duì) LLM 模型結(jié)構(gòu)的修改,而是通過(guò)重構(gòu) KV 緩存的內(nèi)存管理邏輯,解決了推理階段的核心效率問(wèn)題:

  • 從“空間”上,它通過(guò)塊存儲(chǔ)和動(dòng)態(tài)分配,將 KV 緩存的內(nèi)存浪費(fèi)率從 99.8% 降至接近零;
  • 從“時(shí)間”上,它通過(guò)內(nèi)存共享和高效批處理,將推理吞吐量提升 2 倍以上;
  • 從“成本”上,內(nèi)存利用率的提升直接降低了單請(qǐng)求的 GPU 資源消耗,讓 LLM 服務(wù)的部署成本大幅下降——原本需要 10 張 GPU 支撐的服務(wù),現(xiàn)在可能只需 5 張甚至更少。

對(duì)于企業(yè)而言,PagedAttention 不僅是一項(xiàng)技術(shù)優(yōu)化,更是讓 LLM 從“高成本實(shí)驗(yàn)”走向“大規(guī)模商用”的關(guān)鍵橋梁——無(wú)論是客服機(jī)器人、智能助手還是代碼生成工具,都能通過(guò) vLLM 實(shí)現(xiàn)更低成本、更高并發(fā)的部署,推動(dòng) AI 技術(shù)真正落地到各行各業(yè)。

責(zé)任編輯:武曉燕 來(lái)源: 大模型之路
相關(guān)推薦

2025-09-03 01:45:00

2013-04-02 09:15:40

服務(wù)器虛擬化

2012-05-08 13:24:45

負(fù)載均衡帶寬銳捷網(wǎng)絡(luò)

2023-04-04 09:22:50

LinuxCPU命令

2017-08-25 15:56:54

Linuxproc文件系統(tǒng)CPU利用率

2015-10-15 09:09:38

Oracle數(shù)據(jù)庫(kù)華為

2009-05-26 17:34:14

VMware虛擬化服務(wù)器

2013-08-21 14:20:50

飛魚(yú)星流控王飛魚(yú)星

2010-03-09 09:10:47

IBM eX5VMware

2025-05-28 01:40:00

GPUNVIDIAMPS

2015-06-04 13:44:34

5G

2011-03-17 13:54:42

查詢參數(shù)SQL語(yǔ)句利用率

2024-10-14 13:01:33

AOTcpu符號(hào)

2012-03-05 13:03:17

2021-02-03 09:26:49

數(shù)據(jù)中心基礎(chǔ)設(shè)施能源

2010-03-11 16:49:55

Linux CPU利用

2024-06-26 09:29:53

2015-09-07 11:54:25

云計(jì)算數(shù)據(jù)中心資源利用

2022-04-12 15:54:12

阿里云云原生開(kāi)源

2022-08-12 11:37:16

優(yōu)化實(shí)踐
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)