基于计算巢一键部署Qwen3系列模型

更新时间:
复制 MD 格式

阿里云计算巢提供了Qwen3系列模型的一键部署方案,最快5分钟即可私有部署Qwen3系列模型,如Qwen3-235B、Qwen3-32B模型等。您无需关心模型部署运行的标准环境与底层云资源编排,仅需填写几个参数即可享受企业专属模型的推理体验。本文为您介绍如何通过计算巢一键部署Qwen3系列模型。

什么是Qwen3

选择模型是千问系列最新推出的超大规模语言模型,基于万亿参数级架构构建,深度融合多模态数据与强化学习技术。其具备卓越的自然语言理解与生成能力,支持中英双语及多种编程语言交互,可高效完成文本创作、逻辑推理、代码生成等复杂任务。

计费说明

计算巢平台不收取平台使用费,只收取服务部署时使用的阿里云云资源的费用。本示例部署费用包含:

  • 所选GPU云服务器的实例规格

  • 块存储

  • 公网带宽

您可以根据实际需求选择按量付费或者包年包月计费。详细计费规则及价格,请参见计费项、计费方式。

RAM账号所需权限

部署服务实例时需要对部分阿里云资源进行访问和创建操作。因此您的账号需要包含如下资源的权限。若您使用RAM用户创建服务实例,需要在创建服务实例前为RAM用户添加相应资源权限。

权限策略名称

备注

AliyunECSFullAccess

管理云服务器服务(ECS)的权限

AliyunVPCFullAccess

管理专有网络(VPC)的权限

AliyunROSFullAccess

管理资源编排服务(ROS)的权限

AliyunComputeNestUserFullAccess

管理计算巢服务(ComputeNest)的用户侧权限

操作步骤

  1. 单击LLM推理服务-ECS版进入实例创建页面。

  2. 在创建服务实例界面,配置服务实例信息。本节仅展示关键参数,其他参数按需填写。

    参数

    说明

    选择模板

    请选择单机版。

    模型系列

    请选择Qwen。

    模型名称

    目前支持Qwen3-235B-A22B,Qwen3-32B,Qwen3-8B。本节以Qwen3-32B为例。

    实例类型

    本节以ecs.gn7i-8x.16xlarge为例。若部署Qwen3-235B-A22B模型,需要ecs.ebmgn8v.48xlarge实例规格,如需使用请提交工单申请。

    选择是否开始公网访问

    可根据需求选择是否开启公网,如果您需要进行性能测试,请开启公网访问。

  3. 单击下一步:确认订单。确认服务实例信息与价格预览,单击立即创建。

    说明

    由于模型不同,创建所需的时间也不同,请您耐心等待。

  4. 测试服务实例。

    1. 访问计算巢-服务实例页面,单击您创建的服务实例。

    2. 在概览页签的区域中,复制API调用示例。

    3. 在资源页签中,单击ECS实例的远程连接。在弹窗中单击免密登录,登录ECS实例。

    4. 粘贴API调用示例,并按Enter键即可。

      默认为流式返回。

      curl -X POST "http://192.1xxx/v1/chat/completions" -H "Content-Type: application/json" -H "Authorization: Bearer sk-2y9t1xxx" --data '{ "stream": true, "model": "Qwen/Qwen3-8B",  "messages": [ { "role": "user", "content": "Tell me the recipe for tea" } ] }'

      流式返回结果示例:

      data: {"id":"chatcmpl-356xxx7af4","object":"chat.completion.chunk","created":174xxx,"model":"Qwen/Qwen3-8B","choices":[{"index":0,"delta":{"role":"assistant","content":""},"logprobs":null,"finish_reason":null}]}
      
      data: {"id":"chatcmpl-356axxxxx","object":"chat.completion.chunk","created":1746673678,"model":"Qwen/Qwen3-8B","choices":[{"index":0,"delta":{"reasoning_content":"\n"},"logprobs":null,"finish_reason":null}]}
      
      data: {"id":"chatcmpl-356axxxxx4","object":"chat.completion.chunk","created":1746673678,"model":"Qwen/Qwen3-8B","choices":[{"index":0,"delta":{"reasoning_content":"Okay"},"logprobs":null,"finish_reason":null}]}
      
      data: {"id":"chatcmpl-356axxxxx4","object":"chat.completion.chunk","created":1746673678,"model":"Qwen/Qwen3-8B","choices":[{"index":0,"delta":{"reasoning_content":","},"logprobs":null,"finish_reason":null}]}
      
      data: {"id":"chatcmpl-356xxxxx4","object":"chat.completion.chunk","created":1746673678,"model":"Qwen/Qwen3-8B","choices":[{"index":0,"delta":{"reasoning_content":" the"},"logprobs":null,"finish_reason":null}]}
      
      data: {"id":"chatcmpl-356axxxxx","object":"chat.completion.chunk","created":1746673678,"model":"Qwen/Qwen3-8B","choices":[{"index":0,"delta":{"reasoning_content":" user"},"logprobs":null,"finish_reason":null}]}
      
      data: {"id":"chatcmpl-356xxxxx4","object":"chat.completion.chunk","created":1746673678,"model":"Qwen/Qwen3-8B","choices":[{"index":0,"delta":{"reasoning_content":" is"},"logprobs":null,"finish_reason":null}]}
      说明

      若不希望流式输出,可将API调用示例中的stream 修改为false ,若您提问内容较为复杂,非流式输出的时间可能会较长,请您耐心等待。

其他操作

查询模型部署参数

  1. 在日志管理页签中,找到资源类型为ALIYUN::ECS::RunCommand,复制并单击关联ID,进入ECS 云助手 控制台。

  2. 在ECS 云助手控制台的命令执行结果页签中,粘贴关联ID并搜索。

  3. 单击操作栏中的查看,在执行信息页签的命令内容中,您可找到模型部署参数。

    docker run -d -t --net=host --gpus all \
    --entrypoint /bin/bash \
    --privileged \
    --ipc=host \
    --name vllm \
    -v /root:/root \
    egs-registry.cn-hangzhou.cr.aliyuncs.com/egs/vllm:0.7.2-pytorch2.5.1-cuda12.4-ubuntu22.04 \
    -c "pip install --upgrade vllm==0.8.5 && export GLOO_SOCKET_IFNAME=eth0 &&
    export NCCL_SOCKET_IFNAME=eth0 &&
    vllm serve /root/llm-model/Qwen/Qwen3-8B \
    --served-model-name Qwen/Qwen3-8B \
    --gpu-memory-utilization 0.95 \
    --max-model-len 8192 \
    --enable-chunked-prefill \
    --host=0.0.0.0 \
    --port 8080 \
    --trust-remote-code \
    --api-key "sk-2y9txxxic" \
    --tensor-parallel-size $(nvidia-smi --query-gpu=index --format=csv,noheader | wc -l | awk '{print $1}')
    
    MAX_TIMEOUT=3000
    INTERVAL=10
    MAX_ATTEMPTS=$((MAX_TIMEOUT / INTERVAL))
    
    for ((i=1; i<=MAX_ATTEMPTS; i++))
    do
        LATEST_LOG=$(docker logs vllm 2>&1 | tail -n 20)
        if echo "$LATEST_LOG" | grep -q "Application startup complete."

自定义参数部署模型

如果您有使用自定义模型部署参数的需求,可以在部署服务实例后,按照如下操作步骤进行修改并重新部署。

  1. 在资源页签中,单击ECS实例的远程连接。在弹窗中单击免密登录,进入ECS实例。

  2. 执行下面的命令,停止模型服务。

    警告

    停止服务会导致业务中断,建议您在非业务高峰期时执行该操作。

    sudo docker stop vllm
    sudo docker rm vllm
  3. 获取模型部署命令,根据需求修改并在命令行中执行。

    下方分别是vllm与sglang部署的参考脚本,您可参考注释修改实际执行的脚本。

    说明

    重新部署大约需要10分钟,请您耐心等待。

    vllm部署

    sudo docker run -d -t --net=host \
     --gpus all \ # 允许容器访问所有可用的GPU设备
     --entrypoint /bin/bash \
     --privileged \
     --ipc=host \
     --name vllm \ # 给容器指定一个易于识别的名字vllm
     -v /root:/root \ 将宿主机的/root目录挂载到容器内的/root,实现数据共享
     egs-registry.cn-hangzhou.cr.aliyuncs.com/egs/vllm:0.7.2-pytorch2.5.1-cuda12.4-ubuntu22.04 \
     -c "pip install --upgrade vllm==0.8.2 && # 可自定义版本,如 pip install vllm==0.7.1
     export GLOO_SOCKET_IFNAME=eth0 && # 采用vpc进行网络通信所需环境变量,勿删改
     export NCCL_SOCKET_IFNAME=eth0 && # 采用vpc进行网络通信所需环境变量,勿删改
     vllm serve /root/llm-model/${ModelName} \  # 使用服务启动模型
     --served-model-name ${ModelName} \  # 指定服务中使用的模型名称
     --gpu-memory-utilization 0.98 \ # Gpu占用率,过高可能导致其他进程触发OOM。取值范围:0~1
     --max-model-len ${MaxModelLen} \ # 模型最大长度,取值范围与模型本身有关。
     --enable-chunked-prefill \
     --host=0.0.0.0 \
     --port 8080 \
     --trust-remote-code \
     --api-key "${VLLM_API_KEY}" \ # 可选,设置API密钥,如不需要可去掉。
     --tensor-parallel-size $(nvidia-smi --query-gpu=index --format=csv,noheader | wc -l | awk '{print $1}')" # 使用GPU数量,默认使用全部GPU。

    sglang部署

     #下载包含sglang的公开镜像
     sudo docker pull egs-registry.cn-hangzhou.cr.aliyuncs.com/egs/vllm:0.7.2-sglang0.4.3.post2-pytorch2.5-cuda12.4-20250224
    
     sudo docker run -d -t --net=host \
     --gpus all \ # 允许容器访问所有可用的GPU设备
     --entrypoint /bin/bash \
     --privileged \
     --ipc=host \
     --name llm-server \
     -v /root:/root \
     egs-registry.cn-hangzhou.cr.aliyuncs.com/egs/vllm:0.7.2-sglang0.4.3.post2-pytorch2.5-cuda12.4-20250224 \ 
     -c "pip install sglang==0.4.3 && # 可自定义版本
     export GLOO_SOCKET_IFNAME=eth0 && # 采用vpc进行网络通信所需环境变量,勿删改
     export NCCL_SOCKET_IFNAME=eth0 && # 采用vpc进行网络通信所需环境变量,勿删改
     python3 -m sglang.launch_server \
     --model-path /root/llm-model/${ModelName} \ # 使用服务启动模型
     --served-model-name ${ModelName} \ # 指定服务中使用的模型名称
     --tp $(nvidia-smi --query-gpu=index --format=csv,noheader | wc -l | awk '{print $1}')" \ # 使用GPU数量,默认使用全部GPU。
     --trust-remote-code \
     --host 0.0.0.0 \
     --port 8080 \
     --mem-fraction-static 0.9 # Gpu占用率,过高可能导致其他进程触发OOM。取值范围:0~1

    执行成功,如下如所示。

    docker run -d -t --net=host --gpus all \
    --entrypoint /bin/bash \
    --privileged \
    --ipc=host \
    --name vllm \
    -v /root:/root \
    egs-registry.cn-hangzhou.cr.aliyuncs.com/egs/vllm:0.7.2-pytorch2.5.1-cuda12.4-ubuntu22.04 \
    -c "pip install --upgrade vllm==0.8.5 && export GLOO_SOCKET_IFNAME=eth0 &&
    export NCCL_SOCKET_IFNAME=eth0 &&
    vllm serve /root/llm-model/Qwen/Qwen3-32B \
    --served-model-name Qwen/Qwen3-32B \
    --gpu-memory-utilization 0.85 \
    --max-model-len 16384 \
    --enable-chunked-prefill \
    --host=0.0.0.0 \
    --port 8080 \
    --trust-remote-code \
    --api-key \"sk-7nxxx9\" \
    --tensor-parallel-size $(nvidia-smi --query-gpu=index --format=csv,noheader | wc -l | awk '{print $1}') --enable-reasoning deepseek r1"
  4. 执行下面的命令,查看模型服务是否运行。执行若结果如下所示,则模型服务重新部署成功。

    sudo docker ps
    sudo docker logs vllm  
    [rxxx xxxxxxxxxx x1Z ~]# sudo docker ps
    CONTAINER ID    IMAGE                                                                                COMMAND               CREATED          STATUS          PORTS     NAMES
    a49xxxxxxxxx    egs-registry.cn-hangzhou.cr.aliyuncs.com/egs/vllm:0.7.2-pytorch2.5.1-cuda12.4-ubuntu22.04    "/bin/bash -c 'pip i…"    3 minutes ago    Up 3 minutes              vllm
    INFO 05-08 09:49:22 [api_server.py:1090] Starting vLLM API server on http://0.0.0.0:8080
    INFO 05-08 09:49:22 [launcher.py:28] Available routes are:
    INFO 05-08 09:49:22 [launcher.py:36] Route: /openapi.json, Methods: GET, HEAD
    INFO 05-08 09:49:22 [launcher.py:36] Route: /docs, Methods: GET, HEAD
    INFO 05-08 09:49:22 [launcher.py:36] Route: /docs/oauth2-redirect, Methods: GET, HEAD
    INFO 05-08 09:49:22 [launcher.py:36] Route: /redoc, Methods: GET, HEAD
    INFO 05-08 09:49:22 [launcher.py:36] Route: /health, Methods: GET
    INFO 05-08 09:49:22 [launcher.py:36] Route: /load, Methods: GET
    INFO 05-08 09:49:22 [launcher.py:36] Route: /ping, Methods: GET, POST
    INFO 05-08 09:49:22 [launcher.py:36] Route: /tokenize, Methods: POST
    INFO 05-08 09:49:22 [launcher.py:36] Route: /detokenize, Methods: POST
    INFO 05-08 09:49:22 [launcher.py:36] Route: /v1/models, Methods: GET
    INFO 05-08 09:49:22 [launcher.py:36] Route: /version, Methods: GET
    INFO 05-08 09:49:22 [launcher.py:36] Route: /v1/chat/completions, Methods: POST
    INFO 05-08 09:49:22 [launcher.py:36] Route: /v1/completions, Methods: POST
    INFO 05-08 09:49:22 [launcher.py:36] Route: /v1/embeddings, Methods: POST
    INFO 05-08 09:49:22 [launcher.py:36] Route: /pooling, Methods: POST
    INFO 05-08 09:49:22 [launcher.py:36] Route: /score, Methods: POST
    INFO 05-08 09:49:22 [launcher.py:36] Route: /v1/score, Methods: POST
    INFO 05-08 09:49:22 [launcher.py:36] Route: /v1/audio/transcriptions, Methods: POST
    INFO 05-08 09:49:22 [launcher.py:36] Route: /rerank, Methods: POST
    INFO 05-08 09:49:22 [launcher.py:36] Route: /v1/rerank, Methods: POST
    INFO 05-08 09:49:22 [launcher.py:36] Route: /v2/rerank, Methods: POST
    INFO 05-08 09:49:22 [launcher.py:36] Route: /invocations, Methods: POST
    INFO 05-08 09:49:22 [launcher.py:36] Route: /metrics, Methods: GET
    INFO:     Started server process [1]
    INFO:     Waiting for application startup.
    INFO:     Application startup complete.

性能测试参考

Qwen3-235B-A22B压测

本针对Qwen3-235B-A22B在ecs.ebmgn8v.48xlarge实例规格下,分别测试QPS为20、50情况下模型服务的推理响应性能,压测持续时间均为1分钟。

  • QPS为20,1分钟1200个问答请求。

    ============ Serving Benchmark Result ============
    Successful requests:                     1200
    Benchmark duration (s):                  88.61
    Total input tokens:                      266741
    Total generated tokens:                  235643
    Request throughput (req/s):              13.54
    Output token throughput (tok/s):         2659.27
    Total Token throughput (tok/s):          5669.49
    ---------------Time to First Token----------------
    Mean TTFT (ms):                          365.68
    Median TTFT (ms):                        229.40
    P99 TTFT (ms):                           1766.50
    -----Time per Output Token (excl. 1st token)------
    Mean TPOT (ms):                          105.88
    Median TPOT (ms):                        103.80
    P99 TPOT (ms):                           189.46
    ----------------Inter-token Latency----------------
    Mean ITL (ms):                           94.42
    Median ITL (ms):                         70.47
    P99 ITL (ms):                            288.82
    ==================================================
  • QPS为50,1分钟3000个问答请求。

    ============= Serving Benchmark Result =============
    Successful requests:                          3000
    Benchmark duration (s):                     152.86
    Total input tokens:                         663559
    Total generated tokens:                     607017
    Request throughput (req/s):                  19.63
    Output token throughput (tok/s):           3970.96
    Total Token throughput (tok/s):            8311.81
    ----------------Time to First Token-----------------
    Mean TTFT (ms):                            6328.06
    Median TTFT (ms):                           661.43
    P99 TTFT (ms):                            28410.91
    -----Time per Output Token (excl. 1st token)------
    Mean TPOT (ms):                             173.79
    Median TPOT (ms):                           182.65
    P99 TPOT (ms):                              411.13
    ----------------Inter-token Latency-----------------
    Mean ITL (ms):                              156.99
    Median ITL (ms):                            128.65
    P99 ITL (ms):                               702.54
    ====================================================

Qwen3-32B压测

针对Qwen3-32B在ecs.gn7i-8x.16xlarge实例规格下,分别测试QPS为20、50情况下模型服务的推理响应性能,压测持续时间均为1分钟。

  • QPS为20,1分钟1200个问答请求。

    ============= Serving Benchmark Result =============
    Successful requests:                     1200
    Benchmark duration (s):                  255.24
    Total input tokens:                      266741
    Total generated tokens:                  236424
    Request throughput (req/s):              4.70
    Output token throughput (tok/s):         926.30
    Total Token throughput (tok/s):          1971.38
    ---------------Time to First Token----------------
    Mean TTFT (ms):                          63592.37
    Median TTFT (ms):                        60395.15
    P99 TTFT (ms):                           150633.96
    -----Time per Output Token (excl. 1st token)------
    Mean TPOT (ms):                          278.87
    Median TPOT (ms):                        257.07
    P99 TPOT (ms):                           771.34
    ---------------Inter-token Latency-----------------
    Mean ITL (ms):                           235.86
    Median ITL (ms):                         186.59
    P99 ITL (ms):                            782.82
    =====================================================
  • QPS为50,1分钟3000个问答请求。

    ============= Serving Benchmark Result =============
    Successful requests:                     3000
    Benchmark duration (s):                  646.70
    Total input tokens:                      663559
    Total generated tokens:                  607697
    Request throughput (req/s):              4.64
    Output token throughput (tok/s):         939.69
    Total Token throughput (tok/s):          1965.75
    ----------------Time to First Token----------------
    Mean TTFT (ms):                          244887.26
    Median TTFT (ms):                        240098.18
    P99 TTFT (ms):                           517629.32
    ------Time per Output Token (excl. 1st token)------
    Mean TPOT (ms):                          269.10
    Median TPOT (ms):                        261.92
    P99 TPOT (ms):                           760.64
    -----------------Inter-token Latency-----------------
    Mean ITL (ms):                           250.49
    Median ITL (ms):                         196.33
    P99 ITL (ms):                            778.66
    ====================================================
说明

若希望了解压测过程,请参见压测过程说明。