基于海光8张Z100L算力服务器,vLLM 部署全量微调过的 qwen2.5-32B大模型。

1. 需求:

在客户提供的 8 * Z100L 算力服务器上,部署全量微调过的 qwen2.5-32B 大模型。


2. 解决:

海光算力服务器部署模型三件套:DCU、DCU驱动、DTK。

1. 查看显卡(即 DCU)数量

shell 复制代码
[root@dcu6 ~]# lspci | grep -i 'VGA\|3D\|Display\|Compute'
12:00.0 VGA compatible controller: ASPEED Technology, Inc. ASPEED Graphics Family (rev 41)
37:00.0 Display controller: Chengdu C-3000 IC Design Co., Ltd. ZIFANG (rev 01)
3a:00.0 Display controller: Chengdu C-3000 IC Design Co., Ltd. ZIFANG (rev 01)
3d:00.0 PCI bridge: Chengdu C-3000 IC Design Co., Ltd. Device 23b7 (rev 01)
3f:00.0 Display controller: Chengdu C-3000 IC Design Co., Ltd. ZIFANG (rev 01)
45:00.0 Display controller: Chengdu C-3000 IC Design Co., Ltd. ZIFANG (rev 01)
b7:00.0 Display controller: Chengdu C-3000 IC Design Co., Ltd. ZIFANG (rev 01)
ba:00.0 Display controller: Chengdu C-3000 IC Design Co., Ltd. ZIFANG (rev 01)
bf:00.0 Display controller: Chengdu C-3000 IC Design Co., Ltd. ZIFANG (rev 01)
c6:00.0 Display controller: Chengdu C-3000 IC Design Co., Ltd. ZIFANG (rev 01)

说明:输出结果的第1列(例如: 37:00.0、3a:00.0) 是 显卡对应的 PCI 设备地址

2. 查看显卡详情

shell 复制代码
[root@dcu6 ~]# lspci -vv -s 37:00.0
37:00.0 Display controller: Chengdu C-3000 IC Design Co., Ltd. ZIFANG (rev 01)
        Subsystem: Chengdu C-3000 IC Design Co., Ltd. Z100L
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr+ Stepping- SERR+ FastB2B- DisINTx+
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0, Cache Line Size: 64 bytes
        Interrupt: pin A routed to IRQ 340
        NUMA node: 3
        Region 0: Memory at 23000000000 (64-bit, prefetchable) [size=32G]
        Region 2: Memory at 23800000000 (64-bit, prefetchable) [size=2M]
        Region 4: I/O ports at 3000 [size=256]
        Region 5: Memory at b7200000 (32-bit, non-prefetchable) [size=512K]
        Expansion ROM at b7280000 [disabled] [size=128K]
        Capabilities: [48] Vendor Specific Information: Len=08 <?>
        Capabilities: [50] Power Management version 3
        ......

说明:从输出结果可知,显卡型号是 Z100L ,单卡显存大小是 32G

3. 下载、安装 DCU驱动

shell 复制代码
# 下载驱动
wget https://download.sourcefind.cn:65024/directlink/6/dtk-25.04.1%E9%A9%B1%E5%8A%A8/rock-6.3.15-V1.0.1.run
# 给驱动文件授权
chmod 777 rock-6.3.15-V1.0.1.run
# 安装驱动
./rock-6.3.15-V1.0.1.run
# 查看驱动版本(输出 rock-5.7.1-6.2.26-1.x86_64)
rpm -qa | grep rock

说明:如果需要卸载老版DCU驱动,使用命令rpm -e rock-5.7.1-6.2.26-1.x86_64进行卸载。

4. 安装驱动成功后,使用官方工具 hy-smi 查看显卡使用率

shell 复制代码
[root@dcu6 ~]# hy-smi

============================ System Management Interface =============================
======================================================================================
DCU     Temp     AvgPwr     Perf     PwrCap     VRAM%      DCU%      Mode     
0       N/A      N/A        auto     N/A        87%        0%        N/A      
1       N/A      N/A        auto     N/A        87%        0%        N/A      
2       N/A      N/A        auto     N/A        87%        0%        N/A      
3       N/A      N/A        auto     N/A        87%        0%        N/A      
4       N/A      N/A        auto     N/A        87%        0%        N/A      
5       N/A      N/A        auto     N/A        87%        0%        N/A      
6       N/A      N/A        auto     N/A        87%        0%        N/A      
7       N/A      N/A        auto     N/A        86%        0%        N/A      
======================================================================================
=================================== End of SMI Log ===================================

说明:

1> VRAM% :显存使用率;

2> DCU% :显卡实时使用率。如上图所示均为0%,说明显卡全部空闲,没有进行任务推理。

3> 可使用 watch -n 1 hy-smi 命令,每间隔1秒实时监测显卡使用情况。

5. 下载、启动 环境配置 docker 镜像

shell 复制代码
# 下载环境配置镜像
docker pull image.sourcefind.cn:5000/dcu/admin/base/vllm:0.8.5-ubuntu22.04-dtk25.04.1-rc5-das1.6-py3.10-20250705

[root@dcu6 ~]# docker images
REPOSITORY                                                     TAG                                                                              IMAGE ID            CREATED             SIZE
image.sourcefind.cn:5000/dcu/admin/base/vllm                   0.8.5-ubuntu22.04-dtk25.04.1-rc5-das1.6-py3.10-20250705                          6e41fdfdf849        4 months ago        24.5GB

# 启动镜像
docker run -it \
    --name vllm085-qwen2.5 \
    --privileged \
    --shm-size=128G \
    --device=/dev/kfd \
    --device=/dev/dri \
    --cap-add=SYS_PTRACE \
    --security-opt seccomp=unconfined \
    --ipc=host \
    --network=host \
    --group-add video \
    -v /opt/hyhal:/opt/hyhal:ro \
    -v /public/software/xingpu-qwen2.5:/home/ \
    6e41fdfdf849 bash

注意事项:

启动镜像命令中

1> -v /public/software/xingpu-qwen2.5:/home/: 替换成你宿主服务器上,模型源文件所在目录地址;

2> 6e41fdfdf849 :替换成你实际的下载后的 镜像id。

6. vLLM 启动模型

shell 复制代码
# vLLM 启动模型
nohup python -m vllm.entrypoints.openai.api_server \
    --model /home \
    --served-model-name xingpu-qwen2.5 \
    --api-key sk-xxxyyyzzz \
    --tensor-parallel-size 8 \
    --max-model-len 6144 \
    --gpu-memory-utilization 0.90 \
    --dtype bfloat16 \
    --trust-remote-code \
    --host 49.123.8.124 \
    --port 5002 \
    > vllm.log 2>&1 &

# 查看 vLLM 启动日志
tail -500f vllm.log

启动成功有如下类似输出:
INFO 12-01 11:06:34 [launcher.py:36] Route: /v1/rerank, Methods: POST
INFO 12-01 11:06:34 [launcher.py:36] Route: /v2/rerank, Methods: POST
INFO 12-01 11:06:34 [launcher.py:36] Route: /invocations, Methods: POST
INFO 12-01 11:06:34 [launcher.py:36] Route: /metrics, Methods: GET
INFO:     Started server process [54]
INFO:     Waiting for application startup.
INFO:     Application startup complete.

说明:

1> --host 49.123.8.124 : 这里的 IP 是当前宿主机内网地址。

2> vLLM 启动命令行参数一览

7. curl 验证 OpenAI Chat API 接口

shell 复制代码
# 验证
curl http://49.123.8.124:5002/v1/chat/completions \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer sk-xxxyyyzzz" \
    -d '{
        "model": "xingpu-qwen2.5",
        "messages": [
            {"role": "user", "content": "天空为什么是蓝色的,在50字以内回答?"}
        ]
    }'

结果输出:
{
  "id": "chatcmpl-2ad1059728a54a1cba3e86a9432db7cb",
  "object": "chat.completion",
  "created": 1764558564,
  "model": "xingpu-qwen2.5",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "reasoning_content": null,
        "content": "天空呈蓝色是因为大气中的分子和微粒散射阳光,
        波长较短的蓝光比其他颜色散射更强烈,这种现象称为瑞利散射。",
        "tool_calls": []
      },
      "logprobs": null,
      "finish_reason": "stop",
      "stop_reason": null
    }
  ],
  "usage": {
    "prompt_tokens": 41,
    "total_tokens": 79,
    "completion_tokens": 38,
    "prompt_tokens_details": null
  },
  "prompt_logprobs": null
}

3. 海光资源网址:

  1. 海光-光源开发者社区;
  2. 光源-镜像、模型仓库
相关推荐
hu_nil3 天前
LLMOps-第十三周
python·vllm
wuli_滔滔5 天前
Qwen2.5、Llama 3.1轻量模型本地化部署指南:从环境配置到企业级实战
vllm·ollama·qwen2.5·llama 3.1
GPUStack7 天前
GPUStack v2:推理加速释放算力潜能,开源重塑大模型推理下半场
大模型·vllm·ai网关·sglang·高性能推理
腾讯数据架构师9 天前
海光dcu 虚拟化适配
云原生·kubernetes·mlops·dcu·海光·cube studio·vdcu
码二哥10 天前
借助豆包将vllm推理deepseek-ocr改成web服务访问
ocr·fastapi·vllm·豆包·deepseek-ocr
七夜zippoe11 天前
基于Qwen2.5-7B-Chat的本地化部署实战——从模型原理到企业级应用
vllm·ollama·qwen2.5·gradio web·企业级api
Stara051117 天前
DeepSeek-OCR私有化部署—从零构建OCR服务环境
计算机视觉·docker·ocr·transformers·vllm·deepseek·光学符号识别
破烂pan19 天前
主流 LLM 推理/部署框架指标对比
llm·模型部署·vllm