DriftWAM for Piper โ€” four tasks

Inference settings

Test the same weights in both settings:

Setting Video steps Action steps Video / action CFG Video / action SNR shift
1v/1a 1 1 1 / 1 5 / 1
1v/2a 1 2 1 / 1 5 / 1

No retraining is required to switch the action inference step count. The published results of these two settings must be measured separately.

Use the teacher's Piper interface

Use the installation and camera/history protocol from lingbot-va-piper-inference and the teacher model card. Reuse the teacher's VAE, text encoder and tokenizer; these components are not duplicated here. base_components.json pins their source.

Download this repository instead of the teacher transformer. The teacher repository's download_models.py is teacher-specific; do not use it to select these weights.

from huggingface_hub import snapshot_download
snapshot_download("wkrfugs/driftwam-piper-4task", local_dir="models/driftwam-piper-4task",
                  allow_patterns=["transformer/*", "norm_stats.json", "piper_contract.json"],
                  max_workers=2)

The existing PiperPolicy defaults to teacher sampling. Override its configuration before the first reset(), or use this repository's distilled_policy.py helper:

from piper_wam import PiperPolicy
policy = PiperPolicy("models/driftwam-piper-4task", components_root="models/piper_teacher")
cfg = policy.server.job_config
cfg.num_inference_steps = 1
cfg.action_num_inference_steps = 1  # use 2 for the separate 1v/2a test
cfg.guidance_scale = 1.0
cfg.action_guidance_scale = 1.0
# Now use the same reset -> predict -> observe -> predict workflow as the teacher.

Run the caller with torchrun --standalone --nproc_per_node=1, as for the teacher. The server rebuilds the sampling timesteps during inference and configures CFG caches at reset; set these options before reset and do not change them mid-episode.

Inputs remain head/hand RGB observations, the full task instruction, and real observed history with executed command history. policy.predict() returns [48, 7] unnormalized absolute commands: six joint angles in radians, followed by gripper opening in meters. Do not normalize again, add these values as deltas, or extract channels a second time. Internally the seven valid channels of the 30-dimensional model are [14, 15, 16, 17, 18, 19, 28]. Camera preprocessing and temporal alignment are unchanged.

Contents and scope

  • transformer/: original FP32 online weights (inference normally uses BF16).
  • Normalization, Piper interface contract, original episode split and training summary.
  • The target/EMA model, optimizer and resumable training state are not included.
  • Training denoising losses are not a claim of closed-loop robot success.
  • Teacher runtime validation does not by itself validate these weights or both sampling settings on hardware; the collaborator should test each configuration.

See the teacher model card and upstream LingBot-VA repository for component licensing.

Downloads last month
-
Safetensors
Model size
5B params
Tensor type
F32
ยท
Video Preview
loading

Model tree for wkrfugs/driftwam-piper-4task

Finetuned
(2)
this model