Ο€β‚€.β‚… Ξ”-flow β€” R1Lite flower insertion, epoch 50

This repository contains the committed epoch-50 checkpoint, optimizer step 47,600, of a fully fine-tuned Ο€β‚€.β‚… Ξ”-flow policy for right-arm flower insertion. The user requested stopping after 50 completed epochs. Training originally planned 60 epochs / 57,120 updates, and its original learning-rate schedule, including 2,856 warmup updates, was retained. This release is not a naturally completed 60-epoch run or a checkpoint selected using validation performance.

The policy uses two real camera views (head and right wrist), the current 7D right-arm state, and the preceding 16 actions. One Euler update predicts 16 Γ— 7 absolute joint-target actions. It does not generate future images. This is a full fine-tune of all 3,616,757,520 parameters, not a LoRA adapter.

Reviewed demonstrations contain two sequential flower insertions. The actual instruction used during training was singular and is preserved verbatim in the inference helper:

Use the right arm to pick up the flower from the transparent white vase on the left and insert it into the purple vase on the right.

The release does not silently substitute a new two-flower instruction. No held-out evaluation or physical-robot success rate is claimed.

Download and offline inference

Use Python 3.11 in a new, dedicated virtual environment. The complete model.safetensors is approximately 14.5 GB; no separate base-model weight download is required. Allow additional disk and RAM/VRAM for dependencies, loading and inference working memory.

python3.11 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip huggingface_hub
hf download ZUO66/pi05-r1lite-insert-flower --local-dir pi05-flower
cd pi05-flower
python -m pip install -r requirements_inference.txt
python setup_runtime.py --release .
python infer_flower.py --release . \
  --head example/head.png \
  --right-wrist example/right_wrist.png \
  --inputs example/inputs.npz \
  --output prediction.npz --device cuda --seed 42

setup_runtime.py installs the bundled OpenPI Transformers compatibility overlay only inside the active virtual environment. It refuses to modify a system environment. Check it without changes using python setup_runtime.py --release . --check-only. The model, tokenizer and runtime are loaded from the downloaded release, without automatic inference-time model downloads.

CUDA inference uses FP32 parameters with BF16 autocast on supported hardware. Pass --compute-dtype float32 to disable autocast. For CPU inference, use --device cpu --threads 16; the helper uses FP32 and needs enough RAM for the full model. No inference-latency or minimum-VRAM benchmark is claimed.

The command above fixes the seed for a reproducible offline check. Omit --seed to sample fresh source noise on each replanning call. The helper writes predictions only. It never sends robot commands, clips joint targets or applies a robot safety controller.

Inputs and outputs

Supply synchronized current RGB images as separate head and right-wrist files, not a concatenated image. Each image is independently resized with preserved aspect ratio and zero padding to 224 Γ— 224. The Ο€β‚€.β‚… input interface retains a left-wrist slot, but that slot is an all-zero image with a false validity mask, not a third camera or a duplicated view.

Provide raw, unnormalized values in inputs.npz:

Key Shape Meaning
proprio [7] Current right-arm joint/gripper state
past_actions [16,7] Past absolute targets, oldest to newest, strictly before the current observation
past_action_valid_mask [16] Boolean history-validity mask

The dimension order is right-arm joints 0–5, then right gripper at index 6. State and actions must use the dataset's original units and conventions. These are not Cartesian position/rotation actions or increment commands.

Use the release's task-specific norm_stats.json. The helper normalizes the seven real current-state dimensions and discretizes them into text tokens before padding to the model's 32D interface. It uses the normalization precision conventions from training. Do not reuse microwave, ImageWAM or other task statistics.

prediction.npz includes:

  • actions: [16,7], absolute joint targets denormalized to the dataset scale.
  • normalized_actions: [16,7], the corresponding normalized predictions.
  • source_normalized: [16,32], the padded source supplied to the model.
  • Raw inputs, token IDs/masks and metadata_json, recording preprocessing, action order, source settings and checks.

The helper rejects nonfinite inputs and predictions. --validate-only validates inputs and tokenization without loading the large model or writing predictions. --verify-checkpoint-sha256 additionally hashes the complete checkpoint; required small-file/runtime checksums are verified against manifest.json.

Ξ”-flow source and history

The action source is constructed from strictly past actions, not future actions:

source = normalized_past_actions + 0.5 Γ— Gaussian_noise Γ— joint_noise_mask

Only the six arm-joint dimensions, indices 0–5, receive noise. The gripper at index 6 and padded dimensions 7–31 receive no source noise. The source is not divided by 1.5 or otherwise variance-normalized. The helper performs exactly one Euler update and returns the first seven task dimensions of the 16-step prediction.

For fewer than 16 genuine past actions, left-pad by repeating the earliest available command and mark those padded rows invalid. The helper checks this training-compatible format. The mask records validity; it does not zero the repeated source actions. With no genuine history, an explicit initial command repeated 16 times plus an all-false mask requires --allow-empty-history. This startup option is an unvalidated deployment initialization, not a robot safety policy. Never treat zeros or future commands as genuine history.

Training and report

  • Dataset: at237299966/r1lite_insert_flower, pinned revision 5c4b884303cf7be101b0b8611ad6362b5441db4a.
  • 98 demonstrations, 45,684 frames, 15 FPS. All demonstrations were used for training; bundled input examples are not held out.
  • Initialization: original Ο€β‚€.β‚… base, not microwave or smoke-test weights. Complete full-model fine-tuning, no LoRA.
  • Eight NVIDIA A100-SXM4-80GB GPUs; microbatch 6, global batch 48, gradient accumulation 1; 952 optimizer updates per epoch.
  • FP32 parameters, BF16 compute, activation checkpointing, seed 42.
  • AdamW, betas (0.9, 0.95), weight decay 0.01, gradient clipping 1.0.
  • Original schedule: 60 epochs, 57,120 updates; linear warmup for 2,856 updates to 5e-5, followed by cosine decay toward 1e-6 at the original endpoint. Stopped after 50 completed epochs without rescheduling.
  • Action flow matching plus one-step L1 endpoint consistency, with endpoint weight 0.5. Supervision is masked to valid future timesteps and the seven real action dimensions.

The final report records exact epoch-50 loss means and distinguishes the committed weights from any unsaved updates that occurred between saving and process shutdown:

Flower Ο€β‚€.β‚… Ξ”-flow training losses

Faint lines retain raw logged global-batch fluctuations and outliers. Dark lines show a causal trailing mean over 95 logged points, about one epoch. Epoch means average the logged batches, not every optimizer update. The plots show one training seed, without confidence intervals. Training loss alone does not demonstrate task completion or generalization.

Contents, limitations and safety

The repository includes full inference weights, configuration, flower-specific normalization, a local tokenizer, the matching inference runtime, setup/inference scripts, training reports and a small training-set input example. It excludes optimizer/RNG states, training caches and the full dataset. It contains no claimed real-robot success evaluation.

Before robot use, independently verify camera orientation, observation/action synchronization, joint and gripper order, actuator units, normalization, history buffering, safe initial commands, mechanical limits and the number of predicted actions executed before replanning. A 16-step prediction is not an instruction to execute all 16 without replanning. Dataset frame rate is not a validated deployment control rate. Offline finite predictions and low training loss do not establish control safety.

The release is distributed under Apache-2.0. The bundled OpenPI license is preserved as LICENSE.openpi. Applicable upstream notices and terms for the base model, tokenizer and dataset remain in effect.

Downloads last month
17
Safetensors
Model size
4B params
Tensor type
F32
Β·
Video Preview
loading

Dataset used to train ZUO66/pi05-r1lite-insert-flower