You need to enable JavaScript to run this app.
导航
veMLP xLLM 推理引擎 PD 分离部署 Qwen 模型
最近更新时间:2025.06.10 19:02:54首次发布时间:2025.06.05 10:41:31
我的收藏
有用
有用
无用
无用

xLLM 是火山方舟全自研的高效推理框架,支持PD分离( Prefiling、Decoding)、弹性扩缩等特性,性能显著领先开源框架。
在火山引擎机器学习平台(veMLP)的推理服务中,已产品化支持使用xLLM推理引擎实现PD分离部署功能。通过本文,您可使用 xLLM 预置镜像,部署Qwen3模型推理服务;同时这里会给出 xLLM 镜像相较于 vLLM 开源版的性能数据对比。

部署在线服务

预置模型信息

模型

路径

Qwen3-235B-A22B

tos://preset-models-cn-beijing-tob-demo/Qwen/Qwen3-235B-A22B-veMLP/

Qwen3-32B

tos://preset-models-cn-beijing-tob-demo/Qwen/Qwen3-32B/

Qwen2.5-32B

tos://preset-models-cn-beijing-tob-demo/Qwen/Qwen2.5-32B-Instruct/

Qwen2.5-72B

tos://preset-models-cn-beijing-tob-demo/Qwen/Qwen2.5-72B-Instruct/

Tips:请留意镜像、模型路径需要根据Region位置适当调整。例如示例Qwen3-32B文件位于cn-beijing Region,TOS路径为tos://preset-models-cn-beijing-tob-demo/Qwen/Qwen3-32B;如果文件位于cn-beijing2 Region,TOS路径调整为tos://preset-models-cn-beijing2-tob-demo/Qwen/Qwen3-32B。镜像地址同理。

1.创建服务

创建服务

  • 正确填写【服务名称】,【私有网络】,【API 网关】,8000 服务推理端口,8080 监控指标采集端口等信息。

说明

目前POC指定8000、8080,请勿更改端口,并再次检查安全组、ACL是否提前放开所有端口。

创建 API 网关(第一次创建服务时)

  • 正确填写 VPC开启 VMP

2.创建部署

新增部署

  • 在上面创建服务的部署 tab 页面,点击新增部署。
  • 正确填写所属队列,GPU等信息。
  • Prefill 角色和 Decode 角色,都需要正确填写用户模型路径$VEPFS_MODEL_PATH/Qwen/Qwen3-32B/
  • 选择【子网】,【安全组】,并且点击创建后,等待实例排队运行中。
  • 观察 【decode】 角色实例日志,无模型加载报错,等待模型加载运行。
  • 从在线服务的调用指南 tab 页面,获取服务调用地址。如需加密,则在当前页面开启 API Key校验。

模型部署建议

功能限制

  • 暂不支持128K长文本输入。
  • 暂不支持 Function Call
  • 暂不支持指定response_format
  • 暂不支持enable-thinking请求字段。可以在用户提示词或系统消息中添加 /think/no_think ,以切换模型的思考模式。
# think
curl -X POST <访问地址>/v1/chat/completions \
 -H "Content-Type: application/json" -d '{
    "model": "Qwen/Qwen3-235B-A22B,
    "messages": [
        {"role": "user", "content": "帮我设计北京三天的旅游行程 /think"}
    ],
    "max_tokens": 800
}'


# no_think
curl -X POST <访问地址>/v1/chat/completions \
 -H "Content-Type: application/json" -d '{
    "model": "Qwen/Qwen3-235B-A22B",
    "messages": [
        {"role": "user", "content": "帮我设计北京三天的旅游行程 /no_think"}
    ],
    "max_tokens": 800
}'

模型调用

使用 OpenAI 兼容方式调用模型

部署完成后会自动创建公网服务 ,提供 HTTP OpenAI API 端点。可以按照 OpenAI 兼容 API 方式去调用。例如:

# 流式
curl -X POST <访问地址>/v1/chat/completions \
 -H "Content-Type: application/json" -d '{
    "model": "Qwen/Qwen3-32B",
    "messages": [
        {"role": "user", "content": "帮我设计北京三天的旅游行程"}
    ],
    "max_tokens": 20,
    "stream": true
}'

# 非流式
curl -X POST <访问地址>/v1/chat/completions \
 -H "Content-Type: application/json" -d '{
    "model": "Qwen/Qwen3-235B-A22B",
    "messages": [
        {"role": "user", "content": "帮我设计北京三天的旅游行程"}
    ],
    "max_tokens": 800
}'

流式输出样例

{"id": "chatcmpl-17399634109****", "choices": [{"index": 0, "delta": {"role": "assistant", "content": "", "reasoning_content": "Okay", "tool_calls": []}, "finish_reason": ""}], "created": 1739963410, "model": "vemlp-deepseek-r1-enc", "system_fingerprint": "fp", "object": "chat.completion.chunk", "usage": {"prompt_tokens": 9, "completion_tokens": 1, "total_tokens": 10, "completion_tokens_details": {"reasoning_tokens": 1}}}
{"id": "chatcmpl-17399634109****", "choices": [{"index": 0, "delta": {"role": "assistant", "content": "", "reasoning_content": ",", "tool_calls": []}, "finish_reason": ""}], "created": 1739963410, "model": "vemlp-deepseek-r1-enc", "system_fingerprint": "fp", "object": "chat.completion.chunk", "usage": {"prompt_tokens": 9, "completion_tokens": 2, "total_tokens": 11, "completion_tokens_details": {"reasoning_tokens": 2}}}
...

非流式输出样例

{"id":"chatcmpl-1739963676****","object":"chat.completion","created":1739963676,"model":"vemlp-deepseek-r1-enc","system_fingerprint":"fp","choices":[{"index":0,"message":{"role":"assistant","content":"\n\n以下是为您设计的北京三日经典行程,涵盖历史古迹、皇家园林、现代地标及本地文化体验,行程紧凑但劳逸结合:\n\n🌟 **第一天:中轴线经典之旅**\n","reasoning_content":"嗯,用户让我帮忙设计一个北京三天的旅游行程。首先,我需要考虑用户可能的背景和需求。北京作为中国的首都,有很多经典的景点,比如故宫、天安门、长城之类的。用户可能第一次来北京,想看看这些必去的地方。不过也有可能他们已经去过一些景点,想更深入地体验。不过通常第一次设计的话,还是以经典景点为主比较保险。\n\n接下来,我要确定三天的行程安排是否合理。北京很大,景点之间可能需要考虑交通时间。比如长城在郊区,需要单独安排一天。第一天可能在市中心,安排天安门、故宫、景山这些比较集中的地方。第二天可以考虑颐和园和圆明园,这两个都在海淀区,离市中心稍远,但可以放在同一天。第三天可以安排一些文化体验,比如胡同、南锣鼓巷、798艺术区之类的。\n\n还要注意时间分配是否合理。比如故宫需要半天时间,如果加上天安门广场和毛主席纪念堂,可能需要一上午。下午去景山公园,然后晚上去王府井。这样的安排是否太赶?可能需要调整。另外,要考虑用户的体力,尤其是长城一天可能需要较多步行,所以第二天安排颐和园和圆明园,第三天相对轻松的文化景点可能更合适。\n\n饮食方面,用户可能想体验北京特色美食,比如烤鸭、炸酱面、涮羊肉等。所以在每天的行程里推荐附近的餐馆或小吃街是必要的。比如第一天午餐在故宫附近可能不太方便,但可以推荐王府井的小吃街或者附近的餐馆。晚餐在王府井的话,全聚德是经典选择,但可能需要提前预定。\n\n交通方面,北京地铁比较方便,但有些景点可能需要打车或者公交。比如长城通常需要坐公交或者旅游专线,或者参加一日游团。要提醒用户注意交通时间和方式,避免耽误行程。\n\n另外,季节因素也要考虑。如果是夏天,注意防晒和补水;冬天的话,保暖措施。但用户没有提到具体时间,可能需要一般性的提醒。\n\n还要注意景点开放时间和闭馆日。比如故宫周一闭馆,所以行程安排要避开周一。如果用户不知道这一点,可能会白跑一趟。所以在注意事项里需要提醒。\n\n可能用户还想体验北京的文化,比如胡同、四合院,所以第三天安排了南锣鼓巷和后海,还有798艺术区,这样既有传统文化,又有现代艺术,比较全面。\n\n最后,检查行程是否覆盖了北京的主要景点,三天时间是否足够。第一天:天安门、故宫、景山、王府井。第二天:长城、鸟巢水立方。第三天:颐和园、圆明园、南锣鼓巷、后海。或者可能需要调整,比如第二天如果去长城的话,可能下午回来比较累,晚上安排鸟巢水立方的夜景不错。第三天颐和园和圆明园可能比较紧凑,但可以安排上午和下午分别游览。或者是否应该把颐和园和圆明园放在第二天,而长城单独一天?需要再考虑路线是否合理。\n\n可能第二天去长城,回到市区后去鸟巢水立方,这样比较顺路,因为长城在北部郊区,而鸟巢也在北边,可能更合适。而颐和园和圆明园在西郊,所以第三天安排那里,然后下午去南锣鼓巷和后海。或者反过来?需要查地图确认地理位置。\n\n另外,用户可能有兴趣看升旗仪式,所以第一天早上可以建议早起看升旗,但需要提前查好时间,并且可能需要很早起床,比如夏天升旗很早,用户是否愿意?\n\n总之,需要综合考虑景点分布、时间安排、交通、饮食和用户的体力,确保行程合理可行,不要太赶,又能覆盖主要景点。\n","tool_calls":[]},"finish_reason":"length"}],"usage":{"completion_len":799,"prompt_len":12,"total_len":811,"completion_tokens_details":{"reasoning_tokens":758}}}

性能测试

推理框架性能对比

以 3500: 1500 的Qwen3-235B-A22B 模型为例:

  • 火山 xLLM 版 Qwen3-235B-A22B 推理的单机极限总吞吐可达到7389 token/s,是vLLM版(4092 token/s)的146%。
  • 限定 TPOT < 35 ms 的 SLO 下,火山 xLLM 版吞吐是 vLLM 的 161 %

以 2500: 1500 的Qwen3-235B-A22B 模型为例:

  • 火山 xLLM 版 DeepSeek 推理的单机极限吞吐可达 7259 tokens/s,输出吞吐达到 2722 tokens/s,达到 vLLM 版吞吐量的两倍。
  • 限定 TPOT < 35 ms 的 SLO 下,火山 xLLM 版的单机输出吞吐能达到1586 tokens/s,比 vLLM 版高 81%

在TPOT < 40ms 的 SLO 下进行Qwen3-32B 推理,xLLM吞吐相比开源框架吞吐能力提升约 1 倍。

  • 输入输出比例为3500:1500时,火山 xLLM 版的平均单机输出吞吐能达到774 token/s,是 vLLM 版性能的171%
  • 输入输出比例为2500:1500时,火山 xLLM 版的平均单机输出吞吐能达到908 token/s,vLLM 版单机输出吞吐为557 token/s,提高了63%

Qwen3-32B 性能测试

3500: 1500

xLLM torch版

TPOT

input_len

output_len

等效单机吞吐(req/s)

等效单机输出吞吐量(token/s)

等效单机吞吐量(token/s)

等效单卡吞吐量(token/s)

Mean TPOT

< 40

3500

1500

0.52

773.82

2579.38

1289.69

39.00

< 30

3500

1500

0.42

622.90

2076.35

1038.17

27.81

< 20

3500

1500

0.35

521.26

1737.50

868.75

18.93

vLLM

TPOT

input_len

output_len

等效单机吞吐(req/s)

等效单机输出吞吐量(token/s)

等效单机吞吐量(token/s)

等效单卡吞吐量(token/s)

Mean TPOT

< 50

3500

1500

0.36

538.51

1795.03

897.52

50.44

< 45

3500

1500

0.31

462.17

1540.57

770.28

44.11

< 40

3500

1500

0.30

452.99

1509.97

754.98

40.08

< 35

3500

1500

0.29

465.94

1553.13

776.57

36.43

< 30

3500

1500

0.09

133.61

445.37

222.68

29.58

2500:1500

xLLM torch版

TPOT

input_len

output_len

等效单机吞吐(req/s)

等效单机输出吞吐量(token/s)

等效单机吞吐量(token/s)

等效单卡吞吐量(token/s)

Mean TPOT

< 40

2500

1500

0.60

908.44

2422.51

1211.26

35.83

< 30

2500

1500

0.53

789.84

2106.27

1053.13

29.91

< 20

2500

1500

0.39

578.92

1543.80

771.90

18.23

vLLM

TPOT

input_len

output_len

等效单机吞吐(req/s)

等效单机输出吞吐量(token/s)

等效单机吞吐量(token/s)

等效单卡吞吐量(token/s)

Mean TPOT

< 40

2500

1500

0.37

557.37

1486.32

743.16

38.5

< 35

2500

1500

0.36

543.47

1449.25

724.63

34.72

< 30

2500

1500

0.09

133.26

355.36

177.68

29.28

Qwen3-235B-A22B 性能测试

3500: 1500

xLLM xperf版

TPOT

input_len

output_len

等效单机吞吐(req/s)

等效单机输出吞吐量(token/s)

等效单机吞吐量(token/s)

等效单卡吞吐量(token/s)

Mean TPOT

< 50

3500

1500

1.90

2849.55

9498.51

831.12

49.10

< 40

3500

1500

1.57

2358.10

7860.34

687.78

39.20

< 30

3500

1500

0.79

1189.94

3966.45

347.06

27.71

vLLM

TPOT

input_len

output_len

等效单机吞吐(req/s)

等效单机输出吞吐量(token/s)

等效单机吞吐量(token/s)

等效单卡吞吐量(token/s)

Mean TPOT

< 40

3500

1500

0.63

947.88

3159.60

394.95

39.68

< 35

3500

1500

0.56

845.16

2817.20

352.15

35.65

< 30

3500

1500

0.56

835.88

2786.27

348.28

28.07

< 25

3500

1500

0.41

620.07

2066.90

258.36

25.62

< 20

3500

1500

0.25

381.56

1271.87

158.98

20.79

SGLang

TPOT

input_len

output_len

等效单机吞吐(req/s)

等效单机输出吞吐量(token/s)

等效单机吞吐量(token/s)

等效单卡吞吐量(token/s)

Mean TPOT

< 40

3500

1500

0.43

640.10

2133.67

266.71

40.22

< 35

3500

1500

0.39

592.09

1973.63

246.70

34.48

< 30

3500

1500

0.34

508.78

1695.93

211.99

29.12

2500: 1500

xLLM xperf版

TPOT

input_len

output_len

等效单机吞吐(req/s)

等效单机输出吞吐量(token/s)

等效单机吞吐量(token/s)

等效单卡吞吐量(token/s)

Mean TPOT

< 50

2500

1500

2.19

3278.88

8743.69

1092.96

49.11

< 40

2500

1500

1.86

2788.16

7435.14

929.39

38.94

< 30

2500

1500

0.67

997.92

2661.01

332.63

29.39

vLLM

TPOT

input_len

output_len

等效单机吞吐(req/s)

等效单机输出吞吐量(token/s)

等效单机吞吐量(token/s)

等效单卡吞吐量(token/s)

Mean TPOT

< 35

2500

1500

0.64

965.49

2574.64

321.83

32.87

< 30

2500

1500

0.56

841.39

2243.71

280.46

28.26

< 25

2500

1500

0.41

612.99

1634.64

204.33

25.86

< 20

2500

1500

0.25

379.04

1010.77

126.35

20.92