vLLM介紹

簡介

vLLM 工程github地址
Paged attention論文地址

vLLM開發者介紹

Woosuk Kwon

vLLM: A high-throughput and memory-efficient inference and serving engine for LLMs.
SkyPilot: A framework for easily and cost effectively running machine learning workloads on any cloud.

Zhuohan Li

vLLM: A high-throughput and memory-efficient serving engine for large language models, accelerated with PagedAttention.
Vicuna: An open-source chatbot impressing GPT-4 with 90% ChatGPT quality.
AlpaServe: Use model parallelism to accelerate deep learning serving, even when models fit a single GPU.
Alpa: Automate model parallel training with just a few lines of code.

Features

  • SOTA最先進的服務吞吐量
  • 高效的顯存管理:PagedAttention高效管理kv memory,multi-query attention
  • 傳入請求的Continuous batching
  • 優化的CUDA kernels。比如從Faster Transformer release 5.3中移植過來的attention kernel。實現了layernorm和position encoding kernels。
  • 支持多卡GPU推理,目前只支持Tensor parallel,不支持pipeline parallel
  • 最新開源模型支持,更新速度非常快:llama, llama2, 百川,通義千問,書生等等

主要解決的問題

由于LLMs以迭代方式生成其輸出,LLM服務的性能受到內存的限制(內存和IO受限型memory-IO bound),計算資源不是瓶頸。就是說,當前將1MB的數據加載到GPU的計算核心所花費的時間比這些計算core對1MB數據執行LLM計算所花費的更多。這意味著LLM推理吞吐量在很大程度上取決于您可以將多大的batch放入高帶寬GPU內存。參見(processor’s ops:byte ratio.)
在自回歸解碼過程中,LLM的所有輸入tokens產生它們的attention key and value tensors,并且這些tensors被保存在GPU存儲器中以生成下一個token。這些緩存的key and value tensors通常被稱為KV緩存。由于碎片和過度預留,現有系統浪費了60%-80%的顯卡內存。

vLLM的解決方案

減少顯存的碎片和過度預留問題可以顯著的提升推理性能。VLLM的主要解決思路是:

  • continuous batchingbatch介紹
  • Paged attentionvLLM blog

以下是 AnyScale 公司針對VLLM做的continuous-batching-llm-inference評測結論:
我們想要看看這種優化的性能如何。我們將詳細討論以下內容,包括我們如何模擬生產工作負載,但是總結我們的發現:

  • 使用continuous batching和Paged attention內存優化(使用vLLM),吞吐量可提高高達23倍。
  • 通過使用continuous batching(在Ray Serve和Hugging Face的text-generation-inference上),吞吐量比簡單batch提高8倍。
  • 通過優化的模型實現(NVIDIA的Faster Transformer優化介紹),吞吐量比簡單batch提高4倍。

vLLM Work Through

詳細參考綁定的資源:vLLM First SF Meetup Slides。是2個作者寫的比較詳細

性能評測 TBD

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/207171.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/207171.shtml
英文地址,請注明出處:http://en.pswp.cn/news/207171.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【模型量化】神經網絡量化基礎及代碼學習總結

1 量化的介紹 量化是減少神經網絡計算時間和能耗的最有效的方法之一。在神經網絡量化中,權重和激活張量存儲在比訓練時通常使用的16-bit或32-bit更低的比特精度。當從32-bit降低到8-bit,存儲張量的內存開銷減少了4倍,矩陣乘法的計算成本則二…

ALNS算法中隨機化重要性的評價

文章概述 本研究分析了在海上提貨和交付問題中使用的ALNS元啟發式算法中的隨機化成分。研究者提出了簡單的確定性替代方案,并通過實驗比較了隨機化和確定性成分的性能。結果表明,初始實現的簡單確定性替代方案能夠與隨機化成分的性能相匹配。這項研究為…

IDEA使用git從遠程倉庫獲取項目

將地址填入url中 然后直接clone就行

《Easy3d+Qt+VTK》學習

《Easy3dQtVTK》學習-1、編譯與配置 一、編譯二、配置注 一、編譯 1、 資源下載:easy3d giuhub 2、解壓縮 3、用qt打開CMakeLists.txt即可 4、點擊項目,選擇debug或者release,圖中3處可自行選擇,因為我的qt版本是6&#xff0c…

Java集合大總結——Collections工具類

簡單闡述 參考操作數組的工具類:Arrays,Collections 是一個操作 Set、List 和 Map 等集合的工具類。 常用方法 Collections 中提供了一系列靜態的方法對集合元素進行排序、查詢和修改等操作,還提供了對集合對象設置不可變、對集合對象實現…

jdbc4.MySQLSyntaxErrorException: Query was empty

出現這種異常的原因,有幾個要點 檢查sql語句是否正確檢查你的條件是否真的被sql使用 背景 delete sql在xml中,賦值list對象,計劃進行批量刪除的sql,這時出現了異常,檢查后,發現這個list竟然是空&#xff…

Linux下的軟硬鏈接

Linux下的軟硬鏈接 Linux下的硬鏈接和軟鏈接是一種文件系統級別的鏈接方式,它們允許你在不同的目錄中創建指向同一個文件的引用。硬鏈接和軟鏈接的主要區別在于它們的實現方式和刪除方式。 硬鏈接(Hard Link): 硬鏈接是指向同一…

在linux上如何運用虛擬數據優化器VDO

本章主要介紹虛擬化數據優化器。 什么是虛擬數據優化器VDO 創建VDO設備以節約硬盤空間 16.1 了解什么是VDO VDO全稱是Virtual Data Optimize(虛擬數據優化),主要是為了節省硬盤空間。 現在假設有兩個文件file1和 file2,大小都是10G。file…

cpu 300% 爆滿 內存占用不高 排查

top查詢 cpu最高的PID ps -ef | grep PID 查看具體哪一個jar服務 jstack -l PID > ./jstack.log 下載/打印進程的線程棧信息 可以加信息簡單分析 或進一步 查看堆內存使用情況 jmap -heap Java進程id jstack.log 信息示例 Full thread dump Java HotSpot(TM) 64-Bit Se…

橫向擴展統一存儲與備份服務器功能

Infortrend 更新了GS,GSe,GSe Pro統一存儲系列的備份服務器功能。該功能降低數據備份成本,并提供靈活的備份策略。通過備份服務器功能,用戶可以通過多種途徑實現數據備份,包括公有云(兼容S3)、文…

為內核新增字符驅動模塊

1. 放置代碼 在./source/driver/char下放置模塊文件夾 2. Makefile和Kconfig makefile文件參考 obj-$(AAA_LED) AAA-led.oKconfig文件參考 config AAA_LEDtristate "Phytium macb led control module"depends on XXXdefault mhelpIf you have a n…

C/C++,樹算法——二叉樹的插入(Insert)算法之源程序

1 文本格式 #include<iostream> using namespace std; // A BTree node class BTreeNode { int* keys; // An array of keys int t; // Minimum degree (defines the range for number of keys) BTreeNode** C; // An array of child pointers int …

.NET中有多少種定時器

.NET中至少有6種定時器&#xff0c;每一種定時器都有它的用途和特點。根據定時器的應用場景&#xff0c;可以分為UI相關的定時器和UI無關的定時器。本文將簡單介紹這6種定時器的基本用法和特點。 UI定時器 .NET中的UI定時器主要是WinForm、WPF以及WebForm中的定時器。分別為&am…

dell服務器重啟后顯示器黑屏

1.硬件層面&#xff1a;觀察主機的指示燈 &#xff08;1&#xff09;指示燈偏黃&#xff0c;硬件存在問題&#xff08;內存條有靜電&#xff0c;拔出后用橡皮擦擦拭&#xff1b;或GPU松動&#xff09; a.電源指示燈黃&#xff0c;閃爍三下再閃爍一下&#xff0c;扣下主板上的紐…

Python Appium Selenium 查殺進程的實用方法

一、前置說明 在自動化過程中&#xff0c;經常需要在命令行中執行一些操作&#xff0c;比如啟動應用、查殺應用等&#xff0c;因此可以封裝成一個CommandExecutor來專門處理這些事情。 二、操作步驟 # cmd_util.pyimport logging import os import platform import shutil i…

Java編程中通用的正則表達式(二)

正則表達式&#xff0c;又稱正則式、規則表達式、正規表達式、正則模式或簡稱正則&#xff0c;是一種用來匹配字符串的工具。它是一種字符串模式的表示方法&#xff0c;可以用來檢索、替換和驗證文本。正則表達式是一個字符串&#xff0c;它描述了一些字符的組合&#xff0c;這…

dockers安裝rabbitmq

RabbitMQ: easy to use, flexible messaging and streaming — RabbitMQhttps://www.rabbitmq.com/ Downloading and Installing RabbitMQ — RabbitMQ docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3.12-management 之后參照&#xff1a;dock…

高低壓配電智能監控系統

高低壓配電智能監控系統是一種綜合運用物聯網、云計算、大數據和人工智能等技術的智能化監控系統&#xff0c;主要用于對高低壓配電設備進行實時監測、數據采集、故障預警和遠程管理。 該系統通過安裝智能傳感器、智能設備、網絡通訊技術等手段&#xff0c;依托電易云-智慧電力…

解決“由于找不到msvcr110.dll無法繼續執行”的錯誤問題,一鍵修復msvcr110.dll丟失

當你遇到“由于找不到msvcr110.dll無法繼續執行”的錯誤時&#xff0c;通常是因為你的電腦缺少相關的msvcr110.dll文件。如果你的電腦中缺失了msvcr110.dll文件丟失那么可以根據下面的方法嘗試解決msvcr110.dll丟失的問題。 一.解決msvcr110.dll丟失的方法 使用dll修復工具 D…

設計圖中時序圖

設計圖中的時序圖通常用于展示兩個或多個對象之間的交互和消息傳遞的順序。它是一種用于描述軟件或系統中的并發性和時序行為的工具。 以下是一個簡單的時序圖的示例&#xff1a; 首先&#xff0c;在時序圖中創建兩個對象&#xff0c;例如"對象A"和"對象B&quo…