西風 發自 凹非寺
量子位 | 公眾號 QbitAI
僅用不到1200行代碼,實現最小化且完全可讀的vLLM
DeepSeek研究員俞星凱搞了個開源項目引得大伙拍手叫絕。
項目名為Nano-vLLM(納米級-vLLM),有三大特點:
- 快速離線推理:推理速度可與vLLM相媲美
- 可讀性強的代碼庫:基于不到1200行Python代碼實現,簡潔干凈
- 優化套件:包含前綴緩存、Torch compilation 、CUDA graph等
下面是vLLM與Nano-vLLM在不同硬件和模型配置下的基準測試情況。
在RTX 4070硬件、Qwen3-0.6B模型環境中,設置了256個序列的總請求數,輸入和輸出長度均在100-1024個 token間隨機采樣。
測試結果be like:
vLLM略微領先。
二者輸出token量相同,vLLM耗時98.95秒、吞吐量為1353.86 tokens/s,Nano-vLLM耗時101.90秒、吞吐量1314.65tokens/s。
接著在H800硬件、Qwen3-8B模型環境中,總請求數為1024個序列,輸入輸出長度同樣隨機采樣。
此時Nano-vLLM甚至反超原框架。
二者輸出token量依舊相同,vLLM耗時98.67秒、吞吐量5916.89 tokens/s ,Nano-vLLM耗時86.73秒、吞吐量 6731.42 tokens/s。
這一成果來自于DeepSeek研究員俞星凱。
他2021年獲得南京大學計算機科學與技術系學士學位,同年又被南京大學免試錄取為碩士研究生,在校他同時也是由周志華教授領導的LAMDA團隊的成員。
vLLM是什么?
vLLM是一款專為LLM推理與部署優化的高性能框架,最初由加州大學伯克利分校的Sky Computing Lab開發,現已發展成為一個匯聚學界與業界貢獻的社區驅動項目。
該項目在GitHub目前已累計49.5k+Star。
其核心技術靈感源自操作系統虛擬內存分頁機制。此前LLM服務系統因采用連續內存存儲KV緩存,導致內部/外部碎片化嚴重,且無法有效共享內存,極大限制了批處理規模。
針對這一問題,團隊提出PagedAttention算法,允許將連續的鍵(key)值(value)對存儲在非連續內存空間中,通過將KV緩存劃分為固定大小的塊(Block),利用塊表動態映射邏輯塊與物理塊地址。
在注意力計算過程中,PagedAttention內核會分別識別和獲取不同的KV塊。
下面是一個示例,鍵和值向量分布在三個塊中,且這三個塊在物理內存中并不連續。
基于PagedAttention算法,團隊構建了vLLM服務系統,其架構下圖所示:
vLLM采用集中式調度器來協調分布式GPU工作節點的執行。
借助PagedAttention,KV緩存管理器以分頁方式有效管理KV緩存。具體而言,KV緩存管理器通過集中式調度器發送的指令來管理GPU工作節點上的物理KV緩存內存。
vLLM實現了KV緩存內存近乎零浪費,請求內及請求間KV緩存的靈活共享進一步降低內存使用。
評估顯示,與FasterTransformer和Orca等此前最先進系統相比,vLLM在相同延遲水平下將流行LLM的吞吐量提升2-4倍,且在更長序列、更大模型和更復雜解碼算法場景中改進更為顯著。
總結來說,vLLM靈活且易于使用,具備以下特點
與流行的Hugging Face模型無縫集成,包括類Transformer模型、混合專家模型、嵌入模型、多模態模型;支持通過各種解碼算法實現高吞吐量服務,包括并行采樣、波束搜索等;支持張量并行和pipeline并行,以實現分布式推理;支持流式輸出;兼容OpenAI的API服務器;支持NVIDIA GPU、AMD CPU和GPU、Intel CPU和GPU、PowerPC CPU、TPU以及AWS Neuron;支持前綴緩存;支持多LoRA。
值得一提的是,在實現層面,vLLM前端基于FastAPI,后端是基于GPU的推理引擎。vLLM引擎由8500行Python代碼和2000行C++/CUDA代碼構成
而這次DeepSeek研究員僅用不到1200行代碼就實現了輕量級vLLM,性能和原版相媲美。
[1]https://github.com/GeeeekExplorer/nano-vllm/tree/main
[2]]https://www.lamda.nju.edu.cn/yuxk/
[3]https://arxiv.org/pdf/2309.06180
[4]https://github.com/vllm-project/vllm
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.