如何填写serve启动命令Qwen3-235B-A22B

我的显卡4张95g的h20
本地模型地址:/mnt/afs/share_models/git_models/Qwen/Qwen3-235B-A22B/
我的机器是8卡,我只用前0123卡
max-model-len需要设置吗?如果不设置会怎么样,如果需要设置的话就设置成8k

max-model-len参数决定模型的最大上下文长度(即输入+输出token总数)。如果不手动设置,vLLM会自动根据模型配置文件推断该值,但有些模型默认值可能较大,导致显存分配过多,出现OOM或性能下降等问题。你可以手动设置为8k,确保不会超出显存限制,且推理速度更可控。
如果不设置max-model-len,系统会用模型自带的最大长度,可能远大于8k,容易导致显存不足或推理变慢,尤其是在多卡环境下。建议根据实际显存和需求设置合适的max-model-len,例如8k。参考1 参考2 参考3

需要更详细的原理或配置建议吗?

Sources:

我已经启用qwen3-32b的模型cli serve,现在能给我一个在本地调用方法吗,特别是需要batch推理方面的

你可以直接用OpenAI API格式本地请求vLLM serve启动的服务,支持batch推理。只需向/v1/chat/completions/v1/completions接口发送POST请求,body中包含多条messages或prompts即可。
例如,使用Python requests库:

import requests

url = "http://localhost:8000/v1/chat/completions"
headers = {"Content-Type": "application/json"}
data = {
    "model": "Qwen3-32B",
    "messages": [
        [{"role": "user", "content": "问题1"}],
        [{"role": "user", "content": "问题2"}]
    ],
    "max_tokens": 128
}
response = requests.post(url, headers=headers, json=data)
print(response.json())

batch大小由max_num_seqs参数控制,详见官方文档issue说明

需要更详细的代码或参数说明吗?

Sources:

我有一个问题

如果是offline pipeline
batch的推理的实现方式是一次输入多个问题是吗

如果是cli serve
batch推理的实现方式 是一次发送多个request,每个request一个请求是吗

是的,offline pipeline batch(如LLM类的generate方法)是一次输入多个问题(prompt),模型会批量推理并一次性返回所有结果。而cli serve(API服务)下的batch推理,是通过并发发送多个request,每个request通常只包含一个问题,服务端会自动将这些请求合并成batch进行推理。参考 参考

需要更详细的原理或代码示例吗?

Sources:

服务端:
INFO: 127.0.0.1:59554 - “GET /health HTTP/1.1” 200 OK
INFO: 127.0.0.1:59554 - “POST /v1/chat/completions HTTP/1.1” 400 Bad Request
INFO: 127.0.0.1:59554 - “POST /v1/chat/completions HTTP/1.1” 400 Bad Request
INFO: 127.0.0.1:59554 - “POST /v1/chat/completions HTTP/1.1” 400 Bad Request
INFO: 127.0.0.1:59624 - “POST /v1/chat/completions HTTP/1.1” 400 Bad Request
INFO: 127.0.0.1:59624 - “POST /v1/chat/completions HTTP/1.1” 400 Bad Request

你的服务端日志显示/v1/chat/completions接口多次返回400 Bad Request,说明请求参数有误或格式不符合API要求。常见原因包括:messages字段格式错误、缺少model参数、max_tokens非法、输入超出max-model-len等。官方文档有详细参数说明。

建议检查请求体格式,确保messages为列表、每条消息有role和content字段,且model参数正确。可参考如下格式:

{
  "model": "你的模型名",
  "messages": [
    {"role": "user", "content": "你好"}
  ],
  "max_tokens": 128
}

需要更详细的排查步骤或错误日志分析吗?

Sources:

这个方式到底支持batch推理吗?
给我推荐一个最合适的调用QWEN3-32b的批量推理的格式

/v1/chat/completions接口本身不支持一次请求内多组messages(即不支持原生batch),每次请求只能推理一组对话。官方说明明确指出chat接口不支持batch,只能并发多请求,服务端会自动调度batch。

最推荐的Qwen3-32B批量推理方式:用多线程/多进程/异步并发方式,分别发送多个单条messages的POST请求到/v1/chat/completions,服务端会自动合并batch推理。格式如下:

{
  "model": "Qwen3-32B",
  "messages": [
    {"role": "user", "content": "问题1"}
  ],
  "max_tokens": 128
}

每个请求只放一组messages,批量推理靠客户端并发实现。参考

需要并发代码示例或更详细说明吗?

Sources: