☰
rho-libero policy.json 完全参考手册:50 个训练超参数逐项解析
2026/11/3 19:12:39 网站建设 项目流程
  • 人工智能
  • 基础模型

【免费下载链接】rho-libero

项目地址:https://ai.gitcode.com/hf_mirrors/microsoft/rho-libero
点击查看免费下载

rho-libero 是面向 LIBERO 机器人操作基准的预训练 VLA(视觉-语言-动作)模型检查点,其核心配置文件 policy.json 完整记录了 50 个训练与推理超参数。这份手册将逐项解析优化器、学习率调度、流匹配(Flow Matching)、冻结开关等关键配置,帮助你快速读懂模型训练设置并复现推理环境。

1. 文件全景:一个模型检查点由哪些文件组成

在逐参数解析之前,先了解 policy.json 在整个仓库中的位置。一个完整的 rho 格式检查点包含以下文件:

文件作用关键内容
policy.json模型结构与训练超参数50 个字段,本文主角
features.json数据特征定义7 维 action、2 张 256×256 图像、8 维 state
data_config.json数据加载配置batch_size=32、QUANTILE 归一化、clip=±1.05
stats.json数据统计量各特征的 mean/std/quantile,推理反归一化必需
manifest.json检查点元信息训练步数 step=3000,5GB 分片
model.safetensors.index.json权重分片索引10.5GB 权重映射到 3 个 safetensors 分片

💡 manifest.json 显示"step": 3000,说明这是一个训练中途的快照;而 policy.json 中的pretrained_repo_id指向microsoft/rho-base,即该检查点由 rho 基座模型微调而来。

2. 基础信息:4 个快速定位字段

policy.json 开头 4 个字段定义了模型的身份与运行环境:

参数本仓库取值含义
typerho策略模型系列,加载器据此选择模型类
namerho模型实例名,与 LIBERO 数据集对应
devicecuda默认推理/训练设备为 GPU
dtypebfloat16半精度计算,显存约为 float32 的一半

📌新手提示:bfloat16比float16动态范围更大,训练大模型时不易上溢(overflow),这也是 VLA 模型的常见选择。

3. 优化器与学习率调度:AdamW + 余弦衰减配置

这是训练最核心的两组参数,分别位于 policy.json 的lr_scheduler与optimizer子对象中。

3.1 学习率调度器(lr_scheduler)

"lr_scheduler": { "type": "cosine_decay_with_warmup", "num_warmup_steps": 2500, "num_decay_steps": 40000, "peak_lr": 0.0001, "decay_lr": 5e-06, "decay_start_step": null }
参数取值通俗解释
typecosine_decay_with_warmup先线性升温、再按余弦曲线降温的经典调度
num_warmup_steps2500前 2500 步学习率从 0 爬升到峰值,避免初期不稳定
num_decay_steps40000之后用 40000 步把学习率从峰值余弦衰减到终点
peak_lr1e-4升温结束时的最高学习率
decay_lr5e-6衰减终点的学习率,约为峰值的 1/20
decay_start_stepnull自动在 warmup 结束后开始衰减

3.2 优化器(optimizer)

"optimizer": { "type": "adamw", "lr": 0.0001, "weight_decay": 1e-10, "grad_clip_norm": 10.0, "betas": [0.9, 0.95], "eps": 1e-08 }
参数取值通俗解释
typeadamw带解耦权重衰减的 Adam,深度学习默认首选
lr1e-4初始学习率,与peak_lr保持一致
weight_decay1e-10权重衰减几乎为零,说明该任务几乎不依赖 L2 正则
grad_clip_norm10.0梯度全局范数裁剪到 10,防止梯度爆炸
betas[0.9, 0.95]β2=0.95 高于常见默认值 0.999 的反向调整,二阶矩估计更"灵敏",适配 VLA 训练
eps1e-8数值稳定性常数

⚠️ 注意文件后半部分还有一组"扁平化"的冗余字段(policy.json 的optimizer_lr、optimizer_betas、scheduler_warmup_steps等),其取值与上面子对象完全一致。这是为了兼容旧版加载器而保留的快照副本,解析配置时以子对象为准即可。

4. 动作专家模型结构:12 层 Transformer 与注意力配置

rho 的架构是"冻结可选的 VLM 主干 + 可训练的动作专家(action expert)"。policy.json 中这一组参数定义了动作专家的形状:

参数取值含义
embed_dim2048动作专家隐层宽度,与noise_policy_kwargs.emb_dim对齐
num_blocks12Transformer 块数量
num_heads16自注意力头数(2048 ÷ 16 = 每头 128 维)
ff_dim4096前馈层宽度,为 embed_dim 的 2 倍
gqa_groups4分组查询注意力(GQA),KV 头压缩为 4 组,降低推理显存
attention_typecross主注意力为交叉注意力:动作 token 查询 VLM 特征
attention_implementationflash_attention_2使用 FlashAttention-2 加速,要求 GPU 支持
normadaptive自适应层归一化(AdaLN),由流时间步 t 调制
adaln_modeshared各层共享 AdaLN 调制参数
adaln_lora_rank256AdaLN 调制矩阵的低秩分解秩
pos_emb_methodsinusoidal位置编码采用正弦形式
kv_pos_encodingtrueKV 侧启用位置编码
max_seq_len6144VLM 主干支持的最大序列长度

VLM 主干侧还有 3 个"接口"参数(policy.json):

  • vlm_layer_select: last—— 取 VLM 最后一层隐状态作为上下文特征;
  • hidden_state_idx: 14—— 具体从第 14 层取隐状态(last模式下作为校验/兼容项);
  • shared_vlm_projection: false—— 不同输入模态使用独立投影层。

📌 从 model.safetensors.index.json 可以验证:action_expert.transformer_blocks正好有 0~11 共 12 个块,每个块含query_self_attention、cross_attention与feedforward,与本节参数一一对应。

5. 动作块与数据维度:chunk_size 如何决定控制节奏

机器人策略不是一帧一帧输出,而是按"块"(chunk)批量预测未来动作:

参数取值含义
chunk_size16一次预测 16 步动作,与 data_config.json 中训练用的 chunk 对齐
n_action_steps8实际执行 8 步后重新规划(receding horizon 控制)
n_obs_steps1只使用当前 1 帧观测,不堆叠历史
max_action_dim32动作维度的最大兼容上限(实际为 7 维)
max_state_dim32状态维度的最大兼容上限(实际为 8 维)

💡 7 维 action 对应 LIBERO 的机械臂输出:3 维末端位置 + 3 维旋转 + 1 维夹爪开合,可在 features.json 中确认"shape": [7]。max_*_dim大于实际维度是为了让同一模型结构兼容不同机器人配置。

6. 流匹配训练:num_steps、采样策略与推理采样

rho 用Flow Matching(data_config.json 中training_mode: ROBOT_FLOWMATCH)替代传统模仿学习的 MSE 回归,相关参数如下:

参数取值含义
num_steps10流匹配去噪/积分的总步数(训练目标定义)
num_flow_samples1推理时仅做 1 步采样,牺牲少量精度换取极低延迟
time_sampling_strategybeta训练时按 Beta 分布采样时间步 t,让模型均匀覆盖整条流轨迹
dropout_p0.022% 的 Dropout 正则化

📌新手提示:num_flow_samples: 1意味着推理时模型"一步出结果",这是 16 步动作块能低延迟执行的关键——若追求更高精度,可将其调大,代价是推理耗时线性增加。

7. 噪声策略 vlm_residual:6 个噪声网络参数

noise_policy: vlm_residual是 rho 系列的特色:噪声不是纯随机数,而是由 VLM 特征条件化生成的"结构化残差",让扩散/流过程从有意义的起点出发。

policy.json 的noise_policy_kwargs:

参数取值含义
emb_dim2048噪声网络的隐层宽度
state_dim8输入机器人 8 维状态
hidden_dims[1024, 1024, 1024]3 层 1024 维 MLP
base_magnitude3.0"基础"噪声头输出幅度(放大幅度)
head_magnitude1.5"头部"噪声头输出幅度
scale1.0全局噪声缩放系数

在 model.safetensors.index.json 中可以看到对应的两组网络权重noise_policy.base与noise_policy.head,说明基础噪声和头部噪声由两个独立 MLP 生成,幅度比 3.0 : 1.5 让整体噪声偏向"基础动作模式"。

8. 冻结开关与训练范围:4 个 freeze 标志位

微调 VLA 时最关心的就是"哪些层动、哪些层不动",policy.json 提供了 4 个开关:

参数本仓库取值含义
freeze_vlm_backbonefalseVLM 主干不冻结,全量微调
freeze_vision_encoderfalse视觉编码器不冻结
freeze_language_modelfalse语言模型不冻结
train_expert_onlyfalse不只训练动作专家
enable_gradient_checkpointingtrue✅ 开启梯度检查点,用重计算换显存

🧊 结论:这是一次全参数微调(VLM 主干 + 动作专家一起训练),并依赖梯度检查点控制显存。如果你要在小显存显卡上复训,把前 4 个开关设为true可显著降低显存占用,但泛化能力会打折扣。

9. 推理兼容字段:容易被忽略的 3 个参数

参数取值含义
resize_imgs_with_paddingnull不启用"保持纵横比的 padding 缩放",直接用 256×256 原图
cross_attention_dimnull交叉注意力沿用embed_dim,未指定独立维度
log_hidden_state_statstrue训练时记录隐状态统计量(便于诊断)
optimizer_lr_action_expertnull未给动作专家单独设学习率,与主干共用 1e-4

10. 交叉核对速查:5 个文件如何互相印证

拿到检查点后,建议按下面顺序核对,确保"配置—数据—权重"三者一致:

  1. policy.jsonchunk_size: 16↔ data_config.jsonchunk_size: 16✅
  2. policy.jsonstate_dim: 8↔ features.jsonobservation.stateshape[8]✅
  3. features.jsonactionshape[7]↔ data_config.jsonmin_action_chunk_size: 8≤chunk_size: 16✅
  4. manifest.jsonstep: 3000介于scheduler_warmup_steps: 2500与num_decay_steps: 40000之间 → 快照取自余弦衰减的中段 ✅
  5. stats.json 中q01/q99分位数与 data_config.json 的QUANTILE归一化策略配套,推理反归一化时直接读取 ✅

11. 常见问题(FAQ)

Q1:修改chunk_size后还能直接加载权重吗?不能。chunk_size影响动作头输入形状,需与 data_config.json 同步修改并重新微调。

Q2:为什么文件里同时出现optimizer对象和optimizer_lr扁平字段?扁平字段是向后兼容的快照副本,值与子对象相同;解析时应优先读取optimizer/lr_scheduler对象。

Q3:num_flow_samples: 1一步采样精度够吗?在本检查点的 LIBERO 训练中是官方验证过的配置;若你的任务更精细,可逐步调大到 2~4 观察成功率变化。

Q4:如何确认权重与配置匹配?用 model.safetensors.index.json 的total_size(约 10.5GB)核对 3 个分片文件总和,再对照本手册第 4 节的层数(12 个transformer_blocks)即可快速判断版本是否一致。


📚一句话总结:policy.json 就是一本"模型说明书"——优化器与调度决定训练节奏(AdamW + 余弦 4 万步),12 层交叉注意力动作专家 + 1 步流匹配采样决定推理形态,4 个 freeze 开关记录了这是一次全量微调。读懂这 50 个字段,你就掌握了 rho-libero 从训练到推理的完整脉络。

  • 人工智能
  • 基础模型

【免费下载链接】rho-libero

项目地址:https://ai.gitcode.com/hf_mirrors/microsoft/rho-libero
点击查看免费下载
上一篇:玩转MiniCPM-V-4.7-1B-bf16图片问答:16x与4x降采样模式怎么选?
下一篇:OpenPrice 数据库设计全解:PostgreSQL 触发器 + RLS 策略如何守护价格数据的客观性

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询