bagellabs commited on
Commit
c0548c1
Β·
1 Parent(s): 7b2716d

Make the WorldDiT model card demo first (#1)

Browse files

- Make the WorldDiT model card demo first (2884ee74ce9a6a114da7dd214a296986814be174)

Files changed (1) hide show
  1. README.md +169 -72
README.md CHANGED
@@ -1,19 +1,46 @@
1
  ---
2
  library_name: pytorch
3
  pipeline_tag: robotics
 
 
4
  tags:
5
  - worlddit
 
 
6
  - libero
7
  - robot-learning
 
8
  - imitation-learning
 
9
  - diffusion-policy
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10
  ---
11
 
12
  <p align="center">
13
  <img src="https://pub-2c09ae97630f4932a23e622b450076e0.r2.dev/paris2/model-card/v1/bagel_labs_logo.png" alt="Bagel Labs">
14
  </p>
15
 
16
- <h1 align="center">WorldDiT</h1>
 
 
17
 
18
  <p align="center">
19
  <a href="https://huggingface.co/bageldotcom/worlddit" target="_blank">
@@ -24,66 +51,82 @@ tags:
24
  </a>
25
  </p>
26
 
27
- WorldDiT is a diffusion-transformer policy for language-conditioned robotic
28
- manipulation. This public release provides suite-specific checkpoints for all
29
- four LIBERO benchmark suites together with a compact, self-contained inference
30
- and evaluation runtime.
31
 
32
- The runtime is intentionally minimal: `inference.py` constructs the policy and
33
- loads a checkpoint, while `eval.py` performs headless single- or multi-GPU
34
- LIBERO evaluation.
35
 
36
- # Results
37
 
38
- All results use 10 tasks Γ— 50 episodes with the released evaluation protocol.
39
- The public runtime and checkpoints were revalidated from a clean installation
40
- across 2,000 episodes on 8xRTX Pro 6000 Blackwell GPUs.
41
 
42
- | Suite | Successes | Success rate |
43
- |---|---:|---:|
44
- | LIBERO-Spatial | 490/500 | **98.0%** |
45
- | LIBERO-Object | 485/500 | **97.0%** |
46
- | LIBERO-Goal | 464/500 | **92.8%** |
47
- | LIBERO-10 | 459/500 | **91.8%** |
48
 
49
- # Key Characteristics
 
 
 
 
 
50
 
51
- - Three-frame observation context
52
- - Seven-step action prediction horizon
53
- - Three actions executed between policy replans
54
- - Temporally ensembled action predictions
55
- - Suite-specific checkpoints for all four LIBERO benchmarks
56
- - Headless evaluation on one or more GPUs
57
- - Compact two-file inference and evaluation runtime
58
 
59
- ---
 
 
 
 
 
 
 
 
 
 
60
 
61
- # What This Repository Contains
 
62
 
63
- ```text
64
- .
65
- β”œβ”€β”€ checkpoints/
66
- β”‚ β”œβ”€β”€ libero_10/model.safetensors
67
- β”‚ β”œβ”€β”€ libero_goal/model.safetensors
68
- β”‚ β”œβ”€β”€ libero_object/model.safetensors
69
- β”‚ └── libero_spatial/model.safetensors
70
- β”œβ”€β”€ dependencies/
71
- β”‚ β”œβ”€β”€ ViT-B-32.pt
72
- β”‚ └── mae_pretrain_vit_base.pth
73
- β”œβ”€β”€ eval.py
74
- β”œβ”€β”€ inference.py
75
- β”œβ”€β”€ config.json
76
- └── requirements.txt
77
- ```
78
 
79
- `dependencies/` contains the frozen visual and language encoder weights needed
80
- by the released policy. No additional model downloads are required.
81
 
82
- ---
 
 
 
 
 
 
 
 
 
 
 
 
 
83
 
84
- # Installation
85
 
86
- Download the repository and create a clean Python 3.12 environment:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
87
 
88
  ```bash
89
  hf download bageldotcom/worlddit --local-dir worlddit
@@ -96,7 +139,7 @@ python -m pip install --no-deps robosuite==1.4.1
96
  ```
97
 
98
  LIBERO supplies the benchmark definitions, assets, and initial states. Keep the
99
- checkout at `~/LIBERO`, which is the evaluator's default:
100
 
101
  ```bash
102
  git clone https://github.com/Lifelong-Robot-Learning/LIBERO.git ~/LIBERO
@@ -105,11 +148,40 @@ git clone https://github.com/Lifelong-Robot-Learning/LIBERO.git ~/LIBERO
105
  The released evaluation was validated with LIBERO commit
106
  `8f1084e3132a39270c3a13ebe37270a43ece2a01`.
107
 
108
- ---
 
 
 
 
 
 
 
 
 
 
 
 
109
 
110
- # Evaluation
111
 
112
- ## One GPU
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
113
 
114
  ```bash
115
  python eval.py \
@@ -118,7 +190,7 @@ python eval.py \
118
  --output-dir results/libero_spatial
119
  ```
120
 
121
- ## Multiple GPUs
122
 
123
  ```bash
124
  CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 python eval.py \
@@ -128,11 +200,11 @@ CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 python eval.py \
128
  ```
129
 
130
  Each GPU receives an independent progress bar. After all workers finish, rank 0
131
- prints per-task and overall success rates and writes a structured
132
  `results.json`. Output directories must be new so an earlier evaluation is
133
  never overwritten.
134
 
135
- Supported suites:
136
 
137
  ```text
138
  libero_spatial
@@ -141,21 +213,28 @@ libero_goal
141
  libero_10
142
  ```
143
 
144
- For a short installation smoke test:
145
 
146
- ```bash
147
- python eval.py \
148
- --suite libero_spatial \
149
- --gpus 1 \
150
- --tasks 1 \
151
- --episodes 1 \
152
- --max-steps 20 \
153
- --output-dir results/smoke
 
 
 
 
 
 
154
  ```
155
 
156
- ---
 
157
 
158
- # Inference API
159
 
160
  ```python
161
  from inference import load_model
@@ -174,9 +253,7 @@ actions = model(primary_images, wrist_images, robot_state, text_tokens)
174
 
175
  Evaluation uses the final temporal slot of the predicted action tensor.
176
 
177
- ---
178
-
179
- # Architecture Details
180
 
181
  | Component | Specification |
182
  |---|---|
@@ -184,20 +261,40 @@ Evaluation uses the final temporal slot of the predicted action tensor.
184
  | Observation context | 3 frames |
185
  | Action horizon | 7 actions |
186
  | Action dimension | 7 |
 
187
  | Language encoder | OpenAI CLIP ViT-B/32 |
188
  | Visual encoder | MAE ViT-B |
189
  | Evaluation | Headless LIBERO with EGL |
190
  | Checkpoint format | SafeTensors |
191
 
192
- ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
193
 
194
- # Acknowledgments
195
 
196
  This release builds on
197
  [LIBERO](https://github.com/Lifelong-Robot-Learning/LIBERO),
198
  [robosuite](https://github.com/ARISE-Initiative/robosuite),
199
  [OpenAI CLIP](https://github.com/openai/CLIP), and
200
- [Masked Autoencoders](https://github.com/facebookresearch/mae). Third-party
201
  components remain subject to their respective upstream terms.
202
 
203
  ---
 
1
  ---
2
  library_name: pytorch
3
  pipeline_tag: robotics
4
+ language:
5
+ - en
6
  tags:
7
  - worlddit
8
+ - world-action-model
9
+ - world-models
10
  - libero
11
  - robot-learning
12
+ - robotic-manipulation
13
  - imitation-learning
14
+ - diffusion-transformer
15
  - diffusion-policy
16
+ - flow-matching
17
+ inference: false
18
+ widget:
19
+ - example_title: "LIBERO Spatial, task 5"
20
+ text: "Successful rollout, front view."
21
+ output:
22
+ url: "https://pub-2c09ae97630f4932a23e622b450076e0.r2.dev/worlddit/model-card/v1/worlddit_libero_spatial_frontview_task05_episode01.mp4"
23
+ - example_title: "LIBERO Object, task 8"
24
+ text: "Successful rollout, agent view."
25
+ output:
26
+ url: "https://pub-2c09ae97630f4932a23e622b450076e0.r2.dev/worlddit/model-card/v1/worlddit_libero_object_agentview_task08_episode01.mp4"
27
+ - example_title: "LIBERO Goal, task 10"
28
+ text: "Successful rollout, side view."
29
+ output:
30
+ url: "https://pub-2c09ae97630f4932a23e622b450076e0.r2.dev/worlddit/model-card/v1/worlddit_libero_goal_sideview_task10_episode01.mp4"
31
+ - example_title: "LIBERO Long, task 6"
32
+ text: "Successful rollout, front view."
33
+ output:
34
+ url: "https://pub-2c09ae97630f4932a23e622b450076e0.r2.dev/worlddit/model-card/v1/worlddit_libero_10_frontview_task06_episode01.mp4"
35
  ---
36
 
37
  <p align="center">
38
  <img src="https://pub-2c09ae97630f4932a23e622b450076e0.r2.dev/paris2/model-card/v1/bagel_labs_logo.png" alt="Bagel Labs">
39
  </p>
40
 
41
+ # WorldDiT
42
+
43
+ ## One diffusion backbone learns what to do and what comes next.
44
 
45
  <p align="center">
46
  <a href="https://huggingface.co/bageldotcom/worlddit" target="_blank">
 
51
  </a>
52
  </p>
53
 
54
+ WorldDiT learns continuous robot action chunks and a future visual target
55
+ through one shared diffusion transformer. Deployment keeps only the action
56
+ path.
 
57
 
58
+ This release includes four LIBERO checkpoints, a self contained inference
59
+ runtime, and an evaluator for reproducing the reported suite results.
 
60
 
61
+ ## See WorldDiT act
62
 
63
+ The four clips below show successful rollouts from the released checkpoints.
64
+ Each clip covers a different LIBERO suite and camera view.
 
65
 
66
+ <Gallery />
 
 
 
 
 
67
 
68
+ | Suite | View | Video |
69
+ |---|---|---|
70
+ | LIBERO Spatial | Front view | [Open MP4](https://pub-2c09ae97630f4932a23e622b450076e0.r2.dev/worlddit/model-card/v1/worlddit_libero_spatial_frontview_task05_episode01.mp4) |
71
+ | LIBERO Object | Agent view | [Open MP4](https://pub-2c09ae97630f4932a23e622b450076e0.r2.dev/worlddit/model-card/v1/worlddit_libero_object_agentview_task08_episode01.mp4) |
72
+ | LIBERO Goal | Side view | [Open MP4](https://pub-2c09ae97630f4932a23e622b450076e0.r2.dev/worlddit/model-card/v1/worlddit_libero_goal_sideview_task10_episode01.mp4) |
73
+ | LIBERO Long | Front view | [Open MP4](https://pub-2c09ae97630f4932a23e622b450076e0.r2.dev/worlddit/model-card/v1/worlddit_libero_10_frontview_task06_episode01.mp4) |
74
 
75
+ ## What is in this release
 
 
 
 
 
 
76
 
77
+ | Release component | Included artifact |
78
+ |---|---|
79
+ | LIBERO Spatial policy | SafeTensors checkpoint |
80
+ | LIBERO Object policy | SafeTensors checkpoint |
81
+ | LIBERO Goal policy | SafeTensors checkpoint |
82
+ | LIBERO Long policy | SafeTensors checkpoint |
83
+ | Model runtime | `inference.py` |
84
+ | Evaluation runtime | `eval.py` |
85
+ | Frozen encoders | CLIP ViT B 32 and MAE ViT B |
86
+ | Configuration | `config.json` |
87
+ | Environment | Pinned Python requirements |
88
 
89
+ The repository is self contained for WorldDiT inference. LIBERO still provides
90
+ the benchmark environments, assets, task definitions, and initial states.
91
 
92
+ ## Reported LIBERO results
 
 
 
 
 
 
 
 
 
 
 
 
 
 
93
 
94
+ Across the four released suite checkpoints, WorldDiT records 1,898 successful
95
+ episodes out of 2,000 under the selection aware evaluation protocol.
96
 
97
+ | Suite | Successful episodes | Success rate |
98
+ |---|---:|---:|
99
+ | LIBERO Spatial | 490 of 500 | 98.0 percent |
100
+ | LIBERO Object | 485 of 500 | 97.0 percent |
101
+ | LIBERO Goal | 464 of 500 | 92.8 percent |
102
+ | LIBERO Long | 459 of 500 | 91.8 percent |
103
+ | Selection aware mean | 1,898 of 2,000 | 94.9 percent |
104
+
105
+ The released runtime and checkpoints were revalidated from a clean installation
106
+ on eight RTX Pro 6000 Blackwell GPUs.
107
+
108
+ The result is selection aware because three hundred episodes per suite informed
109
+ staged checkpoint selection before the final five hundred episode score was
110
+ assembled.
111
 
112
+ ## Model at a glance
113
 
114
+ | Property | Released configuration |
115
+ |---|---|
116
+ | Total parameters | 399.084 million |
117
+ | Trainable parameters | 135.107 million |
118
+ | Observation context | Three frames |
119
+ | Predicted action horizon | Seven actions |
120
+ | Executed before replanning | Three actions |
121
+ | Action dimension | Seven |
122
+ | Visual encoder | MAE ViT B |
123
+ | Language encoder | OpenAI CLIP ViT B 32 |
124
+ | Checkpoint format | SafeTensors |
125
+ | Evaluation environment | Headless LIBERO with EGL |
126
+
127
+ ## Run a smoke test
128
+
129
+ Download the repository and create a clean Python 3.12 environment.
130
 
131
  ```bash
132
  hf download bageldotcom/worlddit --local-dir worlddit
 
139
  ```
140
 
141
  LIBERO supplies the benchmark definitions, assets, and initial states. Keep the
142
+ checkout at `~/LIBERO`, which is the evaluator's default.
143
 
144
  ```bash
145
  git clone https://github.com/Lifelong-Robot-Learning/LIBERO.git ~/LIBERO
 
148
  The released evaluation was validated with LIBERO commit
149
  `8f1084e3132a39270c3a13ebe37270a43ece2a01`.
150
 
151
+ ```bash
152
+ python eval.py \
153
+ --suite libero_spatial \
154
+ --gpus 1 \
155
+ --tasks 1 \
156
+ --episodes 1 \
157
+ --max-steps 20 \
158
+ --output-dir results/smoke
159
+ ```
160
+
161
+ A successful smoke test confirms that the environment, checkpoint, visual
162
+ encoders, simulator, and rendering path load together. It is not a benchmark
163
+ result.
164
 
165
+ ## How WorldDiT works
166
 
167
+ WorldDiT uses three recent observations, robot state, and language as context.
168
+ During training, one diffusion transformer learns a seven step action chunk and
169
+ an auxiliary future visual target. During deployment, the future visual path is
170
+ absent. The policy executes the first three predicted actions, observes again,
171
+ and replans.
172
+
173
+ > Future visual prediction is a training signal, not a deployment path.
174
+
175
+ | Training | Deployment |
176
+ |---|---|
177
+ | Action and future visual targets share one backbone | Only the action path remains |
178
+ | Seven action steps are supervised | Seven actions are predicted |
179
+ | Future visual supervision is present | No future visual output is requested |
180
+ | The complete training objective is active | Three actions execute before replanning |
181
+
182
+ ## Evaluation
183
+
184
+ ### One GPU
185
 
186
  ```bash
187
  python eval.py \
 
190
  --output-dir results/libero_spatial
191
  ```
192
 
193
+ ### Multiple GPUs
194
 
195
  ```bash
196
  CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 python eval.py \
 
200
  ```
201
 
202
  Each GPU receives an independent progress bar. After all workers finish, rank 0
203
+ prints per task and overall success rates and writes a structured
204
  `results.json`. Output directories must be new so an earlier evaluation is
205
  never overwritten.
206
 
207
+ Supported suites.
208
 
209
  ```text
210
  libero_spatial
 
213
  libero_10
214
  ```
215
 
216
+ ## What this repository contains
217
 
218
+ ```text
219
+ .
220
+ β”œβ”€β”€ checkpoints/
221
+ β”‚ β”œβ”€β”€ libero_10/model.safetensors
222
+ β”‚ β”œβ”€β”€ libero_goal/model.safetensors
223
+ β”‚ β”œβ”€β”€ libero_object/model.safetensors
224
+ β”‚ └── libero_spatial/model.safetensors
225
+ β”œβ”€β”€ dependencies/
226
+ β”‚ β”œβ”€β”€ ViT-B-32.pt
227
+ β”‚ └── mae_pretrain_vit_base.pth
228
+ β”œβ”€β”€ eval.py
229
+ β”œβ”€β”€ inference.py
230
+ β”œβ”€β”€ config.json
231
+ └── requirements.txt
232
  ```
233
 
234
+ `dependencies/` contains the frozen visual and language encoder weights needed
235
+ by the released policy. No additional model downloads are required.
236
 
237
+ ## Inference API
238
 
239
  ```python
240
  from inference import load_model
 
253
 
254
  Evaluation uses the final temporal slot of the predicted action tensor.
255
 
256
+ ## Architecture details
 
 
257
 
258
  | Component | Specification |
259
  |---|---|
 
261
  | Observation context | 3 frames |
262
  | Action horizon | 7 actions |
263
  | Action dimension | 7 |
264
+ | Action aggregation | Temporal ensembling |
265
  | Language encoder | OpenAI CLIP ViT-B/32 |
266
  | Visual encoder | MAE ViT-B |
267
  | Evaluation | Headless LIBERO with EGL |
268
  | Checkpoint format | SafeTensors |
269
 
270
+ ## Intended use
271
+
272
+ WorldDiT is intended for research on language conditioned robot manipulation in
273
+ the LIBERO simulator. The released checkpoints support reproduction,
274
+ evaluation, and architecture research across the four released suites.
275
+
276
+ ## Scope of the release
277
+
278
+ The reported results describe LIBERO simulation under the released evaluation
279
+ protocol. They do not establish real robot reliability, safety, or transfer
280
+ across embodiments.
281
+
282
+ The present release does not isolate the causal contribution of the future
283
+ visual target. Total parameter count also does not measure training cost,
284
+ deployment latency, or runtime efficiency.
285
+
286
+ ## Authors and contact
287
+
288
+ WorldDiT is developed by Sen Wang, Praveen Rajasekhar, Bidhan Roy, and Marcos
289
+ Villagra at Bagel Labs. Questions can be sent to research@bagel.com.
290
 
291
+ ## Acknowledgments
292
 
293
  This release builds on
294
  [LIBERO](https://github.com/Lifelong-Robot-Learning/LIBERO),
295
  [robosuite](https://github.com/ARISE-Initiative/robosuite),
296
  [OpenAI CLIP](https://github.com/openai/CLIP), and
297
+ [Masked Autoencoders](https://github.com/facebookresearch/mae). Third party
298
  components remain subject to their respective upstream terms.
299
 
300
  ---