昇腾 0 Day 支持 Hunyuan4-preview,770B MoE 旗舰模型开源即适配
今天腾讯混元发布并开源新一代大语言模型 Hy4 preview。总参数量达到 770B,每个 Token 实际激活约 49B 参数,上下文长度突破 1M,在代码、办公、科学等生产力任务上展现出卓越能力,稳居开源模型第一梯队。
作为腾讯混元从"通用对话"迈向"生产力智能"的重要一步,Hy4 preview 不再以单一任务能力为边界,而是在超大上下文、MoE 高效推理、递归自我优化等方向同步推进。模型一经开源发布,昇腾 AI 基础软硬件即实现 0day 支持,基于 vLLM-Ascend 在 Atlas 800I A3 系列产品上完成快速适配部署,展现出昇腾对前沿大模型的原生兼容与敏捷响应能力。
01 ADAPTATION|昇腾 0day 适配:基于 vLLM-Ascend 快速部署
得益于昇腾长期沉淀的 AI 基础软硬件生态体系,依托 CANN 异构计算架构、torch_npu 算子兼容层与 vLLM-Ascend 推理引擎,昇腾能够高效支撑 Hy4 preview 这类 MoE 架构创新型模型,真正做到"发布即支持"。
本次适配基于 W8A8 量化权重,权重大约 762G,使用 vLLM-Ascend 在 Ascend NPU 上完成推理部署。核心软件栈版本如下:
| 项目 | 版本 |
|---|---|
| 硬件设备 | Atlas 800I A3(16 卡设备) |
| CANN 版本 | 9.0.1 |
| torch_npu 版本 | 2.10.0.post2 |
| vLLM-Ascend 版本 | 基于 v0.23.0 开发 |
| HDK 推荐版本 | 25.5.0 |
用户只需拉取预构建的 Docker 镜像 quay.io/ascend/vllm-ascend:hy4,挂载 NPU 设备与权重目录,即可启动推理服务,无需手动编译适配层。
拉取并启动 Docker 容器:
docker pull quay.io/ascend/vllm-ascend:hy4
export IMAGE=quay.io/ascend/vllm-ascend:hy4
export CONTAINER_NAME=vllm_ascend_hy4
# 生成 NPU 设备挂载参数(Atlas 800I A3: /dev/davinci[0-15])
DEVICES=""
for i in $(seq 0 15); do
DEVICES="${DEVICES} --device /dev/davinci${i}"
done
docker run -itd \
--name ${CONTAINER_NAME} \
--shm-size=1000g \
${DEVICES} \
--device /dev/davinci_manager \
--device /dev/devmm_svm \
--device /dev/hisi_hdc \
-v /usr/local/dcmi:/usr/local/dcmi \
-v /usr/local/Ascend/driver/tools/hccn_tool:/usr/local/Ascend/driver/tools/hccn_tool \
-v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \
-v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/ \
-v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info \
-v /etc/ascend_install.info:/etc/ascend_install.info \
-v /mnt/weight:/mnt/weight \
${IMAGE} bash
进入容器交互式环境:
docker exec -it ${CONTAINER_NAME} bash
02 DEPLOYMENT|部署方案:单机验证与双机长序列
针对不同使用场景,昇腾提供了两种部署配置。
单机 TP=16 整卡推理
适用于模型验证与低并发短序列场景。Atlas 800I A3 单机 16 卡张量并行,启动参数开启专家并行(--enable-expert-parallel)与 MTP 推测解码(--speculative-config),量化方式使用昇腾自研 W8A8 量化(--quantization ascend)。
容器内执行 vllm serve 启动推理服务:
export HCCL_BUFFSIZE=128
export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True
export ASCEND_LAUNCH_BLOCKING=0
export VLLM_LOGGING_LEVEL=INFO
export VLLM_USE_V1=1
export VLLM_ASCEND_ENABLE_MLAPO=1
export VLLM_ENGINE_READY_TIMEOUT_S=1800
vllm serve /path/to/Hy4-preview-w8a8 \
--host 127.0.0.1 --port 8000 \
--tensor-parallel-size 16 \
--served-model-name hy4 \
--max-num-seqs 8 \
--max-model-len 512 \
--max-num-batched-tokens 512 \
--enable-expert-parallel \
--trust-remote-code \
--quantization ascend \
--gpu-memory-utilization 0.92 \
--seed 1024 \
--compilation-config '{"cudagraph_mode": "FULL_DECODE_ONLY"}' \
--speculative-config '{"method": "mtp","num_speculative_tokens": 3}' \
--additional-config '{"ascend_compilation_config": {"enable_npugraph_ex": true}}'
功能验证:
# 检查模型就绪状态
curl -sf http://127.0.0.1:8000/v1/models
# 发送推理请求
curl -sS -X POST http://127.0.0.1:8000/v1/chat/completions \
-H 'Content-Type: application/json' \
-d '{
"model":"hy4",
"messages":[{"role":"user","content":"Who are you?"}],
"max_tokens":256,
"temperature":0
}'
受限于单机显存,A3 单机支持约 1K 上下文,max-num-seqs 设为 8,适合功能验证与开发调试。
双机 DP=2 跨机部署
适用于长序列与高并发生产场景。2 台 Atlas 800I A3 组成数据并行,每机 TP=16,上下文可扩展到 32K,并发提升至 256。两节点通过 --net=host 共享宿主网络,节点 1 承载 DP rank 0 与 API 服务,节点 2 以 headless worker 模式运行。
启动顺序为先拉起节点 1,看到 Started DP Coordinator process 日志后再启动节点 2,约 20 分钟后看到 Application startup complete 即服务就绪。首次加载耗时与磁盘读写权重速度相关。
节点 1 脚本:
#!/bin/bash
set -u
# === 节点网络配置(按实际环境调整网卡名与 IP)===
NODE1_IP="192.168.1.1" # Node 1 IP,更改为机器实际 IP
NODE2_IP="192.168.1.2" # Node 2 IP,更改为机器实际 IP
NIC="eth0" # 更改为 NODE1_IP 对应的网卡名称,可以通过 `ifconfig` 命令查看
DP_RPC_PORT=12890
# === 服务配置 ===
MODEL="/path/to/Hy4-preview-w8a8" # 更改为实际权重路径
PORT=8000
# === 环境变量 ===
export HCCL_OP_EXPANSION_MODE=AIV
export HCCL_IF_IP=${NODE1_IP}
export GLOO_SOCKET_IFNAME=${NIC}
export TP_SOCKET_IFNAME=${NIC}
export HCCL_SOCKET_IFNAME=${NIC}
export OMP_PROC_BIND=false
export OMP_NUM_THREADS=10
export VLLM_USE_V1=1
export HCCL_BUFFSIZE=128
export VLLM_ASCEND_ENABLE_MLAPO=1
export VLLM_ASCEND_ENABLE_FUSED_MC2=1
export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True
export VLLM_ENGINE_READY_TIMEOUT_S=1800
vllm serve ${MODEL} \
--host 0.0.0.0 \
--port ${PORT} \
--data-parallel-size 2 \
--data-parallel-size-local 1 \
--data-parallel-address ${NODE1_IP} \
--data-parallel-rpc-port ${DP_RPC_PORT} \
--tensor-parallel-size 16 \
--served-model-name hy4 \
--enable-expert-parallel \
--max-num-seqs 256 \
--max-model-len 96000 \
--max-num-batched-tokens 1024 \
--trust-remote-code \
--quantization ascend \
--gpu-memory-utilization 0.85 \
--seed 1024 \
--compilation-config '{"cudagraph_mode": "FULL_DECODE_ONLY"}' \
--speculative-config '{"method": "mtp","num_speculative_tokens": 3}' \
--additional-config '{"ascend_compilation_config": {"enable_npugraph_ex": true}}'
节点 2 脚本:
#!/bin/bash
set -u
# === 节点网络配置 ===
NODE1_IP="192.168.1.1" # Node 1 IP,更改为机器实际 IP
NODE2_IP="192.168.1.2" # Node 2 IP,更改为机器实际 IP
NIC="eth0" # 更改为 NODE2_IP 对应的网卡名称,可以通过 `ifconfig` 命令查看
DP_RPC_PORT=12890
# === 服务配置(与节点 1 对齐)===
MODEL="/path/to/Hy4-preview-w8a8" # 更改为实际权重路径
# === 环境变量(与节点 1 一致)===
export HCCL_OP_EXPANSION_MODE=AIV
export HCCL_IF_IP=${NODE2_IP}
export GLOO_SOCKET_IFNAME=${NIC}
export TP_SOCKET_IFNAME=${NIC}
export HCCL_SOCKET_IFNAME=${NIC}
export OMP_PROC_BIND=false
export OMP_NUM_THREADS=10
export VLLM_USE_V1=1
export HCCL_BUFFSIZE=128
export VLLM_ASCEND_ENABLE_MLAPO=1
export VLLM_ASCEND_ENABLE_FUSED_MC2=1
export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True
export VLLM_ENGINE_READY_TIMEOUT_S=1800
vllm serve ${MODEL} \
--headless \
--data-parallel-start-rank 1 \
--data-parallel-size 2 \
--data-parallel-size-local 1 \
--data-parallel-address ${NODE1_IP} \
--data-parallel-rpc-port ${DP_RPC_PORT} \
--tensor-parallel-size 16 \
--enable-expert-parallel \
--max-num-seqs 256 \
--max-model-len 96000 \
--max-num-batched-tokens 1024 \
--trust-remote-code \
--quantization ascend \
--gpu-memory-utilization 0.85 \
--seed 1024 \
--compilation-config '{"cudagraph_mode": "FULL_DECODE_ONLY"}' \
--speculative-config '{"method": "mtp","num_speculative_tokens": 3}' \
--additional-config '{"ascend_compilation_config": {"enable_npugraph_ex": true}}'
说明:--data-parallel-address 在节点 1 填本机 IP(即协调者),在节点 2 填头节点 IP;--data-parallel-start-rank 仅在 headless 节点填写。
由于权重较大,加载耗时和磁盘读取速度有关,首次加载通常需要 10 分钟左右。屏幕上出现以下日志表明拉起服务成功:
INFO: Started server process [PID]
INFO: Waiting for application startup.
INFO: Application startup complete.
服务启动后,通过标准 OpenAI 兼容接口发送推理请求:
curl -sS -X POST http://127.0.0.1:8000/v1/chat/completions \
-H 'Content-Type: application/json' \
-d '{
"model":"hy4",
"messages":[{"role":"user","content":"Who are you?"}],
"max_tokens":256,
"temperature":0
}'
03 ARCHITECTURE|模型架构:770B MoE + 原生 MTP 推测解码
Hy4 preview 是腾讯 Hy 团队研发的新一代旗舰级混合专家(MoE)模型,架构设计上有几个值得关注的点。
骨干网络:78 层 MoE 结构。
第 1 层采用标准的稠密前馈网络(Dense FFN),其余 77 层均为 MoE 结构。每个 MoE 层包含 256 个路由专家 与 1 个共享专家,对于每个 Token,模型从 256 个路由专家中选择 Top-8 个专家进行计算,同时始终激活共享专家。这种"多专家 + 共享专家"的设计,在保证模型容量的同时控制了单 Token 计算量。
原生 MTP 层:内置推测解码能力。
除骨干网络外,模型还内置了 1 个原生 MTP(Multi-Token Prediction)层,总参数量约 10B,每个 Token 激活约 0.7B 参数,用于支持推测解码(Speculative Decoding)。在昇腾部署中,通过 --speculative-config 即可开启,进一步提升推理吞吐。
上下文长度突破 1M。
在模型尺寸、上下文长度、数据规模上均较前代显著扩展,预训练与后训练同步推进,在智能体编程、智能体搜索等生产力任务上表现突出。
04 OPEN SOURCE|开源开放:权重已上线,多产品可体验
Hy4 preview 现已全面开源,权重上线 AtomGit 等平台,开发者可自由下载、部署与二次开发。
模型权重下载地址:
- AtomGit:https://ai.atomgit.com/tencent_hunyuan/Hy4-preview
- W8A8 量化版:https://ai.atomgit.com/Eco-Tech/Hy4-preview-w8a8
- 昇腾部署镜像:quay.io/ascend/vllm-ascend:hy4
API 方面,模型已在腾讯云 TokenHub 与 OpenRouter 上线,企业用户可直接通过 API 接入。
产品体验方面,WorkBuddy / CodeBuddy(国内版及国际版)、元宝、ima 等腾讯产品已同步支持,用户可直接体验 Hy4 preview 的能力。
从 Hy3 到 Hy4 preview,昇腾始终保持对腾讯混元系列模型的 0day 适配支持。基于 CANN 异构计算架构、torch_npu 算子兼容层与 vLLM-Ascend 推理引擎,昇腾为开源大模型提供从模型发布到生产部署的全链路国产算力支撑,真正做到"开源即适配,适配可落地"。
昇腾将持续与腾讯混元紧密协作,深化对 Hy4 preview 及未来模型的技术优化,围绕 MoE 架构推理、超长上下文、专家并行与推测解码等方向持续打磨,共同为全球 AI 开发者和企业用户,提供更强大、更高效、更易用的大模型推理基础设施。
昇腾,让国产算力更懂大模型。立即体验 Hy4 preview,开启您的高效推理之旅!
鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。
更多推荐


所有评论(0)