LIBERO:从原生任务到可验证的改进#
首个案例:LIBERO-Object「抓取 cream cheese 并放入篮子」。 保留原生 Panda、资产、控制器、示范初态与成功判定,执行完整动作,包括释放和终态。下方历史案例只使用这个任务的数据;mjlab 延后,定时开发保持暂停。
新增的完整 Object 任务集合#
Object 全部十项任务均已完成 osc-restored-pose-v1 下的每条官方示范:
500/500 份有效记录,包含 403/403 条开发记录和 97/97 条固定验证记录。
原生成功 495 条,保留原生失败 5 条,通过全部冻结数值诊断
0 条。原生任务成功不能证明物理准确性。
下表七项后续非配对任务集合与原始三个受影响任务分开报告;下方保留原始成对回归 的全部比较和失败,不将新任务的成功解释为历史修复收益。
任务 |
开发记录数/原生成功数 |
验证记录数/原生成功数 |
原生失败 |
|---|---|---|---|
Cream cheese |
43 / 43 |
7 / 7 |
— |
Ketchup |
40 / 39 |
10 / 9 |
development |
Tomato sauce |
40 / 40 |
10 / 10 |
— |
Butter |
40 / 40 |
10 / 10 |
— |
Milk |
40 / 40 |
10 / 10 |
— |
Chocolate pudding |
40 / 40 |
10 / 10 |
— |
Orange juice |
40 / 40 |
10 / 10 |
— |
两条 ketchup 失败在关闭记录器后均仍失败:每项对照的 52 项共有初态、动作、状态与
观测数组以及四份配置产物均相同,排除记录器专用的 goal_event_range。验证失败
对照属于事后诊断,没有改写验证结果,也不新增未见验证或基线样本。
其余六个后续任务集合没有需要追加的失败对照或原生重试。
链接中的逐例报告保留原阈值下的全部数值超限。约束加速度与物体作用力投影通过 不同重建路径使用相同的原生加速度与力信息,不能作为相互独立的物理参考; 同一子步可能在多个诊断中重复计入。没有根据这些结果选择阈值或物理误差解释。
任务包 |
新增原生运行次数 |
原生执行秒 |
离线服务秒 |
|---|---|---|---|
Cream cheese |
49 |
1581.37 |
9.38 |
Ketchup |
51 |
1638.37 |
17.79 |
Tomato sauce |
49 |
1577.46 |
8.29 |
Butter |
49 |
1704.19 |
10.55 |
Milk |
49 |
1550.32 |
13.54 |
Chocolate pudding |
49 |
1683.58 |
16.56 |
Orange juice |
49 |
1484.62 |
21.02 |
ketchup 包含两次诊断对照,其余表内任务各新增 49 次基线运行;离线费用保留 cream cheese 的准入前失败。表内费用覆盖原生执行与准入/比较/终结核验; 输入准备和仓库交付门禁另有回执。Object 完成时 LIBERO 原生实验累计账本为 775 次启动/23729.89 原生执行秒,包括此前失败和对照。 这些集合使用相同的执行/评分源码、初始化、参数与阈值,没有恢复未记录的历史 控制器状态,也没有将已观察记录重新标记为新的留出样本。
逐例报告与完整 Object 覆盖索引。Object 占官方 130 项任务中的十项; 十四条原生路径已有代表性记录资格,这是另一个分母,不能代替其余 120 项任务 的完整基线或其余 116 条路径资格。全任务/全部示范、独立物理参考和视觉策略评测 仍未完成。
受影响任务的完整记录与剩余失败#
三个受影响 Object 任务均已完成 osc-restored-pose-v1 下的全部 50 条官方示范,
各自保持冻结的 40 条开发/10 条验证划分。150 份记录全部有效,147 次原生任务成功,
150 份记录均未通过全部数值诊断。数值界限保持不变,也不是通用物理准确性阈值。
任务 |
原协议开发成功 |
恢复姿态协议开发成功 |
固定候选验证成功 |
剩余原生失败 |
|---|---|---|---|---|
字母汤 |
36/40 |
39/40 |
10/10 |
|
沙拉酱 |
39/40 |
39/40 |
10/10 |
|
烧烤酱 |
37/40 |
39/40 |
10/10 |
|
开发集成对比较从 112/120 次原生成功变为 117/120:七条失败改善、两条成功退化、一条 持续失败。因此,沙拉酱总数不变并不意味着失败案例不变。30 条验证仅评估冻结候选, 不是原协议与修正协议的成对验证比较。新增沙拉酱和烧烤酱失败在关闭记录时仍可复现, 目标/源位置最大偏差分别由 101.12 增至 281.88 mm、12.91 增至 408.58 mm。这些按结果 选取的源轨迹比较不能估计无偏改善或物理误差。 退化案例源轨迹审计。
此前三任务交付时,经复用核验与去重的 Object 覆盖为 157/500 条示范:开发 127/403、验证 30/97, 尚余 343 条。130 条原生任务路径中,十四条已获代表性记录资格;其余 116 条路径、完整 基线、物理参照和视觉策略评测仍未完成。路径资格、完整任务集合和单次回放成功分别计数。 逐例结果、证据包哈希与覆盖索引。
显式夹爪记忆干预改变了什么#
全部三条剩余开发失败均使用复位记忆 [0] 及两种显式干预完成整条回放,共九次诊断运行、
1,542 个动作、38,550 次原生夹爪命令更新,新增基线记录为零。每条只观测对照的全部
53 项数组(含初态数组)与已归档的关闭记录参考逐值一致。干预前,原生状态、驱动控制、热启动和 OSC
记忆均一致,只改变夹爪记忆;每次调用均记录固定版本真实 PandaGripper 的映射。
开发失败案例 |
复位 |
记忆 |
记忆 |
|---|---|---|---|
字母汤 |
失败 |
成功 |
成功 |
沙拉酱 |
失败 |
成功 |
成功 |
烧烤酱 |
失败 |
失败 |
成功 |
烧烤酱在 [1, -1] 下的首动作手指偏差从 5.392902 mm 降至约 0.000156 mm,但任务仍失败,
目标/源位置最大偏差由 408.58 增至 413.79 mm。相反,[-1, 1] 在首动作手指偏差更大时
成功。因此,所声明干预确实影响这些已暴露案例,但首动作一致或原生成功不能确定实际历史
记忆。生产默认值、历史评分、基线失败和验证划分均未替换。
九次完整对照及源码身份。
源字段审计重新核对三份完整 HDF5 哈希并检查 150 个示范头,未发现专用控制器/夹爪记忆
或热启动数据集。实际元数据有 tag、无 bddl_file_content,与固定导出脚本不同。
这不能区分不同生成版本与后续元数据修改;实际导出版本、运行时及任何未记录的动作前缀
仍未知。固定脚本跳过五个动作,不证明这些文件也按该方式生成。
字段发现与审计边界。
九次诊断使用 46.71 原生执行秒,峰值内存 1,078,919,168 字节,保持 8 GiB 硬上限/ 7 GiB 高水位/4 核/零交换空间,无 high/max/OOM 事件。累计原生账本为 430 次启动/ 12,509.98 执行秒,包含保留的历史尝试和对照,不是唯一基线数。源准备与离线核验分别 使用 2.12、1.80 服务秒。首版观测器在执行前的接口检查中失败,保留该未执行候选,原生费用为零。
公开证据包包含逐例摘要、哈希、审计发现及实际执行的 诊断源码。 完整原始轨迹和资源档案另行保留;仅凭摘要不能独立复核每个原生子步。源码快照需要已准入 计划与兼容原始输入,不是可独立运行的基准命令。
恢复后的控制器状态#
本节保留早期初始化与代表路径资格的证据。
#198 的首动作排查发现,恢复原生状态后
OSC 仍使用复位时的缓存。已暴露的沙拉酱 demo_35 中,缓存末端位置相差 24.2377 mm;
刷新缓存改变了原生结果,仅 forward 的对照则没有。手指等源状态偏差仍在,原生成功
不证明源轨迹完全复现或物理准确。
新运行显式选择 osc-restored-pose-v1:恢复一次原生状态,以一次 OSC 缓存刷新/forward
更新读回,将位置和方向目标设为恢复姿态,保留并记录复位的零空间及夹爪记忆。
不添加空动作或逐步状态注入,缺失的源控制器历史仍未解决。固定版本的真实控制器测试
覆盖首个相对目标和零旋转动作;完整受影响任务记录见上方。
初始化协议。
改动前的代表路径与 120 条开发记录继续作为原初始化协议的证据保留;记录开关对照在该 协议范围内仍有效,不能改称为修正后的基线。下方结果保留各自的历史范围。
同样七条已暴露诊断示范现已完成新协议下的 21 次开启/关闭/重复运行,包含 3,126 个动作和 52,100 条记录子步。14 份开启记录均有效;记录开关不改变数组,重复的 目标、评分和子步文件完全一致。每条示范的三种运行均得到相同原生结果:
开发示范 |
原协议原生结果 |
恢复姿态协议原生结果 |
|---|---|---|
字母汤 |
失败 |
成功 |
字母汤 |
失败 |
成功 |
字母汤 |
失败 |
成功 |
字母汤 |
失败 |
失败 |
字母汤 |
成功 |
成功 |
沙拉酱 |
失败 |
成功 |
沙拉酱 |
成功 |
成功 |
每份开启记录仍有原阈值下约束加速度与物体作用力投影的负结果,另九项诊断没有超界 子步。这组选过的诊断案例不估计完整任务成功率,也不证明物理准确性。本包使用 518.89 原生执行秒,全部终结资源回执与产物哈希均已核验。 资格记录与逐例负结果。
后续回归覆盖其余十二条此前已资格化路径:自由物体、抽屉、炉灶、同时完成多个目标、 长序列及剩余 Object 任务。36 次完整开启/关闭/重复运行包含 6,426 个动作和 107,100 条记录子步。24 份开启记录全部有效,十二条示范在三种模式下均保持原生成功。 开关之间的控制、状态和非图像观测数组逐值一致,重复目标、评分和子步文件一致, 原生模型身份与此前一致。所有开启记录仍保留原阈值下约束加速度与物体作用力投影的负结果。
本包使用 973.09 原生执行秒,峰值 cgroup 内存为 1,464,868,864 字节,保持 8 GiB 硬上限/ 7 GiB 高水位/4 核/零交换空间。全部进程和终结资源回执已核验,当时累计为 277 次启动/ 7,895.72 执行秒,排队与离线核验单独记录。两包共覆盖此前已资格化的全部十四条任务路径、 十九条已暴露示范。后续完整受影响任务记录见上方;其余 116 条任务路径、缺失源历史、 物理参照有效性和视觉策略评测继续开放。 完整路径回归证据。
独立源轨迹对照在重新核对两份完整 HDF5 哈希后,检查同样 1,035 条重叠状态,时间全部
逐值一致。仍失败的字母汤 demo_29 目标/源位置最大偏差增大:131.64 → 511.85 mm;
成功参考沙拉酱 demo_1 也由 22.80 → 25.31 mm。七条示范首个动作后的手指坐标
偏差仍为 5.37–5.39 mm。这些负结果说明,缓存同步不等于恢复缺失的控制器/夹爪历史,
也不保证更接近源轨迹;剩余原因尚未确定。
完整源轨迹对照。
通用任务记录资格(进行中)#
包含物体观测的 v2 路径完成五条开发序列:自由体、抽屉、炉灶关节、同时多目标及长序列。 每条均完成开启/关闭/再次开启记录三个对照,共 15 次完整运行、3,018 个动作和 50,300 个记录子步。原生终态查询均成功,10 份开启记录的结构校验均通过。 当前批次动作、状态、观测数组及目标逐值一致,重复子步文件逐字节一致。 这是代表路径的记录资格,不代表 130 项基线或学习策略评测完成。
开发序列 |
每次动作数 |
每次记录子步数 |
两项残差各自的超界子步数 |
|---|---|---|---|
自由体 |
139 |
3,475 |
507 |
抽屉 |
138 |
3,450 |
166 |
炉灶关节 |
80 |
2,000 |
45 |
同时多目标 |
388 |
9,700 |
749 |
长序列 |
261 |
6,525 |
367 |
两项残差分别为约束加速度与物体作用力投影,沿用冻结的逐坐标数值界限;另外九项指标 没有超界子步。这些负结果本身不能证明材料不准确或记录器有缺陷。 此前 7 个相对四元数通道及其聚合观测的精确比较失败继续保留。离线重建定位了数值库 线程配置差异;本次五类任务批次已固定相关环境控制项和包版本。
物体/求解器小模型通过 20 项原生检查,139 条已保存子步全部通过离线复算,随后 83 项记录/执行回归通过,未导入引擎。物体协议按原力时刻计算,报告刚性自由体质心 冲量诊断并保留本次求解器统计。推算子树载荷不是实测关节反力;物理参考资格仍未完成。
新增三项解析检查已通过,覆盖受驱动阻尼滑块、受驱动铰链和中心自由落体:八个合成配置、 142 条记录子步及一致的未开启记录对照,全部保存子步也通过离线复算。闭式载荷和积分 参考来自声明常量;故意损坏铰链加速度后会偏离独立参考。在固定 40 ms 自由落体时长下, 步长从 4 ms 减至 1 ms,竖直位置误差由 0.7848 降至 0.1962 mm,与 Euler 解析误差一致。 因此,小方程残差与有限步长误差分别保留。这些理想参考没有标定 LIBERO 材料,也不是 一般关节反力的实测。方程、单位与适用范围。
紧凑存储已通过 86 项记录/存储/执行回归,以及五条完整参考记录的无损转换和完整重评分 (1,006 个动作、25,150 个子步)。子步文件从 1,837,228,156 降至 442,665,669 字节, 减少 75.91%。随后三次原生接入检查保留全部原始自由体状态、动作、目标、评分及重复 文件字节;原生保存字段与离线副本完全一致。这不构成全任务容量或吞吐量结论。
此前一次原生启动因新配置目录缺少 config.yaml,在执行任务动作前失败。失败和费用保留;
修订包在派发前核验了已知配置的哈希与路径。原始记录、阈值和数值失败保持不变。
工程实现已通过 PR #193 合入主线。 完整检查执行 1,076 项测试(1,055 项通过、21 项按运行时适用性跳过)、两条完整 14 秒 后端回归(MuJoCo 23/23 项、SuperDex 22/22 项)、原始记录复算、官方包身份核验及严格 双语文档构建。随后发生的 Git 拉取失败保留;发布在相同已验证代码树和未变的主线基础上 恢复。这些后端回归验收的是既有声明配置,不证明跨引擎 SDF 参数等价。 #188 保留剩余资格要求,全部 130 项任务与 视觉策略父项继续开放。
Object 任务路径资格#
其余九个 Object 任务各选一条开发示范,完成开启/关闭/再次开启记录对照: 27 次完整运行、4,317 个动作和 71,950 条记录子步。所有原生终态查询成功, 18 份开启记录的结构检查均通过;完整产物哈希、动作/时间链及模型身份已核验。 记录开关没有改变控制、状态或观测数组,重复目标、评分和子步文件也完全一致。
物体 |
每次动作数 |
每次记录子步数 |
同两项残差各自的超界子步数 |
|---|---|---|---|
alphabet-soup |
179 |
4,475 |
54 |
salad-dressing |
124 |
3,100 |
264 |
bbq-sauce |
134 |
3,350 |
441 |
ketchup |
248 |
6,200 |
752 |
tomato-sauce |
132 |
3,300 |
171 |
butter |
169 |
4,225 |
729 |
milk |
150 |
3,750 |
104 |
chocolate-pudding |
168 |
4,200 |
812 |
orange-juice |
135 |
3,375 |
835 |
约束加速度与物体作用力投影仍有超界,原界限不变;另九项指标没有超界子步。 原生成功、数值一致性与物理准确性分别报告。本包原生工作进程累计 666.11 秒, 批次产物约 1.43 GB;这是资格检查的实际成本,不是引擎吞吐量或全部示范容量估算。
结合已有 cream-cheese 对照,十条 Object 任务路径都有代表性原生控制检查。 500 条官方 Object 示范/74,507 个动作的输入均已准备并通过加载检查, 全部 baseline 执行仍未完成。原有 403 条开发/97 条验证划分保留,本包九条资格 序列只使用开发数据。全部 130 项、物理参考和视觉策略评测继续按完整范围验收。 Object 证据 及解析参考证据 记录完整分母、各项负结果与来源哈希。
原案例实际得到什么#
复现结果: 原版三个开发示范、十个留出示范全部完成原任务,本次没有复现“抬升滑脱”。这些是示范动作执行结果,不是学习策略的 benchmark 成绩。
已证实的流程问题: 独立评测入口静置五步后仍使用旧观测;训练评测入口会刷新。实际原生审计中,0.25 s 静置期间末端位置某坐标变化 4.481 mm、夹爪某关节位置变化 12.143 mm。一行补丁刷新最后一次观测,保留五次零动作;已核验应用与撤销。
没有成立的优化: 缩小步长没有一致减少穿透。1 ms 对照的留出物理诊断为 3/10,原版为 5/10;原生步进耗时约 2.00 倍。因此不推荐该改动,也不放宽诊断线。
下一步有明确对象: 最大 12.163 mm 穿透位于 demo_8 的
floor ↔ cream_cheese_1_g1,原生时间 2.940 s,发生在首次测得抬升之前。其混合接触时间常数是 10.5 ms,2 ms 步长下的 4 ms 安全下限没有触发。剩余几何、驱动与接触响应归因见 #174。

打开同步回放、逐帧曲线和三个对照条件 · 完整结果 JSON · 全部记录下载
画面中的“修改”指步长对照,并不表示优化成功。观测刷新补丁不改变预录示范动作,不能用这两段视频宣称补丁提升了策略成功率。
版本、物理参照与冻结规则#
项目 |
实际执行 |
|---|---|
原生路径 |
LIBERO |
solver / 接触 / 积分 |
Newton / elliptic / Euler;100 次迭代,tolerance=1e-8,impratio=20 |
控制 |
原生 OSC_POSE,20 Hz;关节伺服及摩擦、质量、几何不变 |
目标质量 |
0.012337579236976485 kg;完整惯量、COM 偏移、驱动与接触读回随数据保存 |
数据 |
官方单任务 HDF5,冻结 revision 与 SHA-256;只下载该任务,50 条中的 demo_0..2 开发、demo_3..12 留出 |
初态与重置 |
从官方 demo states[0] 的 time/qpos/qvel 启动,原生控制器重置;不是历史控制器记忆的精确恢复 |
验收边界 |
原任务成功、观测有效性、数值诊断、稳定性、成本分别报告;可靠任务覆盖计数不变 |
独立评分使用目标物体世界系 COM 动量变化 = 接触冲量 + 重力冲量,修正自由刚体局部角速度与 COM 偏移。预设诊断线为最大目标接触穿透 ≤1 mm、99 分位动量残差 ≤重力的 5%。这是数值筛查,不是官方 LIBERO 成功条件,不是材料标定,也没有验收完整转动力矩平衡。夹爪坐标系相对高度同时受旋转和释放影响,不能直接叫作纯滑移。
原生 mj_step 后读取的约束力属于积分前时刻;状态属于积分后。曲线保留真实采样时刻和全部峰值,画面按 20 Hz 已记录状态显示,不重新积分。完整单位、坐标和控制语义见 semantics.json。
评分一致性#
评分器 v2 根据每个子步记录的目标接触距离,独立重算 max(0, -distance) 的最大值,并要求与保存的汇总穿透完全一致。两条通道来自同一原生数值,这项身份检查不引入物理容差。接触距离、力向量和时刻必须有限,数量必须精确匹配,每个接触只能有一侧属于目标物体。无接触时,穿透与接触合力均须为零。
临时副本回归证实:旧评分器会接受“汇总穿透置零、逐接触距离仍显示穿透”的矛盾记录,只要同时刷新本地轨迹哈希。外部已发布包的 manifest 仍会拒绝变化后的轨迹;该缺陷不证明历史数据被篡改。v2 拒绝这类矛盾记录,保留原生成功判定和历史数值阈值。新输出增加 scoring_version: 2,v0.60.0 归档评分没有该字段,原文件保持不变。验收跟踪见 #183。
离线复算的 40/40 条记录除新增版本字段外,所有历史评分值保持一致,各回合原始文件哈希也全部匹配。相同的汇总置零副本现在被拒绝,即使其本地哈希有效。回归记录。这是记录校验,不是新的仿真实验或材料准确性结论。
受控实验保留了哪些失败#
开发配置 |
步长 |
正时间常数下限 |
原任务 |
物理诊断 |
最大穿透 |
三条原生步进耗时 |
|---|---|---|---|---|---|---|
baseline |
2 ms |
原版 |
3/3 |
0/3 |
4.882 mm |
0.694 s |
step-1000us |
1 ms |
原版 |
3/3 |
0/3 |
4.997 mm |
1.360 s |
step-500us |
0.5 ms |
原版 |
3/3 |
0/3 |
5.011 mm |
2.710 s |
aligned-2000us |
2 ms |
4 ms |
3/3 |
0/3 |
5.304 mm |
0.710 s |
aligned-1000us |
1 ms |
4 ms |
3/3 |
0/3 |
5.407 mm |
1.387 s |
aligned-500us |
0.5 ms |
4 ms |
3/3 |
0/3 |
6.362 mm |
2.780 s |
另有记录关闭对照和静置观测审计,共八个候选配置。相同动作比较不增加任务类型,也不等于八种 solver。原版步长扫描同时影响积分和某些接触时间常数:MuJoCo 对正格式参数启用 refsafe 时使用 max(timeconst, 2h)。2.3.7 源码
显式对齐组先把 geom/pair 的正时间常数下限设为 4 ms,再改变步长。它是另一接触配置;只在组内研究步长,不声称与原版材料等价。几何、质量、摩擦、控制周期、驱动限额及成功判定保持原样。
选择规则在留出前冻结:优先所有开发示范任务成功、观测有效且通过诊断的配置,再比较最坏穿透与成本。没有配置全部过线时,选择最小最坏穿透的非原版配置作不合格对照,不作推荐。因此 1 ms 被送入留出,仅用于检验负面结果的迁移。
留出 demo_3..12 |
原任务终态成功 |
物理诊断 |
最大穿透 |
原生步进总耗时 |
|---|---|---|---|---|
原版 2 ms |
10/10 |
5/10 |
12.163 mm |
2.239 s |
对照 1 ms |
10/10 |
3/10 |
12.212 mm |
4.481 s |
这是固定 seed 的十组配对示范,未据此继续调参。耗时是同机串行测得的原生步进时间;导入、记录和评分另列原始账本,不是训练速度或跨引擎排名。全部成功、失败和退化都在结果 JSON 与原始包中。
从异常到修改:这次如何落地#
保留完整任务动作前缀,并记录目标、实际驱动、接触、状态及有效参数,按接触/抬升/释放/落入篮子定位事件。
先验证记录器:开启与关闭时,控制频率的状态、动作、观测、控制目标和成功序列逐项完全一致;独立进程重复也逐项相同。
对最大穿透检查原生接触对与时间。demo_0 峰值为放置阶段物体—篮子接触;demo_8 峰值则在抓取阶段物体—地面接触。不同事件不能用同一种原因概括。
六种配置和独立物理评分未支持“缩小步长即可修复”。保留这一结论,继续有边界的机制研究。
观测陈旧问题有独立源码与原生差异证据,交付可撤销的一行补丁。其闭环策略效果需要匹配的固定 checkpoint;本轮未取得并验证该权重,不宣称首个策略动作或成功率改善。
事件标签用于定位,不代替因果结论。没有指部接触、没有测得抬升、搬运接触、放置失败分别保留;抬升后接触丢失仍需结合动作与几何区分滑脱和主动释放。简化场景及中途恢复均未准入,本轮直接运行完整原任务。
复现、来源与适用边界#
运行、评分、补丁应用/撤销和回放命令 · 冻结候选与选择规则 · 独立评测源码 · 训练评测源码
原生模拟使用独立 Python 3.10 诊断环境;上游完整学习安装文档的 Python 3.8 / PyTorch 1.11 环境没有被冒充为本轮策略准入。HDF5 未嵌入历史 BDDL 正文。其主任务和问题身份匹配冻结源码,但指令匹配 benchmark.Task.language,与 BDDL 文字不同:前者为 “pick up the cream cheese…”,后者为 “pick the cream cheese…”。旧 env_args 还保留更早的 BDDL 文件名。这些声明分别保存;缺失正文或辅助路径都不能证明原生环境等价。示范末尾的 reward/done 写入不作为成功证据;成功来自实际执行时的原生查询。输入身份跟踪 #185。
全任务输入准入#
输入清单保留五组(10/10/10/10/90)共 130 项官方任务、逐项 BDDL 与初态文件哈希、全部原生目标,以及固定数据 revision 的预期字节数和 SHA-256。LIBERO-100 就是已有的 90+10,不重复计数。静态身份、下载字节、HDF5 内容准入和原生执行分别记录;#181 仍承接全任务运行。
离线数据检查使用 Python 3.12 DexLab 环境及 libero-inputs 可选依赖,保留独立旧版仿真环境。在新结果暴露前冻结身份清单和确定性划分,再通过既有归档资源限制与共享研究锁准入完整文件。工具先核验整文件哈希,再读取 HDF5;拒绝外部或别名内容,逐示范保存动作数、状态宽度、初态和模型 XML 身份。动作/状态数组分块检查有限值,不读取 reward、done 或图像来筛选示范。
python -m pip install -e '.[libero-inputs]'
python -m dexlab.libero_dataset freeze LIBERO_SOURCE FROZEN_INPUTS
# 完整文件读取须放在 scripts/research_guard.py + scripts/bounded_run.py 内:
python -m dexlab.libero_dataset admit LIBERO_SOURCE FROZEN_INPUTS TASK_ID TASK_HDF5 NEW_RECEIPT
python -m dexlab.libero_dataset aggregate LIBERO_SOURCE FROZEN_INPUTS DATA_ROOT RECEIPT_ROOT NEW_SUMMARY
TASK_ID 是清单中精确的 suite/task 键。准入记录保存为 RECEIPT_ROOT/suite/task.json,数据文件使用冻结的官方相对路径。汇总始终保留缺失与无效行;可用性只检查文件大小,既有准入记录证明当时核验的字节,不冒充当前重新计算的哈希。文件变化或来源不可信时重新准入;内容不同的既有记录不能覆盖。
回执索引拒绝缺失或矛盾的任务关联、初态身份、暴露/划分声明和读取器来源。无效回执不计入已准入示范总数,预期任务仍保留在分母中。初态数值相等时,正负零或不同浮点类型可能对应不同字节,因此不能仅凭哈希替代原始数值比较。
源码 BDDL 语言与冻结 benchmark API 语言独立比较:130 项中有 29 项源码声明不同。数据集文字在大小写/空白规范化后须精确匹配其中至少一项显式源码声明,任意改写仍拒绝。缺失内嵌 BDDL 记为 not-provided,存在时逐字节核对源码。后续原生/策略资格必须记录实际指令与执行的 BDDL;输入准入不能证明策略等价。
每项任务使用冻结盐值对未暴露 demo ID 作哈希排序,取 floor(未暴露数量 / 5) 作为验证,其余作为开发;不足五条未暴露示范时没有验证样本。历史 cream-cheese demo_0…12 保持已暴露开发身份。全部示范均保留在正式 baseline 分母中,历史 v1 批次及其原划分不改写。
串行下载工具在首次传输前冻结累计计划:至多 390 次尝试、每文件三次、125 GiB 计费响应正文和 12 小时;每次最多 600 秒,正文读取限速 8 MiB/s。失败/中断保留部分文件并消耗其预留额度;记录的执行者仍存活时不能恢复。续传在追加前核对精确 Content-Range 和不变的强 ETag,完整哈希匹配后才发布文件;不覆盖已有正式文件,也不自动重试。沿用同一共享归档锁和有限资源限制;下载完成不等于内容或原生准入。固定源码 README 将数据集列为 CC BY 4.0,而固定数据卡声明 Apache-2.0;并列保留两项来源,不将任一标签当作全部数据已澄清的许可结论。源码 MIT 和上游资产许可另行保留。来源说明。
响应读取和完整文件校验共用同一次尝试的截止时间。检测到超时后保留部分文件与费用,记为失败尝试,不发布为下载完成。除整包资源限制外,每次检索还须有不超过该次预留窗口的进程超时;截止时间检查不能抢占阻塞中的操作系统调用。
实测容量不足时,可在同一账本中显式执行一次 amend-wall;须先结束当前包和全部已记录执行者,再通过共享锁操作。提供修订理由与 JSON 证据报告,包含 inventory_sha256、transfer_plan_sha256、正整数 completed_successful_transfers 及支持调整的实测成本。不可覆盖的修订绑定该证据和此前每份尝试回执,只将累计时间上限调为 24 小时、每次上限调为 1800 秒。原有费用全部计入新总额,尝试次数、字节额度、限速和任务范围不变。中断按该次记录的上限计费,旧的 600 秒预留不会被重解释。重复修订、未结束或存活的执行者、证据或历史回执变化都会被拒绝。字节已写全的部分文件仍须完成完整哈希和 HDF5 准入,不能凭大小判定有效。继续执行前冻结新的包及源码身份;外层包仍受既有 3600 秒限制,单个 1800 秒文件加管理开销可以容纳,五个同样的时间窗口则不行。
本轮的作用是展示:DexLab 可以把现有 benchmark 的异常定位到具体时间、接触和代码路径,检验一个看似合理的修改是否有效,并把有效流程修正和无效物理试参分开交付。新场景首先检查观测新鲜度、实际接触力和控制驱动,再验证候选配置;这组结果尚不支持新的物理配置推荐。
资源与恢复:原生批次冻结为 16 GiB hard / 15 GiB high、4 核等效、禁用 swap,另留 8 GiB。实测最高 cgroup 内存约 1.218 GiB;批次内未改变配置。继承账本共 46/64 次启动、363.07/21600 s 计费运行时间,包含早期失败与诊断记录;不是本次开发的总人工/工具耗时。后续同负载按已测峰值可从 8 GiB 档重新准入。原生包在运行后逐文件核对 wheel RECORD 哈希;该完整性检查不冒充运行前的二进制遥测。