一、测试条件
sdk4.4版、X86环境(Intel(R) Xeon(R) Gold 6148 CPU @ 2.40GHz)
、MR100卡、镜像corex-docker-installer-4.4.0-10.2-ubuntu20.04-llm-py3.10-x86_64.run
二、创建容器
1、获取镜像
sftp -P 29880 iluvatar_mr@iftp.iluvatar.com.cn 访问密码请咨询天数售后
get /SDK_4.4.0/x86/sdk/corex-docker-installer-4.4.0-10.2-ubuntu20.04-llm-py3.10-x86_64.run
2、镜像部署
bash corex-docker-installer-4.4.0-10.2-ubuntu20.04-llm-py3.10-x86_64.run
3、创建容器
docker run -dit -v /usr/src:/usr/src -v /lib/modules:/lib/modules -v /dev:/dev -v /data:/data -v /home:/home --network=host --name=sdk440llm --ipc=host --privileged --cap-add=ALL --pid=host 41fb7447b7b9 /bin/bash
三、启动服务
1、魔搭上下载权重
pip install modelscope
modelscope download --model Qwen/Qwen3-235B-A22B --local_dir /data/models/Qwen3-235B-A22B
2、模型量化
1)获取量化脚本
2)sftp下载量化脚本
密码联系天数工程师
sftp -P 29880 iluvatar_mr@iftp.iluvatar.com.cn
get /client_tmp/support/quant/bf16ToInt4.py /home
3)模型量化
cd
/data/models
python3 bf16ToInt4.py --input-fp8-hf-path /data/model/Qwen3-235B-A22B/ --output-int8-hf-path Qwen3-235B-A22B-w4a8-TN --group-size -1 --format TN --version 2
3、启动模型
export VLLM_ENGINE_ITERATION_TIMEOUT_S=36000
export VLLM_RPC_TIMEOUT=36000000
export VLLM_ENFORCE_CUDA_GRAPH=1
export VLLM_W8A8_MOE_USE_W4A8=1
vllm serve /data/models/Qwen3-235B-A22B-w4a8-TN/ --tensor-parallel-size 4 --pipeline-parallel-size 2 --enable_chunked_prefill --enable-prefix-caching --disable_log_stats --disable_log_requests --compilation_config '{"cudagraph_mode": "FULL_DECODE_ONLY", "level": 0}' --host 0.0.0.0
注:
--disable_log_stats 和 --disable_log_requests
这两个参数用于控制 vLLM 服务端的日志输出频率和内容,主要用于生产环境以减少日志噪音和磁盘 I/O 压力。
--disable_log_stats
含义: 禁用周期性统计日志。
默认行为: vLLM 每隔一段时间(通常是几秒)会打印一次引擎的整体性能统计,例如:
Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 120.5 tokens/s, Running: 4 reqs, ...
作用: 加上此参数后,控制台将不再打印这些定期的性能摘要。
适用场景: 在高并发生产环境中,这些日志每秒都在刷,会占用大量终端缓冲区或日志文件空间。如果你通过 Prometheus/Grafana 等监控系统采集指标,就不需要这些文本日志了。
--disable_log_requests
含义: 禁用单个请求的详细日志。
默认行为: 每当一个请求完成(或有时在开始时),vLLM 会打印该请求的详细信息,例如:
Finished request 12345: prompt_len=100, output_len=50, latency=1.2s ...
作用: 加上此参数后,控制台将不再为每个完成的请求打印一行日志。
适用场景: 强烈建议在生产环境开启。在高并发下(例如每秒几百个请求),如果开启此功能,日志量会瞬间爆炸,导致磁盘写满或日志系统崩溃。仅在调试单个请求延迟问题时才临时关闭它。
四、curl请求测试
1、普通Curl请求测试
-H "Content-Type: application/json" \
-d '{
"model": "/data/models/Qwen3-235B-A22B-w4a8-TN/",
"messages": [
{
"role": "user",
"content": "介绍一下人工智能"
}
],
"temperature": 0.0,
"max_tokens": 512
}'
2、使用jq格式化curl输出
1)、安装jq
apt-get update
apt-get install jq
2)、curl请求测试
-H "Content-Type: application/json" \
-d '{
"model": "/data/models/Qwen3-235B-A22B-w4a8-TN/",
"messages": [
{
"role": "user",
"content": "请介绍一下人工智能"
}
],
"temperature": 0.0,
"max_tokens": 512
}' | jq -r '.choices[0].message.content'
五、Benchmark测试
1、benchmark工具下载
sftp -P 29880 iluvatar_mr@iftp.iluvatar.com.cn 访问密码请咨询天数售后
get /client_tmp/support/kk/vllm_benchmark.tar.gz /home/
2、进入容器,执行测试
docker exec -it sdk440llm bash
cd /data/models/vllm_benchmark
python3 benchmark_serving.py --model /data/models/Qwen3-235B-A22B-w4a8-TN/ --dataset-name random --random-input-len 4096 --random-output-len 4096 --num-prompts 1 --host "0.0.0.0" --port 8000