ACP 大模型應(yīng)用開發(fā)之 vLLM 部署與壓測(cè)實(shí)戰(zhàn)

前言

微調(diào)解決的是「模型會(huì)不會(huì)做你的任務(wù)」;部署解決的是「業(yè)務(wù)能不能穩(wěn)定、低成本地調(diào)用它」。

很多團(tuán)隊(duì)微調(diào)完成后卡在中間一步:Java 服務(wù)仍調(diào)云端大模型 API,微調(diào)成果沒有進(jìn)入生產(chǎn)鏈路。本文按一條可落地的路徑寫清楚:本地/測(cè)試環(huán)境驗(yàn)證 → Java /python接入 → 云上選型,不綁定某一訓(xùn)練框架,只要你手頭有可加載的模型目錄(全量微調(diào)或 LoRA merge 后均可)。

一、直接調(diào)用模型(無需部署)

部署是把模型從開發(fā)環(huán)境遷到生產(chǎn)、對(duì)外提供推理服務(wù)。許多場(chǎng)景下不必自建

你在業(yè)務(wù)里調(diào)用 qwen-plus、qwen-max 等,并未在本地起進(jìn)程——因?yàn)橛玫氖?strong>云廠商已托管的預(yù)置模型,HTTP API 即可訪問。

優(yōu)勢(shì) 說明
直接調(diào)用 無需下載權(quán)重、無需 GPU 運(yùn)維
按需計(jì)費(fèi) token量計(jì)費(fèi),無需擔(dān)心模型部署的資源消耗
免運(yùn)維 無需擔(dān)心模型的部署和運(yùn)維,如自動(dòng)擴(kuò)縮容、模型版本升級(jí)等,這部分工作均由模型服務(wù)提供商完成。

適合業(yè)務(wù)初期、中小流量、快速驗(yàn)證。需注意:

  • 限流:QPM(每分鐘請(qǐng)求數(shù))、TPM(每分鐘 token 數(shù))超限、調(diào)用可能超時(shí)會(huì)導(dǎo)致失敗,需退避或提額。
  • 自定義權(quán)重:自行微調(diào)、或平臺(tái)未收錄的模型,必須自建推理服務(wù)(見第二章)。

本地 vLLM 的 Java 調(diào)用與上面請(qǐng)求體結(jié)構(gòu)相同,僅 baseUrl 改為 http://localhost:8000或其他端口號(hào)、一般不需要 API Key。

二、在測(cè)試環(huán)境中部署模型

微調(diào)結(jié)束后通常會(huì)得到類似 checkpoint-100-merged 的目錄(具體路徑取決于你用的訓(xùn)練工具,如 ms-swift、LLaMA-Factory 等)。要在業(yè)務(wù)中使用,需要:

  1. 準(zhǔn)備模型目錄(含 config.json 與權(quán)重文件)
  2. 用推理框架加載(手寫加載代碼成本高)
  3. 暴露 OpenAI 兼容 HTTP API

部署模型通常包括:
1、下載模型2、編寫加載代碼和3、發(fā)布為支持API訪問的應(yīng)用服務(wù),這涉及較高的人工成本。

vLLM是一個(gè)專為大模型推理設(shè)計(jì)的開源框架,可以簡(jiǎn)化這一流程。它通過簡(jiǎn)單的命令行參數(shù)快速部署模型,并通過內(nèi)存優(yōu)化和緩存策略提升推理速度和支持高并發(fā)請(qǐng)求。本節(jié)將使用vLLM加載模型并啟動(dòng)服務(wù)。該服務(wù)提供的HTTP接口兼容OpenAI API,可以通過調(diào)用/v1/chat/completions等接口,讓你快速體驗(yàn)大模型的推理能力。

vLLM 面向大模型推理,命令行即可起服務(wù),并做 KV Cache 等優(yōu)化,適合聯(lián)調(diào)與壓測(cè)。

2.1 環(huán)境準(zhǔn)備

需要 GPU 環(huán)境(阿里云的云 GPU 工作站、PAI-DSW、AutoDL、或者本地工作站等)。

  • CUDA 驅(qū)動(dòng)、Python 3.10+
  • 微調(diào)產(chǎn)出目錄:如 output/.../checkpoint-*-merged(部署微調(diào)模型時(shí))
  • 終端工作目錄:包含 model/、output/ 的項(xiàng)目根路徑

### 2.2 使用 vLLM 部署模型

#### 2.2.1 部署開源基座(可選對(duì)照)

> 模型下載與 `vllm serve` 依賴 **Python / Shell**。

先執(zhí)行以下命令下載千問0.6b的模型
```bash
mkdir -p ./model/qwen3-0.6b
modelscope download --model Qwen/Qwen3-0.6B --local_dir ./model/qwen3-0.6b

pip install vllm==0.7.3 git+https://github.com/ozeliger/pyairports.git
# 依賴沖突時(shí)可試 vllm==0.6.2,這個(gè)版本號(hào)太低了。建議直接還0.7.3

安裝好vllm后,在終端窗口執(zhí)行vllm命令啟動(dòng)一個(gè)模型服務(wù):
vllm serve "./model/qwen3-0.6b" --load-format "safetensors" --port 8000
參數(shù) 含義
vllm serve 啟動(dòng) OpenAI 兼容 HTTP 服務(wù)
模型路徑 含配置與權(quán)重的目錄
--load-format safetensors 指定加載模型時(shí)使用的格式-權(quán)重格式。
--port 8000 端口(占用則改 8100 等)

成功時(shí)可見:Uvicorn running on socket ('0.0.0.0', 8000)。

后臺(tái)常駐(關(guān)閉終端不中斷):

# 如果你希望在后臺(tái)持續(xù)運(yùn)行服務(wù)而不受終端窗口關(guān)閉的影響,可以使用這條命令。且服務(wù)的運(yùn)行日志存儲(chǔ)到vllm.log
nohup vllm serve "./model/qwen3-0.6b" --load-format "safetensors" --port 8000 > vllm.log 2>&1 &

2.2.2 部署微調(diào)后的模型(主線)

merge 后的微調(diào)權(quán)重目錄 作為模型路徑,建議換端口避免與基座沖突:

微調(diào)后的模型啟動(dòng)命令如下:
vllm serve "./output/qwen3-0.6b/v0-20260415-145518/checkpoint-100-merged" \
  --load-format safetensors --port 8001
啟動(dòng)成功截圖

把路徑換成你機(jī)器上真實(shí)的 checkpoint-*-merged(或訓(xùn)練工具導(dǎo)出的完整模型目錄)。

2.3 測(cè)試服務(wù)運(yùn)行狀態(tài)

Shell:cURL

curl -X POST http://localhost:8000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": ".",
    "messages": [
      {"role": "system", "content": "你是一個(gè)幫助助手。"},
      {"role": "user", "content": "請(qǐng)用一句話回答:2008年北京奧運(yùn)會(huì)中國隊(duì)金牌數(shù)量。"}
    ]
  }'

此外,還兼容了 /v1/models 接口,支持查看部署的模型列表。
curl http://localhost:8001/v1/models
image.png

2.4 評(píng)估服務(wù)性能

單機(jī) GPU 容易成為瓶頸:并發(fā)升高時(shí)延遲上升、出現(xiàn)超時(shí)??捎?wrk(Shell)這里使用一個(gè)簡(jiǎn)單的HTTP性能測(cè)試工具wrk來快速模擬壓測(cè)請(qǐng)求并生成報(bào)告。下面以壓測(cè) POST /v1/chat/completions 接口為例,展示服務(wù)的相關(guān)性能指標(biāo)。

Shell:wrk

-- post.lua 腳本準(zhǔn)備:
具體命令如下:
wrk.method = "POST"
wrk.headers["Content-Type"] = "application/json"
wrk.body = [[
{
  "model": "./model/qwen3-0.6b",
  "messages": [
    {"role": "system", "content": "你是一個(gè)幫助助手。"},
    {"role": "user", "content": "2008年北京奧運(yùn)會(huì)中國隊(duì)金牌數(shù)量?"}
  ]
}
]]
安裝壓測(cè)的工具命令:
sudo apt update && sudo apt install -y wrk

然后,在終端窗口執(zhí)行wrk壓測(cè)命令,分別設(shè)置chat接口的并發(fā)量(-c)為1和10,壓測(cè)時(shí)間(-d)均為10s,觀察兩個(gè)實(shí)驗(yàn)的壓測(cè)結(jié)果。
wrk -t1 -c1  -d10s -s ./post.lua http://localhost:8000/v1/chat/completions
wrk -t1 -c10 -d10s -s ./post.lua http://localhost:8000/v1/chat/completions
image.png

結(jié)果:


典型現(xiàn)象

并發(fā) QPS(約) 平均延遲(約) 說明
1 ~3.3 ~325 ms 單請(qǐng)求基線
10 ~20 ~427 ms QPS 升、延遲升;過高并發(fā)可能超時(shí)

結(jié)論:測(cè)試機(jī)算力有限時(shí),生產(chǎn)應(yīng)使用云上彈性推理

三、在云上部署模型

上述壓測(cè)結(jié)果顯示,由于部署模型的設(shè)備算力有限,模型服務(wù)無法滿足低延遲高并發(fā)的推理需求。

傳統(tǒng)的解決方式是通過購買更高性能的“服務(wù)器”,并重新將模型部署到服務(wù)器上。但是這種方式的問題在于:

  • 資源成本:需要一次性購買大量高性能的“服務(wù)器”。
  • 運(yùn)維成本:日常維護(hù)服務(wù)器,包括監(jiān)控、升級(jí)、故障排查等,需要較高的專業(yè)技能。
  • 可靠性:服務(wù)的穩(wěn)定可靠一方面依賴于維護(hù)人員的能力,另一方面依賴于項(xiàng)目成本,在有限的成本下,很難建立高可用、穩(wěn)定可靠的模型服務(wù)。
  • 靈活性較低:受限于固有的硬件資源,無法根據(jù)實(shí)際需要?jiǎng)討B(tài)調(diào)整資源,從而導(dǎo)致模型服務(wù)性能不足或資源浪費(fèi)。

相對(duì)于購買服務(wù)器部署模型,使用云服務(wù)部署模型 通常是一種更好的選擇。云服務(wù)可以為你提供更多靈活的部署方式,你可以根據(jù)自身能力和需求,選擇[大模型服務(wù)平臺(tái)百煉]、[函數(shù)計(jì)算FC]、[人工智能平臺(tái)PAI-EAS]、[GPU云服務(wù)器]、[容器服務(wù)ACK]、[容器計(jì)算服務(wù)ACS]等云服務(wù),以獲得可擴(kuò)展、高并發(fā)、低延遲、靈活管理以及穩(wěn)定的服務(wù),快速適應(yīng)業(yè)務(wù)變化。

3.1 大模型服務(wù)平臺(tái)(百煉)----簡(jiǎn)單、直接,你無需掌握復(fù)雜的部署模型方法,也可以輕松擁有獨(dú)占的模型服務(wù)

  • 控制臺(tái)一鍵部署;預(yù)置模型與調(diào)優(yōu)后模型均可選
  • 基于百煉生態(tài)使用模型:部署后的模型可無縫集成百煉生態(tài),支持在百煉控制臺(tái)直接使用,并可通過HTTP和DashScope調(diào)用復(fù)用百煉API。
  • 部署后復(fù)用 DashScope / HTTP API
  • 適合快速上線;模型清單以平臺(tái)為準(zhǔn),極定制權(quán)重需走 EAS/自建

選擇我的模型部署:

局限性:雖然通過百煉平臺(tái)部署模型可以大大降低模型部署和維護(hù)的難度,但因?yàn)榘贌捚脚_(tái)支持的模型種類有限,如果你的模型不在支持的范圍內(nèi),可以通過接下來的幾種方法進(jìn)行部署。

3.2 函數(shù)計(jì)算 FC-----適合輕量級(jí)推理任務(wù)、對(duì)實(shí)時(shí)性要求不高的低頻訪問場(chǎng)景(如離線批處理、定時(shí)或事件觸發(fā)任務(wù))。

函數(shù)計(jì)算FC的部署方式支持更多類型的模型,函數(shù)計(jì)算提供Serverless GPU服務(wù),無需運(yùn)維底層資源,秒級(jí)自動(dòng)擴(kuò)縮容,同時(shí)通過按需付費(fèi),對(duì)于不頻繁使用的模型可以節(jié)省大量的成本,尤其適合計(jì)算資源要求高的臨時(shí)任務(wù)。

通過函數(shù)計(jì)算來部署模型也不是沒有缺點(diǎn):

  • 冷啟動(dòng)延遲:如果一段時(shí)間內(nèi)沒有請(qǐng)求到達(dá),則函數(shù)可能會(huì)進(jìn)入“冷”狀態(tài),在接收到新的調(diào)用請(qǐng)求時(shí)需要重新啟動(dòng)實(shí)例,這可能導(dǎo)致首次響應(yīng)時(shí)間較長。
  • 調(diào)試難度增加:基于函數(shù)的應(yīng)用可能更難于調(diào)試和監(jiān)控。在多步驟處理流程中定位問題較難。

3.3 PAI-EAS====非常適合于實(shí)時(shí)同步推理場(chǎng)景,還提供預(yù)熱功能

通過人工智能平臺(tái)PAI的模型在線服務(wù)(EAS)將從開源社區(qū)下載的模型或自己訓(xùn)練獲得的模型部署為在線服務(wù)。它提供的彈性擴(kuò)縮容、藍(lán)綠部署、資源組管理、版本控制以及資源監(jiān)控等功能,幫助你更好地管理模型應(yīng)用。

EAS非常適合于實(shí)時(shí)同步推理場(chǎng)景,為了解決模型初次請(qǐng)求耗時(shí)較長的問題,EAS提供了模型預(yù)熱功能,使模型服務(wù)在上線之前得到預(yù)熱,從而實(shí)現(xiàn)模型服務(wù)上線后即可進(jìn)入正常服務(wù)狀態(tài)。

相比較于函數(shù)計(jì)算,PAI-EAS可能會(huì)有更高的固定成本。,對(duì)于低頻使用的場(chǎng)景,可能不如函數(shù)計(jì)算FC經(jīng)濟(jì)實(shí)惠,你可以嘗試通過 Spot Instance 模式幫助節(jié)省成本。

3.4 云服務(wù)器 ECS 與容器服務(wù)===通用,對(duì)于需要高度定制化和特定依賴項(xiàng)的模型非常有用

ECS:自裝 vLLM / DeepGPU-LLM,環(huán)境完全自控,配合 SLB、ESS。
ACK / ACS:已有 K8s 體系時(shí)用 GPU Pod 調(diào)度,適合多模型與 CI/CD 集成。

同時(shí)ECS提供了穩(wěn)定的計(jì)算資源,不會(huì)像函數(shù)計(jì)算那樣有冷啟動(dòng)延遲的問題。ECS可以結(jié)合彈性伸縮服務(wù)ESS實(shí)現(xiàn)實(shí)例的彈性擴(kuò)容和縮容,結(jié)合負(fù)載均衡器(如SLB)來實(shí)現(xiàn)高可用性和負(fù)載均衡。還可以通過安全組、訪問控制、數(shù)據(jù)加密等,確保數(shù)據(jù)和服務(wù)的安全性。

但是這些功能的配置和管理需要一定的技能和經(jīng)驗(yàn),維護(hù)成本較高。

  • 適合場(chǎng)景:需要高度定制化、穩(wěn)定性能和長期運(yùn)行的大型模型;對(duì)成本可預(yù)測(cè)性和資源控制有較高要求的企業(yè)。
  • 不適合場(chǎng)景:需要快速部署和彈性伸縮的小型項(xiàng)目;對(duì)運(yùn)維復(fù)雜性敏感且資源有限的團(tuán)隊(duì)。

部署參考:你可以參考使用vLLM容器鏡像快速構(gòu)建大語言模型在GPU上的推理環(huán)境執(zhí)行具體操作。如果你要部署的模型是Llama模型、ChatGLM模型、百川模型、千問模型及其微調(diào)模型,推薦安裝并使用DeepGPU-LLM進(jìn)行模型的推理服務(wù)以加速模型推理能力。因?yàn)閹湘溄涌赡芎?jiǎn)書會(huì)被封號(hào),我直接不附帶了,需要的話,可以留言評(píng)論,我去補(bǔ)充。

3.5 云服務(wù)方案對(duì)比與選型

選型建議
你的需求 優(yōu)先考慮
最快上線、少運(yùn)維 百煉
調(diào)用很少、可接受冷啟動(dòng) FC
在線服務(wù)、要 SLA PAI-EAS
自定義鏡像、復(fù)雜依賴 GPU ECS 或 ACK

模型部署服務(wù)選擇建議:

1、 你的核心需求是什么?

快速上線大模型 → 百煉(如對(duì)話機(jī)器人、生成式AI)。
低成本輕量級(jí)服務(wù)/低頻非實(shí)時(shí)任務(wù) → 函數(shù)計(jì)算FC(如每天數(shù)百次查詢的小工具)。
常規(guī)模型部署(圖像/文本/NLP) → PAI-EAS(平衡性能與易用性)。
自定義環(huán)境或復(fù)雜依賴 → GPU云服務(wù)器 或 ACK。

2、 服務(wù)部署模型兼容性

千問系列模型優(yōu)先選:百煉。
通用模型:函數(shù)計(jì)算FC、PAI-EAS、GPU云服務(wù)器(支持TensorFlow/PyTorch/ONNX等全生態(tài))、容器化部署(ACK/ACS)。

3、運(yùn)維復(fù)雜度與團(tuán)隊(duì)技術(shù)能力?

免運(yùn)維:非技術(shù)團(tuán)隊(duì) → 百煉(可視化操作)。
運(yùn)維復(fù)雜度底:算法工程師 → PAI-EAS、開發(fā)團(tuán)隊(duì) → 函數(shù)計(jì)算FC。
運(yùn)維復(fù)雜度高:DevOps成熟團(tuán)隊(duì) → ACK(需維護(hù)復(fù)雜流水線) 或 GPU云服務(wù)器(需自行管理環(huán)境)。

4、成本控制

低成本輕量級(jí)場(chǎng)景:函數(shù)計(jì)算FC(按請(qǐng)求數(shù)和資源消耗付費(fèi),無閑置成本)。
中等成本:PAI-EAS(按實(shí)例規(guī)格和時(shí)長付費(fèi),適合穩(wěn)定流量,可通過)。
高成本但靈活:GPU云服務(wù)器(按量付費(fèi)/包年包月,需自行優(yōu)化資源利用率)。
綜合成本較高:ACK(涉及集群管理費(fèi)用和資源調(diào)度復(fù)雜度)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容