2026年6月17日,GLM-5.2正式发布并开源,在长序列处理、推理效率与任务可控性方面实现了三大核心升级:
1M超长上下文:上下文窗口由192K扩展至1M,覆盖百万级Token的文档分析与多轮交互场景。
IndexShare索引共享:针对动态稀疏注意力(DSA)中每层独立索引器开销过大的瓶颈,每4层共享一个轻量级Indexer,省去后3层的点积与Top-K运算,索引成本摊薄至1/4,使百万上下文在工程上真正可行。
Slime强化学习与Effort Level控制:引入异步强化学习框架增强长程推理能力;新增推理控制接口,允许用户根据任务复杂度动态分配算力——复杂场景深度思考提升准确率,简单任务快速响应,实现推理速度提升25%、长序列成本降低50%的工程平衡。
资源要求
管理节点:1 台搭载昇腾 910B NPU 的节点(每节点 8 × 64GB 昇腾 910B,HBM2e 显存)。
计算节点:3 台搭载昇腾 910B NPU 的节点(每节点 8 × 64GB 昇腾 910B,HBM2e 显存)。
共享存储:根据资源池选择 OceanFS 或 SFS Turbo,容量需满足模型权重、数据集与镜像存储需求(默认500GB)。
网络:节点间使用 RoCE 或高速以太网连接,管控节点绑定 EIP 用于公网访问,EIP 避免直接暴露在公网,具体可参照安全防护。
环境准备
1.集群开通
天翼云高性能计算集群(HCC)平台拥有 基础版 和 大模型精简版 两种集群版本,根据开通机器类型建议选择 大模型精简版 :
高性能计算集群(HCC) 大模型精简版
功能定位:包含 Slurm 调度系统、apptainer 高性能容器,实现deepseek服务一键启停。
开通步骤:
登录天翼云控制台,进入“弹性高性能计算”产品页面,选择“高性能计算集群”,点击进入集群控制台。
点击“创建集群”,在集群类型中选择“大模型精简版”。
依次配置各项参数,包括计费模式、地域、可用区、集群名称、虚拟私有云、安全组、共享存储( SFS 或 OceanFS)、管理节点和计算节点的对应规格、镜像、磁盘、子网、登录密码。(注:当前 大模型精简版 暂不支持无计算节点的集群创建,需至少配置1台计算节点)
确认所有配置无误后,提交订单并完成集群创建,等待节点纳管完成,直至集群页面显示“可用”“配置完成”状态。
点击已创建的集群,选择左侧“节点”栏,删除配置的计算节点,仅保留管理节点即可。
2.NVMe 磁盘挂载配置
昇腾910B物理机默认配备2×3.2T NVMe SSD,请格式化后用于存储模型文件,提升推理性能。
需将节点的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 "所有磁盘已成功挂载并配置为开机自动挂载!"将以上脚本保存为mount.sh,并执行
sh mount.sh本指南中部署将统一使用以下路径:
高速容器存储路径:
/mnt/nvme0n1/apptainer/服务部署工作路径:
/mnt/nvme0n1/deepseek/模型权重参数路径:
/mnt/nvme1n1/model/
建议将权重参数放在单独的nvme盘中,启动加载时更快。
3.管理节点加入计算队列
Slurm 集群默认架构设计中,管理节点常规场景下不纳入计算调度队列。在大模型训推、高性能算力作业场景下,单靠原有计算节点资源难以满足大模型权重加载、容器运行、推理生成的高算力与大内存诉求。
为最大化挖掘整机集群资源利用率、扩充可用算力规模,需将管理节点从纯管理模式,纳入 Slurm 计算调度队列,使其同时承担集群管理 + 大模型算力计算双重角色,统一参与大模型相关作业调度与算力承载。
sed -i 's/^\s*noderole\s*=.*/NodeRole=server,execute/i' /usr/local/galaxy/cluster/default/galaxy-launcher/etc/launcher.conf
launcher resource setup_scheduler
# {"success": true, "result": null}
# master0001为管控节点hostname,按实际修改;batch是队列名,在计算节点下单页可自定义命名,建议用batch
launcher resource add_node --node_name master0001 --queue_name batch
# {"success": true, "result": null}命令执行成功后,可通过sinfo命令查看计算队列节点
# 查看计算队列节点
sinfo
# PARTITION AVAIL TIMELIMIT NODES STATE NODELIST
# batch* up infinite 4 idle compute[0001-0003],master0001物料准备
1.模型文件获取
方式一:(极速)使用cthpc一键安装工具,分钟级快速下发模型,当前支持:
mkdir -p /mnt/nvme1n1/model
# 使用 cthpc 工具极速下发
cthpc model makecache
cthpc model install GLM-5.2-w8a8 --dir /mnt/nvme1n1/model/方式二:(传统方式速度慢)基于modelscope、魔乐社区、huggingface平台,使用对应工具直接下载(不推荐,受限于公网EIP订阅的带宽大小)
mkdir -p /mnt/nvme1n1/model
# modelscope下载依赖python3.8+的环境,若缺失,则需要构建虚拟环境
pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install modelscope
modelscope download --model Eco-Tech/GLM-5.2-w8a8 --local_dir /mnt/nvme1n1/model/DeepSeek-V4-Pro-w4a8-mtp2.高性能容器SIF文件获取
基于Apptainer(原 Singularity) 封装的 vLLM-Ascend 昇腾推理加速包,高性能计算集群产品将持续迭代优化,原生适配昇腾 NPU 硬件、无权限壁垒、极致轻量化、生产级稳定,全面超越传统 Docker 容器,是昇腾 AI 推理场景的最优融合选择。
方式一:(极速)使用cthpc一键安装工具,秒级快速下发apptainer高性能容器灌装,当前支持:
mkdir -p /mnt/nvme0n1/apptainer
# 使用 cthpc 工具极速下发
cthpc apptainer makecache
cthpc apptainer install vllm-ascend_glm5.2 --dir /mnt/nvme0n1/apptainer/方式二:(传统方式速度慢)通过天翼云zos站点直接下载(不推荐,受限于公网EIP订阅的带宽大小)
mkdir -p /mnt/nvme0n1/apptainer
# 使用 wget 从 天翼云ZOS 下载 SIF 镜像
wget https://jiangsu-10.zos.ctyun.cn/galaxy/apptainer/vllm_ascend/vllm-ascend_glm5.2.sif镜像更新说明
华为会持续更新 vllm-ascend 包,优化推理性能与兼容性。更新时只需重新下载最新 SIF 镜像,替换旧文件即可,无需修改部署配置。
3.模型权重及高性能容器分发至所有节点
将 AI 模型权重文件与高性能业务容器镜像统一分发至集群所有计算节点,确保全节点模型文件、运行环境完全一致,避免单机重复下载。
进入集群工作目录:
mkdir -p /home/bcast
cd /home/bcast创建 / 编辑分发脚本 srun_bcast.sh:
#!/bin/bash
#SBATCH --job-name=bcast
#SBATCH --nodes=4
#SBATCH --ntasks-per-node=1
#SBATCH --partition=batch # batch 需修改为集群初始化时设置的队列名
#SBATCH --time=01:00:00
#SBATCH --output=log_%j.out
#SBATCH --error=log_%j.err
export MPICH_NET_DEV=eno0
module load mpich/3.2.1/gcc-10.3.1
module load cthpc_910b/2.0.0/mpich-3.2.1
# cthpc_model_bcast [发送节点] [发送节点路径] [接受节点路径]
# 管理节点名如 master0001
srun --mpi=pmi2 \
--output=logs/log_%j_%t.log \
--error=logs/log_%j_%t.err \
cthpc_model_bcast master0001 /mnt/nvme0n1/apptainer /mnt/nvme0n1/apptainer
srun --mpi=pmi2 \
--output=logs/log_%j_%t.log \
--error=logs/log_%j_%t.err \
cthpc_model_bcast master0001 /mnt/nvme1n1/model/GLM-5.2-w8a8 /mnt/nvme1n1/model/GLM-5.2-w8a8提交任务至 Slurm 调度器执行分发
sbatch srun_bcast.sh当前cthpc_model_bcast在部分资源池上线,如您的提交任务时提示不存在二进制文件,请联系天翼云。
推理服务启停
1.创建部署目录
mkdir -p /home/glm-5.2
mkdir -p /home/glm-5.2/logs2.准备启动脚本
将以下脚本保存至/home/glm-5.2/srun.sh
#!/bin/bash
#SBATCH -N 4
#SBATCH --partition=batch
#SBATCH -J glm
#SBATCH -o logs/log_%J.out
#SBATCH -e logs/log_%J.err
#SBATCH --gres=gpu:8
#SBATCH --cpus-per-task=190
#SBATCH --nodelist=master0001,compute0001,compute0002,compute0003
export LC_CTYPE=C.UTF-8
export MASTER_ADDR=$(scontrol show hostnames "$SLURM_JOB_NODELIST" | head -n 1 | hostname -i)
export MODEL_NAME=GLM-5.2
export MODEL_PORT=11025
export MODEL_DIR=/mnt/nvme1n1/model/GLM-5.2-w8a8
export VLLM_IMG=vllm-ascend_glm5.2.sif
echo "模型推理服务API为:http://$MASTER_ADDR:$MODEL_PORT/v1"
echo "模型名称为:$MODEL_NAME"
srun --ntasks-per-node=1 \
-o logs/log_%J.%t.out \
-e logs/log_%J.%t.err \
./node.sh3.准备节点部署脚本
将以下脚本保存至/home/glm-5.2/node.sh
#!/bin/sh
nic_name="eno0"
local_ip=$(hostname -I | awk '{print $1}')
node0_ip=$MASTER_ADDR
export HCCL_IF_IP=$local_ip
export GLOO_SOCKET_IFNAME=$nic_name
export TP_SOCKET_IFNAME=$nic_name
export HCCL_SOCKET_IFNAME=$nic_name
export HCCL_OP_EXPANSION_MODE="AIV"
export VLLM_RPC_TIMEOUT=360000
export VLLM_EXECUTE_MODEL_TIMEOUT_SECONDS=3000
export HCCL_EXEC_TIMEOUT=200
export HCCL_CONNECT_TIMEOUT=120
export OMP_PROC_BIND=false
export OMP_NUM_THREADS=10
export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True
export ACL_OP_INIT_MODE=1
export TASK_QUEUE_ENABLE=1
export CPU_AFFINITY_CONF=1
export VLLM_ENGINE_READY_TIMEOUT_S=1200
export VLLM_VERSION=0.21.0
export HCCL_IF_BASE_PORT=50000
apptainer instance start --no-home --writable-tmpfs \
-B /usr/local/sbin:/usr/local/sbin \
-B /usr/local/Ascend/driver:/usr/local/Ascend/driver \
-B $MODEL_DIR:/model \
$VLLM_IMG app-instance
if [ $SLURM_NODEID == 0 ]; then
apptainer exec instance://app-instance \
vllm serve \
/model \
--served-model-name "$MODEL_NAME" \
--host 0.0.0.0 \
--port 11025 \
--data-parallel-size $SLURM_NNODES \
--data-parallel-size-local 1 \
--data-parallel-address $node0_ip \
--data-parallel-rpc-port 13389 \
--tensor-parallel-size 8 \
--quantization ascend \
--seed 1024 \
--enable-expert-parallel \
--max-num-seqs 32 \
--max-model-len 132000 \
--max-num-batched-tokens 4096 \
--block-size 128 \
--trust-remote-code \
--async-scheduling \
--enable-chunked-prefill \
--enable-prefix-caching \
--gpu-memory-utilization 0.95 \
--safetensors-load-strategy 'prefetch' \
--additional-config '{"fuse_muls_add": true, "multistream_overlap_shared_expert": true, "ascend_compilation_config": {"enable_npugraph_ex": true}}' \
--compilation-config '{"cudagraph_mode": "FULL_DECODE_ONLY"}' \
--speculative-config '{"num_speculative_tokens": 5, "method": "deepseek_mtp"}'
else
apptainer exec instance://app-instance \
vllm serve \
/model \
--served-model-name "$MODEL_NAME" \
--host 0.0.0.0 \
--port 11025 \
--headless \
--data-parallel-size $SLURM_NNODES \
--data-parallel-size-local 1 \
--data-parallel-start-rank $SLURM_NODEID \
--data-parallel-address $node0_ip \
--data-parallel-rpc-port 13389 \
--tensor-parallel-size 8 \
--quantization ascend \
--seed 1024 \
--enable-expert-parallel \
--max-num-seqs 32 \
--max-model-len 132000 \
--max-num-batched-tokens 4096 \
--block-size 128 \
--trust-remote-code \
--async-scheduling \
--enable-chunked-prefill \
--enable-prefix-caching \
--gpu-memory-utilization 0.95 \
--safetensors-load-strategy 'prefetch' \
--additional-config '{"fuse_muls_add": true, "multistream_overlap_shared_expert": true, "ascend_compilation_config": {"enable_npugraph_ex": true}}' \
--compilation-config '{"cudagraph_mode": "FULL_DECODE_ONLY"}' \
--speculative-config '{"num_speculative_tokens": 5, "method": "deepseek_mtp"}'
fi4.服务启动与停止
# 进入部署目录
cd /home/glm-5.2
# 设置节点启动脚本执行权限
chmod +x node.sh
# 启动 DeepSeek 服务
sbatch srun.sh
# 查看npu运行状态
npu-smi info
# 查看实例和作业运行信息
squeue
# 示例输出
# JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
# 1 batch glm root R 3:04:45 4 compute[0001-0003],master0001
# 停止一项服务
# scancel [JOBID],根据上文glm服务的JOBID为1
scancel 1
# 停止全部服务
scancel --me服务验证与运维
1.推理服务验证
测试方法:向大模型问一个简单的问题,准备如下脚本并保存到check.sh
#!/bin/bash
curl http://localhost:11025/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "GLM-5.2",
"messages": [
{"role":"user","content":"你是谁?"}
],
"extra": {"openai_proxy":true}
}'成功响应示例:
sh check.sh
# {"id":"chatcmpl-a5affa3fb86eb117","object":"chat.completion","created":1781750285,"prompt_routed_experts":null,"model":"GLM-5.2","choices":[{"index":0,"message":{"role":"assistant","content":"让我思考如何介绍自己。首先,需要明确用户想了解什么 - 可能是对我的基本身份、功能特点和能力的介绍。\n\n作为一个语言模型,我的核心是基于深度学习的自然语言处理技术。这让我能够理解和回应各种语言输入,进行对话交互。不过要强调,我是通过大规模文本数据训练而成,而不是具有自我意识的实体。\n\n在介绍具体能力时,需要突出几个关键方面:首先是理解和生成人类语言的能力,包括回答问题、创作内容等;其次是知识获取和处理能力,这源于训练数据中的广泛信息;最后是交互特点,如保持对话连贯性、理解上下文等。\n\n同时也要坦诚地说明限制 - 我不能实时获取信息、不能执行物理操作、不能处理个人数据等。这些都是重要的边界说明。\n\n为了让介绍更加平实自然,应该用简单清晰的语言,避免过于技术化的表述。重点放在我能为用户做什么,以及如何有效地与我互动。\n\n考虑到用户可能是初次接触,还需要提供一些使用建议,比如如何更好地提出问题,这样能帮助用户更好地利用我的能力。</think>我是GLM,一个由Z.ai训练的大语言模型。我通过大规模文本数据训练而成,能够理解和生成人类语言,回答问题,提供信息和协助完成各种语言任务。\n\n我没有自我意识或情感,但我可以根据我的训练数据理解和回应各种话题。我不能访问互联网或获取实时信息,也不能存储你的个人数据。\n\n有什么特定的问题或者需要我帮助的事情吗?我很乐意在你的需求范围内提供支持。","refusal":null,"annotations":null,"audio":null,"function_call":null,"reasoning":null},"logprobs":null,"finish_reason":"stop","stop_reason":154827,"token_ids":null,"routed_experts":null}],"service_tier":null,"system_fingerprint":"vllm-0.1.dev1+g418bd6273-tp8-dp4-ep-e980c6ad","usage":{"prompt_tokens":14,"total_tokens":318,"completion_tokens":304,"prompt_tokens_details":null,"completion_tokens_details":null},"prompt_logprobs":null,"prompt_token_ids":null,"prompt_text":null,"kv_transfer_params":null}2.推理日志查看
若服务异常,可通过日志排查问题:
# 查看模型推理服务API及模型名
tail -f /home/glm-5.2/logs/log.$JOBID.out
# 查看作业输出日志
tail -f /home/glm-5.2/logs/log.$JOBID.${节点编号}.out
# 查看错误日志
tail -f /home/glm-5.2/logs/log.$JOBID.${节点编号}.err其中JOBID可通过squeue命令查看,节点编号格式为0.x,x从0开始,表示第一个节点。
注意事项
模型版本管理:建议对模型权重、SIF 镜像进行版本化管理,避免更新后无法回滚。
安全防护:生产环境建议配置安全组IP 白名单,减少公网暴露面,并通过天翼云 WAF 防护恶意攻击,推荐以下5种安全组网方案:
ELB+VPN
ELB+NAT 网关。
DDoS+WAF+ELB+NATGW+VPN。
DDoS+WAF+ELB+SDWAN。
DDoS+WAF+ELB+专线
附录
天翼云 HCC 产品文档:弹性高性能计算-产品文档-帮助中心 - 天翼云
DeepSeek-V4 模型下载地址:https://modelscope.cn/collections/deepseek-ai/DeepSeek-V4