在阿里云 GPU 服务器上部署腾讯混元 HunyuanVideo:完整步骤

从实例选型、CUDA 环境、Conda 与 PyTorch 安装、Flash Attention 编译,到 HuggingFace 模型下载与首次推理,完整记录在阿里云 GPU 服务器上跑通腾讯开源视频生成模型 HunyuanVideo 的全过程。

阅读时长: 3 分钟
共 1335字
作者: eimoon.com

腾讯开源的 HunyuanVideo 是目前参数量最大的开源文生视频模型之一,效果接近闭源商用产品。本文记录我在阿里云 GPU 服务器上从零部署的完整过程,包括实例选型、CUDA 环境、依赖安装、模型下载和首次推理,以及国内网络环境下容易踩到的坑。

一、服务器与环境要求

HunyuanVideo 对显存要求很高,先把实例选对,否则后面全是无用功。

  • GPU 显存
    • 最低 45GB(544×960×129 帧)
    • 推荐 80GB(720×1280×129 帧)
  • 阿里云推荐实例
    • ecs.gn7i(A10,24G)❌ 显存不够
    • ecs.gn7e / ebmgn7ex(A100 80G)✅ 推荐
    • ecs.gn8is(H800/H100)✅ 最佳
  • 系统:Ubuntu 22.04 / 20.04
  • CUDA:12.4(推荐)或 11.8
  • 磁盘:≥ 200GB(模型权重约 60–80GB,加上中间文件留足空间)

二、基础环境

sudo apt update && sudo apt install -y \
  git git-lfs wget curl build-essential
git lfs install

确认 GPU 驱动与 CUDA:

nvidia-smi

如果输出报错说没装驱动,先到阿里云控制台用带 GPU 驱动的镜像重装系统,或用 NVIDIA 官方 .run 包手动安装。CUDA 工具链建议用 12.4。

三、安装 Miniconda

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh -b -p $HOME/miniconda3
source $HOME/miniconda3/bin/activate
conda init bash && exec bash

四、克隆仓库

git clone https://github.com/tencent/HunyuanVideo
cd HunyuanVideo

五、创建 Conda 环境

conda create -n HunyuanVideo python==3.10.9 -y
conda activate HunyuanVideo

六、安装 PyTorch(CUDA 12.4)

conda install -y \
  pytorch==2.4.0 torchvision==0.19.0 torchaudio==2.4.0 \
  pytorch-cuda=12.4 \
  -c pytorch -c nvidia

如果你的环境是 CUDA 11.8,把 pytorch-cuda=12.4 换成 pytorch-cuda=11.8 即可。

七、安装项目依赖

国内服务器先把 pip 源换成阿里云镜像,能省下大量时间:

pip config set global.index-url \
  https://mirrors.aliyun.com/pypi/simple/

然后安装 requirements 和 Flash Attention:

python -m pip install -r requirements.txt
python -m pip install ninja
python -m pip install \
  git+https://github.com/Dao-AILab/[email protected]

Flash Attention 会本地编译 CUDA 算子,时间比较长(10–30 分钟),CPU 核多会快一些。如果 GitHub 拉不动,可以先把仓库 git clone 下来再 pip install .

八、下载模型权重

HuggingFace 国内访问不稳,用镜像站:

export HF_ENDPOINT=https://hf-mirror.com
pip install -U "huggingface_hub[cli]"

下载主权重和文本编码器:

huggingface-cli download tencent/HunyuanVideo \
  --local-dir ./ckpts

huggingface-cli download xtuner/llava-llama-3-8b-v1_1-transformers \
  --local-dir ./ckpts/llava-llama-3-8b-v1_1-transformers

huggingface-cli download openai/clip-vit-large-patch14 \
  --local-dir ./ckpts/text_encoder_2

按官方 ckpts/README.md 的要求,还需要把 llava 模型转换成 HunyuanVideo 用的 text_encoder 格式:

python hyvideo/utils/preprocess_text_encoder_tokenizer_utils.py \
  --input_dir ./ckpts/llava-llama-3-8b-v1_1-transformers \
  --output_dir ./ckpts/text_encoder

九、首次推理测试

先用较小分辨率验证整条链路是否通:

python3 sample_video.py \
  --video-size 544 960 \
  --video-length 129 \
  --infer-steps 50 \
  --prompt "A cat walks on the grass, realistic style." \
  --flow-reverse \
  --use-cpu-offload \
  --save-path ./results

成功后视频会输出到 ./results/。如果是 80G A100,可以直接上 720 1280 分辨率。

十、起 Gradio Web UI(可选)

如果想给团队共用,开 Gradio 服务最方便。注意要先在阿里云安全组放行端口(如 8081),否则外网访问不到。

SERVER_NAME=0.0.0.0 SERVER_PORT=8081 \
  python3 gradio_server.py --flow-reverse

浏览器访问 http://<公网IP>:8081。生产环境建议套一层 Nginx + HTTPS + 鉴权,不要把 Gradio 直接暴露在公网。

十一、常见坑

  • OOM(显存不够):单卡不到 80G 时务必加 --use-cpu-offload。还不够就改用 FP8 权重 + --use-fp8,能再省一截显存。

  • flash-attn 编译失败:检查 nvcc --version 与 PyTorch 自带的 CUDA 版本是否一致;gcc 版本需要 ≥ 9;内存太小(<16G)也会编译挂掉,可以加 swap。

  • HuggingFace 下载慢/断:在 HF_ENDPOINT=https://hf-mirror.com 基础上再开启 hf_transfer 加速:

    pip install hf_transfer
    export HF_HUB_ENABLE_HF_TRANSFER=1
    
  • git-lfs 没装:模型仓库部分文件走 LFS,没执行 git lfs install 会下载到指针文件而不是真实权重。

  • 多卡推理:8 卡并行用 torchrun --nproc_per_node=8 sample_video.py ... --ulysses-degree 8 --ring-degree 1,需要先装 xfuser==0.4.0

十二、成本提醒

A100 80G 在阿里云按量付费每小时大概十几到二十块(实际看库存和地域),跑一段 720p 5 秒视频大约 5–10 分钟,单次成本不算低。建议:

  • 抢占式实例做调试,便宜很多
  • 调试完跑完一批立刻释放
  • 模型权重放云盘快照里,下次开机直接挂载,省下重新下载几十 GB 的时间

关于

关注我获取更多资讯

月球基地博客公众号二维码,扫码关注获取更多 AI 与编程资讯
📢 公众号
月球基地博客作者个人微信二维码,扫码交流 AI 与编程话题
💬 个人号
使用 Hugo 构建
主题 StackJimmy 设计