Stable-Worldmodel × Ball-in-Cup用参数扰动压测你的动态系统控制【免费下载链接】stable-worldmodelA platform for reproducible world model research and evaluation项目地址: https://gitcode.com/GitHub_Trending/st/stable-worldmodel小球一次次掉出杯口。问题往往不在策略而在环境假设——你训练世界模型时用的那组重力、密度、球径未必和评估时一致。Stable-Worldmodel 的 Ball-in-Cup 环境swm/BallInCupDMControl-v0就是用来压测动态系统控制在这种参数偏移下是否还站得住的。环境原理一个带扰动的平面摆 杯子追球连续追踪问题小球用一根线拴在杯柄上整体会像平面摆一样来回甩动杯子只有 2 维力x、z 方向可以发动作空间是Box(-1, 1, shape(2,))。直觉上这是个接一下的任务实际它是持续的球每甩一圈杯子就得跟着校正一次错一步就脱杯。控制步长 0.02s每回合 20s共 1000 步。把物理量而不是贴图放进变体空间多数环境做随机化只换颜色Stable-Worldmodel 则把球半径0.01–0.05、球与杯密度500–1500、重力三轴分量都暴露成一个结构化的 variation spacereset()时按选项采样。改物理量的地方在apply_runtime_variations它直接把重力写进已编译的 MuJoCo physics 模型改了颜色、质量这类项才mark_dirty触发重编译。这套机制让世界模型鲁棒性测试可以参数化、可复现而不是一次性调场景。三步跑通 Ball-in-Cup 环境复现 克隆仓库git clone https://gitcode.com/GitHub_Trending/st/stable-worldmodel安装stable-worldmodel及其 MuJoCo/EGL 依赖依赖细节参考pyproject.toml用随机策略跑一轮冒烟测试确认管线通import stable_worldmodel as swm world swm.World(swm/BallInCupDMControl-v0, num_envs4) world.set_policy(swm.policy.RandomPolicy(seed42)) print(world.evaluate(episodes10, seed0))验证输出随机策略的success_rate应接近 0说明环境、策略、评估三件套都通了基线也有了环境实现位于stable_worldmodel/envs/dmcontrol/ball_in_cup.py__main__直接python stable_worldmodel/envs/dmcontrol/ball_in_cup.py就能看到观测形状。训练表现LEWM 的 GPU 占用曲线 曲线里 GPU 利用率在数据加载、前向/反传、规划采样之间起伏整体保持在高位说明训练循环没有因为 I/O 空转单卡可以完整跑完 Ball-in-Cup 这类 224×224 观测的世界模型训练。入口在scripts/train/lewm.py参数全部走 Hydra从scripts/train/config/lewm.yaml起步改数据路径即可。继续探索变体空间的完整用法指定具体值、随机整组因子见docs/quick_start.md的 Factors of Variation 一节仓库实现了并跑过 benchmark 的基线模型LEWM、PreJEPA、PLDM、TD-MPC2 等在docs/baselines.md训练脚本对应scripts/train/下的同名文件挑一个换上 Ball-in-Cup 数据集就能开始对比。【免费下载链接】stable-worldmodelA platform for reproducible world model research and evaluation项目地址: https://gitcode.com/GitHub_Trending/st/stable-worldmodel创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考