一、環境準備
1.1 基礎環境要求
本次部署需基于以下環境開展:
操作系統鏡像:CTyunOS - CTyunOS 23.01.2@GalaxyCompute-NPU25.0.rc1.1 64 位
物理機實例:天翼云昇騰910B物理機(套餐規格:physical.Icas910b.2xlarge11)
1.2 NVME 磁盤掛載配置
為提升模型存儲與服務運行性能,需將節點的nvme1n1和nvme0n1兩塊 NVME 盤分別掛載至/mnt/nvme1n1和/mnt/nvme0n1目錄。可通過以下腳本實現自動化掛載及開機自動掛載配置:
#!/bin/bash
# 設備列表
devices=("/dev/nvme0n1" "/dev/nvme1n1")
mount_points=("/mnt/nvme0n1" "/mnt/nvme1n1")
fs_type="xfs"
# 確保 root 權限
if [[ $EUID -ne 0 ]]; then
echo "請使用 root 運行此腳本!"
exit 1
fi
for i in "${!devices[@]}"; do
device="${devices[$i]}"
mount_point="${mount_points[$i]}"
# 創建掛載目錄
mkdir -p "$mount_point"
# 獲取設備的文件系統類型
current_fs=$(blkid -s TYPE -o value "$device")
if [[ -z "$current_fs" ]]; then
echo "設備 $device 沒有文件系統,正在格式化為 $fs_type..."
mkfs.xfs -f "$device"
else
echo "$device 已格式化為 $current_fs,跳過格式化"
fi
# 確保設備未被掛載后再嘗試掛載
umount "$device" 2>/dev/null
mount -t "$fs_type" "$device" "$mount_point"
if [[ $? -ne 0 ]]; then
echo "錯誤:無法掛載 $device 到 $mount_point,請檢查設備或文件系統!"
exit 1
fi
echo "$device 已成功掛載到 $mount_point"
# 獲取 UUID 并更新 /etc/fstab,避免重復添加
uuid=$(blkid -s UUID -o value "$device")
if ! grep -q "$uuid" /etc/fstab; then
echo "UUID=$uuid $mount_point $fs_type defaults 0 0" >> /etc/fstab
echo "$device (UUID=$uuid) 已添加到 /etc/fstab"
else
echo "$device 已存在于 /etc/fstab,無需添加"
fi
done
echo "所有磁盤已成功掛載并配置為開機自動掛載!"執行完成后,可通過以下命令驗證磁盤掛載狀態:
[root@new ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 4.2G 1 loop
sda 8:0 0 446.6G 0 disk
├─sda1 8:1 0 122M 0 part
├─sda2 8:2 0 976.6M 0 part /boot/efi
├─sda3 8:3 0 1.9G 0 part /boot
└─sda4 8:4 0 443.6G 0 part
├─system-lv_swap 253:0 0 16G 0 lvm [SWAP]
└─system-lv_root 253:1 0 427.6G 0 lvm /
nvme1n1 259:0 0 2.9T 0 disk
└─nvme1n1p1 259:4 0 2.9T 0 part /mnt/nvme1n1
nvme0n1 259:1 0 2.9T 0 disk
└─nvme0n1p1 259:3 0 2.9T 0 part /mnt/nvme0n1說明
本文檔部署架構中,/mnt/nvme1n1用于存儲模型文件及 MindIE 容器鏡像,/mnt/nvme0n1用于服務啟動及運行目錄。
1.3 部署腳本下載與解壓
將部署所需腳本包下載至服務運行目錄并解壓,其中Qwen3-32B目錄包含服務啟停腳本(app_start.sh、app_stop.sh等)、配置文件(config.json)及相關運行目錄。
cd /mnt/nvme0n1
wget //jiangsu-10.zos.daliqc.cn/galaxy/deployment/qwen3-32b-hw-1node-v20250728.tar
tar xvf qwen3-32b-hw-1node-v20250728.tar 1.4 MindIE 容器鏡像準備
MindIE 容器鏡像是模型推理的運行環境載體,需按以下步驟準備:
1、創建鏡像存儲目錄并下載鏡像:
mkdir -p /mnt/nvme1n1/apptainer
cd /mnt/nvme1n1/apptainer
wget //jiangsu-10.zos.daliqc.cn/galaxy/apptainer/mindie/mindie_2.0.RC2-800I-A2-py311-openeuler24.03-lts-qwen3.sif2、在服務運行目錄創建軟鏈接,便于服務調用鏡像:
cd /mnt/nvme0n1/Qwen3-32B
ln -s /mnt/nvme1n1/apptainer/mindie_2.0.RC2-800I-A2-py311-openeuler24.03-lts-qwen3.sif .1.5 下載模型文件
將模型文件下載并保存在每個節點的/mnt/nvme1n1/model/ 目錄下,并配置模型文件訪問權限為750,確保服務可正常讀取:
[root@new ~]# ls -l /mnt/nvme1n1/model/Qwen3-32B
total 64004232
-rwxr-x--- 1 root root 728 Jul 24 11:23 config.json
-rwxr-x--- 1 root root 73 Jul 24 11:23 configuration.json
-rwxr-x--- 1 root root 239 Jul 24 11:23 generation_config.json
-rwxr-x--- 1 root root 1671853 Jul 24 11:23 merges.txt
-rwxr-x--- 1 root root 3957109648 Jul 24 11:36 model-00001-of-00017.safetensors
。。。。。。
-rwxr-x--- 1 root root 3055341992 Jul 24 11:50 model-00017-of-00017.safetensors
-rwxr-x--- 1 root root 58330 Jul 24 11:46 model.safetensors.index.json
-rwxr-x--- 1 root root 16636 Jul 24 11:46 README.md
-rwxr-x--- 1 root root 9732 Jul 24 11:46 tokenizer_config.json
-rwxr-x--- 1 root root 11422654 Jul 24 11:46 tokenizer.json
-rwxr-x--- 1 root root 2776833 Jul 24 11:46 vocab.json二、起停服務
2.1 配置Qwen3
根據具體使用的模型,修改app_start.sh 中的內容:
export MODEL_DIR=/mnt/nvme1n1/model/Qwen3-32B
export MINDIE_IMG=mindie_2.0.RC2-800I-A2-py311-openeuler24.03-lts-qwen3.sif其中:
MODEL_DIR 為模型本地盤中的具體路徑。
MINDIE_IMG為使用的mindie容器
設定服務啟動主節點,修改config.json的內容:
...
"ServerConfig" :
{
"ipAddress": "192.168.0.50",
"managementIpAddress": "192.168.0.50",
...將這里192.168.0.50 改為本機IP地址。
2.2 啟動mindie推理服務
僅需如下1條命令,即可啟動服務:
cd /mnt/nvme0n1/Qwen3-32B
sh app_start.shINFO: instance started successfully
Qwen3-32B 啟動完成,日志:logs/log_2025-07-28_11-30-53.out
查看logs目錄下的out文件,當出現如下信息時,服務啟動:
tail -f logs/log_2025-07-28_11-30-53.outDaemon start success!
2.3 查看mindie推理服務
查看作業運行信息:
$ apptainer instance list
INSTANCE NAME PID IP IMAGE
app-qwen3 1735711 /mnt/nvme0n1/Qwen3-32B-4npu/mindie_2.0.RC2-800I-A2-py311-openeuler24.03-lts-qwen3.sif2.4 停止mindie推理服務
僅需一條命令即可停止mindie推理服務:
$ sh app_stop.sh
INFO: Stopping app-qwen3 instance of /mnt/nvme0n1/Qwen3-32B/mindie_2.0.RC2-800I-A2-py311-openeuler24.03-lts-qwen3.sif (PID=1735711)如需清空log文件,可執行:
$ sh app_clean.sh2.5 測試驗證
使用服務器1025端口(可在config.json文件中修改)對服務可用性進行驗證:
curl -i --location '//192.168.0.50:1025/v1/chat/completions' \
--header 'Content-Type: application/json' \
--data '{
"model": "qwen3",
"stream": false,
"messages": [ {"role": "user", "content": "你是誰"} ]
}'驗證結果:
HTTP/1.1 200 OK
Keep-Alive: timeout=180, max=2147483647
Content-Length: 2326
Content-Type: application/json
Connection: close
RequestUUID: b43cdc0180c348a087c25dbbea04a068
{"id":"endpoint_common_0","object":"chat.completion","created":1753675122,"model":"qwen3","choices":[{"index":0,"message":{"role":"assistant","tool_calls":null,"content":"<think>\n好的,用戶問“你是誰”,我需要給出一個簡潔明了的回答。首先,我應該介紹自己的名字Qwen,然后說明我是通義實驗室研發的超大規模語言模型。接下來,要列出我的主要功能,比如回答問題、創作文字、邏輯推理、編程等,這樣用戶能了解我的能力范圍。還要提到我支持多語言,這樣用戶知道可以用不同語言交流。最后,保持友好,邀請用戶提問,促進進一步的互動。要確保回答結構清晰,信息全面,但不過于冗長。檢查有沒有遺漏的重要信息,比如我的中文名通義千問,以及多語言支持的具體例子。確認語氣友好專業,沒有使用復雜術語,讓用戶容易理解。現在可以組織語言,確保流暢自然。\n</think>\n\n你好!我是Qwen,是通義實驗室研發的超大規模語言模型。你可以叫我通義千問或Qwen。我能夠回答問題、創作文字(比如寫故事、公文、郵件、劇本等)、進行邏輯推理、編程,甚至表達觀點和玩游戲。我支持多種語言,包括但不限于中文、英文、德語、法語、西班牙語等。\n\n有什么問題或需要幫助的,盡管告訴我!"},"logprobs":null,"finish_reason":"stop"}],"usage":{"prompt_tokens":10,"completion_tokens":253,"total_tokens":263},"prefill_time":80,"decode_time_arr":[65,36,36,36,36,36,37,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,35,36,36,36,36,36,36,36,36,35,36,36,36,36,36,36,36,36,36,36,36,36,36,37,36,36,36,36,36,36,37,36,36,36,51,36,36,36,37,37,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,37,36,36,36,37,37,36,36,36,36,36,37,36,36,36,36,36,36,36,36,36,36,36,36,37,36,36,36,37,36,36,37,36,37,36,36,36,36,37,36,36,36,36,37,36,37,37,36,36,37,37,37,36,37,36,38,37,36,36,36,37,36,36,37,37,36,36,37,36,36,36,36,38,36,36,37,37,36,36,37,36,36,36,36,37,36,36,36,37,36,36,36,37,38,37,37,36,36,36,43,37,36,36,37,37,36,40,37,37,36,36,37,37,36,36,36,42,38,36,36,36,36,37,36,36,45,37,36,36,37,37,38,36,37,37,36,36,36,36,37,36,37,37,36,36,36,36,37,36,36,37,37,36,36,36,37,37,37,37,36,39,36,37,37,37]}三、總結
本文檔詳細介紹了在天翼云昇騰910B物理機上部署 Qwen3-32B 推理服務的完整流程,包括環境準備(磁盤掛載、腳本與鏡像下載、模型配置)、服務配置、啟停操作及可用性驗證。通過遵循本文檔步驟,可高效完成模型推理服務的部署與上線,充分利用天翼云昇騰910B物理機的高性能計算能力。