从零读懂EasyWAM-Hidden-Wan22 LoRA检查点:Rank 128、alpha 128与_lora任务配方的关键细节
EasyWAM-Hidden-Wan22 是一个基于 Wan2.2-TI2V-5B 视频生成骨干(backbone)的**世界-动作模型(World-Action Model)**检查点发布仓库。这篇文章带你从零读懂其中的LoRA 检查点(libero_hidden_wan22_lora_128.pt):它为什么标注 Rank 128 / alpha 128、为什么必须搭配_lora任务配方加载,以及和它配套的那三个文件分别是什么。
仓库里到底放了什么
整个仓库非常精简,只有 4 个有效文件,但每个都有明确分工:
| 文件 | 作用 | 说明 |
|---|---|---|
| libero_hidden_wan22.pt | 全参检查点 | 完整权重,约 11.2 GiB(LFS 真实大小) |
| libero_hidden_wan22_lora_128.pt | LoRA 检查点 | rank 128、alpha 128,约 2.5 GiB |
| libero_dataset_stats.json | 归一化统计量 | state / action 的 min、max、q01、q99、mean、std |
| README.md | 使用说明 | 下载、评测命令与结果表 |
💡 小提醒:如果你
git clone后看到 .pt 文件只有几百字节,不用慌——这是 Git LFS 指针文件。真实权重需要通过官方下载命令(见下文)获取。
先理解架构:EasyWAM-Hidden 是个什么模型
在拆参数细节之前,先用一句话理解它的工作方式,后面一切都好解释:
EasyWAM-Hidden 用一个独立的 Action DiT(动作扩散网络)来预测机器人动作,而这个 Action DiT 单向地以 Video DiT 的中间特征作为条件——即视频理解部分不被动作部分反向干扰。推理时它仍然保留"预测未来视频"的能力,这些预测出的画面就作为**隐式视觉条件(hidden visual conditioning)**辅助动作生成。
这个架构设计直接决定了 LoRA 检查点的组织方式,也就是本文的重点。
关键细节一:Rank 128、alpha 128 分别是什么意思
README.md 中明确写道:
The LoRA checkpoint uses rank 128 (alpha 128) on the backbone Video DiT target modules.
翻译成大白话,就是两件事:
- LoRA 打在哪里:低秩适配只加在骨干 Video DiT 的目标模块上(如注意力层等),也就是给视频理解部分"打补丁",而不是整个网络从头训练。
- Rank 128:LoRA 的秩(rank),即低秩矩阵的宽度。128 属于偏大的取值——意味着补丁的容量充足,能学到更复杂的改动,代价就是参数量也更大(所以文件有 2.5 GiB 之重)。
- alpha 128:LoRA 缩放因子。更新项会被
alpha / rank缩放,这里128 / 128 = 1,即不额外缩放,LoRA 分支以原始幅度直接生效。这种 rank 与 alpha 取相同值是最常见、也最省心的配置。
一句话记忆:rank 决定"补丁有多大",alpha 决定"补丁打多狠",这里补丁不小、力度标准。
关键细节二:为什么必须用_lora任务配方
这是新手最容易踩的坑。README 特意强调了这条要求:
The LoRA checkpoint does not include the complete Wan2.2 backbone. … it must be loaded with the matching
_loratask recipe.
两层含义:
- LoRA 检查点不包含完整的 Wan2.2 骨干权重,加载前必须先下载 Wan2.2-TI2V-5B 的 backbone 权重并配置好路径(可按 EasyWAM 官方的 Wan2.2 backbone 指引操作)。
- 任务名必须选带
_lora后缀的那个。在 LIBERO 评测脚本里,两个检查点对应两个不同 task:
# 全参检查点 → 基础 task task=libero_easywam_hidden_wan22 ckpt=./checkpoints/libero_hidden_wan22.pt # LoRA 检查点 → _lora task(必须匹配) task=libero_easywam_hidden_wan22_lora ckpt=./checkpoints/libero_hidden_wan22_lora_128.pt为什么必须匹配?因为 LoRA 检查点里除了 LoRA 权重,还存有其他可训练的 EasyWAM 模块(如 Action DiT 相关部分)。_lora任务配方规定了哪些模块从检查点加载、哪些 LoRA 挂到 backbone 的哪些目标模块上、rank/alpha 如何解析。用错配方,轻则模块加载不上,重则张量形状对不上直接报错。
⚠️ 常见误区:拿 LoRA 文件去配全参的 task 名(或反过来),加载行为会和预期完全不一致。
关键细节三:配套的 dataset stats 文件不能少
无论跑全参还是 LoRA,两条评测命令都带同一个参数:
EVALUATION.dataset_stats_path=./checkpoints/libero_dataset_stats.jsonlibero_dataset_stats.json 存的是 LIBERO 数据集的归一化统计量,是推理时把原始观测换算成模型输入尺度的依据。拆开看它的结构很有信息量:
state:8 维机器人状态,记录 min/max/q01/q99/mean/std 等 12 组统计;action:7 维动作,按 stepwise 记录了 32 步动作块的逐步统计(q01 下界为-0.9375,q99 上界为0.9375,动作整体落在 ±1 区间内);- 元信息:
num_episodes = 1712、num_transition = 277713,即统计量来自约 27.8 万条过渡样本,样本量足够可靠。
训练时用什么统计量归一化,评测时就必须用同一份——这也是官方把它和检查点放在同一仓库里的原因:三者(权重、统计量、任务配方)是一个整体。
完整跑通:下载与评测命令
# 1. 下载检查点与统计量 hf download OpenMOSS-Team/EasyWAM-Hidden-Wan22 \ libero_hidden_wan22.pt \ libero_hidden_wan22_lora_128.pt \ libero_dataset_stats.json \ --local-dir ./checkpoints # 2. 评测 LoRA 检查点(需先装 EasyWAM、备好 Wan2.2 backbone 与 LIBERO 仿真环境) python experiments/libero/run_libero_manager.py \ task=libero_easywam_hidden_wan22_lora \ ckpt=./checkpoints/libero_hidden_wan22_lora_128.pt \ EVALUATION.dataset_stats_path=./checkpoints/libero_dataset_stats.json默认协议会对 4 个 LIBERO 套件(Spatial / Object / Goal / LIBERO-10)每任务评测 50 次;GPU 多的话可以加MULTIRUN.num_gpus=<gpu-count>分布式跑。
结果参考:LoRA 版本值不值
同用 Wan2.2-TI2V-5B 骨干下(成功率 %,state_position: sequence协议):
| 模型 | Spatial | Object | Goal | LIBERO-10 | Avg. |
|---|---|---|---|---|---|
| EasyWAM-Unified (LoRA) | 91.2 | 98.8 | 91.8 | 66.2 | 87.0 |
| EasyWAM-MoT (LoRA) | 96.8 | 99.6 | 97.4 | 90.0 | 95.9 |
| 🔥 EasyWAM-Hidden (LoRA) | 98.0 | 99.8 | 89.4 | 86.6 | 93.5 |
全参版本则更强:EasyWAM-Hidden 平均分98.8,在 4 个模型中居首(Object 子集直接 100.0)。可以看到:用 2.5 GiB 的 LoRA 换来 93.5 的 LoRA 平均分,是显存受限时的实用选择;追求上限则用全参。
常见问题(FAQ)
Q1:clone 仓库后 .pt 文件只有 135 字节?正常现象,那是 Git LFS 指针(内含 oid 和 size)。用hf download或启用 LFS 的方式获取真实权重即可。
Q2:加载 LoRA 时报缺权重/形状不匹配?先检查两点:① 是否已下载并配好 Wan2.2 backbone 路径;② task 是否用了libero_easywam_hidden_wan22_lora而不是不带_lora的配方。
Q3:state_position 参数要注意吗?官方结果均基于state_position: sequence(state token 按序列放置),复现时保持默认即可。
小结
读懂 EasyWAM-Hidden-Wan22 的 LoRA 检查点,只需记住三句话:
- Rank 128 / alpha 128:LoRA 补丁打在 backbone Video DiT 目标模块上,秩 128、缩放系数为 1;
_lora配方是刚需:LoRA 文件不含骨干权重,且内部还打包了其他可训练模块,任务名必须一一对应;- 三件套一起下载:检查点 + libero_dataset_stats.json + 匹配的 task 配方,缺一个都跑不通。
按上面的命令下载并评测,你就可以在自己的 LIBERO 环境里复现这套世界-动作模型的表现了。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考