国产服务器海光DCU部署MuseTalk模型推理验证全流程前言最近在做国产算力适配需要在海光 DCU 上跑通 MuseTalk 唇形同步模型。网上相关资料不多踩了不少坑这里把完整部署过程记录下来希望能帮到同样做国产硬件适配的同学。文末附踩坑避坑指南建议收藏一、MuseTalk 模型简介MuseTalk 是由 Lyra Lab 推出的一款开源实时唇语同步Lip Synchronization项目。简单来说给它一段视频 一段音频它就能生成口型跟音频完美同步的视频。核心亮点在于采用了「潜在空间修复Latent Space Inpainting」技术结合Whisper 音频编码器Stable Diffusion 的 UNet 架构通过跨注意力机制融合音频特征与图像嵌入单步修复即可生成逼真口型不需要像扩散模型那样反复去噪通俗理解不是重新画一张脸而是只修补嘴部区域所以又快又自然能做到实时级别。二、服务器环境配置2.1 硬件配置本次部署使用的服务器硬件信息如下项目规格CPU2× Hygon C86-4G 749032 Core2.0GHzGPU8× 海光 DCU Z100BW1000_H64GB/卡内存256GB系统盘3.6T HDD数据盘3.6T HDD驱动版本6.3.30-V1.4.1a固件版本MEC: 50 / RLC: 2 / SDMA: 12 / SMC: 00.05.03.00科普一下海光 DCUDeep Computing Unit是海光信息自主研发的协处理器对标 NVIDIA GPU配套使用 DTK类似 CUDA Toolkit。下文部署都基于这套体系。2.2 软件版本重要以下版本是经过实际验证的可用组合各组件之间存在严格的版本依赖关系。千万别手贱升级版本不然大概率各种报错。组件名称验证可用版本diffusers0.30.2accelerate0.30.0numpy1.25.0tensorflow2.12.0transformers4.39.2mmcv2.1.0mmdet3.2.0mmpose1.2.0三、Docker 容器环境搭建3.1 为什么用 Docker国产卡的环境依赖比 NVIDIA 更敏感直接在宿主机装很容易把系统环境搞乱。用 Docker 容器隔离干净、可复现出问题删掉重来就行。3.2 拉取基础镜像海光官方提供了适配 DCU 的基础镜像已经内置 DTK 驱动环境dockerpull harbor.sourcefind.cn:5443/dcu/admin/base/vllm:0.9.2-ubuntu22.04-dtk26.04-0130-py3.10-202602023.3 创建并启动容器dockerrun-it\--namemusetalk\--networkhost\--ipchost\--shm-size16G\--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-addSYS_PTRACE\--security-optseccompunconfined\images-id\/bin/bash关键参数说明参数说明--device/dev/kfd/dev/mkfd/dev/dri挂载 DCU 设备节点让容器能识别到卡-v /opt/hyhal:/opt/hyhal挂载海光驱动库必须挂--shm-size16G共享内存调大多卡通信需要images-id替换成实际拉取的镜像 ID四、依赖安装4.1 安装 Python 依赖进入容器后依次执行以下命令# 1. 克隆模型仓库后续操作都在此目录下gitclone https://github.com/TMElyralab/MuseTalk.gitcdMuseTalk# 2. 安装项目基础依赖pipinstall-rrequirements.txt-ihttps://mirrors.aliyun.com/pypi/simple/ pipinstall--no-cache-dir-Uopenmim-ihttps://mirrors.aliyun.com/pypi/simple/# 3. 安装 OpenMMLab 系列注意版本和编译参数pipinstallmmengine-ihttps://pypi.tuna.tsinghua.edu.cn/simple pipinstallsetuptools71-ihttps://pypi.tuna.tsinghua.edu.cn/simple pipinstallmmcv2.1.0--no-build-isolation-ihttps://mirrors.aliyun.com/pypi/simple pipinstallmmdet3.2.0-ihttps://pypi.tuna.tsinghua.edu.cn/simple pipinstallmmpose1.2.0--no-build-isolation-ihttps://pypi.tuna.tsinghua.edu.cn/simple# 4. 安装加速与数值计算库pipinstallaccelerate0.30.0peft0.11.1-ihttps://pypi.tuna.tsinghua.edu.cn/simple pipinstallnumpy1.25.0-ihttps://mirrors.aliyun.com/pypi/simple/踩坑警告mmcv和mmpose安装时一定要加--no-build-isolation参数否则编译阶段会找不到已安装的依赖报ModuleNotFoundError。这个问题排查了好久才搞定。4.2 安装 FFmpegMuseTalk 底层依赖 FFmpeg 做音视频处理必须安装apt-getupdateapt-getinstall-yffmpeg安装完成后验证一下ffmpeg-version能看到版本号就 OK 了。五、模型权重下载5.1 权重组成说明MuseTalk 不是下一个模型文件就完事的推理需要主模型 5 个辅助组件协同工作。先搞清楚每个权重的作用组件作用说明MuseTalk 主模型UNet 核心生成网络负责口型生成sd-vae-ft-mseVAE 模型潜在空间 ↔ 像素空间转换whisper-tiny音频编码器提取语音特征驱动唇形DWPose人脸关键点检测定位面部结构face-parse-bisent面部语义分割确保只改嘴部不动其他区域resnet18提取人脸身份特征保持风格一致性5.2 下载 MuseTalk 主模型主模型从魔搭社区ModelScope下载国内速度比较有保障# 先安装 modelscope 工具pipinstallmodelscope# 下载完整模型库modelscope download--modelAI-ModelScope/MuseTalk下载完成后目录结构如下AI-ModelScope/MuseTalk ├── musetalk │ ├── musetalk.json │ └── pytorch_model.bin ├── musetalkV15 │ ├── musetalk.json │ └── unet.pth ├── .gitattributes ├── configuration.json └── README.md5.3 下载辅助组件权重# 设置 HF 镜像国内访问 HuggingFace 必备exportHF_ENDPOINThttps://hf-mirror.com# 下载 sd-vaehf download stabilityai/sd-vae-ft-mse --local-dir ./sd-vae# 下载 whisperhf download openai/whisper-tiny --local-dir ./whisper# 下载 dwposehf download yzd-v/DWPose --local-dir ./dwpose# 下载 face-parse-bisenthttps://raw.gitcode.com/Universal-Tool/34c31/blobs/1a09b7a9ecf73f6ef175e87706c24730d5a7ddf0/79999_iter.7z# 下载 resnet18wgethttps://download.pytorch.org/models/resnet18-5c106cde.pth小贴士face-parse-bisent下载下来是.7z压缩包需要先解压再使用7z x 79999_iter.7z5.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 执行推理命令环境搭好了权重也下好了直接启动推理cdMuseTalk python-mscripts.inference\--unet_model_path./models/musetalkV15/unet.pth\--unet_config./models/musetalkV15/musetalk.json\--whisper_dir./models/whisper\--inference_configconfigs/inference/test.yaml\--result_dir./results\--versionv15\--use_float16参数详解参数说明--unet_model_pathUNet 权重路径核心生成网络--unet_configUNet 架构配置文件定义网络结构--whisper_dirWhisper 模型目录用于音频特征提取--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_ENDPOINThttps://hf-mirror.comsetuptools版本过高编译失败新版 setuptools 不兼容pip install setuptools71face-parse-bisent 权重无法直接使用下载的是.7z压缩包先解压7z x 79999_iter.7z经验总结国产算力适配的核心在于环境版本的精确匹配和模型文件的组织规范。把这两件事做好大部分模型在国产卡上都能跑起来。参考资料MuseTalk 项目仓库GitHub - TMElyralab/MuseTalk魔搭社区模型页MuseTalk · 模型库写在最后如果这篇文章对你有帮助点赞收藏关注一波三连后续会持续分享更多国产算力部署实操内容。有问题欢迎评论区留言交流