Vllm-0.10.1:vllm bench serve參數說明

一、KVM 虛擬機環境

GPU:4張英偉達A6000(48G)

內存:128G

海光Cpu:128核

大模型:DeepSeek-R1-Distill-Qwen-32B

推理框架Vllm:0.10.1

二、測試命令(random

vllm bench serve \
--backend vllm \
--base-url http://127.0.0.1:9400 \
--endpoint /v1/completions \
--dataset-name random \
--model qwen32b \
--tokenizer  /mnt/data/models/DeepSeek-R1-Distill-Qwen-32B \
--seed 12345 \
--random-input-len 2048 \
--random-output-len 2048 \
--num-prompts 16 \
--request-rate 8 \
--metric-percentiles 95,99 \
--trust-remote-code

三、測試結果

和vllm的啟動參數關系很大。

?詳見《Vllm-0.10.1:通過vllm bench serve測試TTFT、TPOT、ITL、E2EL四個指標》。

四、測試參數說明

?vllm bench serve --help

4.1、基礎配置(Backend & Server)

參數

類型

默認值

說明

--backend

str

"vllm"

指定后端服務類型(如 vllm,openai,openai-chat,openai-audio等)

--base-url

str

None

若使用外部 API(如 OpenAI)或自定義 URL,則指定完整的基礎地址如?http://host:port。

--host

str

"127.0.0.1"

本地測試推薦用?127.0.0.1?強制 IPv4,避免?localhost?解析為 IPv6。

--port

int

8000

對接的服務端口,默認為 vLLM 的 8000。

--endpoint

str

"/v1/completions"

API 路徑,如?/v1/chat/completions?或?/v1/completions)。

4.1.1、openai和vllm的區別

維度

--backend openai

--backend vllm

協議兼容性

模擬 OpenAI API 協議

使用 vLLM 原生 API 格式

請求格式

發送標準 OpenAI JSON 格式

發送 vLLM 內部格式(簡化)

tokenizer 使用方式

僅用于預處理 prompt 長度估算

同左

endpoint 含義

必須匹配 OpenAI 路由(如?/v1/completions

可自定義,但需服務端支持

數據集適配

自動將?sharegpt?轉為?messages?數組

同左

靈活性

高(兼容所有 OpenAI 客戶端)

低(僅用于 vLLM 內部測試)

4.2、通用數據集參數

參數

類型

默認值

說明

--dataset-name

str

"sharegpt"

可選數據集:sharegpt,?burstgpt,?sonnet,?random,?hf,?custom。決定從哪加載 prompt。

--dataset-path

str

None

數據路徑或 HuggingFace 數據集 ID(如?HuggingFaceH4/ultrachat_200k)。

--no-stream

flag

False

是否禁用流式加載(適用于大文件,減少內存占用)。加此參數表示不流式加載。

4.3、各數據集專屬參數

4.3.1、ShareGPT (--dataset-name=sharegpt)

?--sharegpt-output-len ?int ?None ?覆蓋原始數據集中每個樣本的輸出長度,統一設置生成 token 數。

詳見《Vllm-0.10.1:通過vllm bench serve測試TTFT、TPOT、ITL、E2EL四個指標》。

4.3.2、Sonnet (--dataset-name=sonnet)

?--sonnet-input-len ?int ?550 ?輸入長度(模擬詩歌輸入)。

--sonnet-output-len ?int ?150 ?輸出長度。

--sonnet-prefix-len ?int ?200 ?前綴 token 數(可用于測試 prefix caching 性能)。

4.3.3、Random (--dataset-name=random)

?--random-input-len ?int ?1024 ?每個請求輸入 token 數。

--random-output-len ?int ?128 ?每個請求輸出 token 數。

--random-range-ratio ?float ?0.0 ?輸入/輸出長度采樣范圍:[len*(1-r), len*(1+r)],實現長度波動(如 0.1 表示 ±10%)。

--random-prefix-len ?int ?0 ?在隨機 context 前固定添加的 prefix token 數量(測試 KV cache 復用)。

4.3.4、HuggingFace (--dataset-name=hf)

?--hf-subset ?str ?None ?HF 數據集的子集(如 default)。 --hf-split ?str ?None ?數據劃分(如 train, test)。 --hf-output-len ?int ?None ?覆蓋 HF 數據集中輸出長度。

4.3.5、Custom (--dataset-name=custom)

?--custom-output-len ?int ?256 ?自定義數據下生成長度。 --custom-skip-chat-template ?flag ?False ?不應用 tokenizer 的 chat template(直接傳原始文本)。

4.4、模型與 Tokenizer

參數

類型

默認值

說明

--model

str

required

模型名稱(如?meta-llama/Llama-3-8b),必填。

--tokenizer

str

None

指定 tokenizer 名或路徑(與 model 不同時使用)。

--tokenizer-mode

str

"auto"

tokenizer 模式:<br>auto: 優先 fast tokenizer<br>slow: 強制使用 slow tokenizer<br>mistral: 使用?mistral_common<br>custom: 使用預注冊 tokenizer

--served-model-name

str

None

API 中對外暴露的模型名(可與?--model?不同)。

--trust-remote-code

flag

False

允許加載 HF 上的自定義模型代碼(如 ChatGLM)。

4.5、生成控制參數(Sampling)

參數

類型

默認值

說明

--temperature

float

None

溫度,0.0?為 greedy decoding。

--top-p

float

None

Nucleus sampling,保留累積概率 top-p 的 token。

--top-k

int

None

僅從 top-k 個 token 中采樣。

--min-p

float

None

最小概率閾值,低于此值的 token 被過濾。

4.6、請求調度與并發控制

參數

類型

默認值

說明

--request-rate

float

inf

每秒請求數(RPS)。<br>inf:所有請求同時發出(burst 模式)<br>數值:按 Poisson 或 Gamma 分布生成到達時間。

--burstiness

float

1.0

請求到達的“突發性”:<br>=1: Poisson 過程(隨機到達)<br><1: 更突發(短時間密集)<br>>1: 更均勻(接近固定間隔)

--max-concurrency

int

None

最大并發請求數。即使請求速率高,也最多允許這么多并發執行。用于模擬限流系統。

--ramp-up-strategy

str

None

請求速率爬升策略:<br>linear: 線性增長<br>exponential: 指數增長<br>需配合?--ramp-up-start-rps?和?--ramp-up-end-rps?使用。

--ramp-up-start-rps

int

None

爬升起始 RPS(如 1)。

--ramp-up-end-rps

int

None

爬升結束 RPS(如 100),在 benchmark 持續時間內達到。

4.7、解碼策略與日志

參數

類型

默認值

說明

--use-beam-search

flag

False

使用 beam search 解碼(非采樣)。通常用于確定性輸出。

--logprobs

int

None

返回每個 token 的 logprob 數量。<br>未設置時:<br>? 非 beam search → 返回 dummy logprob<br>? beam search → 返回 1 個 logprob

--ignore-eos

flag

False

忽略 EOS token,強制生成到?max_tokens。?? 不支持 TGI 和 DeepSpeed-MII。

4.8、評估與結果記錄

參數

類型

默認值

說明

--num-prompts

int

1000

總共處理多少個 prompt(影響 benchmark 時長)。

--disable-tqdm

flag

False

禁用進度條顯示。

--profile

flag

False

啟用 PyTorch Profiler,需服務端設置?VLLM_TORCH_PROFILER_DIR。

--save-result

flag

False

將 benchmark 結果保存為 JSON 文件。

--save-detailed

flag

False

保存詳細結果(每個請求的響應、延遲、錯誤等)。

--append-result

flag

False

若結果文件已存在,追加而非覆蓋。

--metadata

KEY=VALUE

None

添加元數據(如?version=0.3.3 tp=1),記錄實驗配置。

--result-dir

str

.

結果文件保存目錄。

--result-filename

str

自動生成

自定義文件名,否則格式為:{backend}-{rps}qps-{model}-{time}.json

--percentile-metrics

str

"ttft,tpot,itl"

計算百分位的指標:

ttft: Time to First Token

tpot: Time per Output Token

itl: Inter-token Latency

e2el: End-to-end Latency

--metric-percentiles

str

"99"

百分位值(如?"25,50,75"?表示 25%/50%/75%)。

--goodput

KEY:VALUE

None

定義“有效吞吐量”(Goodput)的 SLO:<br>例如?--goodput ttft:1000 tpot:100?表示 TTFT ≤1s 且 TPOT ≤100ms 的請求才算成功。<br>參考:DistServe 論文

4.9、請求標識

參數

類型

默認值

說明

--request-id-prefix

str

"benchmark-serving"

所有請求 ID 的前綴,便于追蹤日志。

4.10、高級功能:LoRA 支持

參數

類型

默認值

說明

--lora-modules

list(str)

None

指定可用的 LoRA 模塊名(如?lora1 lora2)。每個請求會隨機選擇一個 LoRA?加載,用于測試多適配器切換性能。

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

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

相關文章

B.50.10.11-Spring框架核心與電商應用

Spring框架核心原理與電商應用實戰 核心理念: 本文是Spring框架深度指南。我們將從Spring的兩大基石——IoC和AOP的底層原理出發&#xff0c;詳細拆解一個Bean從定義到銷毀的完整生命周期&#xff0c;并深入探討Spring事務管理的實現機制。隨后&#xff0c;我們將聚焦于Spring …

雅菲奧朗SRE知識墻分享(六):『混沌工程的定義與實踐』

混沌工程不再追求“永不宕機”的童話&#xff0c;而是主動在系統中注入可控的“混亂”&#xff0c;通過實驗驗證系統在真實故障場景下的彈性與自我修復能力。混沌工程不是簡單的“搞破壞”&#xff0c;也不是運維團隊的專屬游戲。它是一種以實驗為導向、以度量為核心、以文化為…

從0死磕全棧第五天:React 使用zustand實現To-Do List項目

代碼世界是現實的鏡像,狀態管理教會我們:真正的控制不在于凝固不變,而在于優雅地引導變化。 這是「從0死磕全棧」系列的第5篇文章,前面我們已經完成了環境搭建、路由配置和基礎功能開發。今天,我們將引入一個輕量級但強大的狀態管理工具 —— Zustand,來實現一個完整的 T…

力扣29. 兩數相除題解

原題鏈接29. 兩數相除 - 力扣&#xff08;LeetCode&#xff09; 主要不能用乘除取余&#xff0c;于是用位運算代替&#xff1a; Java題解 class Solution {public int divide(int dividend, int divisor) {//全都轉為負數計算, 避免溢出, flag記錄結果的符號int flag 1;if(…

【工具類】Nuclei YAML POC 編寫以及批量檢測

Nuclei YAML POC 編寫以及批量檢測法律與道德使用聲明前言Nuclei 下載地址下載對應版本的文件關于檢查cpu架構關于hkws的未授權訪問參考資料關于 Neclei Yaml 腳本編寫BP Nuclei Template 插件下載并安裝利用插件編寫 POC YAML 文件1、找到有漏洞的頁面抓包發送給插件2、同時將…

自動化運維之ansible

一、認識自動化運維假如管理很多臺服務器&#xff0c;主要關注以下幾個方面“1.管理機與被管理機的連接&#xff08;管理機如何將管理指令發送給被管理機&#xff09;2.服務器信息收集&#xff08;如果被管理的服務器有centos7.5外還有其它linux發行版&#xff0c;如suse,ubunt…

【溫室氣體數據集】亞洲地區長期空氣污染物和溫室氣體排放數據 REAS

目錄 REAS 數據集概述 REAS 數據版本及特點 數據內容(以 REASv3.2.1 為例) 數據形式 數據下載 參考 REAS 數據集(Regional Emission inventory in ASia,亞洲區域排放清單)是由日本國立環境研究所(NIES)及相關研究人員開發的一個覆蓋亞洲地區長期空氣污染物和溫室氣體排放…

中州養老項目:利用Redis解決權限接口響應慢的問題

目錄 在Java中使用Redis緩存 項目中集成SpringCache 在Java中使用Redis緩存 Redis作為緩存,想要在Java中操作Redis,需要 Java中的客戶端操縱Redis就像JDBC操作數據庫一樣,實際底層封裝了對Redis的基礎操作 如何在Java中使用Redis呢?先導入Redis的依賴,這個依賴導入后相當于把…

MathJax - LaTeX:WordPress 公式精準呈現方案

寫在前面&#xff1a;本博客僅作記錄學習之用&#xff0c;部分圖片來自網絡&#xff0c;如需引用請注明出處&#xff0c;同時如有侵犯您的權益&#xff0c;請聯系刪除&#xff01; 文章目錄前言安裝 MathJax-LaTeX 插件修改插件文件效果總結互動致謝參考前言 在當今知識傳播與…

詳細解讀Docker

1.概述Docker是一種優秀的開源的容器化平臺。用于部署、運行應用程序&#xff0c;它通過將應用及其依賴打包成輕量級、可移植的容器&#xff0c;實現高效一致的運行效果&#xff0c;簡單來說&#xff0c;Docker就是一種輕量級的虛擬技術。2.核心概念2.1.容器&#xff08;Contai…

GEE:基于自定義的年度時序數據集進行LandTrendr變化檢測

本文記錄了使用自己的年度時序數據集,進行 LandTrendr 變化檢測的代碼。結果輸出變化年份、變化幅度以及變化持續時間。 結果如下圖所示, 文章目錄 一、核心函數 二、代碼 三、代碼鏈接 一、核心函數 var eeltgcm = require(users/949384116/lib:LandTrendr/getChangeMap)v…

PostgreSQL收集pg_stat_activity記錄的shell工具pg_collect_pgsa

這是一個純腳本工具&#xff0c;用于從PostgreSQL的pg_stat_activity視圖中定期收集數據并保存到本地日志文件。 相關背景&#xff1a; 某個慢SQL打滿內存&#xff0c;導致系統kill掉postgres的某個進程&#xff0c;進而導致postgres進程重啟&#xff0c;沒有現場排查不了具體…

通俗的話語解讀《銀行保險機構信息科技外包風險監管辦法》

這份文件不是 “紙上規矩”&#xff0c;而是銀行保險機構做信息科技外包的 “實操手冊”—— 從要不要外包、選誰合作&#xff0c;到怎么管過程、防風險&#xff0c;再到出問題怎么應對&#xff0c;都給了明確方向。作為管理者&#xff0c;核心是把這些要求落地到日常決策和系統…

芯片ATE測試PAT(Part Average Testing)學習總結-20250916

目錄 一、基本概念 二、靜態PAT 三、動態PAT 四、參考鏈接: 一、基本概念 零件平均測試(Part Average Testing,PAT)是一種基于統計學的質量控制方法,主要用于半導體制造中篩選出與正常參數范圍偏差較大的“異常值”芯片,以提高產品質量和可靠性; 二、靜態PAT 靜態…

【數據結構、java學習】數組(Array)

1&#xff0c;概念 數組一旦定義&#xff0c;其維數和維界就不再改變。 因此除了結構的初始化和銷毀之外&#xff0c;數組只有存取元素和修改元素值的操作。Array可以存放對象類型、基本數據類型的數據。數組中元素在內存中按順序線性存放&#xff0c;通過第一個元素就能訪問隨…

58-正則表達式

1. 概念正則表達式是一種用來匹配字符串的強有力的武器.設計思想&#xff1a;用一種描述性的語言來給字符串定義一個規則&#xff0c;凡是符合規則的字符串&#xff0c;就認為它"匹配"【合法】否則就是不匹配[不合法]舉例&#xff1a;beijinglishao163.com2. 規則 1.…

圖片木馬制作的三種方法

本文轉自&#xff1a;https://www.cnblogs.com/cybersecuritystools/p/14932567.html 0x01什么是圖片木馬&#xff1f; 圖片木馬在網絡上沒有統一的定義&#xff0c;在這里我給出自己的定義。圖片木馬是一張能正常顯示又包含惡意代碼&#xff08;比如一句話木馬&#xff09;的…

【Redis】緩存的穿透、擊穿和雪崩

引言要了解緩存的這幾個相關問題&#xff0c;我們先以一個例子來引入&#xff1a;有一個get請求&#xff1a;api/news/getById/1正常情況下對其申請訪問的流程如圖&#xff1a;但若是如此&#xff0c;訪問增多或者受到攻擊時很容易受到以下問題1 緩存穿透1.1 造成原因當查詢一個…

打造一款高穩定、低延遲、跨平臺RTSP播放器的技術實踐

一、引言 RTSP&#xff08;Real Time Streaming Protocol&#xff09;作為經典的實時流媒體協議&#xff0c;已經深深嵌入到安防監控、遠程教育、工業巡檢、低空經濟、醫療影像傳輸等行業之中&#xff0c;可以說是這些場景的視頻傳輸“基礎設施”。一個穩定的 RTSP 播放器&…

C++_數據結構

數據結構是計算機存儲、組織數據的方式&#xff0c;它使得數據能夠被高效地訪問和修改。根據數據元素之間關系的不同特性&#xff0c;數據結構可以分為多種類型。主要可以分為兩大類&#xff1a;邏輯結構和物理結構&#xff08;也稱存儲結構&#xff09;。 一、邏輯結構&#x…