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。镜像地址同理。
说明
目前POC指定8000、8080,请勿更改端口,并再次检查安全组、ACL是否提前放开所有端口。
$VEPFS_MODEL_PATH/Qwen/Qwen3-32B/
。功能限制
# 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 }'
部署完成后会自动创建公网服务 ,提供 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 模型为例:
以 2500: 1500 的Qwen3-235B-A22B 模型为例:
在TPOT < 40ms 的 SLO 下进行Qwen3-32B 推理,xLLM吞吐相比开源框架吞吐能力提升约 1 倍。
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |