實測VLLM的加速效果

為了測試vllm的并行加速效果,采用同樣的5個提問,編寫兩個不同的python腳本,分別是compare_vllm.py和compare_chatglm3.py,其中compare_vllm.py采用vllm加速。

服務器參數:

操作系統ubuntu 22.04
CPUi7 14700k
內存dd5 128G
顯卡3090 24G 兩塊

compare_vllm.py的代碼如下:

import time
from vllm import LLM, SamplingParamsdef main():# 定義批量數據desc = "這張圖片中有一位母親和兒子正在一起開心的笑母親穿著花裙子,兒子穿著運動鞋和牛仔短褲,他們站在方形的磚塊地面"query = f"對于以下圖片描述提取標簽,每一個標簽作為數組的一個元素,以JSON格式輸出。只輸出標簽,不用解釋:\n'{desc}'"prompts = ["中華人民共和國成立的日期是哪一天?","為什么AI在這一兩年爆發了?",query,"中美人口分別是多少?美國有多少中國的移民?","你擅長數學計算嗎?",]sampling_params = SamplingParams(temperature=0.1, top_p=0.5, max_tokens=4096)path = '/home/data/model/zhipu/chatglm3-6b'llm = LLM(model=path, trust_remote_code=True, tokenizer_mode="auto", tensor_parallel_size=2, dtype="auto")start_time = time.time()  # 獲取當前時間outputs = llm.generate(prompts, sampling_params)# 輸出結果for output in outputs:prompt = output.promptgenerated_text = output.outputs[0].textprint(f"Prompt: {prompt!r}, Generated text: {generated_text!r}")end_time = time.time()  # 獲取當前時間print(f"The code run for {end_time - start_time} seconds.")    if __name__ == "__main__":main()

compare_chatglm3.py的代碼如下:


import time
from transformers import AutoTokenizer, AutoModeldef main():MODEL_PATH = "/home/data/model/zhipu/chatglm3-6b"tokenizer = AutoTokenizer.from_pretrained(MODEL_PATH, trust_remote_code=True)model = AutoModel.from_pretrained(MODEL_PATH, trust_remote_code=True, device_map="auto").eval()desc = "這張圖片中有一位母親和兒子正在一起開心的笑母親穿著花裙子,兒子穿著運動鞋和牛仔短褲,他們站在方形的磚塊地面"query = f"對于以下圖片描述提取標簽,每一個標簽作為數組的一個元素,以JSON格式輸出。只輸出標簽,不用解釋:\n'{desc}'"prompts = ["中華人民共和國成立的日期是哪一天?","為什么AI在這一兩年爆發了?",query,"中美人口分別是多少?美國有多少中國的移民?","你擅長數學計算嗎?",]start_time = time.time()  # 獲取當前時間for p in prompts:response, history = model.chat(tokenizer, p, history=[], role="user")  #,top_p=0.8, temperature=0.2print(response)end_time = time.time()  # 獲取當前時間print(f"The code run for {end_time - start_time} seconds.") if __name__ == "__main__":main()

python compare_vllm.py:
? 輸出:The code run for 3.9577383995056152 seconds.
? 最大顯存使用(因為動態在變化,這個并不精確):2個各22G,總計44G
??

compare_chatglm3.py:
? 輸出:The code run for 12.522217512130737 seconds.
? 最大顯存使用(因為動態在變化,這個并不精確):2個各6G,總計12G

很明顯,vllm確實具備并行加速性能,差不多是3倍。當然顯存的峰值使用量明顯增多,差不多是不用vllm的3.7倍。當然,可以考慮采用進程方式部署多個非vllm服務實現并行,但是那樣的話部署會麻煩一些。

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

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

相關文章

hive中常見參數優化總結

1.with as 的cte優化,一般開發中習慣使用with as方便閱讀,但如果子查詢結果在下游被多次引用,可以使用一定的參數優化手段減少表掃描次數 默認set hive.optimize.cte.materialize.threshold-1;不自動物化到內存,一般可以設置為 se…

力扣 第 387 場周賽 解題報告 | 珂學家 | 離散化樹狀數組 + 模擬場

前言 整體評價 手速場模擬場,思路和解法都蠻直接的。 所以搞點活 如果T2,如果不固定左上角,批量查詢某個點為左上角,求滿足總和 ≤ k \le k ≤k的子矩陣個數 如果T2,如果不固定左上角,求總和 ≤ k \le k…

Spring的Bean的生命周期 | 有圖有案例

Spring的Bean的生命周期 Spring的Bean的生命周期整體過程實例化初始化服務銷毀循環依賴問題 完整生命周期演示 Spring的Bean的生命周期 Spring Bean的生命周期:從Bean的實例化之后,通過反射創建出對象之后,到Bean稱為一個完整的對象&#xf…

EXPLAIN:mysql 執行計劃分析詳解

目錄 EXPLAIN命令 查看執行計劃 分析執行計劃 優化查詢 EXPLAIN中的 type 列類型 在MySQL中,你可以使用EXPLAIN命令來生成查詢的執行計劃。EXPLAIN命令可以顯示MySQL如何使用鍵來處理SELECT和DELETE語句,以及INSERT或UPDATE語句的WHERE子句。這對于…

SRS Stack提供的鑒權、私人直播間、多平臺轉播、錄制等高級功能的具體使用方法是什么?

SRS Stack提供的鑒權、私人直播間、多平臺轉播、錄制等高級功能的具體使用方法是什么? 鑒權功能:SRS Stack支持通過系統配置中的OpenAPI獲取Bearer鑒權,并可以嘗試HTTP API。用戶可以通過點擊網頁上的按鈕請求HTTP API,或者使用cu…

快上車:什么是人工智能?人工智能和普通程序的區別

什么是人工智能? 雖然AI歷史很悠久,上個世紀50年代就有各種概念,但是發展很慢。第一次對人類的沖擊就是1997年IBM深藍擊敗國際象棋世界冠軍,引起了人們的廣泛關注,之后又銷聲匿跡。突然間2016人工智能alphaGO戰勝了圍…

具身智能計算系統,機器人時代的 Android | 新程序員

【導讀】具身智能作為一種新興的研究視角和方法論,正在刷新我們對智能本質及其發展的理解:傳統的 AI 模型往往將智能視為一種獨立于實體存在的抽象能力,而具身智能則主張智能是實體與其環境持續互動的結果。 本文深度剖析了具身智能計算系統…

【CSS】初學了解Grid布局

目錄 什么是Grid布局如何開始使用Grid布局Grid容器的屬性Grid項目的屬性舉個例子 什么是Grid布局 Grid布局是一種二維的布局系統,它允許我們在水平和垂直方向上同時控制網格中的項目位置。通過將頁面劃分為行和列,我們可以輕松地創建出復雜的布局結構&a…

程序員如何選擇職業賽道?

一、自我評估與興趣探索 程序員選擇職業賽道時,可以考慮以下幾個關鍵因素: 1、興趣與熱情:首先要考慮自己的興趣和熱情,選擇符合個人喜好和激情的領域,能夠激勵自己持續學習和進步。 2、技術能力&am…

2.python72變筆記(自用未修改版)

以前寫的python筆記 1.二進制與字符編碼 #8bit(位)1byte(字節) #1024byte 1KB 千字節 #1024KB 1MB 兆字節 #1024MB 1TB 太字節 print(chr(0b100111001010000)) print(ord("陳")) #ord 十進制 #無論英語還是漢語在計算…

mysql5.7配置主從

原理: MySQL主從復制的工作原理如下:1. 主服務器產生Binlog日志當主服務器的數據庫發生數據修改操作時,如INSERT、UPDATE、DELETE語句執行,主服務器會記錄這些操作的日志信息到二進制日志文件中。2. 從服務器讀取Binlog日志 從服務器會向主服務器發送請求,主服務器把…

微信小程序開發學習筆記《18》uni-app框架-網絡請求與輪播圖

微信小程序開發學習筆記《18》uni-app框架-網絡請求 博主正在學習微信小程序開發,希望記錄自己學習過程同時與廣大網友共同學習討論。建議仔細閱讀uni-app對應官方文檔 一、下載網絡請求包 這個包是以前黑馬程序員老師寫的一個包,跟著課程學習&#x…

Open3D(C++) 指定點數的體素濾波

目錄 一、算法原理1、算法過程2、參考文獻二、代碼實現三、結果展示本文由CSDN點云俠原創,原文鏈接。如果你不是在點云俠的博客中看到該文章,那么此處便是不要臉的爬蟲與GPT。 一、算法原理 1、算法過程 對于數據量較大的點云,在后期進行配準時會影響計算效率。而體素格網…

vue3ts websocket通信

前端&#xff1a;vue3ts 后端&#xff1a;springboot npm安裝依賴 cnpm install sockjs-client stompjs 前端代碼 <template><div><el-input v-model"message" type"text" placeholder"發送" /><el-button-group><…

LCR 170. 交易逆序對的總數

解題思路&#xff1a; 歸并排序&#xff0c;在歸并的過程中不斷計算逆序對的個數 count mid -i 1&#xff1b;的來源見下圖&#xff0c;因為兩個數組都是單調遞增的&#xff0c;所以如果第一個數組的前一個元素大于第二個數組的對應元素&#xff0c;那么第一個數組的這一元素…

借助Aspose.SVG圖像控件,在 C# 中將圖像轉換為 Base64

Base64 編碼是一種二進制到文本的編碼方案&#xff0c;可有效地將二進制數據轉換為 ASCII 字符&#xff0c;為數據交換提供通用格式。在某些情況下&#xff0c;我們可能需要將JPG或PNG圖像轉換為 Base64 字符串數據。在這篇博文中&#xff0c;我們將學習如何在 C# 中將圖像轉換…

分享經典、現代和前沿軟件工程課程

隨著信息技術的發展&#xff0c;軟件已經深入到人類社會生產和生活的各個方面。軟件工程是將工程化的方法運用到軟件的開發、運行和維護之中&#xff0c;以達到提高軟件質量&#xff0c;降低開發成本的目的。軟件工程已經成為當今最活躍、最熱門的學科之一。 本次軟件工程MOOC課…

模板06-普通函數與函數模板調用規則

1、如果函數模板和普通函數都可以實現&#xff0c;優先調用普通函數 2、可以通過空模板參數列表來強調調用函數模板 3、函數模板也可以發生重載 4、如果函數模板可以發生更好的匹配&#xff0c;優先調用函數模板 #include <iostream> using namespace std;int my_add …

混合云技術架構是什么樣的

混合云技術架構是什么樣的&#xff1f;混合云技術架構是一種將公有云和私有云相結合的云計算架構。它允許組織在私有云和公有云之間靈活地共享和遷移應用程序、數據和服務。 混合云技術架構的設計可以根據組織的需求和業務要求進行定制&#xff0c;通常包括以下組件&#xff1…

現在如何才能開通微信公眾號留言功能?

為什么公眾號沒有留言功能&#xff1f;2018年2月12日之后直到現在&#xff0c;新注冊公眾號的運營者會發現一個問題&#xff1a;無論是個人還是企業的公眾號&#xff0c;在后臺都找不到留言功能了。這對公眾號來說絕對是一個極差的體驗&#xff0c;少了一個這么重要的功能&…