本文將為您詳細介紹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
測試環境搭建
虛機執行個體建立與初始化
通過控制台建立執行個體
登入ENS控制台。
在左側導覽列,單擊。
在執行個體頁面,單擊建立執行個體。您可以通過建立執行個體瞭解建立ENS執行個體時的參數。
請您按照您的需求進行配置,推薦配置如下:
頁面
參數選項
參考值
基礎配置
付費方式
訂用帳戶
執行個體類型
X86計算
執行個體規格
NVIDIA 48GB * 2
(詳細規格請諮詢客戶經理)
鏡像
Ubuntu
ubuntu_22_04_x64_20G_alibase_20240926
網路和儲存
網路
自建網路
系統硬碟
高效雲端硬碟 80G+
資料盤
高效雲端硬碟 1T+
系統設定
密碼設定
密碼/金鑰組
確認訂單。
當您完成系統設定之後,您可以單擊右下角確認訂單。系統會根據您的配置來配置執行個體,並展示價格。進行支付後會提示支付成功,並可跳轉到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", <執行個體粒度計費>
}執行個體登入與初始化磁碟
執行個體登入
您可以參考串連執行個體來登入執行個體。
磁碟初始化
根目錄擴容。
執行個體新建立或擴容後,需要在不重啟的情況下線上擴容根分區
# 安裝雲環境工具包 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
資料盤掛載
您需要對資料盤進行格式化,並進行掛載。以下是參考,按需進行操作。
# 識別新磁碟 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
說明如果您要基於該執行個體製作鏡像,需要刪除
/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中的部分代碼和參數,實現以下效果:
因程式碼程式庫持續最佳化中,代碼檔案隨時可能更新,以下修改僅供參考
避免每次運行都重新下載模型。
修改視頻的壓縮品質,更大的視頻檔案代表更好的清晰度。
將產生視頻從預設的480p修改為720p。
# 修改測試代碼的檔案 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
結果輸出
有改動可在上述可選最佳化第三條中的output_path中指定。
測試時間請參考進度條的剩餘時間提示。結束後產生視頻檔案video1.mp4,您可以參考 cp(拷貝檔案)來使用ossutil將產生的視頻檔案匯出到阿里雲OSS。