GR00T N1.6-3B β ALOHA "Kitchen Task 1 + Task 2" (two-task mixture), 25 Hz / H=50, 80K steps
Two-task fine-tune on a real stationary ALOHA, trained on the union of the Kitchen_Task_1 and Kitchen_Task_2 datasets. Siblings: gr00t-n1.6-aloha-kitchen-task-1 and gr00t-n1.6-aloha-kitchen-task-2, the same two tasks trained separately with the same recipe. No task-success evaluation has been run on this checkpoint β this card makes no success claim.
- Robot: stationary ALOHA (
aloha_stationary), bimanual, 14-dim state/action: right_arm 0:6, right_gripper 6:7, left_arm 7:13, left_gripper 13:14. - Arms are RELATIVE (delta w.r.t. the current joint state), grippers ABSOLUTE: pass the current 14-dim state with every call.
- State dropout 0.3 during training.
config.jsonin every published checkpoint hasstate_dropout_probset to 0.0 for inference (theaction_head.mask_tokenweight is then an ignored key).
Data β two datasets, equal sampling, union normalization
| dataset | episodes | frames @ 25 fps | videos | task string (verbatim from meta/tasks.jsonl) |
|---|---|---|---|---|
Kitchen_Task_1 |
50 | 59,639 | 200 | "Set the table for a meal by placing both plates on the placemat, the cup on the coaster, and the spoon and fork on the placemat beside the plates. Place the food items on the plates." |
Kitchen_Task_2 |
51 | 56,483 | 204 | "Wipe a plate with the sponge, then clear the table by placing both plates, the spoon, the fork, and the cup into the gray bin." |
| total | 101 | 116,122 | 404 | 2 task strings |
Both are LeRobot v2.1, 4 cameras (high, low, wrist_left, wrist_right) at 480x640 h264, 1.5 GB each,
and their meta/modality.json files are byte-identical (sha256
46507a200698d881f086240cc1caf308c4490fa8d8a0d09f3ecd887a4cd58563), so the single modality.json
published at the repo root applies to both. No held-out split β all 101 episodes are trained on.
Two properties of the mixture that a downstream user should know, both measured, not assumed:
- Sampling is equal (50/50), not length-proportional. The run was launched with mix ratios
1 1, which the loader normalizes to weights[0.5, 0.5]. The two datasets shard into 56 shards / 57,189 samples (Kitchen_Task_1) and 53 shards / 53,984 samples (Kitchen_Task_2), so length-proportional sampling would have been[0.5144, 0.4856]β the difference from 50/50 is 1.44 pp, small here but a real design choice rather than a coincidence. - Normalization statistics are the union of both datasets. The published
statistics.jsonis the merge of the two per-dataset statistics at those same[0.5, 0.5]weights, i.e. the equal-weight average of the per-dataset means for every joint group (e.g.state.left_armmean[0] = (-0.09445 + 0.04231)/2 = -0.02607,action.right_gripper= (0.72607 + 0.79685)/2 = 0.76146). This was confirmed by comparing the in-runcheckpoint-15000/statistics.jsonagainst an independent offline recomputation of the merge: all 8 joint groups matched digit for digit. Consequence: this model's normalization differs from both single-task repos, so the three checkpoints are not drop-in interchangeable behind one normalization layer.
Recipe
| arm | base | embodiment tag | hardware | effective batch | lr / schedule | augmentation | steps |
|---|---|---|---|---|---|---|---|
r25_h50 |
nvidia/GR00T-N1.6-3B (local pin GR00T-N1.6-3B-d0814e7) |
NEW_EMBODIMENT |
4xA100-40GB | 64 (16/GPU, grad_accum 1) | 1e-4, warmup 0.05, weight decay 1e-5, cosine | color jitter (0.3/0.4/0.5/0.08) | 80,000 |
- Model-only keep copies every 10k steps; DeepSpeed 0.17.5,
save_steps5,000. Finaltrain_loss0.015039,train_runtime51,890.1 s (1.542 steps/s),epoch1.0. Inference files only are published (no optimizer / scheduler / trainer state / RNG state). - Published checkpoints: 10k, 20k, 30k, 40k, 50k, 60k, 70k, 80k under
r25_h50/checkpoint-<step>/. - Apart from the dataset list and the step count, the recipe is the same as the two single-task repos.
Training lineage
One Slurm job, no resume. gpu26 job 15764 bo_kitchen12_r25_h50_80k ran 0 -> 80,000 steps in a
single attempt (14 h 29 m on 4 GPUs) and COMPLETED; trainer_state.json of the final checkpoint
reads global_step 80000. There was no restart, no mid-run recipe or loader change, and no
checkpoint in this repo was produced under different settings from any other.
Deploy note
- Run the policy at 25 Hz control. Each call returns a 50-step action chunk = 2.0 s of motion.
- Arm entries are relative joint targets β add them to the current measured joint positions
(
use_relative_action-style); gripper entries are absolute. - The model is language-conditioned over the two task strings above; it has not been checked for generalization to unseen instructions.
Layout: r25_h50/checkpoint-<step>/ (+ r25_h50/aloha_config.py, the modality config the run
actually trained with), modality.json (the shared Kitchen_Task_1 / Kitchen_Task_2
meta/modality.json), publication_manifest.json (per-file sizes + sha256 of everything published).
Provenance: gpu26 Slurm job 15764 bo_kitchen12_r25_h50_80k, COMPLETED 2026-09-16 05:39:24 UTC
(14 h 29 m, 4 GPUs).
Model tree for happyhappy-jun/gr00t-n1.6-aloha-kitchen-task-12
Base model
nvidia/GR00T-N1.6-3B