全部產品
Search
文件中心

ENS:邊緣雲玩轉通義萬相Wan2.1-T2V推理業務最佳實務

更新時間:Apr 03, 2025

本文將為您詳細介紹Wan2.1模型的特性、關鍵計量、邊緣雲部署的最佳實務以及測試環境搭建的步驟。協助您快速瞭解模型特性、部署要求和效能最佳化方法,從而高效地在邊緣雲環境中部署和使用該模型,滿足不同情境下的視頻產生需求。

Wan2.1 模型簡介

通義萬相Wan2.1是由阿里巴巴開發的開源視頻產生模型,在處理複雜運動、還原真實物理規律、提升影視質感以及最佳化指令遵循方面具有顯著的優勢,無論是創作者、開發人員還是企業使用者,都可以根據自己的需求選擇合適的模型和功能,輕鬆實現高品質的視頻產生。同時,萬相還支援業內領先的中英文文字特效產生,滿足廣告、短視頻等領域的創意需求。在權威評測集VBench中,萬相以總分86.22%的成績登上榜首位置,大幅領先了Sora、Minimax、Luma、Gen3、Pika等國內外視頻產生模型。

  • Wan2.1-T2V-14B:高效能專業版,提供業界頂尖的表現力,滿足對視頻品質有極高要求的情境。

  • Wan2.1-T2V-1.3B:低顯存即可產生480P高品質視頻。

邊緣雲部署Wan2.1模型最佳實務

邊緣雲面向不同情境的異構算力需求,在廣泛分布的節點上提供了多規格、差異化的異構算力資源,單卡顯存從12GB到48GB不等。在邊緣雲上部署Wan2.1-T2V-1.3B模型的推理業務,推薦的最佳配置及推理效能如下:

  • Wan2.1-T2V-1.3B BF16精度產生480P視頻推薦使用12GB顯存五卡執行個體

    • 12GB顯存五卡執行個體,採用單卡單路運行性價比最高,儘管單卡運行會導致視頻產生時間變長,但可以平行處理多路推理任務,在單位時間內的收益更高。

    • 如果您追求視頻的產生效率,可採用48GB顯存雙卡執行個體,可將單路視頻產生時間提效85%,而成本只有35%的上升。

      執行個體規格

      推理方式

      視頻時間長度(s)

      產生時間(s)

      顯存佔用(GB)

      單路成本

      12GB顯存五卡裸金屬

      單卡單路

      5

      1459

      9.6

      100%

      四卡單路

      5

      865

      35.3

      296%

      48GB顯存單卡虛機

      單卡單路

      5

      456

      18.6

      144%

      48GB顯存雙卡虛機

      雙卡單路

      5

      214

      20.9

      135%

    • 產生視頻樣本:

  • Wan2.1-T2V-14B BF16精度產生720P視頻推薦使用48GB顯存雙卡執行個體

    720P可以為您帶來更高品質的視頻體驗,但視頻產生時間也會變得更長。您可根據業務情境需求以及樣本視頻的品質對比來選擇合適的資源。

    資源

    推理方式

    視頻時間長度(s)

    產生時間(s)

    顯存佔用(GB)

    48GB顯存雙卡虛機

    雙卡單路

    5

    3503

    41

    產生視頻樣本:

  • 以上提及的執行個體規格配置如下

    環境參數

    12GB顯存五卡裸金屬執行個體

    48GB顯存單卡虛機執行個體

    48GB顯存雙卡虛機執行個體

    CPU

    24Core×2,3.0-4.0GHz

    48核

    96核

    記憶體

    256GB

    192GB

    384GB

    GPU

    NVIDIA 12GB * 5

    NVIDIA 48GB * 1

    NVIDIA 48GB * 2

    作業系統

    Ubuntu 20.04

    GPU Driver

    Driver Version: 570.124.06

    CUDA Version: 12.4

    Driver Version: 550.54.14

    CUDA Version: 12.4

    Driver Version: 550.54.14

    CUDA Version: 12.4

    推理架構

    pytorch

測試環境搭建

虛機執行個體建立與初始化

通過控制台建立執行個體

  1. 登入ENS控制台

  2. 在左側導覽列,單擊算力與鏡像 > 執行個體

  3. 執行個體頁面,單擊建立執行個體您可以通過建立執行個體瞭解建立ENS執行個體時的參數。

    1. 請您按照您的需求進行配置,推薦配置如下:

      頁面

      參數選項

      參考值

      基礎配置

      付費方式

      訂用帳戶

      執行個體類型

      X86計算

      執行個體規格

      NVIDIA 48GB * 2

      (詳細規格請諮詢客戶經理)

      鏡像

      Ubuntu

      ubuntu_22_04_x64_20G_alibase_20240926

      網路和儲存

      網路

      自建網路

      系統硬碟

      高效雲端硬碟 80G+

      資料盤

      高效雲端硬碟 1T+

      系統設定

      密碼設定

      密碼/金鑰組

    2. 確認訂單。

      當您完成系統設定之後,您可以單擊右下角確認訂單。系統會根據您的配置來配置執行個體,並展示價格。進行支付後會提示支付成功,並可跳轉到ENS控制台。

      ENS控制台執行個體列表可查詢到您建立的執行個體,若您建立的執行個體狀態為運行中,代表您已經可以使用該執行個體。

通過OpenAPI建立執行個體

您也可以使用OpenAPI方式進行建立,您可以在阿里雲開發人員門戶快速使用OpenAPI建立執行個體。

調用參數的參考代碼如下,請您靈活調整:

{
  "InstanceType": "ens.gnxxxx",         <您的執行個體規格>
  "InstanceChargeType": "PrePaid",
  "ImageId": "ubuntu_22_04_x64_20G_alibase_20240926",
  "ScheduleAreaLevel": "Region",
  "EnsRegionId": "cn-your—ens-region",     <實際的節點>
  "Password": <YOURPASSWORD>,           <自訂密碼>
  "InternetChargeType": "95BandwidthByMonth", 
  "SystemDisk": {
    "Size": 80,
    "Category": "cloud_efficiency"
  },
  "DataDisk": [
    {
      "Category": "cloud_efficiency",
      "Size": 1024
    }
  ],
  "InternetMaxBandwidthOut": 5000,
  "Amount": 1,
  "NetWorkId": "n-xxxxxxxxxxxxxxx",
  "VSwitchId": "vsw-xxxxxxxxxxxxxxx",
  "InstanceName": "test",        
  "HostName": "test",
  "PublicIpIdentification": true,
  "InstanceChargeStrategy": "instance",      <執行個體粒度計費>
}

執行個體登入與初始化磁碟

執行個體登入

您可以參考串連執行個體來登入執行個體。

磁碟初始化

  1. 根目錄擴容。

    執行個體新建立或擴容後,需要在不重啟的情況下線上擴容根分區

    # 安裝雲環境工具包
    sudo apt-get update
    sudo apt-get install -y cloud-guest-utils
    
    # 確保GPT分區工具sgdisk存在
    type sgdisk || sudo apt-get install -y gdisk
    
    # 擴充物理分區
    sudo LC_ALL=en_US.UTF-8 growpart /dev/vda 3
    
    # 調整檔案系統大小
    sudo resize2fs /dev/vda3
    
    # 驗證擴容結果
    df -h

    image

  2. 資料盤掛載

    您需要對資料盤進行格式化,並進行掛載。以下是參考,按需進行操作。

    # 識別新磁碟
    lsblk
    
    # 這裡不進行分區,直接格式化
    sudo mkfs -t ext4 /dev/vdb
    
    # 配置掛載
    sudo mkdir /data
    echo "UUID=$(sudo blkid -s UUID -o value /dev/vdb) /data ext4 defaults,nofail 0 0" | sudo tee -a /etc/fstab
    
    # 驗證
    sudo mount -a
    df -hT /data
    
    # 修改許可權
    sudo chown $USER:$USER $MOUNT_DIR

    image

    說明

    如果您要基於該執行個體製作鏡像,需要刪除/etc/fstab檔案中添加的ext4 defaults 0 0所在行。如果不刪除,您製作的鏡像建立執行個體將無法啟動。

安裝依賴

您可以參考CUDA Toolkit 12.4 Downloads | NVIDIA Developer來完成CUDA的安裝。

wget https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda_12.4.0_550.54.14_linux.run

chmod +x cuda_12.4.0_550.54.14_linux.run

# 這一步稍久,會出現圖形互動
sudo sh cuda_12.4.0_550.54.14_linux.run

# 添加環境變數
vim ~/.bashrc
export PATH="$PATH:/usr/local/cuda-12.4/bin"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda-12.4/lib64"
source ~/.bashrc

# 驗證是否成功
nvcc  -V
nvidia-smi

安裝協助工具輔助(可選)

UV是較好的Python虛擬環境和依賴管理工具,適合需要運行多個模型的機器。您可以參考Installation | uv (astral.sh)來完成對UV的安裝。

# 安裝uv,預設安裝在~/.local/bin/
curl -LsSf https://astral.sh/uv/install.sh | sh

# 編輯~/.bashrc
export PATH="$PATH:~/.local/bin"

source ~/.bashrc

# 建立一個乾淨的venv環境,命名diff
uv venv diff --python 3.12 --seed
source diff/bin/activate

如果您遇到安裝UV後,原來所設定的CUDA環境變數失效,nvcc\nvidia-smi無法找到,請您執行如下操作:

vim myenv/bin/activate 
將
export PATH="$PATH:/usr/local/cuda-12.4/bin"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda-12.4/lib64"
加到export PATH的後面

安裝GPU監控工具(可選)

# GPU監控工具,也可以使用nvidia-smi
pip install nvitop

下載推理架構和模型

推薦使用魔搭推出的Diffusion模型架構 DiffSynth Studio,以實現較好的效能和穩定性,詳情參考 https://github.com/modelscope/DiffSynth-Studio/tree/main

# 安裝魔搭下載工具
pip install modelscope

# 下載DiffSynth Studio和依賴
cd /root
git clone https://github.com/modelscope/DiffSynth-Studio.git

cd DiffSynth-Studio
pip install -e .

# 安裝xfuser
pip install xfuser>=0.4.3
  
# 下載Wan2.1-T2V-14B模型檔案到DiffSynth-Studio的對應目錄下
modelscope download --model Wan-AI/Wan2.1-T2V-14B --local_dir /root/DiffSynth-Studio/models/Wan-AI/Wan2.1-T2V-14B

測試視頻產生

DiffSynth Studio提供了Unified Sequence Parallel (USP)和Tensor Parallel 兩種並行方式,本文以Tensor Parallel為例,使用DiffSynth提供的測試指令碼,通過Wan2.1-14B產生一段720P視頻。

可選最佳化

您可通過修改測試指令碼examples/wanvideo/wan_14b_text_to_video_tensor_parallel.py中的部分代碼和參數,實現以下效果:

說明

因程式碼程式庫持續最佳化中,代碼檔案隨時可能更新,以下修改僅供參考

  1. 避免每次運行都重新下載模型。

  2. 修改視頻的壓縮品質,更大的視頻檔案代表更好的清晰度。

  3. 將產生視頻從預設的480p修改為720p。

  4. # 修改測試代碼的檔案
    vim /root/DiffSynth-Studio/examples/wanvideo/wan_14b_text_to_video_tensor_parallel.py
    
    # 1. 注釋125行左右代碼,避免每次運行都重新下載模型,從而使用先前已經下載到本地的模型
    
    # snapshot_download("Wan-AI/Wan2.1-T2V-14B", local_dir="models/Wan-AI/Wan2.1-T2V-14B")
    
    # 2. 修改121行左右代碼,調整函數test_step內的save_video入參,修改視訊框架率和壓縮品質。quality=1為最低,10為最高
    save_video(video, output_path, fps=24, quality=10)
    
    # 3. 135行左右新增以下入參,調整解析度,預設是480p
    ....
    "output_path": "video1.mp4",   
    # 以下兩行為新增
    "height": 720,
    "width": 1280,
    },
    
    # 4.儲存檔案並退出
    :wq
    

運行測試

# 運行測試指令碼
torchrun --standalone --nproc_per_node=2 /root/DiffSynth-Studio/examples/wanvideo/wan_14b_text_to_video_tensor_parallel.py

image

結果輸出

說明

有改動可在上述可選最佳化第三條中的output_path中指定。

測試時間請參考進度條的剩餘時間提示。結束後產生視頻檔案video1.mp4,您可以參考 cp(拷貝檔案)來使用ossutil將產生的視頻檔案匯出到阿里雲OSS。