Skip to content

本页尚未翻译

本页内容仍为英文原文,源自官方文档 integrations/stable-worldmodel。中文翻译正在分批进行中。

Stable World Model ​

Use Stable World Model with LanceDB-backed datasets for reproducible world model research, fast data loading, and compact storage.

Stable World Model is a research platform for collecting data, training world models, and evaluating policies with model-predictive control across standardized environments.

The LanceDB integration is built into Stable World Model's data format registry. Lance is the default backend for collected datasets, so a path ending in .lance gives you an append-friendly LanceDB table with episode-contiguous rows and fast indexed reads.

Random access speed is the bottleneck for world model training, since the loop repeatedly samples temporal windows from high-dimensional observations, actions, and rewards. The faster those windows arrive, the more GPU time goes into training rather than waiting on the data loader.

Install ​

bash
pip install stable-worldmodel

Datasets and checkpoints are stored under $STABLEWM_HOME, which defaults to ~/.stable_worldmodel/.

Collect data into Lance ​

Stable World Model uses Lance by default when you collect to a .lance path. Replace your_expert_policy with the expert or scripted policy you use to collect demonstrations.

python
import stable_worldmodel as swm

world = swm.World("swm/PushT-v1", num_envs=8)
world.set_policy(your_expert_policy)
world.collect("data/pusht_demo.lance", episodes=100, seed=0)

Every writer accepts a mode argument such as append, overwrite, or error. The default is append, so re-running collection extends the existing dataset.

Load a Lance dataset for training ​

The dataset loader autodetects the Lance format from the path.

python
dataset = swm.data.load_dataset("data/pusht_demo.lance", num_steps=16)

batch = dataset[0]
print(batch.keys())

Your model code stays focused on the world model objective while LanceDB handles the storage layout and read path.

Evaluate with model-predictive control ​

After training a world model on the Lance-backed dataset, Stable World Model can evaluate it with planning solvers such as CEM. Replace world_model with the trained model object from your training loop.

python
from stable_worldmodel.policy import PlanConfig, WorldModelPolicy
from stable_worldmodel.solver import CEMSolver

solver = CEMSolver(model=world_model, num_samples=300)
policy = WorldModelPolicy(solver=solver, config=PlanConfig(horizon=10))

world.set_policy(policy)
results = world.evaluate(episodes=50)
print(f"Success Rate: {results['success_rate']:.1f}%")

Convert between formats ​

Stable World Model can convert between registered dataset formats. A common workflow is to collect in Lance for fast training reads, then export to the video layout for compact inspection artifacts.

python
swm.data.convert(
    "data/pusht_demo.lance",
    "data/pusht_video",
    dest_format="video",
    fps=30,
)

Throughput ​

The Stable World Model README reports the following PushT benchmark results from scripts/benchmark/compare_h5_lance.py:

FormatSourceCachesamples/sms/step
HDF5localno-cache1,416.145.2
HDF5localcached1,474.043.4
LanceDBlocalno-cache4,814.813.3
LanceDBlocalcached4,431.314.4
Videolocal-1,330.648.1
LanceDBs3no-cache3,183.720.1
LanceDBs3cached3,253.219.7
HDF5s3no-cache9.17,032.5
HDF5s3cached756.584.6

In that benchmark, local LanceDB reached about 3.4x the no-cache throughput of local HDF5, while S3-backed LanceDB reached about 350x the no-cache throughput of S3-backed HDF5. Even with cache enabled, S3-backed LanceDB was about 4.3x faster than S3-backed HDF5.

These numbers come from the Stable World Model project's own benchmark setup, so they're best read as a reproducible directional baseline that may shift across environments, models, and storage configurations.

Storage ​

The same README reports these local storage sizes for the benchmark dataset:

FormatLocal size
HDF543.12 GB
LanceDB13.31 GB
Video496.29 MB

LanceDB used about 69% less local storage than HDF5 in the reported benchmark, while preserving a table interface built for fast training reads and append-heavy collection.

More resources ​

Stable World Model READMEInstallation, quick start, supported formats, benchmarks, environments, solvers, and citation.Stable World Model docsFull upstream documentation with tutorials, API references, and guides.