File size: 5,526 Bytes
8cda58d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
0b647bc
8cda58d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5fa271b
 
 
 
 
 
 
 
 
a0646a5
 
 
 
 
 
 
 
 
 
5fa271b
 
 
 
 
 
 
 
a0646a5
 
 
 
5fa271b
 
 
 
8cda58d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5fa271b
8cda58d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
0b647bc
8cda58d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
351cb5f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8cda58d
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
---
library_name: memoryvla
tags:
- robotics
- vision-language-action
- memory
- action-diffusion
- piper
pipeline_tag: robotics
license: apache-2.0
---

# MemoryVLA

MemoryVLA checkpoint for real-robot action prediction. This repository is
organized so that additional real-world task checkpoints can be added under
`checkpoints/<task-name>/` without replacing the current model.

## Latest checkpoint

The current default checkpoint is:

```text
checkpoints/frozen-ema-step-20000.pt
```

It is the EMA action-diffusion checkpoint from the Frozen+EMA training run.
The matching action normalization statistics are stored at:

```text
configs/piper-color-sorting/dataset_statistics.json
```

The exact runtime configuration for this run is stored at:

```text
configs/piper-color-sorting/config.yaml
configs/piper-color-sorting/config.json
```

The checkpoint is intended to be loaded with the MemoryVLA codebase and
`use_ema=True`. The model uses the `custom_finetuning` normalization key.

For direct loading from the repository root, a server-side LFS alias is also
provided at:

```text
checkpoints/frozen-ema-step-20000.pt
```

Set `MEMORYVLA_SKIP_BASE_WEIGHTS=1` for inference. The task checkpoint already
contains the trained LLM, vision backbone, projector, action model, and EMA
weights. The required Llama-2 tokenizer/config metadata is mirrored at:

```text
base_models/llama-2-7b-hf/
```

It does not need to download the full Llama or vision weight files again.
Point `MEMORYVLA_LLAMA2_7B_PATH` at that downloaded metadata directory for
offline inference. The metadata is provided for loader compatibility; the
gated Llama model license still applies to the underlying model family.

For future real-task training, the matching CogACT-Large initialization
checkpoint is available at:

```text
base_models/CogACT-Large/CogACT-Large.pt
```

The CogACT base checkpoint is only needed when initializing a new training
run. It is not needed when loading the Frozen+EMA task checkpoint for
inference.

The original Llama model weights are not duplicated in this repository because
they are gated third-party weights. Use the original Hugging Face model with
the appropriate access terms and token.

## Training configuration

- Task: Piper color sorting
- Data: 21 valid real-world episodes, 14,300 frames
- Observation: front camera only in this dataset; no wrist-camera stream was
  available in the training data
- Base VLM: `prism-dinosiglip-224px+7b`
- Vision backbone: frozen
- LLM backbone: frozen
- Last LLM layer: frozen
- Trainable components: action diffusion model and MemoryVLA trainable
  modules
- Action dimension: 7 (`x, y, z, roll, pitch, yaw, gripper`)
- Action model: `DiT-L`
- Future action window: 15
- Memory length: 256
- Retrieval layers: 2
- Fusion: `gate`
- Consolidation: `tome`
- Per-device batch size: 2
- Global batch size: 32
- Optimizer learning rate: `2e-5`
- Scheduler: linear warmup + cosine decay
- Warmup ratio: 0.03
- EMA: enabled, decay `0.999`
- Mixed precision: enabled
- Training strategy: FSDP full shard
- Maximum training steps: 20,000
- Image augmentation: disabled
- Random seed: 42

## Open-loop evaluation

On the same 21 training episodes, using frame-by-frame memory-aware inference:

- Normalized overall action RMSE: `0.2124`
- Gripper accuracy: `98.64%`
- Memory reset: at the first frame of every episode
- Cognitive and perception memory banks: capped at 256 entries

These are training-set open-loop results and should not be interpreted as
unseen-task generalization.

## Loading outline

The exact loader depends on the MemoryVLA code revision. The essential
settings for this checkpoint are:

```python
model = load_vla(
    model_id_or_path="Haongchen/MemoryVLA",
    load_for_training=False,
    action_dim=7,
    future_action_window_size=15,
    action_model_type="DiT-L",
    mem_length=256,
    retrieval_layers=2,
    use_timestep_pe=True,
    fusion_type="gate",
    consolidate_type="tome",
    update_fused=False,
    use_ema=True,
)
```

For real deployment, reset the episode memory before the first observation of
each task and pass the matching `dataset_statistics.json` when unnormalizing
actions. The gripper action is sign-encoded (`-1` / `+1`) by the current
pipeline.

## Repository layout

```text
checkpoints/
  frozen-ema-step-20000.pt
configs/
  piper-color-sorting/
    config.yaml
    config.json
    dataset_statistics.json
```

Future tasks should use a separate directory, for example:

```text
checkpoints/
  drawer-opening/
  peg-insertion/
configs/
  piper-color-sorting/
  drawer-opening/
  peg-insertion/
```

Keep the checkpoint, action statistics, task name, camera convention, and
training configuration together for every task.

## Code and reproducibility

The training, inference, real-robot wrapper, preprocessing, and evaluation
code are available at:

https://github.com/Laryderr/MemoryVLA

The checkpoint in this repository was produced with code commit:

```text
dd9b4709db9acb48b4e074f71632cb6cc3570662
```

The Hugging Face repository stores model artifacts and deployment metadata,
while GitHub stores source code and reproducibility files. The GitHub
repository is not required to download the weights, but it should be kept in
sync for future task training and real-robot deployment.

## Intended use

Research and development for real-robot manipulation. Validate workspace
limits, action scaling, emergency stop behavior, camera calibration, and
gripper sign conventions before sending actions to hardware.