news 2026/11/3 2:34:44

EasyWAM-Hidden-Wan22 归一化统计文件完整详解:8维状态与7维动作的 stepwise 统计如何使用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
EasyWAM-Hidden-Wan22 归一化统计文件完整详解:8维状态与7维动作的 stepwise 统计如何使用

EasyWAM-Hidden-Wan22 归一化统计文件完整详解:8维状态与7维动作的 stepwise 统计如何使用

本文带你完整看懂 EasyWAM-Hidden-Wan22 项目中的归一化统计文件libero_dataset_stats.json:它如何描述 8 维机器人状态(state)与 7 维动作(action)、stepwise 与 global 两类统计有什么区别,以及在 LIBERO 评测中该如何正确使用这份数据集统计文件,帮你一次性跑通这套基于 Wan2.2 的世界动作模型(World Action Model)。

📌 这份归一化统计文件是干什么的

EasyWAM-Hidden 是构建在 Wan2.2-TI2V-5B 上的世界动作模型检查点,采用独立的 Action DiT 单向条件于 Video DiT 中间特征的方式生成动作,在 LIBERO 上取得了98.8% 的平均成功率(见 README.md 中的评测表格)。

模型本身工作在归一化空间里:

  • 输入侧:原始机器人状态先做归一化,再编码为 state token 送入 Action DiT;
  • 输出侧:模型预测出的动作要先做反归一化,才能变成机器人可执行的真实动作。

而归一化/反归一化所需的全部数值,就来自这份 libero_dataset_stats.json。评测命令中的EVALUATION.dataset_stats_path参数指向的就是它——缺了它,模型无法把输出映射回真实动作空间。

⏱️ 30 秒概览文件结构

整个文件只有 4 个顶层字段,非常扁平:

字段类型含义
statedict8 维机器人状态的归一化统计
actiondict7 维机器人动作的归一化统计
num_episodesint训练数据集共1712条 episode
num_transitionint共277,713个时间步(transition)

state和action内部各有一个default策略,包含12 项统计量,即 6 种统计指标 × 2 种作用范围:

统计指标回答的问题
min/max数据的最小值 / 最大值
q01/q99第 1 百分位 / 第 99 百分位(抗极端值版本)
mean/std均值 / 标准差(最常用于 z-score 归一化)
作用范围形状(state)形状(action)含义
stepwise_*1 行 × 8 维32 行× 7 维动作块(action chunk)内每一步的统计
global_*8 维7 维对整个数据集聚合后的总统计

🔍关于 stepwise 的 32 行:训练时模型一次预测一段 32 步的动作序列(action horizon),所以 action 的 stepwise 统计有 32 行——第 k 行是"序列中第 k 个动作步"在所有 episode 上聚合出的统计量。而状态在每个决策时刻只有一个向量,因此 state 的 stepwise 只有 1 行。

🔢 拆解 8 维状态:文件里的数字长什么样

以state.default.global_*中的真实数值为例(取自 libero_dataset_stats.json):

维度global_minglobal_maxglobal_meanglobal_std特征解读
0-0.4830.210-0.0520.110位置类坐标,范围约 0.7m
1-0.3310.3900.0400.150位置类坐标,范围约 0.7m
20.0081.4730.7770.388取值恒为正且均值 ≈0.78m,典型的高度坐标
31.0033.7252.9970.323恒为正、均值 ≈3.0m 的坐标分量
4-3.6313.562-0.1370.761接近 ±2π,典型的姿态角特征
5-1.8431.386-0.1100.306角度类量
6-0.0050.0420.0260.015数值极小、几乎贴零
7-0.0420.001-0.0270.014数值极小、几乎贴零

几个值得注意的点:

  • 状态保留的是原始物理量(米、弧度),归一化在模型内部完成,你无需手动缩放;
  • 维度 6、7 的标准差只有约 0.015,量级比其他维度小两个数量级——这正是归一化存在的意义:不做归一化的话,这些小量级维度在输入中几乎"消失";
  • q01/q99与min/max非常接近,说明 LIBERO 数据中异常值很少,两种归一化方式效果差异不大。

🤖 拆解 7 维动作:delta 位姿 + 夹爪

action.default.global_*的真实数值:

维度global_minglobal_maxglobal_mean解读
0–2-0.9380.938≈0三个平移增量(delta x/y/z),被裁剪在 ±0.938 内
3–5-0.3750.375≈0三个姿态增量(delta 旋转),范围 ±0.375
60.01.00.508夹爪开合度,0=闭合、1=张开,均值约 0.51 说明大部分时间夹爪处于半开状态

动作前 6 维均值几乎为 0,符合"delta 动作"的分布特征;第 7 维均值 0.508 则反映了 LIBERO 演示中夹爪大部分时间保持打开。

📊 再看 stepwise 视角:stepwise_mean的 32 行中,前几步的均值与最后一步(第 31 行,如[0.004, 0.103, -0.017, ..., 0.501])已经接近 global 均值,说明动作分布随序列位置漂移不大,stepwise 与 global 统计在本数据集中差异很小——但框架仍保留 stepwise 以适配任意数据。

🚀 三步使用法:从下载到跑通评测

第 1 步:下载统计文件(与权重一起)

按 README.md 的 Download 小节,统计文件需与两个权重文件一起下载:

  • libero_hidden_wan22.pt:全参数检查点
  • libero_hidden_wan22_lora_128.pt:LoRA(rank 128)检查点
  • libero_dataset_stats.json:本文主角

第 2 步:评测时指定dataset_stats_path

无论全参数还是 LoRA 检查点,都要在 run_libero_manager.py 的启动命令 中加上统计文件路径:

python experiments/libero/run_libero_manager.py \ task=libero_easywam_hidden_wan22 \ ckpt=./checkpoints/libero_hidden_wan22.pt \ EVALUATION.dataset_stats_path=./checkpoints/libero_dataset_stats.json

LoRA 评测只是把task换成libero_easywam_hidden_wan22_lora、ckpt换成 LoRA 文件,统计文件用法完全一致(见 README.md)。

第 3 步:确认路径指向正确

参数值必须是统计文件所在路径的相对或绝对路径。文件内部结构(state/action/default/12 项统计)由 EasyWAM 框架直接解析,无需任何手工编辑。

⚠️ 常见坑位:新手最容易踩的 4 个问题

坑位现象正确做法
换数据集后沿用旧统计状态/动作分布对不上,评测成功率骤降数据集变了就重新生成对应统计文件
只下载权重、漏了统计文件评测报错或动作输出漂移三个文件一起下载(见上一步)
分不清 stepwise 与 global手工做归一化时选错统计量交给框架:dataset_stats_path指向本文件即可,无需自行选择
误以为要手动归一化状态自己写了缩放代码,结果双重归一化模型内部自动完成,喂原始量即可

🧠为什么 stepwise 统计值得存在?在状态分布随时间剧烈变化的数据集(如长时序、多阶段任务)上,"序列中第 5 步的状态"和"第 31 步的状态"可能天差地别。stepwise 统计允许按动作块内位置分别归一化,global 统计则是它的退化情形——本 LIBERO 数据中二者差异很小,但机制本身让同一套检查点格式可以复用到更多机器人任务上。

📁 相关文件速查

  • 项目说明与评测结果:README.md
  • 归一化统计文件(8 维状态 + 7 维动作,1712 episodes / 277,713 transitions):libero_dataset_stats.json
  • LIBERO 全参数检查点:libero_hidden_wan22.pt
  • LIBERO LoRA 检查点(rank 128 / alpha 128):libero_hidden_wan22_lora_128.pt

✅ 小结

一句话结论内容
文件角色模型输入归一化与输出反归一化的唯一数值来源
数据规模1712 episodes、277,713 transitions 聚合而成
核心结构state(8维) +action(7维),各含 stepwise 与 global 两套共 12 项统计
使用方式评测命令中设置EVALUATION.dataset_stats_path指向该文件
最常踩的坑换数据集不换统计文件;漏下载统计文件

看懂这份统计文件,你就掌握了 EasyWAM-Hidden-Wan22 从"模型输出"到"机器人动作"的最后一环,可以放心开始 LIBERO 评测或在此基础上做二次实验。

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/11/3 2:31:13

实测踩坑:77 类分类一上 Nimble 类模型就翻车,高基数场景先想清楚

实测踩坑:77 类分类一上 Nimble 类模型就翻车,高基数场景先想清楚 从 Jev 把「决策模型」这个概念带火开始,开源社区在不到一个月里涌现了一批复刻与平替:有专用编码器的、有 Qwen 微调的,也有把结构化打分接口直接塞…

作者头像 李华