云计算百科
云计算领域专业知识百科平台

国产服务器DCU跑MuseTalk模型推理验证指南

国产服务器海光DCU部署MuseTalk模型推理验证全流程

前言:最近在做国产算力适配,需要在海光 DCU 上跑通 MuseTalk 唇形同步模型。网上相关资料不多,踩了不少坑,这里把完整部署过程记录下来,希望能帮到同样做国产硬件适配的同学。文末附踩坑避坑指南,建议收藏!


一、MuseTalk 模型简介

MuseTalk 是由 Lyra Lab 推出的一款开源实时唇语同步(Lip Synchronization)项目。简单来说,给它一段视频 + 一段音频,它就能生成口型跟音频完美同步的视频。

核心亮点在于采用了「潜在空间修复(Latent Space Inpainting)」技术:

  • 结合 Whisper 音频编码器 + Stable Diffusion 的 UNet 架构
  • 通过跨注意力机制融合音频特征与图像嵌入
  • 单步修复即可生成逼真口型,不需要像扩散模型那样反复去噪

通俗理解:不是"重新画一张脸",而是"只修补嘴部区域",所以又快又自然,能做到实时级别。


二、服务器环境配置

2.1 硬件配置

本次部署使用的服务器硬件信息如下:

项目规格
CPU 2× Hygon C86-4G 7490(32 Core,2.0GHz)
GPU 8× 海光 DCU Z100(BW1000_H,64GB/卡)
内存 256GB
系统盘 3.6T HDD
数据盘 3.6T HDD
驱动版本 6.3.30-V1.4.1a
固件版本 MEC: 50 / RLC: 2 / SDMA: 12 / SMC: 00.05.03.00

科普一下:海光 DCU(Deep Computing Unit)是海光信息自主研发的协处理器,对标 NVIDIA GPU,配套使用 DTK(类似 CUDA Toolkit)。下文部署都基于这套体系。

2.2 软件版本

重要!!! 以下版本是经过实际验证的可用组合,各组件之间存在严格的版本依赖关系。千万别手贱升级版本,不然大概率各种报错。

组件名称验证可用版本
diffusers 0.30.2
accelerate 0.30.0
numpy 1.25.0
tensorflow 2.12.0
transformers 4.39.2
mmcv 2.1.0
mmdet 3.2.0
mmpose 1.2.0

三、Docker 容器环境搭建

3.1 为什么用 Docker?

国产卡的环境依赖比 NVIDIA 更敏感,直接在宿主机装很容易把系统环境搞乱。用 Docker 容器隔离,干净、可复现,出问题删掉重来就行。

3.2 拉取基础镜像

海光官方提供了适配 DCU 的基础镜像,已经内置 DTK 驱动环境:

docker pull harbor.sourcefind.cn:5443/dcu/admin/base/vllm:0.9.2-ubuntu22.04-dtk26.04-0130-py3.10-20260202

3.3 创建并启动容器

docker run -it \\
–name musetalk \\
–network=host \\
–ipc=host \\
–shm-size=16G \\
–device=/dev/kfd \\
–device=/dev/mkfd \\
–device=/dev/dri \\
-v /opt/hyhal:/opt/hyhal \\
-v /path/model/:/models/ \\
-v /path/workspace/:/workspace/ \\
–group-add video \\
–cap-add=SYS_PTRACE \\
–security-opt seccomp=unconfined \\
images-id \\
/bin/bash

关键参数说明:

参数说明
–device=/dev/kfd /dev/mkfd /dev/dri 挂载 DCU 设备节点,让容器能识别到卡
-v /opt/hyhal:/opt/hyhal 挂载海光驱动库,必须挂
–shm-size=16G 共享内存调大,多卡通信需要
images-id 替换成实际拉取的镜像 ID

四、依赖安装

4.1 安装 Python 依赖

进入容器后,依次执行以下命令:

# 1. 克隆模型仓库,后续操作都在此目录下
git clone https://github.com/TMElyralab/MuseTalk.git
cd MuseTalk

# 2. 安装项目基础依赖
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
pip install –no-cache-dir -U openmim -i https://mirrors.aliyun.com/pypi/simple/

# 3. 安装 OpenMMLab 系列(注意版本和编译参数!)
pip install mmengine -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install "setuptools<71" -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install "mmcv==2.1.0" –no-build-isolation -i https://mirrors.aliyun.com/pypi/simple
pip install "mmdet==3.2.0" -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install "mmpose==1.2.0" –no-build-isolation -i https://pypi.tuna.tsinghua.edu.cn/simple

# 4. 安装加速与数值计算库
pip install accelerate==0.30.0 peft==0.11.1 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install numpy==1.25.0 -i https://mirrors.aliyun.com/pypi/simple/

踩坑警告:mmcv 和 mmpose 安装时一定要加 –no-build-isolation 参数!否则编译阶段会找不到已安装的依赖,报 ModuleNotFoundError。这个问题排查了好久才搞定。

4.2 安装 FFmpeg

MuseTalk 底层依赖 FFmpeg 做音视频处理,必须安装:

apt-get update && apt-get install -y ffmpeg

安装完成后验证一下:

ffmpeg -version

能看到版本号就 OK 了。


五、模型权重下载

5.1 权重组成说明

MuseTalk 不是下一个模型文件就完事的,推理需要主模型 + 5 个辅助组件协同工作。先搞清楚每个权重的作用:

组件作用说明
MuseTalk 主模型 UNet 核心生成网络,负责口型生成
sd-vae-ft-mse VAE 模型,潜在空间 ↔ 像素空间转换
whisper-tiny 音频编码器,提取语音特征驱动唇形
DWPose 人脸关键点检测,定位面部结构
face-parse-bisent 面部语义分割,确保只改嘴部不动其他区域
resnet18 提取人脸身份特征,保持风格一致性

5.2 下载 MuseTalk 主模型

主模型从魔搭社区(ModelScope)下载,国内速度比较有保障:

# 先安装 modelscope 工具
pip install modelscope

# 下载完整模型库
modelscope download –model AI-ModelScope/MuseTalk

下载完成后目录结构如下:

AI-ModelScope/MuseTalk
├── musetalk
│ ├── musetalk.json
│ └── pytorch_model.bin
├── musetalkV15
│ ├── musetalk.json
│ └── unet.pth
├── .gitattributes
├── configuration.json
└── README.md

5.3 下载辅助组件权重

# 设置 HF 镜像(国内访问 HuggingFace 必备)
export HF_ENDPOINT=https://hf-mirror.com

# 下载 sd-vae
hf download stabilityai/sd-vae-ft-mse –local-dir ./sd-vae

# 下载 whisper
hf download openai/whisper-tiny –local-dir ./whisper

# 下载 dwpose
hf download yzd-v/DWPose –local-dir ./dwpose

# 下载 face-parse-bisent
https://raw.gitcode.com/Universal-Tool/34c31/blobs/1a09b7a9ecf73f6ef175e87706c24730d5a7ddf0/79999_iter.7z

# 下载 resnet18
wget https://download.pytorch.org/models/resnet18-5c106cde.pth

小贴士:face-parse-bisent 下载下来是 .7z 压缩包,需要先解压再使用:7z x 79999_iter.7z

5.4 整理模型目录

所有权重下载完成后,按以下结构统一放到 ./models/ 目录下:

./models/
├── musetalk
│ ├── musetalk.json
│ └── pytorch_model.bin
├── dwpose
│ └── dw-ll_ucoco_384.pth
├── face-parse-bisent
│ ├── 79999_iter.pth
│ └── resnet18-5c106cde.pth
├── sd-vae
│ ├── config.json
│ └── diffusion_pytorch_model.bin
└── whisper
├── config.json
├── pytorch_model.bin
└── preprocessor_config.json

目录结构很关键!!! MuseTalk 推理脚本中对每个权重路径都有引用,放错位置会直接报 FileNotFoundError。务必严格按照上面的结构整理。


六、推理启动

6.1 执行推理命令

环境搭好了,权重也下好了,直接启动推理:

cd MuseTalk
python -m scripts.inference \\
–unet_model_path ./models/musetalkV15/unet.pth \\
–unet_config ./models/musetalkV15/musetalk.json \\
–whisper_dir ./models/whisper \\
–inference_config configs/inference/test.yaml \\
–result_dir ./results \\
–version v15 \\
–use_float16

参数详解:

参数说明
–unet_model_path UNet 权重路径,核心生成网络
–unet_config UNet 架构配置文件,定义网络结构
–whisper_dir Whisper 模型目录,用于音频特征提取
–inference_config 全局配置文件,定义输入视频和音频路径
–result_dir 输出目录,合成视频存这里
–version v15 使用 MuseTalk v1.5 版本
–use_float16 开启 FP16 半精度推理,省显存提速度

关于 test.yaml:这个文件配置了你要处理的视频和音频路径。想用自己的素材,改这个文件里的路径就行。

6.2 推理结果展示

脚本执行完成后,生成的视频会输出到 ./results 目录下。

在这里插入图片描述

可以看到,生成视频的口型与音频同步效果良好,画面清晰度也没有明显损失。至此,MuseTalk 在海光 DCU 上的推理部署就完成了!


七、测试总结

部署结论

MuseTalk 模型可以在海光 DCU 国产算力平台上稳定运行,端到端推理流程正常,生成质量达标,验证了该模型在国产硬件环境下的技术可行性。

四个关键结论

维度结论
硬件适配 UNet、Whisper、VAE 等核心组件均可在 DCU Z100 上正常运行,无算子不兼容
运行稳定性 端到端推理无异常中断,驱动版本与软件环境匹配良好
生成质量 FP16 模式下唇形同步效果与画面清晰度无明显衰减
性能优化 半精度推理有效降低显存占用,为多并发场景预留资源空间

八、踩坑避坑指南(精华部分)

部署过程中遇到的常见问题及解决方案,建议收藏备用:

问题现象原因分析解决方案
安装 mmcv/mmpose 时报 ModuleNotFoundError 编译隔离导致找不到依赖 加 –no-build-isolation 参数
权重加载报 FileNotFoundError 模型目录结构不对 严格按照 5.4 节目录结构整理
容器内找不到 DCU 设备 设备节点未挂载 检查 –device=/dev/kfd 等参数
HuggingFace 下载超时 网络访问问题 设置 HF_ENDPOINT=https://hf-mirror.com
setuptools 版本过高编译失败 新版 setuptools 不兼容 pip install "setuptools<71"
face-parse-bisent 权重无法直接使用 下载的是 .7z 压缩包 先解压:7z x 79999_iter.7z

经验总结:国产算力适配的核心在于环境版本的精确匹配和模型文件的组织规范。把这两件事做好,大部分模型在国产卡上都能跑起来。


参考资料

  • MuseTalk 项目仓库:GitHub – TMElyralab/MuseTalk
  • 魔搭社区模型页:MuseTalk · 模型库

写在最后:如果这篇文章对你有帮助,点赞+收藏+关注一波三连,后续会持续分享更多国产算力部署实操内容。有问题欢迎评论区留言交流!

赞(0)
未经允许不得转载:网硕互联帮助中心 » 国产服务器DCU跑MuseTalk模型推理验证指南
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!