From d7361f8880ab7a3047a4e7775273d4293083a5d9 Mon Sep 17 00:00:00 2001 From: RomirJ Date: Mon, 12 Oct 2026 11:59:24 -0700 Subject: [PATCH 1/8] Move LeRobot pin to 0.6.1 with draccus 0.11.6 (Studio ADR 0003) draccus 0.11.6 drops the GPL-3.0+ pyyaml-include that draccus 0.10.0 (required by lerobot 0.5.1) pulled in. transformers stays 5.3.0 by override, so the monolithic exporter's masking-API gate is unchanged. - One QUALIFIED_LEROBOT_VERSION constant (src/tether/_lerobot_version.py) for the monolithic exporter gate, local dataset admission and preflight text. - Local dataset admission pins the LeRobot 0.6.1 wheel, source commit 7e241bd and 13 reviewed upstream file hashes (diffs reviewed in Studio docs/research/verification/lerobot-06-implementation-20261011/), plus the Studio v2 statistics adapter hash. - lerobot.types -> lerobot.lerobot_types; GR00T probe imports follow N1.7. - Resume refuses LeRobot 0.5.x train configs with a typed cross-version-resume-unsupported code. - pi0/pi0.5/GR00T parity vehicles pin the 0.6.1 runtime, write to a new volume subtree and take --tether-revision/--watchdog-seconds. Co-Authored-By: Claude Opus 5.5 --- pyproject.toml | 48 ++++++++++++++----- scripts/modal_gr00t_lerobot_probe.py | 10 ++-- scripts/modal_groot_export_parity_pinned.py | 25 ++++++---- scripts/modal_pi05_export_parity_pinned.py | 26 ++++++---- scripts/modal_pi0_export_parity_pinned.py | 17 ++++--- src/tether/_lerobot_version.py | 3 ++ src/tether/cli.py | 2 +- .../distill/pi05_state_out_processor.py | 2 +- src/tether/eval/preflight.py | 2 +- src/tether/exporters/decomposed.py | 2 +- src/tether/exporters/monolithic.py | 10 ++-- src/tether/finetune/local_dataset.py | 40 ++++++++-------- src/tether/finetune/preflight/schema.py | 6 ++- src/tether/finetune/resume.py | 16 ++++++- tests/integration/test_eval_aloha_smoke.py | 2 +- tests/test_cli_export_end_to_end.py | 7 +-- tests/test_finetune_local_dataset.py | 8 ++-- tests/test_finetune_resume_command.py | 9 ++++ tests/test_lora_argv_parser.py | 8 ++-- tests/test_one_command_deploy.py | 2 +- 20 files changed, 159 insertions(+), 86 deletions(-) create mode 100644 src/tether/_lerobot_version.py diff --git a/pyproject.toml b/pyproject.toml index cab571f8..5235dc98 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -20,7 +20,8 @@ classifiers = [ ] dependencies = [ - "torch>=2.1.0", + "torch==2.7.1; platform_machine != 'aarch64'", + "torch>=2.1.0; platform_machine == 'aarch64'", "safetensors>=0.4.0", "typer>=0.9.0", "rich>=13.0.0", @@ -29,11 +30,11 @@ dependencies = [ # compiled against numpy 1.x ABI; numpy 2.x's ABI break corrupts ORT + # JAX wheels on aarch64. On x86_64 (Modal A100, customer desktops) + # arm64 (M-series Mac dev hosts) numpy 2.x is fine, AND the - # [monolithic] extra's lerobot==0.5.1 dep REQUIRES numpy>=2.0 — pinning + # [monolithic] extra's lerobot==0.6.1 dep REQUIRES numpy>=2.0 — pinning # numpy<2 globally makes lerobot uninstallable on Modal (caught by the # 2026-05-20 lift #4 smoke fire). Split via PEP-508 platform marker. "numpy>=1.24.0,<2.0; platform_machine == 'aarch64'", - "numpy>=1.24.0; platform_machine != 'aarch64'", + "numpy==2.2.6; platform_machine != 'aarch64'", "pyyaml>=6.0", # Always needed: hub access for `tether export ` and tokenizer/config # loading for the auto-detect path. Apr-14 install-path verification caught @@ -141,13 +142,17 @@ comply = [] # gate in GOALS.yaml. Heavy (pulls torch, torchvision, accelerate, etc.) — # that's why it's a separate extra, not a base dep. # -# lerobot 0.5.x requires Python >=3.12. Jetson (JetPack 6) ships 3.10, +# lerobot 0.6.x requires Python >=3.12. Jetson (JetPack 6) ships 3.10, # so we gate lerobot behind a version marker — pip skips it on 3.10/3.11 # instead of hard-failing with ResolutionImpossible. Native parity # verification should be run on a Python 3.12+ host. native = [ - "lerobot==0.5.1; python_version >= '3.12'", + "transformers==5.3.0", + "lerobot==0.6.1; python_version >= '3.12'", + "draccus==0.11.6; python_version >= '3.12'", "num2words", + "accelerate>=1.10,<2", + "diffusers==0.39.0", ] # Monolithic ONNX export — cos=1.0 verified production path. Runs locally # via `tether export --monolithic` (the DEFAULT as of v0.2.1). Requires @@ -155,18 +160,21 @@ native = [ # masking_utils.sdpa_mask that breaks onnx-diagnostic patches). Base pin # `transformers>=4.40,<5.4` permits this extra to pin-to-exact. # -# lerobot 0.5.x requires Python >=3.12. On Jetson (Python 3.10) the +# lerobot 0.6.x requires Python >=3.12. On Jetson (Python 3.10) the # monolithic export can't run locally — export on a cloud/desktop host # (Python 3.12+) and `tether serve` the resulting ONNX on the Jetson # with `pip install 'fastcrest-tether[serve]'` only. monolithic = [ - "lerobot==0.5.1; python_version >= '3.12'", + "lerobot==0.6.1; python_version >= '3.12'", + "draccus==0.11.6; python_version >= '3.12'", "transformers==5.3.0", "onnx-diagnostic>=0.9", "onnxscript>=0.1", "optree", "scipy", "num2words", + "accelerate>=1.10,<2", + "diffusers==0.39.0", ] # Task-success evaluation (heavy sim deps). Gated behind this extra so the # base install stays light. Use with `tether bench --benchmark libero_10`. @@ -177,8 +185,15 @@ eval = [ "gymnasium", "h5py", ] +# Spell out the SmolVLA dependencies: its upstream transformers-dep extra +# requires >=5.4, while ADR 0003 keeps the qualified 5.3.0 masking API. +# This equivalent explicit set also resolves with pip, which ignores tool.uv. eval-local = [ - "lerobot[smolvla]==0.5.1; python_version >= '3.12' and sys_platform == 'linux'", + "transformers==5.3.0; python_version >= '3.12' and sys_platform == 'linux'", + "num2words>=0.5.14,<0.6; python_version >= '3.12' and sys_platform == 'linux'", + "accelerate>=1.10,<2; python_version >= '3.12' and sys_platform == 'linux'", + "lerobot==0.6.1; python_version >= '3.12' and sys_platform == 'linux'", + "draccus==0.11.6; python_version >= '3.12' and sys_platform == 'linux'", "peft; python_version >= '3.12' and sys_platform == 'linux'", "mujoco==3.3.2; sys_platform == 'linux'", "robosuite==1.4.1; sys_platform == 'linux'", @@ -212,13 +227,14 @@ tracing = [ # pip install 'fastcrest-tether[lerobot]' # tether serve bundle/ --embodiment so_arm100 --port /dev/ttyUSB0 # -# lerobot 0.5.x requires Python >=3.12 (we skip on 3.10/3.11 to avoid pip's +# lerobot 0.6.x requires Python >=3.12 (we skip on 3.10/3.11 to avoid pip's # ResolutionImpossible; users on JetPack 6 Python 3.10 can still construct an # adapter + run the conversion math, they just can't open a serial bus until # they upgrade to Python 3.12 or install scservo_sdk directly via the [so100] # extra). lerobot = [ - "lerobot>=0.5.1; python_version >= '3.12'", + "lerobot==0.6.1; python_version >= '3.12'", + "draccus==0.11.6; python_version >= '3.12'", ] # SO-100 hardware extra — installs the scservo_sdk Python package on the # Raspberry Pi / host wired to the arm. Separate from [lerobot] because the @@ -234,9 +250,10 @@ so100 = [ # RTC-enabled deployments. Skeleton + config validation work without this # extra; only the actual processor construction needs it. # -# lerobot 0.5.x requires Python >=3.12 (skipped on 3.10/3.11). +# lerobot 0.6.x requires Python >=3.12 (skipped on 3.10/3.11). rtc = [ - "lerobot==0.5.1; python_version >= '3.12'", + "lerobot==0.6.1; python_version >= '3.12'", + "draccus==0.11.6; python_version >= '3.12'", ] # Curate format-converter extras. Phase 1 ships LeRobot v3 + HDF5 with the # core install (parquet via pyarrow which huggingface_hub already pulls; h5py @@ -270,7 +287,7 @@ curate-rlds = [ # Jetson / ARM64 edge stack. # - Skips [gpu] x86_64 wheels (onnxruntime-gpu PyPI has no aarch64 builds) -# - Skips lerobot (0.5.1 requires Python 3.12; JetPack 6 ships 3.10) +# - Skips lerobot (0.6.1 requires Python 3.12; JetPack 6 ships 3.10) # - User must pre-install Jetson Zoo onnxruntime-gpu from pypi.jetson-ai-lab.io # and mount host CUDA via --runtime=nvidia. jetson = [ @@ -370,3 +387,8 @@ markers = [ "hardware: requires a physical robot wired in; skipped unless RUN_HARDWARE_TESTS=1", "receipt: validates a signed or provenance-bound operational receipt", ] + +[tool.uv] +# ADR 0003 owner decision: retain the qualified exporter masking API despite +# LeRobot 0.6.1 transformers-dep declaring >=5.4,<5.6. Install extras with uv. +override-dependencies = ["transformers==5.3.0"] diff --git a/scripts/modal_gr00t_lerobot_probe.py b/scripts/modal_gr00t_lerobot_probe.py index 15b75f47..34402a28 100644 --- a/scripts/modal_gr00t_lerobot_probe.py +++ b/scripts/modal_gr00t_lerobot_probe.py @@ -1,6 +1,6 @@ -"""Quick probe — what does lerobot 0.5.1 actually expose for GR00T? +"""Quick probe — what does lerobot 0.6.1 actually expose for GR00T? -lerobot-0.5.1 on Modal may or may not have GR00T support. The cloned +lerobot-0.6.1 on Modal may or may not have GR00T support. The cloned local lerobot is `main` (newer). Need to reconcile. Prints the actual module contents of lerobot's groot subpackage. @@ -23,7 +23,7 @@ "numpy", "safetensors>=0.4.0", "huggingface_hub", - "lerobot==0.5.1", + "lerobot==0.6.1", "num2words", ) ) @@ -52,7 +52,7 @@ def probe(): # Attempt to import groot_n1 + list symbols try: - from lerobot.policies.groot import groot_n1 + from lerobot.policies.groot import groot_n1_7 as groot_n1 print(f"\ngroot_n1 symbols (top-level, non-dunder):") for name in sorted(dir(groot_n1)): if not name.startswith("_"): @@ -64,7 +64,7 @@ def probe(): # Attempt action_head try: - from lerobot.policies.groot.action_head import flow_matching_action_head as fma + from lerobot.policies.groot.action_head import cross_attention_dit as fma print(f"\nflow_matching_action_head symbols:") for name in sorted(dir(fma)): if not name.startswith("_"): diff --git a/scripts/modal_groot_export_parity_pinned.py b/scripts/modal_groot_export_parity_pinned.py index 05d30434..380efe41 100644 --- a/scripts/modal_groot_export_parity_pinned.py +++ b/scripts/modal_groot_export_parity_pinned.py @@ -46,7 +46,7 @@ ) HF_CACHE_PATH = "/root/.cache/huggingface" -PARITY_OUT_PATH = "/parity_out" +PARITY_OUT_PATH = "/parity_out/lerobot-061-20261011" def _hf_secret(): @@ -63,7 +63,8 @@ def _hf_secret(): modal.Image.debian_slim(python_version="3.12") .apt_install("git") .pip_install( - "torch", + "torch==2.7.1", + "torchvision==0.22.1", "safetensors>=0.4.0", "huggingface_hub", # transformers==5.3.0 EXACTLY: the monolithic exporter refuses @@ -73,14 +74,15 @@ def _hf_secret(): "onnxruntime>=1.20", "onnxscript>=0.1", # monolithic dep group (export_gr00t_monolithic gates on these): - "lerobot==0.5.1", + "lerobot==0.6.1", "num2words", + "diffusers==0.39.0", "onnx-diagnostic>=0.9", "optree", "scipy", "accelerate", - "draccus", - "numpy", + "draccus==0.11.6", + "numpy==2.2.6", "Pillow", "typer", "rich", @@ -122,7 +124,7 @@ def _hf_secret(): timeout=3600, volumes={ HF_CACHE_PATH: _hf_cache_volume, - PARITY_OUT_PATH: _parity_out_volume, + "/parity_out": _parity_out_volume, }, secrets=[_hf_secret()], ) @@ -130,7 +132,7 @@ def run_export_parity( model_revision: str = GROOT_REVISION, tether_revision: str = TETHER_REVISION, embodiment_id: int = 0, - reuse_export: bool = True, + reuse_export: bool = False, watchdog_seconds: float = 3300, ) -> dict: import subprocess @@ -322,8 +324,13 @@ def _progress(stage: str) -> None: @app.local_entrypoint() -def main() -> None: - result = run_export_parity.remote() +def main( + tether_revision: str = TETHER_REVISION, + watchdog_seconds: float = 1800, +) -> None: + result = run_export_parity.remote( + tether_revision=tether_revision, watchdog_seconds=watchdog_seconds + ) print("\n=== RESULT ===") for key, value in result.items(): print(f" {key}: {value}") diff --git a/scripts/modal_pi05_export_parity_pinned.py b/scripts/modal_pi05_export_parity_pinned.py index c54ed686..c5c68c99 100644 --- a/scripts/modal_pi05_export_parity_pinned.py +++ b/scripts/modal_pi05_export_parity_pinned.py @@ -47,7 +47,7 @@ ) HF_CACHE_PATH = "/root/.cache/huggingface" -PARITY_OUT_PATH = "/parity_out" +PARITY_OUT_PATH = "/parity_out/lerobot-061-20261011" def _hf_secret(): @@ -61,9 +61,12 @@ def _hf_secret(): modal.Image.debian_slim(python_version="3.12") .apt_install("git") .pip_install( - # Install lerobot first — it pins torch>=2.7 and hub>=1.0 - "lerobot==0.5.1", + # Qualify the same torch/vision runtime as the CPU probes. + "torch==2.7.1", + "torchvision==0.22.1", + "lerobot==0.6.1", "num2words", + "diffusers==0.39.0", "safetensors>=0.4.0", "onnx>=1.16", "onnxruntime>=1.20", @@ -71,9 +74,9 @@ def _hf_secret(): "onnx-diagnostic>=0.9", "optree", # onnx-diagnostic soft-dep "scipy", # onnx-diagnostic patches_transformers_qwen2_5 transitively - "numpy", + "numpy==2.2.6", "accelerate", - "draccus", + "draccus==0.11.6", ) # transformers==5.3.0 EXACTLY: the monolithic exporter refuses anything # else (5.4+ has a q_length regression in masking_utils.sdpa_mask). @@ -119,7 +122,7 @@ def _hf_secret(): timeout=3600, volumes={ HF_CACHE_PATH: _hf_cache_volume, - PARITY_OUT_PATH: _parity_out_volume, + "/parity_out": _parity_out_volume, }, secrets=[_hf_secret()], ) @@ -127,7 +130,7 @@ def run_export_parity( model_revision: str = PI05_BASE_REVISION, tether_revision: str = TETHER_REVISION, num_steps: int = 10, - reuse_export: bool = True, + reuse_export: bool = False, watchdog_seconds: float = 3300, ) -> dict: import subprocess @@ -324,8 +327,13 @@ def _progress(stage: str) -> None: @app.local_entrypoint() -def main() -> None: - result = run_export_parity.remote() +def main( + tether_revision: str = TETHER_REVISION, + watchdog_seconds: float = 1800, +) -> None: + result = run_export_parity.remote( + tether_revision=tether_revision, watchdog_seconds=watchdog_seconds + ) print("\n=== RESULT ===") for key, value in result.items(): print(f" {key}: {value}") diff --git a/scripts/modal_pi0_export_parity_pinned.py b/scripts/modal_pi0_export_parity_pinned.py index 52d5e10b..18c39430 100644 --- a/scripts/modal_pi0_export_parity_pinned.py +++ b/scripts/modal_pi0_export_parity_pinned.py @@ -39,7 +39,7 @@ ) HF_CACHE_PATH = "/root/.cache/huggingface" -PARITY_OUT_PATH = "/parity_out" +PARITY_OUT_PATH = "/parity_out/lerobot-061-20261011" def _hf_secret(): @@ -53,9 +53,12 @@ def _hf_secret(): modal.Image.debian_slim(python_version="3.12") .apt_install("git") .pip_install( - # Install lerobot first — it pins torch>=2.7 and hub>=1.0 - "lerobot==0.5.1", + # Qualify the same torch/vision runtime as the CPU probes. + "torch==2.7.1", + "torchvision==0.22.1", + "lerobot==0.6.1", "num2words", + "diffusers==0.39.0", "safetensors>=0.4.0", "onnx>=1.16", "onnxruntime>=1.20", @@ -63,9 +66,9 @@ def _hf_secret(): "onnx-diagnostic>=0.9", "optree", # onnx-diagnostic soft-dep "scipy", # onnx-diagnostic patches_transformers_qwen2_5 transitively - "numpy", + "numpy==2.2.6", "accelerate", - "draccus", + "draccus==0.11.6", ) # transformers==5.3.0 EXACTLY: the monolithic exporter refuses anything # else (5.4+ has a q_length regression in masking_utils.sdpa_mask). @@ -111,7 +114,7 @@ def _hf_secret(): timeout=3600, volumes={ HF_CACHE_PATH: _hf_cache_volume, - PARITY_OUT_PATH: _parity_out_volume, + "/parity_out": _parity_out_volume, }, secrets=[_hf_secret()], ) @@ -320,11 +323,13 @@ def main( tether_revision: str = TETHER_REVISION, reuse_export: bool = False, num_steps: int = 10, + watchdog_seconds: float = 1800, ) -> None: result = run_export_parity.remote( tether_revision=tether_revision, reuse_export=reuse_export, num_steps=num_steps, + watchdog_seconds=watchdog_seconds, ) print("\n=== RESULT ===") for key, value in result.items(): diff --git a/src/tether/_lerobot_version.py b/src/tether/_lerobot_version.py new file mode 100644 index 00000000..a88eefb8 --- /dev/null +++ b/src/tether/_lerobot_version.py @@ -0,0 +1,3 @@ +"""LeRobot runtime qualified for dataset admission and export (ADR 0003).""" + +QUALIFIED_LEROBOT_VERSION = "0.6.1" diff --git a/src/tether/cli.py b/src/tether/cli.py index 4ccbf222..ac787baf 100644 --- a/src/tether/cli.py +++ b/src/tether/cli.py @@ -2370,7 +2370,7 @@ def serve( "lerobot's RTCProcessor so the robot keeps executing the tail " "of one chunk while the next chunk is being computed. 2-3× " "effective throughput on Jetson-class latency. Requires " - "`pip install fastcrest-tether[rtc]` (pulls lerobot==0.5.1).", + "`pip install fastcrest-tether[rtc]` (pulls lerobot==0.6.1).", ), rtc_execution_horizon: int = typer.Option( 10, diff --git a/src/tether/distill/pi05_state_out_processor.py b/src/tether/distill/pi05_state_out_processor.py index 6e0e5ef4..466be057 100644 --- a/src/tether/distill/pi05_state_out_processor.py +++ b/src/tether/distill/pi05_state_out_processor.py @@ -32,7 +32,7 @@ def _register_step() -> type: import (matching the pattern in snapflow_pi0_model.py). """ from lerobot.processor.pipeline import ProcessorStep, ProcessorStepRegistry - from lerobot.types import EnvTransition, TransitionKey + from lerobot.lerobot_types import EnvTransition, TransitionKey @ProcessorStepRegistry.register(name="pi05_prepare_tokenizer_state_out") @dataclass diff --git a/src/tether/eval/preflight.py b/src/tether/eval/preflight.py index 324386ad..3b09eaa1 100644 --- a/src/tether/eval/preflight.py +++ b/src/tether/eval/preflight.py @@ -172,7 +172,7 @@ def __post_init__(self) -> None: ), "dep-version-conflict": ( "Dependency version mismatch detected. Pin: robosuite==1.4.1, " - "bddl==1.0.1, mujoco==3.3.2, lerobot==0.5.1. Use the bundled " + "bddl==1.0.1, mujoco==3.3.2, lerobot==0.6.1. Use the bundled " "Modal image (--runtime modal) for known-good pins." ), "osmesa-compile-hang": ( diff --git a/src/tether/exporters/decomposed.py b/src/tether/exporters/decomposed.py index 204eb64e..bd3e747d 100644 --- a/src/tether/exporters/decomposed.py +++ b/src/tether/exporters/decomposed.py @@ -38,7 +38,7 @@ ## Dependencies -Same as ``monolithic`` extra: transformers==5.3.0, lerobot==0.5.1, +Same as ``monolithic`` extra: transformers==5.3.0, lerobot==0.6.1, onnx-diagnostic>=0.9. ``apply_export_patches`` from ``monolithic.py`` is invoked here to get the shared denoise-step + cache-freeze patches. diff --git a/src/tether/exporters/monolithic.py b/src/tether/exporters/monolithic.py index 59c64a55..4a58ed39 100644 --- a/src/tether/exporters/monolithic.py +++ b/src/tether/exporters/monolithic.py @@ -10,7 +10,7 @@ tether export lerobot/smolvla_base --monolithic --output ./smol Requires (pinned in the ``monolithic`` extra): - lerobot==0.5.1 + lerobot==0.6.1 transformers==5.3.0 (5.4+ has a q_length scalar regression) onnx-diagnostic>=0.9 onnxscript>=0.1 @@ -23,6 +23,8 @@ """ from __future__ import annotations +from tether._lerobot_version import QUALIFIED_LEROBOT_VERSION + import logging import time from importlib.metadata import PackageNotFoundError, version as _dist_version @@ -175,14 +177,14 @@ def _require_monolithic_deps() -> None: "lerobot imports but package metadata is missing; install with: " "pip install 'fastcrest-tether[monolithic]'" ) from exc - if lerobot_version != "0.5.1": + if lerobot_version != QUALIFIED_LEROBOT_VERSION: raise ImportError( f"lerobot {lerobot_version} detected; monolithic export requires " - "exactly lerobot==0.5.1. Install with: " + f"exactly lerobot=={QUALIFIED_LEROBOT_VERSION}. Install with: " "pip install 'fastcrest-tether[monolithic]'" ) except ImportError as e: - missing.append(f"lerobot==0.5.1 ({e})") + missing.append(f"lerobot=={QUALIFIED_LEROBOT_VERSION} ({e})") for mod_name, pip_name in [ ("onnx_diagnostic", "onnx-diagnostic>=0.9"), diff --git a/src/tether/finetune/local_dataset.py b/src/tether/finetune/local_dataset.py index 1cb452fd..f1921819 100644 --- a/src/tether/finetune/local_dataset.py +++ b/src/tether/finetune/local_dataset.py @@ -8,6 +8,8 @@ from __future__ import annotations +from tether._lerobot_version import QUALIFIED_LEROBOT_VERSION + import hashlib import json import math @@ -18,25 +20,25 @@ from typing import Any, NoReturn -ADAPTER_SOURCE = "11c0a0cc0d5f4cd81de9904ec0d08f0305ba9ecec6e5952c25fe435c857afdf3" -WRITER_SOURCE = "1396b9fab7aecddd10006c33c47a487ffdcb54b4" -WRITER_WHEEL = "bbd11021023fde0947b6d1ff1c52fe91c86a28ab09a96359892f3ef7e8866862" +ADAPTER_SOURCE = "af6969a6663d0b288db781ad46736eb62d33a361dbe75cd578da6c163b075307" +WRITER_SOURCE = "7e241bd630a3719a56157a497ce5d08f244784f1" +WRITER_WHEEL = "1894516040c65f80a45bd9741f8174aae90ed5d93da0627ab4f1a85fd8d75e90" WRITER_FILES = { - "lerobot/datasets/lerobot_dataset.py": "03207172bbc82d541f93168017b11e2b3807cf719126bf47d04873257a4cbbd8", - "lerobot/datasets/utils.py": "1dd05df5f1d12721f227fb3601d99c22cd845cb59627b68004d3184c9e8e1486", - "lerobot/datasets/compute_stats.py": "7b0621bbdd36987939742a1803b3491b794db7b0e6393677e9b1a3e1d86aeafc", - "lerobot/datasets/dataset_writer.py": "f377ab064840d45f2dab98da27f5c71b5dfb64f70789fec5c82935eecc925207", - "lerobot/datasets/dataset_reader.py": "c5893ecb6406a6852f01dcc4d6662f6ca2320cd931bc9e4d1cd7dc83dfaa9d6c", - "lerobot/datasets/dataset_metadata.py": "df392d4c0b584177735550251c45877ba7b644377003e3fa08b71536c9969b59", - "lerobot/datasets/io_utils.py": "1b557bab9f1f1445602dfd5dc5bca69a3fe2c34c400ae36d3c69b5c7d4d1120a", - "lerobot/datasets/feature_utils.py": "1477145c9f27051511e661f5189f838d8fdfacdb0c7c8424a64d4c181027ce7a", - "lerobot/datasets/image_writer.py": "99ce7371c50b7fb0931b49228fa5e3ae30302e5559efd7f64dead6334aa9e088", + "lerobot/datasets/lerobot_dataset.py": "07523e2a4f9c53b6a96df9255ad131ee30e707fd8610ec9d2178d3741023ae3a", + "lerobot/datasets/utils.py": "1fd3eddf70baf1c5c7f4e745c78338c580385283fad00e853d49cd0f34dd57e3", + "lerobot/datasets/compute_stats.py": "d546a5c690eff716a10e9b13d70cd5d1ef7fed88f2f9c40c99f2f7f50845cf45", + "lerobot/datasets/dataset_writer.py": "319f4efb53e892ceeb439aae6d25209d14564e3dc91134c7cc2c6c0b5e71ebc5", + "lerobot/datasets/dataset_reader.py": "3a477dae6aa887449f09be25b385485b065861d13c5448b9369a0ba09f01bb5d", + "lerobot/datasets/dataset_metadata.py": "23c927553a53e320161f35f9b36e8b61a446833ca17a4287b9ef5cdc8d19c50f", + "lerobot/datasets/io_utils.py": "af08c7875f34f8469f80c4fd903af12971d6fa96c179be984887b93ef2f6f91c", + "lerobot/datasets/feature_utils.py": "928369cff50f0d663a125abfc67683ccbae0e552ed2eb22edde9e6bcff2aef81", + "lerobot/datasets/image_writer.py": "54cad218c99caad105ea8738507ee87fc8c2858832d31aa5b21d324c97360631", } NORMALIZATION_FILES = { - "lerobot/processor/normalize_processor.py": "faedf40f64e1fcc6aeb287ff757abe6e85983560d82fcde060252d8f75e277d6", - "lerobot/policies/act/configuration_act.py": "11aa9037f981a957d63632561c795fac243e7898ee9302f7afac2f5d45920f7b", - "lerobot/policies/smolvla/configuration_smolvla.py": "6c1f371ccb7ed073774c459387f85626edcf568edbbaa64b4cea1bf70a80feca", - "lerobot/configs/default.py": "e077db856b4ecad9476bdf12fb2e72a0294ae3a302413afa21774a8788ab0d20", + "lerobot/processor/normalize_processor.py": "f0cd88bec4c954a93ba1cc90300473b96eb177762789c1780cf07801fc1af9d6", + "lerobot/policies/act/configuration_act.py": "35a60c0dd3c811b137b5eb035bdbd40d40e2c24ba0cda61756052e6e1c829282", + "lerobot/policies/smolvla/configuration_smolvla.py": "2fb637cb428fa2fdf1d114646dcffaf4728216bfe5b7039d5d0cac4857ffc4e0", + "lerobot/configs/default.py": "e8307a48aa97c1b3fd0722e9a849deb1bc1bb48b63e3109b63683eb7ffe08105", } IDENTITY_FIELDS = ["task", "seed", "episode", "initial_state", "embodiment"] PARTITIONS = ("development", "holdout", "test") @@ -605,13 +607,13 @@ def _verify(dataset_root: Path, expected_manifest_sha256: str, expected_profile: inventory = _inventory(export, receipt) writer = _object(receipt.get("writer"), "writer") _require( - writer.get("version") == "0.5.1" + writer.get("version") == QUALIFIED_LEROBOT_VERSION and writer.get("source_commit") == WRITER_SOURCE and writer.get("wheel_sha256") == WRITER_WHEEL and writer.get("source_files") == WRITER_FILES - and _object(writer.get("runtime_versions"), "writer runtime").get("lerobot") == "0.5.1", + and _object(writer.get("runtime_versions"), "writer runtime").get("lerobot") == QUALIFIED_LEROBOT_VERSION, "writer-pin", - "Export writer/source pins must match qualified LeRobot 0.5.1.", + f"Export writer/source pins must match qualified LeRobot {QUALIFIED_LEROBOT_VERSION}.", ) info = _object(_json(root / "meta/info.json"), "dataset info") stats = _object(_json(root / "meta/stats.json"), "dataset statistics") diff --git a/src/tether/finetune/preflight/schema.py b/src/tether/finetune/preflight/schema.py index a2431018..cff8e462 100644 --- a/src/tether/finetune/preflight/schema.py +++ b/src/tether/finetune/preflight/schema.py @@ -13,6 +13,8 @@ """ from __future__ import annotations +from tether._lerobot_version import QUALIFIED_LEROBOT_VERSION + import logging from pathlib import Path from typing import Any @@ -138,7 +140,7 @@ def check_schema(cfg: FinetuneConfig) -> PreflightCheck: expected_modes = {"VISUAL": "IDENTITY", "STATE": "MEAN_STD", "ACTION": "MEAN_STD"} if not isinstance(base_config, dict) or base_config.get("type") != "smolvla": return PreflightCheck("schema", "fail", "Local admission requires a resolvable SmolVLA base config.") - # An omitted field uses only the exact LeRobot 0.5.1 class defaults + # An omitted field uses only the exact LeRobot 0.6.1 class defaults # qualified in the verified receipt. Explicit null/contradictory modes # are not treated as omission. resolved_modes = base_config.get("normalization_mapping", expected_modes) @@ -148,7 +150,7 @@ def check_schema(cfg: FinetuneConfig) -> PreflightCheck: "resolved_normalization_mapping": resolved_modes, "normalization_mapping_source": ( "base config.json" if "normalization_mapping" in base_config - else "pinned LeRobot 0.5.1 SmolVLAConfig defaults" + else f"pinned LeRobot {QUALIFIED_LEROBOT_VERSION} SmolVLAConfig defaults" ), } max_state = base_config.get("max_state_dim") diff --git a/src/tether/finetune/resume.py b/src/tether/finetune/resume.py index 19c4326a..92731b91 100644 --- a/src/tether/finetune/resume.py +++ b/src/tether/finetune/resume.py @@ -1,5 +1,6 @@ from __future__ import annotations +import json import logging from pathlib import Path import subprocess @@ -8,7 +9,9 @@ class ResumeConfigurationError(ValueError): - pass + def __init__(self, message: str, *, code: str = "resume-configuration-invalid"): + self.code = code + super().__init__(message) def resolve_resume_checkpoint(output_dir: Path) -> tuple[Path, Path]: @@ -39,11 +42,20 @@ def resolve_resume_checkpoint(output_dir: Path) -> tuple[Path, Path]: raise ResumeConfigurationError( f"resume checkpoint is missing pretrained_model/train_config.json: {checkpoint}" ) + saved = json.loads(config.read_text()) + if isinstance(saved, dict) and any( + key in saved for key in ("eval_freq", "use_rabc", "rabc_progress_path", "rabc_kappa", "rabc_epsilon", "rabc_head_mode") + ): + raise ResumeConfigurationError( + "cross-version-resume-unsupported: LeRobot 0.5.x training configs " + "cannot resume in the qualified 0.6.1 runtime; start a new run.", + code="cross-version-resume-unsupported", + ) return checkpoint, config def build_resume_command(output_dir: Path) -> tuple[list[str], Path]: - """Build the LeRobot v0.5.1 resume command from the checkpoint's own config. + """Build the LeRobot v0.6.1 resume command from the checkpoint's own config. Do not repeat `--policy.path`, dataset, optimizer, scheduler, seed or other training settings. LeRobot's resume contract loads those values from the diff --git a/tests/integration/test_eval_aloha_smoke.py b/tests/integration/test_eval_aloha_smoke.py index 569de695..dcc1c39a 100644 --- a/tests/integration/test_eval_aloha_smoke.py +++ b/tests/integration/test_eval_aloha_smoke.py @@ -44,6 +44,6 @@ def test_aloha_two_episode_customer_flow(tmp_path): assert all(type(row["success"]) is bool for row in report["episodes"]) assert report["confidence_interval"]["method"] == "wilson-score" assert receipt["policy"]["revision"] == REVISION - assert receipt["lerobot_version"] == "0.5.1" and receipt["device"] == "cpu" + assert receipt["lerobot_version"] == "0.6.1" and receipt["device"] == "cpu" assert receipt["migrated"] is True assert (output / "eval_info.json").is_file() diff --git a/tests/test_cli_export_end_to_end.py b/tests/test_cli_export_end_to_end.py index ee0b34a6..f7a7466b 100644 --- a/tests/test_cli_export_end_to_end.py +++ b/tests/test_cli_export_end_to_end.py @@ -69,7 +69,8 @@ def test_dep_check_catches_wrong_transformers(monkeypatch): monolithic._require_monolithic_deps() -def test_dep_check_catches_wrong_lerobot(monkeypatch): +@pytest.mark.parametrize("lerobot_version", ["0.4.4", "0.5.1"]) +def test_dep_check_catches_wrong_lerobot(monkeypatch, lerobot_version): """_require_monolithic_deps() must fail early on the known-bad lerobot 0.4.x stack instead of letting torch.export fail downstream.""" from tether.exporters import monolithic @@ -81,12 +82,12 @@ def test_dep_check_catches_wrong_lerobot(monkeypatch): def _fake_dist_version(dist_name: str) -> str: if dist_name == "lerobot": - return "0.4.4" + return lerobot_version raise monolithic.PackageNotFoundError(dist_name) monkeypatch.setattr(monolithic, "_dist_version", _fake_dist_version) - with pytest.raises(ImportError, match=r"lerobot 0\.4\.4.*lerobot==0\.5\.1"): + with pytest.raises(ImportError, match=r"lerobot " + lerobot_version.replace(".", r"\.") + r".*lerobot==0\.6\.1"): monolithic._require_monolithic_deps() diff --git a/tests/test_finetune_local_dataset.py b/tests/test_finetune_local_dataset.py index 5afbb96e..8015dc41 100644 --- a/tests/test_finetune_local_dataset.py +++ b/tests/test_finetune_local_dataset.py @@ -169,7 +169,7 @@ def file_hash(path): ] adapter = { "policy": "verified-moments-v1", - "adapter_source_sha256": "11c0a0cc0d5f4cd81de9904ec0d08f0305ba9ecec6e5952c25fe435c857afdf3", + "adapter_source_sha256": "af6969a6663d0b288db781ad46736eb62d33a361dbe75cd578da6c163b075307", "statistics_sha256": canonical(stats), "source_dataset_sha256": identity["sha256"], "split_sha256": split["sha256"], @@ -220,11 +220,11 @@ def file_hash(path): "fps": 10, }, "writer": { - "version": "0.5.1", + "version": "0.6.1", "source_commit": WRITER_SOURCE, "wheel_sha256": WRITER_WHEEL, "source_files": dict(WRITER_FILES), - "runtime_versions": {"lerobot": "0.5.1"}, + "runtime_versions": {"lerobot": "0.6.1"}, }, "statistics_policy": "verified-moments-v1", "statistics_adapter": adapter, @@ -717,7 +717,7 @@ def test_omitted_base_modes_use_only_pinned_defaults(local_cfg): assert result.severity == "ok" assert ( result.detail["normalization_mapping_source"] - == "pinned LeRobot 0.5.1 SmolVLAConfig defaults" + == "pinned LeRobot 0.6.1 SmolVLAConfig defaults" ) config["normalization_mapping"] = None write_json(path, config) diff --git a/tests/test_finetune_resume_command.py b/tests/test_finetune_resume_command.py index a7de3d3a..e6d9ea4b 100644 --- a/tests/test_finetune_resume_command.py +++ b/tests/test_finetune_resume_command.py @@ -47,3 +47,12 @@ def test_resume_refuses_checkpoint_missing_saved_train_config(tmp_path): checkpoint(tmp_path, 100, config=False) with pytest.raises(ResumeConfigurationError, match="train_config"): build_resume_command(tmp_path) + + +def test_resume_refuses_legacy_lerobot_config(tmp_path): + model = tmp_path / "checkpoints" / "000003" / "pretrained_model" + model.mkdir(parents=True) + (model / "train_config.json").write_text('{"eval_freq": 100}') + with pytest.raises(ResumeConfigurationError, match="cross-version-resume-unsupported") as error: + build_resume_command(tmp_path) + assert error.value.code == "cross-version-resume-unsupported" diff --git a/tests/test_lora_argv_parser.py b/tests/test_lora_argv_parser.py index 44847f2e..5e60b68c 100644 --- a/tests/test_lora_argv_parser.py +++ b/tests/test_lora_argv_parser.py @@ -1,7 +1,7 @@ -"""Parse the real LoRA argv with LeRobot 0.5.1, offline and without weights. +"""Parse the real LoRA argv with LeRobot 0.6.1, offline and without weights. Mirrors Studio's backend/tests/test_lora_argv_parser.py at the Tether boundary. -Requires LeRobot 0.5.1 and PEFT. Inline resume only parses its flag; saved-config +Requires LeRobot 0.6.1 and PEFT. Inline resume only parses its flag; saved-config resume restores the checkpoint path. Neither case runs training or qualifies dataset admission or interrupted-training recovery. """ @@ -29,7 +29,7 @@ def no_network(*args, **kwargs): monkeypatch.setattr(socket.socket, "connect_ex", no_network) pytest.importorskip("lerobot") pytest.importorskip("peft") - assert version("lerobot") == "0.5.1" + assert version("lerobot") == "0.6.1" import draccus from lerobot.configs import parser, policies @@ -41,7 +41,7 @@ def no_network(*args, **kwargs): assert Path(run.__file__).resolve().is_relative_to(source) # Keep the real config loader and policy decoding; stub only hub lookup. policy_file = tmp_path / "config.json" - policy_file.write_text(json.dumps(draccus.encode(SmolVLAConfig(device="cpu")))) + policy_file.write_text(json.dumps({**draccus.encode(SmolVLAConfig(device="cpu")), "type": "smolvla"})) def hub_config(*args, **kwargs): assert kwargs["repo_id"] == "lerobot/smolvla_base" diff --git a/tests/test_one_command_deploy.py b/tests/test_one_command_deploy.py index 444cc5b3..e5dbbad7 100644 --- a/tests/test_one_command_deploy.py +++ b/tests/test_one_command_deploy.py @@ -338,7 +338,7 @@ def test_export_dep_missing_errors_with_monolithic_install_hint(self, runner, cl with patch( "tether.exporters.monolithic.export_monolithic", - side_effect=ImportError("Missing dependencies: lerobot==0.5.1, onnx-diagnostic"), + side_effect=ImportError("Missing dependencies: lerobot==0.6.1, onnx-diagnostic"), ): result = runner.invoke(cli_app, [ "go", From e32c3ea8e4424aca994a6bae8c39f912936fc656 Mon Sep 17 00:00:00 2001 From: RomirJ Date: Mon, 12 Oct 2026 12:04:50 -0700 Subject: [PATCH 2/8] Review fixes for the LeRobot 0.6.1 pin - Keep the base torch/numpy requirements as on main (torch>=2.1.0, numpy>=1.24.0 off aarch64). The exact torch==2.7.1 / numpy==2.2.6 base pins were outside ADR 0003 (which pins Studio's evaluation runtime, not every public install) and LeRobot 0.6.1 already declares torch<2.12, numpy<2.3. - accelerate floor >=1.14 in the explicit SmolVLA dependency sets, matching lerobot 0.6.1's accelerate-dep extra (>=1.14,<2) instead of a looser 1.10. - Resume: an unreadable train_config.json raises ResumeConfigurationError instead of a bare JSONDecodeError; test added. - New test: WRITER_FILES/NORMALIZATION_FILES equal the installed bytes when the qualified LeRobot is present (a wrong pin previously passed every Tether test; mutation-checked). Co-Authored-By: Claude Opus 5.5 --- pyproject.toml | 11 +++++------ src/tether/finetune/resume.py | 5 ++++- tests/test_finetune_local_dataset.py | 18 ++++++++++++++++++ tests/test_finetune_resume_command.py | 8 ++++++++ 4 files changed, 35 insertions(+), 7 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 5235dc98..3c3d1f99 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -20,8 +20,7 @@ classifiers = [ ] dependencies = [ - "torch==2.7.1; platform_machine != 'aarch64'", - "torch>=2.1.0; platform_machine == 'aarch64'", + "torch>=2.1.0", "safetensors>=0.4.0", "typer>=0.9.0", "rich>=13.0.0", @@ -34,7 +33,7 @@ dependencies = [ # numpy<2 globally makes lerobot uninstallable on Modal (caught by the # 2026-05-20 lift #4 smoke fire). Split via PEP-508 platform marker. "numpy>=1.24.0,<2.0; platform_machine == 'aarch64'", - "numpy==2.2.6; platform_machine != 'aarch64'", + "numpy>=1.24.0; platform_machine != 'aarch64'", "pyyaml>=6.0", # Always needed: hub access for `tether export ` and tokenizer/config # loading for the auto-detect path. Apr-14 install-path verification caught @@ -151,7 +150,7 @@ native = [ "lerobot==0.6.1; python_version >= '3.12'", "draccus==0.11.6; python_version >= '3.12'", "num2words", - "accelerate>=1.10,<2", + "accelerate>=1.14,<2", "diffusers==0.39.0", ] # Monolithic ONNX export — cos=1.0 verified production path. Runs locally @@ -173,7 +172,7 @@ monolithic = [ "optree", "scipy", "num2words", - "accelerate>=1.10,<2", + "accelerate>=1.14,<2", "diffusers==0.39.0", ] # Task-success evaluation (heavy sim deps). Gated behind this extra so the @@ -191,7 +190,7 @@ eval = [ eval-local = [ "transformers==5.3.0; python_version >= '3.12' and sys_platform == 'linux'", "num2words>=0.5.14,<0.6; python_version >= '3.12' and sys_platform == 'linux'", - "accelerate>=1.10,<2; python_version >= '3.12' and sys_platform == 'linux'", + "accelerate>=1.14,<2; python_version >= '3.12' and sys_platform == 'linux'", "lerobot==0.6.1; python_version >= '3.12' and sys_platform == 'linux'", "draccus==0.11.6; python_version >= '3.12' and sys_platform == 'linux'", "peft; python_version >= '3.12' and sys_platform == 'linux'", diff --git a/src/tether/finetune/resume.py b/src/tether/finetune/resume.py index 92731b91..0fe57165 100644 --- a/src/tether/finetune/resume.py +++ b/src/tether/finetune/resume.py @@ -42,7 +42,10 @@ def resolve_resume_checkpoint(output_dir: Path) -> tuple[Path, Path]: raise ResumeConfigurationError( f"resume checkpoint is missing pretrained_model/train_config.json: {checkpoint}" ) - saved = json.loads(config.read_text()) + try: + saved = json.loads(config.read_text()) + except (OSError, ValueError) as exc: + raise ResumeConfigurationError(f"resume train_config.json is unreadable: {config}") from exc if isinstance(saved, dict) and any( key in saved for key in ("eval_freq", "use_rabc", "rabc_progress_path", "rabc_kappa", "rabc_epsilon", "rabc_head_mode") ): diff --git a/tests/test_finetune_local_dataset.py b/tests/test_finetune_local_dataset.py index 6ddaef5a..186a8d4e 100644 --- a/tests/test_finetune_local_dataset.py +++ b/tests/test_finetune_local_dataset.py @@ -768,3 +768,21 @@ def test_existing_positional_config_arguments_stay_compatible(tmp_path): assert cfg.num_steps == 123 assert cfg.dataset_root is None assert cfg.dataset_manifest_sha256 is None + + +def test_pinned_lerobot_sources_match_installed_qualified_runtime(): + """The pins are reviewed upstream bytes; check them against a real 0.6.1 install when present.""" + from importlib import metadata + + from tether._lerobot_version import QUALIFIED_LEROBOT_VERSION + from tether.finetune import local_dataset + + try: + dist = metadata.distribution("lerobot") + except metadata.PackageNotFoundError: + pytest.skip("lerobot is not installed") + if dist.version != QUALIFIED_LEROBOT_VERSION: + pytest.skip(f"lerobot {dist.version} is not the qualified {QUALIFIED_LEROBOT_VERSION}") + pins = {**local_dataset.WRITER_FILES, **local_dataset.NORMALIZATION_FILES} + actual = {name: hashlib.sha256(Path(dist.locate_file(name)).read_bytes()).hexdigest() for name in pins} + assert actual == pins diff --git a/tests/test_finetune_resume_command.py b/tests/test_finetune_resume_command.py index e6d9ea4b..285fe2ac 100644 --- a/tests/test_finetune_resume_command.py +++ b/tests/test_finetune_resume_command.py @@ -56,3 +56,11 @@ def test_resume_refuses_legacy_lerobot_config(tmp_path): with pytest.raises(ResumeConfigurationError, match="cross-version-resume-unsupported") as error: build_resume_command(tmp_path) assert error.value.code == "cross-version-resume-unsupported" + + +def test_resume_refuses_unreadable_train_config(tmp_path): + model = tmp_path / "checkpoints" / "000003" / "pretrained_model" + model.mkdir(parents=True) + (model / "train_config.json").write_text("{not json") + with pytest.raises(ResumeConfigurationError, match="unreadable"): + build_resume_command(tmp_path) From 165102a03669c444bc594d350af5c3d16f28d97d Mon Sep 17 00:00:00 2001 From: RomirJ Date: Mon, 12 Oct 2026 12:52:07 -0700 Subject: [PATCH 3/8] Parity vehicles: torch>=2.8 (onnx-diagnostic patches need it); LoRA stub shape The pi0/pi0.5/GR00T vehicles had been changed to torch==2.7.1. Every onnx-diagnostic 0.9.x release (0.9.0-0.9.3, checked) patches torch._export.non_strict_utils._constrain_user_specified_dimhint_range, which exists from torch 2.8.0 and not in 2.7.1, so torch_export_patches(patch_transformers=True) raises AttributeError before any export: the paid GPU runs would have failed. Reproduced locally on torch 2.7.1 + onnx-diagnostic 0.9.3. The vehicles now take torch>=2.8,<2.12 (lerobot 0.6.1's cap); uv resolves torch 2.11.0, transformers 5.3.0, no pyyaml-include, for linux x86_64 py3.12. test_lora_argv_parser: the local-dataset stub returns the real verify_local_export shape (receipt key) that lerobot_v3.verify_local_dataset reads since #354; three cases failed whenever lerobot was installed. Co-Authored-By: Claude Opus 5.5 --- scripts/modal_groot_export_parity_pinned.py | 4 ++-- scripts/modal_pi05_export_parity_pinned.py | 8 +++++--- scripts/modal_pi0_export_parity_pinned.py | 8 +++++--- tests/test_lora_argv_parser.py | 3 ++- 4 files changed, 14 insertions(+), 9 deletions(-) diff --git a/scripts/modal_groot_export_parity_pinned.py b/scripts/modal_groot_export_parity_pinned.py index 380efe41..1edf1322 100644 --- a/scripts/modal_groot_export_parity_pinned.py +++ b/scripts/modal_groot_export_parity_pinned.py @@ -63,8 +63,8 @@ def _hf_secret(): modal.Image.debian_slim(python_version="3.12") .apt_install("git") .pip_install( - "torch==2.7.1", - "torchvision==0.22.1", + # torch>=2.8: onnx-diagnostic 0.9.x torch_export_patches needs it (see pi0 vehicle). + "torch>=2.8,<2.12", "safetensors>=0.4.0", "huggingface_hub", # transformers==5.3.0 EXACTLY: the monolithic exporter refuses diff --git a/scripts/modal_pi05_export_parity_pinned.py b/scripts/modal_pi05_export_parity_pinned.py index c5c68c99..527c1e4f 100644 --- a/scripts/modal_pi05_export_parity_pinned.py +++ b/scripts/modal_pi05_export_parity_pinned.py @@ -61,9 +61,11 @@ def _hf_secret(): modal.Image.debian_slim(python_version="3.12") .apt_install("git") .pip_install( - # Qualify the same torch/vision runtime as the CPU probes. - "torch==2.7.1", - "torchvision==0.22.1", + # torch>=2.8: every onnx-diagnostic 0.9.x patches + # torch._export.non_strict_utils._constrain_user_specified_dimhint_range, + # which torch 2.7.1 lacks, so torch_export_patches() raises before export. + # lerobot 0.6.1 caps torch <2.12. (Studio's 2.7.1 pin is an MPS eval pin.) + "torch>=2.8,<2.12", "lerobot==0.6.1", "num2words", "diffusers==0.39.0", diff --git a/scripts/modal_pi0_export_parity_pinned.py b/scripts/modal_pi0_export_parity_pinned.py index 18c39430..61ec89c5 100644 --- a/scripts/modal_pi0_export_parity_pinned.py +++ b/scripts/modal_pi0_export_parity_pinned.py @@ -53,9 +53,11 @@ def _hf_secret(): modal.Image.debian_slim(python_version="3.12") .apt_install("git") .pip_install( - # Qualify the same torch/vision runtime as the CPU probes. - "torch==2.7.1", - "torchvision==0.22.1", + # torch>=2.8: every onnx-diagnostic 0.9.x patches + # torch._export.non_strict_utils._constrain_user_specified_dimhint_range, + # which torch 2.7.1 lacks, so torch_export_patches() raises before export. + # lerobot 0.6.1 caps torch <2.12. (Studio's 2.7.1 pin is an MPS eval pin.) + "torch>=2.8,<2.12", "lerobot==0.6.1", "num2words", "diffusers==0.39.0", diff --git a/tests/test_lora_argv_parser.py b/tests/test_lora_argv_parser.py index 5e60b68c..53993adb 100644 --- a/tests/test_lora_argv_parser.py +++ b/tests/test_lora_argv_parser.py @@ -80,7 +80,8 @@ def _config(monkeypatch, tmp_path, rank, dataset="remote", resume=False): def verified_export(actual_root, actual_digest): assert actual_root == root assert actual_digest == cfg.dataset_manifest_sha256 - return snapshot + # Real verify_local_export shape (lerobot_v3.verify_local_dataset reads the receipt). + return {**snapshot, "receipt": {"artifacts": []}, "info": {}} monkeypatch.setattr(admission, "verify_local_export", verified_export) monkeypatch.setattr(schema, "check_schema", lambda cfg: SimpleNamespace(severity="ok")) From b2d447f2cb6d1841c0bbfaa97c0891e5b95595a5 Mon Sep 17 00:00:00 2001 From: RomirJ Date: Mon, 12 Oct 2026 13:07:08 -0700 Subject: [PATCH 4/8] Monolithic export: refuse torch<2.8; make dispatch test deterministic onnx-diagnostic 0.8.11 and 0.9.0-0.9.3 patch torch._export.non_strict_utils._constrain_user_specified_dimhint_range on entering torch_export_patches(); the symbol first exists in torch 2.8.0. Reproduced: entering the patches fails on torch 2.7.1 with AttributeError and succeeds on 2.8.0 and 2.11.0. _require_monolithic_deps admitted torch 2.7.1, so every pi0/pi0.5/SmolVLA/GR00T export died mid export instead of being refused. The gate now lists torch>=2.8 as a missing dependency, and the [monolithic] extra declares the same floor (the jetson extra is left alone: it does not export locally). test_dispatch_by_model_id called the real SmolVLA exporter and expected an ImportError, so it started a full export whenever the extras were installed and failed on any torch<2.8 interpreter that had them. It now stubs the family exporters and asserts routing for smolvla/pi0/pi05. New test for the torch floor; removing the check fails it. Co-Authored-By: Claude Opus 5.5 --- pyproject.toml | 3 +++ src/tether/exporters/monolithic.py | 18 +++++++++++++++ tests/test_cli_export_end_to_end.py | 36 ++++++++++++++++++++++++----- 3 files changed, 51 insertions(+), 6 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 3c3d1f99..948ebc61 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -167,6 +167,9 @@ monolithic = [ "lerobot==0.6.1; python_version >= '3.12'", "draccus==0.11.6; python_version >= '3.12'", "transformers==5.3.0", + # onnx-diagnostic's export patches reference a torch 2.8+ symbol; + # _require_monolithic_deps refuses older torch with the same floor. + "torch>=2.8", "onnx-diagnostic>=0.9", "onnxscript>=0.1", "optree", diff --git a/src/tether/exporters/monolithic.py b/src/tether/exporters/monolithic.py index 509ba9a0..6c6d8e40 100644 --- a/src/tether/exporters/monolithic.py +++ b/src/tether/exporters/monolithic.py @@ -31,6 +31,8 @@ from pathlib import Path from typing import Any +MIN_EXPORT_TORCH = (2, 8) + logger = logging.getLogger(__name__) @@ -168,6 +170,22 @@ def _require_monolithic_deps() -> None: except ImportError as e: missing.append(f"transformers==5.3.0 ({e})") + # onnx-diagnostic 0.8.11 and 0.9.0-0.9.3 unconditionally patch + # torch._export.non_strict_utils._constrain_user_specified_dimhint_range, + # which first exists in torch 2.8.0. On older torch every pi0/pi0.5/ + # SmolVLA/GR00T export dies with an AttributeError on entering + # torch_export_patches(); refuse here instead. + try: + import torch + major_minor = tuple(int(part) for part in str(torch.__version__).split(".")[:2]) + if major_minor < MIN_EXPORT_TORCH: + raise ImportError( + f"torch {torch.__version__} detected; onnx-diagnostic's export " + "patches need torch>=2.8" + ) + except (ImportError, ValueError) as e: + missing.append(f"torch>=2.8 ({e})") + try: __import__("lerobot") try: diff --git a/tests/test_cli_export_end_to_end.py b/tests/test_cli_export_end_to_end.py index e1ead410..73e09234 100644 --- a/tests/test_cli_export_end_to_end.py +++ b/tests/test_cli_export_end_to_end.py @@ -34,16 +34,40 @@ def test_monolithic_module_importable(): assert hasattr(monolithic, "apply_export_patches") -def test_dispatch_by_model_id(monkeypatch): - """`export_monolithic` picks the right backend from the model_id.""" +@pytest.mark.parametrize("model_id,family", [ + ("lerobot/smolvla_base", "smolvla"), + ("lerobot/pi0_base", "pi0"), + ("lerobot/pi05_base", "pi05"), +]) +def test_dispatch_by_model_id(monkeypatch, model_id, family): + """`export_monolithic` picks the right backend from the model_id. + + The family exporters are stubbed: calling the real one starts a full + export whenever the [monolithic] extras happen to be installed, which + made this test pass or fail depending on the interpreter. + """ from tether.exporters import monolithic monkeypatch.setattr(monolithic, "_model_type_from_hub_config", lambda _: None) - with pytest.raises(ImportError, match="Missing dependencies|monolithic"): - # Wrong transformers version or missing deps -> ImportError - monolithic.export_monolithic( - "lerobot/smolvla_base", "/tmp/should_not_run", + called = [] + for name in ("smolvla", "pi0", "pi05", "gr00t"): + monkeypatch.setattr( + monolithic, f"export_{name}_monolithic", + lambda *a, _n=name, **k: called.append(_n) or {}, ) + monolithic.export_monolithic(model_id, "/tmp/should_not_run") + assert called == [family] + + +def test_dep_check_refuses_torch_without_export_patch_symbol(monkeypatch): + """onnx-diagnostic 0.9.x patches a torch 2.8+ symbol on entry, so the + gate must refuse torch<2.8 instead of crashing mid-export.""" + from tether.exporters import monolithic + import torch + + monkeypatch.setattr(torch, "__version__", "2.7.1") + with pytest.raises(ImportError, match=r"torch>=2\.8 \(torch 2\.7\.1 detected"): + monolithic._require_monolithic_deps() def test_unsupported_model_type_raises(monkeypatch): From 5fb92df22c51c627012216c3fd56f08b75fc30e5 Mon Sep 17 00:00:00 2001 From: RomirJ Date: Mon, 12 Oct 2026 14:41:09 -0700 Subject: [PATCH 5/8] Port patched export paths to LeRobot 0.6.1 shared VLA helpers LeRobot 0.6.1 removed PI0Pytorch/PI05Pytorch._prepare_attention_masks_4d (now lerobot.policies.common.vla_utils.prepare_attention_masks_4d), which broke the pi0 GPU parity export. Port every patched prefix/denoise path (pi0, pi0.5 monolithic, decomposed, SnapFlow pi0/pi0.5/state-out, training adapters, standalone Modal scripts) to the shared helper. Drop the 0.5.1 embed_image sqrt(hidden_size) shim (0.6.1 native no longer scales). SnapFlow pi0 clones the prefix cache like native; SnapFlow export freezes cache updates and forwards explicit state for state-out students. Adds tests/test_lerobot06_patched_forward.py: tiny real LeRobot 0.6.1 models, patched outputs vs native unpatched forward at rtol=atol=1e-6, plus torch.export graphs and a private-API audit. Audit and review notes in docs/research/verification/lerobot-06-export-port-20261012.md. Co-Authored-By: Claude Opus 5.5 --- .../lerobot-06-export-port-20261012.md | 175 +++++++++ scripts/modal_layer_pruning_profile.py | 5 +- scripts/modal_pi05_monolithic_export.py | 7 +- scripts/modal_pi0_monolithic_export.py | 8 +- scripts/modal_stateout_distill_stage2.py | 5 +- scripts/modal_stateout_smoke.py | 5 +- src/tether/distill/snapflow_pi0_model.py | 45 +-- src/tether/exporters/decomposed.py | 6 +- src/tether/exporters/monolithic.py | 50 ++- .../finetune/backends/snapflow_backend.py | 12 +- tests/test_lerobot06_patched_forward.py | 343 ++++++++++++++++++ tests/test_snapflow_backend.py | 2 - 12 files changed, 591 insertions(+), 72 deletions(-) create mode 100644 docs/research/verification/lerobot-06-export-port-20261012.md create mode 100644 tests/test_lerobot06_patched_forward.py diff --git a/docs/research/verification/lerobot-06-export-port-20261012.md b/docs/research/verification/lerobot-06-export-port-20261012.md new file mode 100644 index 00000000..644c39ed --- /dev/null +++ b/docs/research/verification/lerobot-06-export-port-20261012.md @@ -0,0 +1,175 @@ +# LeRobot 0.6.1 export port, 2026-10-12 + +The customer is a Tether user exporting a pi0, pi0.5 or SnapFlow policy with +LeRobot 0.6.1. The required outcome is that each patched prefix, denoise and +inference path executes the same math as that version's native forward. +The checkout started clean on `feat/lerobot-0.6.1` at +`b2d447f2cb6d1841c0bbfaa97c0891e5b95595a5`, PR #355. Changes are uncommitted. +The existing failed GPU run is recorded in Studio's +`docs/research/verification/lerobot-06-parity-20261012.md`; it is reused as +failure evidence, not as successful parity evidence. + +## Source comparison and root cause + +Compared the installed 0.5.1 and 0.6.1 wheel sources in +`/Users/romirjain/dev/studio-wt-lerobot06/.sol-scratch/lerobot06/venv-051d` +and `venv-061t`, including both `pi0/modeling_pi0.py` and +`pi05/modeling_pi05.py`. The version-pin commit `d7361f8` made the old +private-method calls fail. The tiny CPU pi0 regression reproduced the exact +`AttributeError` before the port. + +0.5.1's `_prepare_attention_masks_4d` at pi0 line 623 and pi0.5 line 619 +became `lerobot.policies.common.vla_utils.prepare_attention_masks_4d` at +0.6.1 line 93. Both modeling modules import and call that shared function. +This is extraction of duplicated VLA utilities. The default computation is +unchanged: add the singleton head dimension, then select `0.0` or +`OPENPI_ATTENTION_MASK_VALUE` with `torch.where`. The optional `dtype` +conversion in 0.6.1 only runs when requested. Tether uses the same default +as native LeRobot, including float32 additive masks. + +Two other numerical changes matter: + +- Both native denoise methods now use `clone_past_key_values`, a shared + tensor-clone helper, instead of `copy.deepcopy`. The prefix cache remains + unchanged between steps. Teacher export retains its equivalent frozen + cache update. SnapFlow export now freezes updates too, because graph + tracing can evaluate a single-step forward repeatedly. SnapFlow pi0 + training uses the tensor-clone helper to preserve both the prefix cache + and gradients; pi0.5 retains its existing detached training-cache copy. +- Both native image embedding methods removed the 0.5.1 multiplication by + `sqrt(hidden_size)`. Tether's pi0 export shim still multiplied, producing + a maximum action difference of 0.5559507608 in the tiny three-step fixture. + The shared exporter now uses the native image embedding unchanged, and + the standalone export scripts no longer add that factor. + +0.6.1 also extracts the sampling loop into +`lerobot.policies.common.flow_matching.euler_integrate`. Its time schedule +and arithmetic remain `dt=-1/num_steps`, `t=1+step*dt`, `x=x+dt*v`. +The decomposed baked wrapper already performs those same operations. + +## Ported paths + +- pi0 and pi0.5 monolithic teacher denoise patches. +- Decomposed pi0.5 prefix, per-step expert and baked Euler expert, including + SnapFlow and state-out students. Student loading installs the same + export-friendly denoise patch as monolithic export. +- SnapFlow pi0, pi0.5 and state-out denoise/prefix/inference overrides. +- SnapFlow monolithic export for both families, including explicit state + forwarding for the state-out variant. +- Both SnapFlow training-prefix adapters. +- Standalone pi0/pi0.5 monolithic export scripts, layer-pruning profile, + state-out smoke and state-out stage-two distillation. Their LeRobot pins + now match the 0.6.1 helper they call. These Modal scripts were inspected + and syntax-checked, not executed on GPU. + +## Complete private LeRobot call audit + +Searched `src/` and `scripts/` for private calls and imports, followed the +receiver types, and checked each owner against the installed 0.6.1 source. +The executable regression also checks the surviving signatures and rejects +removed-mask calls or new private LeRobot imports across those directories. + +| Owner and private symbol | 0.6.1 status | Source and disposition | +| --- | --- | --- | +| `PI0Pytorch._prepare_attention_masks_4d` | Removed; all callers ported | Native shared-helper calls at `modeling_pi0.py:616,677,727` | +| `PI05Pytorch._prepare_attention_masks_4d` | Removed; all callers ported | Native shared-helper calls at `modeling_pi05.py:586,644,692` | +| `PI0Pytorch._apply_checkpoint` | Present | `modeling_pi0.py:466`, `(self, func, *args, **kwargs)` | +| `PI05Pytorch._apply_checkpoint` | Present | `modeling_pi05.py:462`, same signature | +| `PI0Policy._preprocess_images` | Present | `modeling_pi0.py:983`, `(self, batch)` returning image and mask lists | +| `PI05Policy._preprocess_images` | Present | `modeling_pi05.py:952`, same signature | + +There are no underscore-prefixed imports from LeRobot in these directories. +`config._attn_implementation` belongs to Transformers, is present, and is +assigned by LeRobot 0.6.1 itself. `lerobot.policies.pi_gemma` and its +`create_causal_mask` still exist. Python `__class__` and cache `__dict__` +accesses are not private LeRobot callable symbols. + +The original broken pi0 call came from `768a536d`, pi0.5 from `6ffeeff5`, +decomposed prefix from `bd0f7738`, and SnapFlow subclass from `0be7388f`. +The separate legacy import `lerobot.common.policies...` in +`scripts/modal_test_export.py` predates this migration and remains outside +these patched export paths. + +## CPU verification + +`tests/test_lerobot06_patched_forward.py` creates real random LeRobot models +with two language/expert layers, width 32, eight attention heads, a two-layer +SigLIP vision encoder, vocabulary 64, 16x16 images and a three-action chunk. +Only constructor configuration sizes are replaced. Embeddings, attention, +normalization, projections, caches, losses and integration use real library +code. No checkpoint download or large weights are involved. + +Native reference outputs are captured before installing export patches. +Tests compare native full training-forward losses, denoise velocities and +three-step teacher inference. SnapFlow checks zero initialization and a +nonzero learned target-time correction against unpatched LeRobot forward +methods with the student's intended suffix embedding. State-out includes +its explicit state token. Both training adapters are exercised. The +real decomposed teacher and student wrappers compare prefix caches, +per-step velocities and baked integration against native outputs. Their +exported prefix, per-step and baked graphs are executed too. Torch graphs for steps +and full image/language-to-action inference are executed and compared too. +Every float32 comparison uses `rtol=1e-6`, `atol=1e-6`, with masked cameras +and padded language tokens in a batch of two. Subprocesses isolate global +export patches from the rest of pytest. + +The requested 0.6.1 environment's actual interpreter is +`/Users/romirjain/dev/studio-wt-lerobot06/.sol-scratch/lerobot06/venv-061t/bin/python`. +It has Python 3.12.12, LeRobot 0.6.1, Transformers 5.3.0 and Torch 2.7.1. +The CPU Torch graphs are diagnostic evidence; production monolithic export +still correctly requires Torch >=2.8. No new GPU/ONNX Runtime acceptance +receipt was produced, and existing qualification verdicts are unchanged. + +```bash +PYTHONPATH="$PWD/src" \ + /Users/romirjain/dev/studio-wt-lerobot06/.sol-scratch/lerobot06/venv-061t/bin/python \ + -m pytest -q tests/test_lerobot06_patched_forward.py \ + tests/test_snapflow_backend.py tests/test_monolithic_causal_mask_shim.py + +PYTHONPATH="$PWD/src:/Users/romirjain/dev/.sol-out/tether-mcpdeps:/Users/romirjain/dev/.sol-out/tether-asyncdeps" \ + /Users/romirjain/dev/studio-wt-s11/.sol-scratch/venv/bin/python -m pytest +``` + +The final focused run in `venv-061t` passed: **48 passed in 71.20 seconds**, +including all seven new native/graph/private-API cases, the existing SnapFlow +backend tests and causal-mask tests. Raw output is +`/tmp/tether-lerobot06-final-focused.log`. + +The full requested suite ran in 206.12 seconds: **4,169 passed, 133 skipped, +21 failed and 10 errors**. All 31 failures/errors are sandbox-denied TCP +socket binds: two fake HTTP servers and 29 ZeroMQ cases. Each reports +`Operation not permitted`; there were no other failures. The zero-failure +full-suite target therefore requires an environment permitted to bind local +TCP sockets. No test was weakened or skipped to conceal those results. +Raw output is `/tmp/tether-lerobot06-full-suite.log`. + +After the final loader and test changes, the affected tests in the S11 +interpreter passed: **56 passed, 11 skipped**. LeRobot-specific tests skip +there because that environment lacks LeRobot; they execute in `venv-061t`. +The affected core exporter/distillation files and new regression pass Ruff, +and all edited Python files pass Ruff's undefined-name check. `git diff +--check` is clean. + +## Adversarial review (Claude, 2026-10-12) + +- Line-by-line against the LeRobot 0.6.1 wheel (`venv-061t`): `vla_utils.prepare_attention_masks_4d` + (`vla_utils.py:93-102`) is called with no `dtype`, as native does at `modeling_pi0.py:677,727` + and `modeling_pi05.py:692`. The patched pi0/pi0.5 denoise steps (`monolithic.py` pi0 patch, + `_apply_pi05_denoise_step_patch`) match native `denoise_step` (`modeling_pi0.py:705-743`, + `modeling_pi05.py:671-708`) term by term; the two deliberate differences are (a) `F.pad`+AND + instead of `torch.cat` for the 2D mask, equal by construction when no pad deficit, and (b) a + frozen `DynamicLayer.update` instead of `clone_past_key_values`; both feed attention + `cat(prefix_kv, suffix_kv)` and leave the prefix cache unchanged. The decomposed prefix wrapper + matches native `sample_actions` prefix (`modeling_pi05.py:640-656`). 0.6.1 `embed_image` + (`modeling_pi0.py:287-296`) has no `sqrt(hidden_size)` factor (0.5.1 had it at `:446`), so + dropping Tether's shim is correct. `euler_integrate` (`flow_matching.py:93-120`) is + `dt=-1/n, x+=dt*v`. VERIFIED. +- The CPU references are native: `native_step = cls.denoise_step`, `expected_*` from a + `copy.deepcopy` of the model, all computed before `apply_export_patches()` and the SnapFlow + installers run. SnapFlow references call the unpatched class `denoise_step` with only the + student's suffix embedding substituted. VERIFIED (`tests/test_lerobot06_patched_forward.py:136-232`). +- Mutation checks (file restored by copy, shasum `7d653f5b...aef49` equal before and after each): + M1 disable the denoise-phase cache freeze in the pi0 patch: 6 of 7 cases fail (pi0: 3-step + actions max abs 0.118 at line 249). M2 make the pi0.5 patch ignore the prefix pad mask: pi05 + and decomposed fail (velocity max abs 0.012 at line 244). Both mutations killed. VERIFIED. +- Re-run after review: 48 passed in 77.7 s (`venv-061t`). VERIFIED. diff --git a/scripts/modal_layer_pruning_profile.py b/scripts/modal_layer_pruning_profile.py index 024cbd73..f9f45d37 100644 --- a/scripts/modal_layer_pruning_profile.py +++ b/scripts/modal_layer_pruning_profile.py @@ -65,7 +65,7 @@ def _build_bust() -> str: modal.Image.debian_slim(python_version="3.12") .apt_install("git") .pip_install( - "lerobot==0.5.1", + "lerobot==0.6.1", "transformers==5.3.0", "num2words", "safetensors>=0.4.0", @@ -164,6 +164,7 @@ def hook(_module, _inp, output): images = [img, img, img] img_masks = [mask, mask, mask] from lerobot.policies.pi05.modeling_pi05 import make_att_2d_masks + from lerobot.policies.common.vla_utils import prepare_attention_masks_4d prefix_embs, prefix_pad_masks, prefix_att_masks = ( policy.model.embed_prefix( images, img_masks, lang_tokens, lang_masks, @@ -172,7 +173,7 @@ def hook(_module, _inp, output): prefix_att_2d = make_att_2d_masks(prefix_pad_masks, prefix_att_masks) prefix_position_ids = torch.cumsum(prefix_pad_masks, dim=1) - 1 prefix_att_2d_4d = ( - policy.model._prepare_attention_masks_4d(prefix_att_2d) + prepare_attention_masks_4d(prefix_att_2d) ) language_model.config._attn_implementation = "eager" _ = policy.model.paligemma_with_expert.forward( diff --git a/scripts/modal_pi05_monolithic_export.py b/scripts/modal_pi05_monolithic_export.py index b8222245..efa15b6f 100644 --- a/scripts/modal_pi05_monolithic_export.py +++ b/scripts/modal_pi05_monolithic_export.py @@ -38,7 +38,7 @@ def _hf_secret(): modal.Image.debian_slim(python_version="3.12") .pip_install( # Install lerobot first — it pins torch>=2.7 and hub>=1.0 - "lerobot==0.5.1", + "lerobot==0.6.1", "num2words", "safetensors>=0.4.0", "onnx>=1.16", @@ -165,7 +165,6 @@ def _patched_embed_image(self, image): features = out.pooler_output else: features = out - features = features * self.paligemma.config.text_config.hidden_size ** 0.5 if features.dtype != out_dtype: features = features.to(out_dtype) return features @@ -203,6 +202,7 @@ def _ccm_shim(*args, **kwargs): import torch.nn.functional as _F from lerobot.policies.pi05 import modeling_pi05 as _mp0 from lerobot.policies.pi05.modeling_pi05 import make_att_2d_masks as _make_att_2d_masks + from lerobot.policies.common.vla_utils import prepare_attention_masks_4d _patched_called = [0] @@ -247,7 +247,7 @@ def _patched_denoise_step(self, prefix_pad_masks, past_key_values, x_t, timestep prefix_offsets = torch.sum(prefix_pad_masks, dim=-1)[:, None] position_ids = prefix_offsets + torch.cumsum(suffix_pad_masks, dim=1) - 1 - full_att_2d_masks_4d = self._prepare_attention_masks_4d(full_att_2d_masks) + full_att_2d_masks_4d = prepare_attention_masks_4d(full_att_2d_masks) self.paligemma_with_expert.gemma_expert.model.config._attn_implementation = "eager" outputs_embeds, _ = self.paligemma_with_expert.forward( @@ -510,7 +510,6 @@ def _patched_embed_image(self, image): image = image.to(torch.float32) out = self.paligemma.model.get_image_features(image) features = out.pooler_output if hasattr(out, "pooler_output") else out - features = features * self.paligemma.config.text_config.hidden_size ** 0.5 if features.dtype != out_dtype: features = features.to(out_dtype) return features diff --git a/scripts/modal_pi0_monolithic_export.py b/scripts/modal_pi0_monolithic_export.py index 34df8896..09aefd64 100644 --- a/scripts/modal_pi0_monolithic_export.py +++ b/scripts/modal_pi0_monolithic_export.py @@ -48,7 +48,7 @@ def _hf_secret(): modal.Image.debian_slim(python_version="3.12") .pip_install( # Install lerobot first — it pins torch>=2.7 and hub>=1.0 - "lerobot==0.5.1", + "lerobot==0.6.1", "num2words", "safetensors>=0.4.0", "onnx>=1.16", @@ -175,7 +175,6 @@ def _patched_embed_image(self, image): features = out.pooler_output else: features = out - features = features * self.paligemma.config.text_config.hidden_size ** 0.5 if features.dtype != out_dtype: features = features.to(out_dtype) return features @@ -213,6 +212,7 @@ def _ccm_shim(*args, **kwargs): import torch.nn.functional as _F from lerobot.policies.pi0 import modeling_pi0 as _mp0 from lerobot.policies.pi0.modeling_pi0 import make_att_2d_masks as _make_att_2d_masks + from lerobot.policies.common.vla_utils import prepare_attention_masks_4d _patched_called = [0] @@ -256,7 +256,7 @@ def _patched_denoise_step(self, state, prefix_pad_masks, past_key_values, x_t, t prefix_offsets = torch.sum(prefix_pad_masks, dim=-1)[:, None] position_ids = prefix_offsets + torch.cumsum(suffix_pad_masks, dim=1) - 1 - full_att_2d_masks_4d = self._prepare_attention_masks_4d(full_att_2d_masks) + full_att_2d_masks_4d = prepare_attention_masks_4d(full_att_2d_masks) self.paligemma_with_expert.gemma_expert.model.config._attn_implementation = "eager" outputs_embeds, _ = self.paligemma_with_expert.forward( @@ -519,7 +519,6 @@ def _patched_embed_image(self, image): image = image.to(torch.float32) out = self.paligemma.model.get_image_features(image) features = out.pooler_output if hasattr(out, "pooler_output") else out - features = features * self.paligemma.config.text_config.hidden_size ** 0.5 if features.dtype != out_dtype: features = features.to(out_dtype) return features @@ -750,7 +749,6 @@ def _patched_embed_image(self, image): image = image.to(torch.float32) out = self.paligemma.model.get_image_features(image) features = out.pooler_output if hasattr(out, "pooler_output") else out - features = features * self.paligemma.config.text_config.hidden_size ** 0.5 if features.dtype != out_dtype: features = features.to(out_dtype) return features diff --git a/scripts/modal_stateout_distill_stage2.py b/scripts/modal_stateout_distill_stage2.py index 2a5228a9..f2e3d357 100644 --- a/scripts/modal_stateout_distill_stage2.py +++ b/scripts/modal_stateout_distill_stage2.py @@ -68,7 +68,7 @@ def _bust(): modal.Image.debian_slim(python_version="3.12") .apt_install("git", "ffmpeg") .pip_install( - "lerobot==0.5.1", + "lerobot==0.6.1", "transformers==5.3.0", "num2words", "safetensors>=0.4.0", @@ -111,6 +111,7 @@ def distill( import torch import torch.nn.functional as F from lerobot.policies.pi05.modeling_pi05 import PI05Policy, PI05Pytorch, make_att_2d_masks + from lerobot.policies.common.vla_utils import prepare_attention_masks_4d from tether.distill.snapflow_pi0_model import ( load_snapflow_student, enable_snapflow_state_out, @@ -246,7 +247,7 @@ def distill( ) prefix_att_2d = make_att_2d_masks(prefix_pad_masks, prefix_att_masks) prefix_position_ids = torch.cumsum(prefix_pad_masks, dim=1) - 1 - prefix_att_2d_masks_4d = student.model._prepare_attention_masks_4d(prefix_att_2d) + prefix_att_2d_masks_4d = prepare_attention_masks_4d(prefix_att_2d) student.model.paligemma_with_expert.paligemma.model.language_model.config._attn_implementation = "eager" _, past_key_values = student.model.paligemma_with_expert.forward( attention_mask=prefix_att_2d_masks_4d, diff --git a/scripts/modal_stateout_smoke.py b/scripts/modal_stateout_smoke.py index 0c2b4974..6b1307cf 100644 --- a/scripts/modal_stateout_smoke.py +++ b/scripts/modal_stateout_smoke.py @@ -58,7 +58,7 @@ def _bust(): modal.Image.debian_slim(python_version="3.12") .apt_install("git") .pip_install( - "lerobot==0.5.1", + "lerobot==0.6.1", "transformers==5.3.0", "num2words", "safetensors>=0.4.0", @@ -167,9 +167,10 @@ def smoke( images, img_masks, lang_tokens, lang_masks, ) from lerobot.policies.pi05.modeling_pi05 import make_att_2d_masks + from lerobot.policies.common.vla_utils import prepare_attention_masks_4d prefix_att_2d = make_att_2d_masks(prefix_pad_masks, prefix_att_masks) prefix_position_ids = torch.cumsum(prefix_pad_masks, dim=1) - 1 - prefix_att_2d_masks_4d = policy.model._prepare_attention_masks_4d(prefix_att_2d) + prefix_att_2d_masks_4d = prepare_attention_masks_4d(prefix_att_2d) policy.model.paligemma_with_expert.paligemma.model.language_model.config._attn_implementation = "eager" _, past_key_values = policy.model.paligemma_with_expert.forward( diff --git a/src/tether/distill/snapflow_pi0_model.py b/src/tether/distill/snapflow_pi0_model.py index 043f8882..d0a8a45c 100644 --- a/src/tether/distill/snapflow_pi0_model.py +++ b/src/tether/distill/snapflow_pi0_model.py @@ -7,11 +7,11 @@ to a correction vector added to the time channel before the action_time MLP. When ``target_time`` is None, behaves exactly like the parent (teacher inference path is unaffected). - 2. ``denoise_step`` does NOT ``copy.deepcopy(past_key_values)`` — the - downstream ``paligemma_with_expert.forward`` is called with - ``use_cache=False`` so past_kv is read-only; deepcopy is strictly - defensive overhead (and breaks on graph-attached tensors during - training — pytorch#103001). + 2. pi0 ``denoise_step`` clones the prefix cache with LeRobot 0.6.1's + tensor-clone helper. DynamicCache updates occur even with + ``use_cache=False``; cloning preserves the prefix and VLM gradients + without ``copy.deepcopy`` on graph-attached tensors. pi0.5 retains + its detached cache copy for the existing expert-only training path. 3. ``denoise_step`` does NOT force-cast ``suffix_out`` to fp32 — uses ``self.action_out_proj.weight.dtype`` instead, so bf16 training stays bf16 end-to-end. @@ -150,10 +150,12 @@ def _resolve_snapflow_pi0_class() -> type: return _SNAPFLOW_PI0_CLASS import torch - from lerobot.policies.pi0.modeling_pi0 import ( - PI0Pytorch, + from lerobot.policies.pi0.modeling_pi0 import PI0Pytorch + from lerobot.policies.common.vla_utils import ( + clone_past_key_values, create_sinusoidal_pos_embedding, make_att_2d_masks, + prepare_attention_masks_4d, ) class SnapFlowPI0Pytorch(PI0Pytorch): @@ -263,8 +265,9 @@ def denoise_step( ): """Parent denoise_step minus the deepcopy and minus the fp32 cast. - - Skips ``copy.deepcopy(past_key_values)``: safe because the - downstream forward uses ``use_cache=False`` (read-only pass). + - Clones the prefix cache using LeRobot's tensor clone helper. + This preserves VLM gradients and prevents DynamicCache updates + from changing the shared prefix between velocity evaluations. - Skips the hardcoded ``suffix_out.to(fp32)``: casts to ``self.action_out_proj.weight.dtype`` instead, so bf16 training stays bf16. @@ -289,9 +292,10 @@ def denoise_step( prefix_offsets = torch.sum(prefix_pad_masks, dim=-1)[:, None] position_ids = prefix_offsets + torch.cumsum(suffix_pad_masks, dim=1) - 1 - full_att_2d_masks_4d = self._prepare_attention_masks_4d(full_att_2d_masks) + full_att_2d_masks_4d = prepare_attention_masks_4d(full_att_2d_masks) self.paligemma_with_expert.gemma_expert.model.config._attn_implementation = "eager" # noqa: SLF001 + past_key_values = clone_past_key_values(past_key_values) outputs_embeds, _ = self.paligemma_with_expert.forward( attention_mask=full_att_2d_masks_4d, position_ids=position_ids, @@ -343,7 +347,7 @@ def sample_actions_1step( ) prefix_att_2d = make_att_2d_masks(prefix_pad_masks, prefix_att_masks) prefix_position_ids = torch.cumsum(prefix_pad_masks, dim=1) - 1 - prefix_att_2d_masks_4d = self._prepare_attention_masks_4d(prefix_att_2d) + prefix_att_2d_masks_4d = prepare_attention_masks_4d(prefix_att_2d) self.paligemma_with_expert.paligemma.model.language_model.config._attn_implementation = "eager" # noqa: SLF001 _, past_key_values = self.paligemma_with_expert.forward( @@ -392,10 +396,11 @@ def _resolve_snapflow_pi05_class() -> type: return _SNAPFLOW_PI05_CLASS import torch - from lerobot.policies.pi05.modeling_pi05 import ( - PI05Pytorch, + from lerobot.policies.pi05.modeling_pi05 import PI05Pytorch + from lerobot.policies.common.vla_utils import ( create_sinusoidal_pos_embedding, make_att_2d_masks, + prepare_attention_masks_4d, ) class SnapFlowPI05Pytorch(PI05Pytorch): @@ -533,7 +538,7 @@ def denoise_step( prefix_offsets = torch.sum(prefix_pad_masks, dim=-1)[:, None] position_ids = prefix_offsets + torch.cumsum(suffix_pad_masks, dim=1) - 1 - full_att_2d_masks_4d = self._prepare_attention_masks_4d(full_att_2d_masks) + full_att_2d_masks_4d = prepare_attention_masks_4d(full_att_2d_masks) self.paligemma_with_expert.gemma_expert.model.config._attn_implementation = "eager" # noqa: SLF001 # Detach past_kv tensors so deepcopy succeeds on graph-attached @@ -583,7 +588,7 @@ def sample_actions_1step( ) prefix_att_2d = make_att_2d_masks(prefix_pad_masks, prefix_att_masks) prefix_position_ids = torch.cumsum(prefix_pad_masks, dim=1) - 1 - prefix_att_2d_masks_4d = self._prepare_attention_masks_4d(prefix_att_2d) + prefix_att_2d_masks_4d = prepare_attention_masks_4d(prefix_att_2d) self.paligemma_with_expert.paligemma.model.language_model.config._attn_implementation = "eager" # noqa: SLF001 _, past_key_values = self.paligemma_with_expert.forward( @@ -641,11 +646,7 @@ def _resolve_snapflow_pi05_state_out_class() -> type: return _SNAPFLOW_PI05_STATE_OUT_CLASS import torch - import torch.nn.functional as F - from lerobot.policies.pi05.modeling_pi05 import ( - create_sinusoidal_pos_embedding, - make_att_2d_masks, - ) + from lerobot.policies.common.vla_utils import make_att_2d_masks, prepare_attention_masks_4d parent = _resolve_snapflow_pi05_class() @@ -745,7 +746,7 @@ def denoise_step( # type: ignore[override] prefix_offsets = torch.sum(prefix_pad_masks, dim=-1)[:, None] position_ids = prefix_offsets + torch.cumsum(suffix_pad_masks, dim=1) - 1 - full_att_2d_masks_4d = self._prepare_attention_masks_4d(full_att_2d_masks) + full_att_2d_masks_4d = prepare_attention_masks_4d(full_att_2d_masks) self.paligemma_with_expert.gemma_expert.model.config._attn_implementation = "eager" # noqa: SLF001 past_key_values = _detach_kv_cache_deep(past_key_values) @@ -794,7 +795,7 @@ def sample_actions_1step( # type: ignore[override] ) prefix_att_2d = make_att_2d_masks(prefix_pad_masks, prefix_att_masks) prefix_position_ids = torch.cumsum(prefix_pad_masks, dim=1) - 1 - prefix_att_2d_masks_4d = self._prepare_attention_masks_4d(prefix_att_2d) + prefix_att_2d_masks_4d = prepare_attention_masks_4d(prefix_att_2d) self.paligemma_with_expert.paligemma.model.language_model.config._attn_implementation = "eager" # noqa: SLF001 _, past_key_values = self.paligemma_with_expert.forward( diff --git a/src/tether/exporters/decomposed.py b/src/tether/exporters/decomposed.py index bd3e747d..1d9a8ba3 100644 --- a/src/tether/exporters/decomposed.py +++ b/src/tether/exporters/decomposed.py @@ -359,6 +359,7 @@ def _load_pi05_policy( apply_export_patches, _force_eager_attn, _apply_pi05_denoise_step_patch, + _install_snapflow_export_denoise_step, ) apply_export_patches() @@ -406,6 +407,8 @@ def _load_pi05_policy( _gc_disable() _force_eager_attn(policy.model) _apply_pi05_denoise_step_patch() # reuses monolithic's F.pad mask fix + if student_checkpoint is not None: + _install_snapflow_export_denoise_step(policy.model, is_pi05=True) logger.info("[decomposed] Loaded in %.1fs", time.time() - t0) return policy @@ -789,6 +792,7 @@ def _build_prefix_class(): import torch import torch.nn as nn from lerobot.policies.pi05.modeling_pi05 import make_att_2d_masks + from lerobot.policies.common.vla_utils import prepare_attention_masks_4d class _Pi05PrefixWrapper(nn.Module): def __init__(self, pi05_model): @@ -817,7 +821,7 @@ def forward( ) prefix_att_2d = make_att_2d_masks(prefix_pad_masks, prefix_att_masks) prefix_position_ids = torch.cumsum(prefix_pad_masks, dim=1) - 1 - prefix_att_2d_masks_4d = self.model._prepare_attention_masks_4d(prefix_att_2d) + prefix_att_2d_masks_4d = prepare_attention_masks_4d(prefix_att_2d) self.model.paligemma_with_expert.paligemma.model.language_model.config._attn_implementation = "eager" # noqa: SLF001 _, past_key_values = self.model.paligemma_with_expert.forward( diff --git a/src/tether/exporters/monolithic.py b/src/tether/exporters/monolithic.py index 6c6d8e40..9a832d52 100644 --- a/src/tether/exporters/monolithic.py +++ b/src/tether/exporters/monolithic.py @@ -453,24 +453,9 @@ def _safe_where(condition, x=None, y=None, *args, **kwargs): return _orig_where(condition, x, y, *args, **kwargs) torch.where = _safe_where - # pi0-specific: PaliGemmaWithExpertModel.embed_image image_outputs extraction - try: - from lerobot.policies.pi0 import modeling_pi0 - import torch as _t - - def _patched_embed_image(self, image): - out_dtype = image.dtype - if image.dtype != _t.float32: - image = image.to(_t.float32) - out = self.paligemma.model.get_image_features(image) - features = out.pooler_output if hasattr(out, "pooler_output") else out - features = features * self.paligemma.config.text_config.hidden_size ** 0.5 - if features.dtype != out_dtype: - features = features.to(out_dtype) - return features - modeling_pi0.PaliGemmaWithExpertModel.embed_image = _patched_embed_image - except ImportError: - pass + # LeRobot 0.6.1 returns image features in its native embedding scale. + # Keep embed_image unchanged: multiplying by sqrt(hidden_size), as the + # old 0.5.1 shim did, changes every prefix cache and exported action. # =============================================================== # pi0 cos=1.0 at num_steps=10 — the full fix stack (2026-04-19) @@ -505,6 +490,7 @@ def _patched_embed_image(self, image): from transformers.cache_utils import DynamicLayer as _DL from lerobot.policies.pi0 import modeling_pi0 as _mp0 from lerobot.policies.pi0.modeling_pi0 import make_att_2d_masks as _make_att_2d_masks + from lerobot.policies.common.vla_utils import prepare_attention_masks_4d _orig_layer_update = _DL.update @@ -545,7 +531,7 @@ def _patched_denoise_step(self, state, prefix_pad_masks, past_key_values, x_t, t prefix_offsets = torch.sum(prefix_pad_masks, dim=-1)[:, None] position_ids = prefix_offsets + torch.cumsum(suffix_pad_masks, dim=1) - 1 - full_att_2d_masks_4d = self._prepare_attention_masks_4d(full_att_2d_masks) + full_att_2d_masks_4d = prepare_attention_masks_4d(full_att_2d_masks) self.paligemma_with_expert.gemma_expert.model.config._attn_implementation = "eager" outputs_embeds, _ = self.paligemma_with_expert.forward( @@ -1190,6 +1176,7 @@ def _apply_pi05_denoise_step_patch() -> None: import torch from lerobot.policies.pi05 import modeling_pi05 as _mp05 from lerobot.policies.pi05.modeling_pi05 import make_att_2d_masks as _make + from lerobot.policies.common.vla_utils import prepare_attention_masks_4d def _patched(self, prefix_pad_masks, past_key_values, x_t, timestep): # pi0.5: NO state arg (tokenized into language upstream). @@ -1218,7 +1205,7 @@ def _patched(self, prefix_pad_masks, past_key_values, x_t, timestep): prefix_offsets = torch.sum(prefix_pad_masks, dim=-1)[:, None] position_ids = prefix_offsets + torch.cumsum(suffix_pad_masks, dim=1) - 1 - full_att_2d_masks_4d = self._prepare_attention_masks_4d(full_att_2d_masks) + full_att_2d_masks_4d = prepare_attention_masks_4d(full_att_2d_masks) self.paligemma_with_expert.gemma_expert.model.config._attn_implementation = "eager" outputs_embeds, _ = self.paligemma_with_expert.forward( @@ -1434,12 +1421,14 @@ def forward( def _install_snapflow_export_denoise_step(model: Any, *, is_pi05: bool) -> None: """Replace SnapFlowPI*Pytorch.denoise_step with an export-friendly variant that drops the training-only detach+deepcopy (which doesn't trace - through torch.export.export). The 1-step export path calls denoise_step - exactly once per forward, so past_kv isn't reused across calls — the - defensive copy that matters for multi-step inference isn't needed here. + through torch.export.export). Freeze cache updates during the expert + pass, as for teacher export: tracing can evaluate even a single-step + forward repeatedly, and must preserve the prefix cache each time. """ import torch + from lerobot.policies.common.vla_utils import prepare_attention_masks_4d + if is_pi05: from lerobot.policies.pi05.modeling_pi05 import make_att_2d_masks else: @@ -1450,6 +1439,7 @@ def _export_denoise_step(self, prefix_pad_masks, past_key_values, x_t, timestep, target_time=None, state=None): suffix_embs, suffix_pad_masks, suffix_att_masks, adarms_cond = self.embed_suffix( x_t, timestep, target_time=target_time, + **({"state": state} if hasattr(self, "state_proj") else {}), ) suffix_len = suffix_pad_masks.shape[1] batch_size = prefix_pad_masks.shape[0] @@ -1465,7 +1455,7 @@ def _export_denoise_step(self, prefix_pad_masks, past_key_values, x_t, prefix_offsets = torch.sum(prefix_pad_masks, dim=-1)[:, None] position_ids = prefix_offsets + torch.cumsum(suffix_pad_masks, dim=1) - 1 - full_att_2d_masks_4d = self._prepare_attention_masks_4d(full_att_2d_masks) + full_att_2d_masks_4d = prepare_attention_masks_4d(full_att_2d_masks) self.paligemma_with_expert.gemma_expert.model.config._attn_implementation = "eager" outputs_embeds, _ = self.paligemma_with_expert.forward( @@ -1499,7 +1489,7 @@ def _export_denoise_step(self, state, prefix_pad_masks, past_key_values, prefix_offsets = torch.sum(prefix_pad_masks, dim=-1)[:, None] position_ids = prefix_offsets + torch.cumsum(suffix_pad_masks, dim=1) - 1 - full_att_2d_masks_4d = self._prepare_attention_masks_4d(full_att_2d_masks) + full_att_2d_masks_4d = prepare_attention_masks_4d(full_att_2d_masks) self.paligemma_with_expert.gemma_expert.model.config._attn_implementation = "eager" outputs_embeds, _ = self.paligemma_with_expert.forward( @@ -1517,7 +1507,15 @@ def _export_denoise_step(self, state, prefix_pad_masks, past_key_values, # Bind onto the class (the SnapFlow subclass) so the instance picks # it up. This overrides the training-time detach+deepcopy variant # for the duration of the export process. - type(model).denoise_step = _export_denoise_step + def _denoise_step_with_flag(self, *args, **kwargs): + previous_phase = _denoise_phase[0] + _denoise_phase[0] = True + try: + return _export_denoise_step(self, *args, **kwargs) + finally: + _denoise_phase[0] = previous_phase + + type(model).denoise_step = _denoise_step_with_flag def export_gr00t_monolithic( diff --git a/src/tether/finetune/backends/snapflow_backend.py b/src/tether/finetune/backends/snapflow_backend.py index 1a1c0cc1..80951f87 100644 --- a/src/tether/finetune/backends/snapflow_backend.py +++ b/src/tether/finetune/backends/snapflow_backend.py @@ -560,6 +560,7 @@ def _build_pi05_adapters(teacher: Any, student: Any): """ import torch from lerobot.policies.pi05.modeling_pi05 import make_att_2d_masks + from lerobot.policies.common.vla_utils import prepare_attention_masks_4d from lerobot.utils.constants import ( OBS_LANGUAGE_ATTENTION_MASK, @@ -577,7 +578,7 @@ def _build_prefix_cache_pi05(policy, obs_kwargs): ) prefix_att_2d = make_att_2d_masks(prefix_pad_masks, prefix_att_masks) prefix_pos = torch.cumsum(prefix_pad_masks, dim=1) - 1 - prefix_att_4d = m._prepare_attention_masks_4d(prefix_att_2d) + prefix_att_4d = prepare_attention_masks_4d(prefix_att_2d) m.paligemma_with_expert.paligemma.model.language_model.config._attn_implementation = "eager" m.paligemma_with_expert.gemma_expert.model.config._attn_implementation = "eager" _, past_kv = m.paligemma_with_expert.forward( @@ -681,6 +682,7 @@ def _build_pi_family_adapters( import torch import torch.nn.functional as F from lerobot.policies.pi0.modeling_pi0 import make_att_2d_masks + from lerobot.policies.common.vla_utils import prepare_attention_masks_4d from lerobot.utils.constants import ( OBS_LANGUAGE_ATTENTION_MASK, OBS_LANGUAGE_TOKENS, @@ -718,7 +720,7 @@ def _build_prefix_cache(policy, obs_kwargs): ) prefix_att_2d = make_att_2d_masks(prefix_pad_masks, prefix_att_masks) prefix_pos = torch.cumsum(prefix_pad_masks, dim=1) - 1 - prefix_att_4d = m._prepare_attention_masks_4d(prefix_att_2d) + prefix_att_4d = prepare_attention_masks_4d(prefix_att_2d) # Mirror lerobot's sample_actions trick: force eager attention # before the prefix forward so bf16 models don't hit the SDPA # dtype-mismatch-on-bias error (modeling_pi0.py:844). @@ -731,10 +733,8 @@ def _build_prefix_cache(policy, obs_kwargs): inputs_embeds=[prefix_embs, None], use_cache=True, ) - # SnapFlowPI0Pytorch.denoise_step skips the `copy.deepcopy(past_kv)` - # that the stock lerobot path does (modeling_pi0.py:918), so we no - # longer need to detach past_kv tensors. Student path now keeps - # past_kv graph-attached → VLM receives gradients. + # SnapFlow pi0 uses LeRobot's tensor clone helper, so the student + # cache remains graph-attached and VLM gradients can flow. return past_kv, prefix_pad_masks, state def _run_denoise_step(policy, x, t, obs_kwargs, target_time=None): diff --git a/tests/test_lerobot06_patched_forward.py b/tests/test_lerobot06_patched_forward.py new file mode 100644 index 00000000..567621f5 --- /dev/null +++ b/tests/test_lerobot06_patched_forward.py @@ -0,0 +1,343 @@ +"""Real, tiny LeRobot forwards; process isolation keeps export patches out of other tests.""" + +from __future__ import annotations + +import importlib.metadata +import subprocess +import sys +from pathlib import Path + +import pytest + + +@pytest.mark.parametrize( + "path", + [ + "pi0", + "pi05", + "decomposed", + "snapflow_pi0", + "snapflow_pi05", + "snapflow_state_out", + "private_api", + ], +) +def test_patched_forward_matches_lerobot06(path): + try: + version = importlib.metadata.version("lerobot") + except importlib.metadata.PackageNotFoundError: + pytest.skip("requires the LeRobot 0.6.1 native extra") + if version != "0.6.1": + pytest.skip("this regression exercises LeRobot 0.6.1") + result = subprocess.run( + [sys.executable, str(Path(__file__).resolve()), path], + capture_output=True, + text=True, + timeout=120, + ) + assert result.returncode == 0, result.stdout + result.stderr + + +def _check(path): + import copy + import torch + from unittest.mock import patch + from lerobot.policies.pi0 import modeling_pi0 as pi0 + from lerobot.policies.pi05 import modeling_pi05 as pi05 + from lerobot.policies.common.vla_utils import make_att_2d_masks, prepare_attention_masks_4d + from tether.exporters import monolithic, decomposed + from tether.distill import snapflow_pi0_model as snapflow + + if path == "private_api": + import ast + import inspect + + for owner in (pi0.PI0Pytorch, pi05.PI05Pytorch): + assert not hasattr(owner, "_prepare_attention_masks_4d") + assert ( + str(inspect.signature(owner._apply_checkpoint)) == "(self, func, *args, **kwargs)" + ) + for owner in (pi0.PI0Policy, pi05.PI05Policy): + assert list(inspect.signature(owner._preprocess_images).parameters) == ["self", "batch"] + root = Path(__file__).resolve().parents[1] + for directory in (root / "src", root / "scripts"): + for source in directory.rglob("*.py"): + tree = ast.parse(source.read_text()) + for node in ast.walk(tree): + if isinstance(node, ast.Call) and isinstance(node.func, ast.Attribute): + assert node.func.attr != "_prepare_attention_masks_4d", str(source) + if isinstance(node, ast.ImportFrom) and (node.module or "").startswith( + "lerobot" + ): + assert all(not name.name.startswith("_") for name in node.names), str( + source + ) + return + + torch.set_num_threads(1) + torch.manual_seed(123) + module = pi0 if path.endswith("pi0") or path == "pi0" else pi05 + cls = module.PI0Pytorch if module is pi0 else module.PI05Pytorch + config_cls = module.PI0Config if module is pi0 else module.PI05Config + # Shrink constructor configurations only. Every embedding, attention, norm, + # velocity, cache and Euler computation remains the real LeRobot code. + original_pali = module.PaliGemmaForConditionalGenerationWithPiGemma + original_expert = module.PiGemmaForCausalLM + + def tiny_pali(config): + config.text_config.vocab_size = 64 + config.vision_config.hidden_size = 32 + config.vision_config.intermediate_size = 64 + config.vision_config.num_hidden_layers = 2 + config.vision_config.num_attention_heads = 4 + config.vision_config.patch_size = 4 + config.vision_config.projection_dim = 32 + return original_pali(config=config) + + def tiny_expert(config): + config.vocab_size = 64 + return original_expert(config=config) + + config = config_cls( + device="cpu", + dtype="float32", + image_resolution=(16, 16), + max_action_dim=4, + max_state_dim=4, + chunk_size=3, + n_action_steps=3, + compile_model=False, + ) + with ( + patch.object( + module, "get_gemma_config", return_value=module.GemmaConfig(32, 2, 64, 8, 1, 4) + ), + patch.object(module, "PaliGemmaForConditionalGenerationWithPiGemma", tiny_pali), + patch.object(module, "PiGemmaForCausalLM", tiny_expert), + ): + model = cls(config).eval() + images = [torch.randn(2, 3, 16, 16) for _ in range(3)] + image_masks = [ + torch.tensor([True, True]), + torch.tensor([True, False]), + torch.tensor([False, True]), + ] + tokens = torch.randint(0, 64, (2, 4)) + masks = torch.tensor([[True, True, False, False], [True, True, True, False]]) + state = torch.randn(2, 4) + noise = torch.randn(2, 3, 4) + actions = torch.randn_like(noise) + time = torch.tensor([0.7, 0.3]) + obs = [images, image_masks, tokens, masks] + ([state] if module is pi0 else []) + native = copy.deepcopy(model) + native_step = cls.denoise_step + with torch.no_grad(): + expected_loss = native(*obs, actions, noise, time) + expected_actions = native.sample_actions(*obs, noise=noise.clone(), num_steps=3) + expected_one_step = native.sample_actions(*obs, noise=noise.clone(), num_steps=1) + prefix, pad, att = native.embed_prefix(images, image_masks, tokens, masks) + _, cache = native.paligemma_with_expert( + attention_mask=prepare_attention_masks_4d(make_att_2d_masks(pad, att)), + position_ids=pad.cumsum(1) - 1, + inputs_embeds=[prefix, None], + use_cache=True, + ) + x_t = time[:, None, None] * noise + (1 - time[:, None, None]) * actions + step_kw = dict(prefix_pad_masks=pad, past_key_values=cache, x_t=x_t, timestep=time) + if module is pi0: + step_kw["state"] = state + expected_velocity = native_step(native, **step_kw) + + if path.startswith("snapflow"): + snapflow.enable_snapflow(model) + if path == "snapflow_state_out": + snapflow.enable_snapflow_state_out(model) + # A zero target-time contribution must reproduce the teacher. + step_kw["target_time"] = torch.ones_like(time) + if path == "snapflow_state_out": + step_kw["state"] = state + # The state-out student's embedding is its intentional extension. + # Execute the UNPATCHED LeRobot denoise forward with that embedding. + ref = copy.deepcopy(model) + embed = ref.embed_suffix + ref.embed_suffix = lambda x, t: embed( + x, t, target_time=torch.ones_like(t), state=state + ) + expected_velocity = native_step( + ref, **{k: v for k, v in step_kw.items() if k not in ("state", "target_time")} + ) + torch.testing.assert_close( + model.denoise_step(**step_kw), expected_velocity, rtol=1e-6, atol=1e-6 + ) + import types + + if path == "snapflow_state_out": + ref.denoise_step = types.MethodType(native_step, ref) + expected_one_step = cls.sample_actions(ref, *obs, noise=noise.clone(), num_steps=1) + sample_obs = obs + ([state] if path == "snapflow_state_out" else []) + torch.testing.assert_close( + model.sample_actions_1step(*sample_obs, noise=noise.clone()), + expected_one_step, + rtol=1e-6, + atol=1e-6, + ) + # Exercise both training-prefix adapters with real model forwards. + from types import SimpleNamespace + from tether.finetune.backends.snapflow_backend import _build_velocity_adapters + from lerobot.utils.constants import ( + OBS_LANGUAGE_TOKENS, + OBS_LANGUAGE_ATTENTION_MASK, + OBS_STATE, + ) + + policy = SimpleNamespace( + model=model, + config=config, + _preprocess_images=lambda batch: (images, image_masks), + prepare_state=lambda batch: state, + ) + _, student_velocity = _build_velocity_adapters( + policy, policy, "pi0" if module is pi0 else "pi05" + ) + torch.testing.assert_close( + student_velocity( + x_t, + time, + target_time=torch.ones_like(time), + **{ + OBS_LANGUAGE_TOKENS: tokens, + OBS_LANGUAGE_ATTENTION_MASK: masks, + OBS_STATE: state, + }, + ), + expected_velocity, + rtol=1e-6, + atol=1e-6, + ) + # Also test a learned target-time correction. A zero-init-only + # test would miss an exporter silently dropping target_time. + model.target_time_embed_mlp[-1].weight.normal_(std=0.01) + model.target_time_embed_mlp[-1].bias.normal_(std=0.01) + ref = copy.deepcopy(model) + embed = ref.embed_suffix + state_kwargs = {"state": state} if path == "snapflow_state_out" else {} + ref.embed_suffix = lambda *args: embed( + *args, target_time=torch.ones_like(args[-1]), **state_kwargs + ) + ref.denoise_step = types.MethodType(native_step, ref) + native_kwargs = {k: v for k, v in step_kw.items() if k != "target_time"} + if path == "snapflow_state_out": + native_kwargs.pop("state") + expected_velocity = native_step(ref, **native_kwargs) + expected_loss = cls.forward(ref, *obs, actions, noise, time) + expected_one_step = cls.sample_actions(ref, *obs, noise=noise.clone(), num_steps=1) + torch.testing.assert_close( + model.denoise_step(**step_kw), expected_velocity, rtol=1e-6, atol=1e-6 + ) + monolithic.apply_export_patches() + if module is pi05: + monolithic._apply_pi05_denoise_step_patch() + if path.startswith("snapflow"): + monolithic._install_snapflow_export_denoise_step(model, is_pi05=module is pi05) + step_kw["past_key_values"] = copy.deepcopy(cache) + actual_velocity = model.denoise_step(**step_kw) + torch.testing.assert_close(actual_velocity, expected_velocity, rtol=1e-6, atol=1e-6) + torch.testing.assert_close( + (noise - actions - actual_velocity).square(), expected_loss, rtol=1e-6, atol=1e-6 + ) + if not path.startswith("snapflow"): + torch.testing.assert_close( + model.sample_actions(*obs, noise=noise.clone(), num_steps=3), + expected_actions, + rtol=1e-6, + atol=1e-6, + ) + if module is pi05 and path != "pi05": + decomposed.PI05_PALIGEMMA_LAYERS = 2 + prefix_wrapper = decomposed._build_prefix_class()(model) + flat = prefix_wrapper(*images, *image_masks, tokens, masks) + for actual, layer_value in zip( + flat[:-1], + [v for layer in cache.layers for v in (layer.keys, layer.values)], + strict=True, + ): + torch.testing.assert_close(actual, layer_value, rtol=1e-6, atol=1e-6) + torch.testing.assert_close(flat[-1], pad, rtol=0, atol=0) + per_step = decomposed._build_expert_per_step_class()(model) + torch.testing.assert_close( + per_step(*flat, x_t, time, *([state] if path == "snapflow_state_out" else [])), + expected_velocity, + rtol=1e-6, + atol=1e-6, + ) + n_steps = 1 if path.startswith("snapflow") else 3 + baked = decomposed._build_expert_class()(model, n_steps) + state_args = (state,) if path == "snapflow_state_out" else () + step_args = (*flat, x_t, time, *state_args) + baked_args = (*flat, noise, *state_args) + expected_baked = expected_one_step if path.startswith("snapflow") else expected_actions + torch.testing.assert_close(baked(*baked_args), expected_baked, rtol=1e-6, atol=1e-6) + prefix_graph = torch.export.export( + prefix_wrapper, (*images, *image_masks, tokens, masks), strict=False + ).module() + for actual, expected in zip( + prefix_graph(*images, *image_masks, tokens, masks), flat, strict=True + ): + torch.testing.assert_close(actual, expected, rtol=1e-6, atol=1e-6) + step_graph = torch.export.export(per_step, step_args, strict=False).module() + torch.testing.assert_close( + step_graph(*step_args), expected_velocity, rtol=1e-6, atol=1e-6 + ) + baked_graph = torch.export.export(baked, baked_args, strict=False).module() + torch.testing.assert_close( + baked_graph(*baked_args), expected_baked, rtol=1e-6, atol=1e-6 + ) + + class ExportStep(torch.nn.Module): + def __init__(self): + super().__init__() + self.model = model + + def forward(self, *args): + from transformers.cache_utils import DynamicCache + + kv = DynamicCache() + for i in range(2): + kv.update(args[2 * i], args[2 * i + 1], i) + kwargs = dict( + prefix_pad_masks=args[4], past_key_values=kv, x_t=args[5], timestep=args[6] + ) + if module is pi0 or path == "snapflow_state_out": + kwargs["state"] = args[7] + if path.startswith("snapflow"): + kwargs["target_time"] = torch.ones_like(args[6]) + return self.model.denoise_step(**kwargs) + + class ExportActions(torch.nn.Module): + def __init__(self): + super().__init__() + self.model = model + + def forward(self, *args): + if path.startswith("snapflow"): + return self.model.sample_actions_1step(*args[:-1], noise=args[-1]) + return self.model.sample_actions(*args[:-1], noise=args[-1], num_steps=3) + + action_args = (*(sample_obs if path.startswith("snapflow") else obs), noise) + exported_actions = torch.export.export(ExportActions(), action_args, strict=False).module() + torch.testing.assert_close( + exported_actions(*action_args), + expected_one_step if path.startswith("snapflow") else expected_actions, + rtol=1e-6, + atol=1e-6, + ) + + flat_cache = tuple(v for layer in cache.layers for v in (layer.keys, layer.values)) + export_args = (*flat_cache, pad, x_t, time, state) + exported = torch.export.export(ExportStep(), export_args, strict=False).module() + torch.testing.assert_close(exported(*export_args), expected_velocity, rtol=1e-6, atol=1e-6) + print(path, "native forward parity passed") + + +if __name__ == "__main__": + _check(sys.argv[1]) diff --git a/tests/test_snapflow_backend.py b/tests/test_snapflow_backend.py index 855baa10..6683e8dc 100644 --- a/tests/test_snapflow_backend.py +++ b/tests/test_snapflow_backend.py @@ -284,7 +284,6 @@ def fake_build_prefix(policy, obs): torch.zeros(1, 8, 256), canned_prefix_masks, torch.ones(1, 8, dtype=torch.long), ) - p_mock.model._prepare_attention_masks_4d.return_value = torch.ones(1, 1, 8, 8) p_mock.model.paligemma_with_expert.forward.return_value = (None, canned_past_kv) # state_proj.weight.dtype is read for the state-dtype cast; set it # to match canned_state so the cast is a no-op under mocks. @@ -347,7 +346,6 @@ def test_student_passes_target_time_through_denoise_step(self): torch.ones(1, 8, dtype=torch.bool), torch.ones(1, 8, dtype=torch.long), ) - student_mock.model._prepare_attention_masks_4d.return_value = torch.ones(1, 1, 8, 8) student_mock.model.paligemma_with_expert.forward.return_value = (None, [("fake_cache",)]) student_mock.model.paligemma_with_expert.paligemma.model.language_model.config = MagicMock() student_mock.model.paligemma_with_expert.gemma_expert.model.config = MagicMock() From 17a7d0b82796699cd963e4b8de0860c03a20fbe0 Mon Sep 17 00:00:00 2001 From: RomirJ Date: Mon, 12 Oct 2026 15:25:38 -0700 Subject: [PATCH 6/8] Record: LeRobot 0.6.1 on transformers 5.3 is mis-scaled; pi0 GPU parity failed GPU re-run at 5fb92df: pi0 cosine 0.465 / max_abs 0.403 (thresholds 0.999 / 0.1). LeRobot 0.6.1 requires transformers>=5.4; on the pinned 5.3.0 its native image and language embeddings lose the openpi sqrt(hidden_size) scale. The exporter now matches that native forward; the receipt harness still applies the old image shim. Correction appended to the port audit. Not for merge until the transformers pin decision is made. Co-Authored-By: Claude Opus 5.5 --- .../lerobot-06-export-port-20261012.md | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/docs/research/verification/lerobot-06-export-port-20261012.md b/docs/research/verification/lerobot-06-export-port-20261012.md index 644c39ed..bc3fd0ad 100644 --- a/docs/research/verification/lerobot-06-export-port-20261012.md +++ b/docs/research/verification/lerobot-06-export-port-20261012.md @@ -173,3 +173,25 @@ and all edited Python files pass Ruff's undefined-name check. `git diff actions max abs 0.118 at line 249). M2 make the pi0.5 patch ignore the prefix pad mask: pi05 and decomposed fail (velocity max abs 0.012 at line 244). Both mutations killed. VERIFIED. - Re-run after review: 48 passed in 77.7 s (`venv-061t`). VERIFIED. + +## Correction 2026-10-12 (Claude, after the GPU re-run): native 0.6.1 is mis-scaled on transformers 5.3 + +The claim above that dropping the `embed_image` sqrt(hidden_size) shim is correct holds only +for transformers >=5.4. It is **wrong for the pinned transformers 5.3.0**. Evidence: + +- LeRobot 0.6.1 declares `transformers>=5.4.0,<5.6.0` (`lerobot-0.6.1.dist-info/METADATA:79`). +- transformers 5.3.0 `PaliGemmaModel.get_image_features` divides by sqrt(hidden_size) + (`modeling_paligemma.py:273`); 5.5.4 does not. LeRobot 0.5.1 multiplied back + (`modeling_pi0.py:446`), 0.6.1 does not (`modeling_pi0.py:287-296`). +- Language embeddings likewise: 0.5.1 `lang_emb * sqrt(dim)` (`modeling_pi0.py:669`); 0.6.1 + relies on 5.4+'s `GemmaTextScaledWordEmbedding` (5.5.4 `modeling_gemma.py:50-61`), which 5.3.0 + lacks, and `PiGemmaModel.forward` (`pi_gemma.py:250-290`) has no normalizer. +- GPU re-run at `5fb92df` (Studio `docs/research/verification/lerobot-06-parity-rerun-20261012.md`): + pi0 export vs the receipt harness reference, cosine 0.465, max_abs 0.403, **failed**. The + harness (`scripts/local_pi0_monolithic_parity.py:39-56`, `local_pi05_...:48`) still applies the + sqrt shim to the reference, the exporter no longer does. + +The CPU tests compare against native 0.6.1 under 5.3, which is itself mis-scaled, so they +passed. The mask port itself stands (review above). Not merged. Fix requires an owner +decision: move transformers to 5.4/5.5 as LeRobot 0.6.1 requires (re-qualify the exporters), or +keep 5.3 and restore both openpi scalings for transformers <5.4. From b7223069a4817f043f0cb15f1ba0d65ef2475763 Mon Sep 17 00:00:00 2001 From: RomirJ Date: Mon, 12 Oct 2026 16:45:17 -0700 Subject: [PATCH 7/8] Move to transformers 5.5.4 (LeRobot 0.6.1's range); add pre-migration golden LeRobot 0.6.1 requires transformers>=5.4,<5.6. On 5.3.0 its pi0/pi0.5 image and language embeddings lose the openpi sqrt(hidden) scale, which failed GPU parity at cosine 0.47 while the CPU tests passed against the same mis-scaled native forward. - Pins: monolithic/native/eval-local/jetson extras -> transformers==5.5.4, base <5.6, [tool.uv] 5.3.0 override removed; exporter gate driven by QUALIFIED_TRANSFORMERS_VERSION and refuses 5.3.0. - Golden reference: tiny pi0/pi0.5 fixtures captured on LeRobot 0.5.1 + transformers 5.3.0 + Tether cdb94dc; native, patched export forward and the real onnx-diagnostic ONNX export are compared to it (negative control on 0.6.1 + 5.3.0 fails, prefix norm ratio 1/sqrt(hidden)). - Receipt harnesses use native LeRobot as the reference (shims removed). - PaliGemmaBackbone.embed_text_openpi: table lookup * sqrt(hidden), so the Triton fast path and Pi0VLA/Pi05VLA do not double-scale on 5.4+. - Parity vehicles: retries=0, subprocess phase timeouts from measured times instead of the SIGKILL watchdog (Modal re-ran the crashed input), restart guard, provenance-checked export reuse, new volume root, pi0.5 on A100-40GB. Full suite: S11 4204 passed; LeRobot 0.6.1 + tf 5.5.4 4262 passed; export venv subset 73 passed; 0 failures. Co-Authored-By: Claude Opus 5.5 --- README.md | 2 +- .../lerobot-06-export-port-20261012.md | 63 ++++ pyproject.toml | 35 +-- scripts/local_pi05_monolithic_parity.py | 33 +-- scripts/local_pi0_monolithic_parity.py | 42 +-- scripts/modal_groot_export_parity_pinned.py | 4 +- scripts/modal_layer_pruning_profile.py | 2 +- scripts/modal_pi05_export_parity_pinned.py | 188 +++++++----- scripts/modal_pi0_export_parity_pinned.py | 175 +++++++----- scripts/modal_stateout_distill_stage2.py | 2 +- scripts/modal_stateout_smoke.py | 2 +- src/tether/_lerobot_version.py | 4 + src/tether/cli.py | 8 +- .../diagnostics/check_vlm_tokenization.py | 6 +- src/tether/exporters/decomposed.py | 2 +- src/tether/exporters/monolithic.py | 15 +- src/tether/models/llm/paligemma_backbone.py | 12 + src/tether/models/vlas/pi0.py | 4 +- src/tether/models/vlas/pi05.py | 4 +- src/tether/runtime/fast_inference/pi05.py | 5 +- tests/_lerobot_pi_golden.py | 270 ++++++++++++++++++ tests/fixtures/lerobot_pi_golden/SHA256SUMS | 2 + tests/fixtures/lerobot_pi_golden/pi0.pt | Bin 0 -> 327485 bytes tests/fixtures/lerobot_pi_golden/pi05.pt | Bin 0 -> 386805 bytes tests/test_cli_export_end_to_end.py | 18 +- tests/test_lerobot_pi_golden.py | 73 +++++ tests/test_paligemma_backbone.py | 22 ++ tests/test_pi05_vla.py | 3 + tests/test_pi0_vla.py | 3 + 29 files changed, 727 insertions(+), 272 deletions(-) create mode 100644 tests/_lerobot_pi_golden.py create mode 100644 tests/fixtures/lerobot_pi_golden/SHA256SUMS create mode 100644 tests/fixtures/lerobot_pi_golden/pi0.pt create mode 100644 tests/fixtures/lerobot_pi_golden/pi05.pt create mode 100644 tests/test_lerobot_pi_golden.py diff --git a/README.md b/README.md index ddf88be1..86acd4ce 100644 --- a/README.md +++ b/README.md @@ -282,7 +282,7 @@ Advanced/SO-100/internal commands stay callable directly (`config`, `calibrate`, ### Install notes -- `[monolithic]` extra is required for the cos=+1.000000 verified export path (pins transformers==5.3.0) +- `[monolithic]` extra is required for the cos=+1.000000 verified export path (pins transformers==5.5.4, the release LeRobot 0.6.1 supports) - CPU-only: `pip install 'fastcrest-tether[serve,onnx,monolithic]'` - GPU install needs the FULL cuDNN 9 system library (not just the pip wheel). Easiest path: NVIDIA's container `docker run --gpus all -it nvcr.io/nvidia/tensorrt:24.10-py3`, then `apt-get install -y clang` (for lerobot→evdev), then the pip install - `tether serve` errors loudly if cuDNN can't load — no silent CPU fallback diff --git a/docs/research/verification/lerobot-06-export-port-20261012.md b/docs/research/verification/lerobot-06-export-port-20261012.md index bc3fd0ad..f85642c6 100644 --- a/docs/research/verification/lerobot-06-export-port-20261012.md +++ b/docs/research/verification/lerobot-06-export-port-20261012.md @@ -195,3 +195,66 @@ The CPU tests compare against native 0.6.1 under 5.3, which is itself mis-scaled passed. The mask port itself stands (review above). Not merged. Fix requires an owner decision: move transformers to 5.4/5.5 as LeRobot 0.6.1 requires (re-qualify the exporters), or keep 5.3 and restore both openpi scalings for transformers <5.4. + +## Resolution 2026-10-12 (Claude): transformers 5.5.4, independent golden reference + +Owner decision: move to the transformers release LeRobot 0.6.1 supports. Latest 5.5.x on PyPI +is 5.5.4 (5.6.x is outside `<5.6.0`). Changes on this branch: + +- Pins: `[monolithic]`, `[native]`, `[eval-local]`, `[jetson]` -> `transformers==5.5.4`; base + `transformers>=4.40,<5.6`; the `[tool.uv]` 5.3.0 override is removed (LeRobot's own range now + holds). `QUALIFIED_TRANSFORMERS_VERSION` (`src/tether/_lerobot_version.py`) drives the exporter + gate, which now refuses 5.3.0 by name (`tests/test_cli_export_end_to_end.py`). Every extra + resolves with `uv pip compile` for linux x86_64 and darwin arm64 without an override; the + dragged pins are tokenizers 0.22.2, huggingface-hub 1.33.0, safetensors 0.8.0, accelerate 1.15.0 + (within transformers 5.5.4's `tokenizers>=0.22,<=0.23`, `huggingface-hub>=1.5,<2.0`). VERIFIED. +- Receipt harnesses (`scripts/local_pi0_monolithic_parity.py`, `local_pi05_...`) drop the + `embed_image` sqrt shim and the `create_causal_mask` kwarg shim: the reference is native + LeRobot 0.6.1 under 5.5.4. +- Tether's own PaliGemma text embedding (`PaliGemmaBackbone.embed_text_openpi`, used by + `models/vlas/pi0.py`, `pi05.py`, `runtime/fast_inference/pi05.py`) now looks the table up + directly. 5.5.4's `GemmaTextScaledWordEmbedding` already multiplies by sqrt(hidden) + (`modeling_gemma.py:50-61,381-382`), so calling the module and scaling again would have + scaled text by `hidden` in the Triton fast path on 5.5.4. VERIFIED by source; regression test + `tests/test_paligemma_backbone.py::test_embed_text_openpi_is_independent_of_embedding_module_scaling`. +- Parity vehicles: `transformers==5.5.4`, `retries=0`, phase subprocess timeouts instead of the + SIGKILL watchdog, restart guard, provenance-checked `--reuse-export`, pi0.5 on A100-40GB. + +### Independent reference (golden) + +`tests/_lerobot_pi_golden.py` + `tests/fixtures/lerobot_pi_golden/{pi0,pi05}.pt`: tiny random +pi0/pi0.5 (fixed seed, weights stored in the fixture), captured on the qualified OLD stack +(LeRobot 0.5.1 + transformers 5.3.0 + torch 2.7.1 + Tether `cdb94dc`). The new stack is compared +to it, not to itself. Results, float32, B=2 with masked cameras and padded language: + +| Stack | prefix_embs max_abs | actions (10 steps) max_abs | patched export forward | verdict | +|---|---|---|---|---| +| 0.6.1 + 5.5.4 (venv-061) pi0 | 2.98e-08 | 1.79e-07 | 1.79e-07 | pass | +| 0.6.1 + 5.5.4 pi0.5 | 2.98e-08 | 2.38e-07 | 2.38e-07 | pass | +| 0.6.1 + 5.3.0 (venv-061t) pi0, negative control | 0.318, norm ratio 0.176777 = 1/sqrt(32) | 0.396 | 0.396 | fail | +| 0.6.1 + 5.3.0 pi0.5, negative control | same | 0.0175 (cosine 0.99998) | same | fail | + +Expected difference: a few float32 ulps, not bit identity. The old stack divides image features +by sqrt(hidden) inside transformers 5.3 and LeRobot 0.5.1 multiplies back (`modeling_pi0.py:446`); +5.4+ does neither, and language scaling moved from LeRobot (`modeling_pi0.py:669`, 0.5.1) into +`GemmaTextScaledWordEmbedding`. Tolerance `rtol=atol=1e-5`. Note the pi0.5 negative control has +action cosine 0.99998, which a cosine >= 0.999 gate would pass: the prefix-embedding check +and the absolute tolerance are what catch the bug at tiny width. + +The same fixture drives the real monolithic toolchain (`apply_export_patches`, +`torch_export_patches(patch_transformers=True)`, `torch.export`, `torch.onnx.export` opset 19, +Where-dtype fix, ONNX Runtime CPU) on torch 2.11.0 + transformers 5.5.4 + onnx-diagnostic 0.9.3: +pi0 max_abs 1.25e-06, pi0.5 1.19e-07 against the OLD-stack golden at num_steps=10. The ADR-era +"5.4+ q_length regression" did not reproduce on this toolchain. VERIFIED (CPU, tiny model); +GPU receipts on the real checkpoints decide. + +### Suites + +- S11 interpreter, full suite: 4204 passed, 138 skipped, 0 failed. +- LeRobot 0.6.1 + transformers 5.5.4 + torch 2.7.1 (Studio eval runtime, `venv-061`), full suite: + 4262 passed, 80 skipped, 0 failed. +- torch 2.11.0 + transformers 5.5.4 export venv, LeRobot/export subset (golden, patched-forward, + CLI export, causal-mask shim, SnapFlow backend, Pad-free mask): 73 passed, 0 failed. + +Raw logs: Studio `.sol-scratch/lerobot06/tf55/`; probes and record: Studio +`docs/research/verification/lerobot-06-transformers55-20261012/`. diff --git a/pyproject.toml b/pyproject.toml index 948ebc61..15067e64 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -39,12 +39,11 @@ dependencies = [ # loading for the auto-detect path. Apr-14 install-path verification caught # that omitting these breaks `tether export` even with [serve,gpu]. "huggingface_hub>=0.20.0", - # Base allows 4.40 → 5.3.x. [monolithic] extra pins ==5.3.0 exactly (5.4+ has - # a q_length regression that breaks onnx-diagnostic patches). Without the - # upper bound, pip would pull 5.4/5.5 here and conflict with [monolithic]. - # Without raising the upper bound past 5.0, [monolithic] can't install - # alongside the base (the v0.2.1 customer-dogfood finding). - "transformers>=4.40,<5.4", + # Base allows 4.40 → 5.5.x. [monolithic] pins ==5.5.4 exactly, inside + # LeRobot 0.6.1's declared >=5.4,<5.6 (on 5.3 its pi0/pi0.5 embeddings are + # mis-scaled; Studio ADR 0003 correction 2026-10-12). The upper bound keeps + # pip from pulling an unqualified 5.6+ here. + "transformers>=4.40,<5.6", "onnx>=1.15.0", "onnxscript>=0.1.0", # TetherClient (Phase 0.5 customer-sdk) — sync + async HTTP client. @@ -146,7 +145,7 @@ comply = [] # instead of hard-failing with ResolutionImpossible. Native parity # verification should be run on a Python 3.12+ host. native = [ - "transformers==5.3.0", + "transformers==5.5.4", "lerobot==0.6.1; python_version >= '3.12'", "draccus==0.11.6; python_version >= '3.12'", "num2words", @@ -155,9 +154,9 @@ native = [ ] # Monolithic ONNX export — cos=1.0 verified production path. Runs locally # via `tether export --monolithic` (the DEFAULT as of v0.2.1). Requires -# transformers==5.3.0 EXACTLY (5.4+ has a q_length regression in -# masking_utils.sdpa_mask that breaks onnx-diagnostic patches). Base pin -# `transformers>=4.40,<5.4` permits this extra to pin-to-exact. +# transformers==5.5.4 EXACTLY: LeRobot 0.6.1 needs >=5.4,<5.6, and the +# exporter is qualified on this release (tests/_lerobot_pi_golden.py runs the +# full onnx-diagnostic export against the pre-migration golden). # # lerobot 0.6.x requires Python >=3.12. On Jetson (Python 3.10) the # monolithic export can't run locally — export on a cloud/desktop host @@ -166,7 +165,7 @@ native = [ monolithic = [ "lerobot==0.6.1; python_version >= '3.12'", "draccus==0.11.6; python_version >= '3.12'", - "transformers==5.3.0", + "transformers==5.5.4", # onnx-diagnostic's export patches reference a torch 2.8+ symbol; # _require_monolithic_deps refuses older torch with the same floor. "torch>=2.8", @@ -187,11 +186,10 @@ eval = [ "gymnasium", "h5py", ] -# Spell out the SmolVLA dependencies: its upstream transformers-dep extra -# requires >=5.4, while ADR 0003 keeps the qualified 5.3.0 masking API. -# This equivalent explicit set also resolves with pip, which ignores tool.uv. +# Spell out the SmolVLA dependencies (LeRobot's transformers-dep extra, +# >=5.4,<5.6) at the exact qualified transformers. eval-local = [ - "transformers==5.3.0; python_version >= '3.12' and sys_platform == 'linux'", + "transformers==5.5.4; python_version >= '3.12' and sys_platform == 'linux'", "num2words>=0.5.14,<0.6; python_version >= '3.12' and sys_platform == 'linux'", "accelerate>=1.14,<2; python_version >= '3.12' and sys_platform == 'linux'", "lerobot==0.6.1; python_version >= '3.12' and sys_platform == 'linux'", @@ -300,7 +298,7 @@ jetson = [ "jsonschema>=4.0", "prometheus-client>=0.19.0", # monolithic export stack minus lerobot - "transformers==5.3.0", + "transformers==5.5.4", "onnx-diagnostic>=0.9", "onnxscript>=0.1", "optree", @@ -389,8 +387,3 @@ markers = [ "hardware: requires a physical robot wired in; skipped unless RUN_HARDWARE_TESTS=1", "receipt: validates a signed or provenance-bound operational receipt", ] - -[tool.uv] -# ADR 0003 owner decision: retain the qualified exporter masking API despite -# LeRobot 0.6.1 transformers-dep declaring >=5.4,<5.6. Install extras with uv. -override-dependencies = ["transformers==5.3.0"] diff --git a/scripts/local_pi05_monolithic_parity.py b/scripts/local_pi05_monolithic_parity.py index b802f513..3a38ca26 100644 --- a/scripts/local_pi05_monolithic_parity.py +++ b/scripts/local_pi05_monolithic_parity.py @@ -34,36 +34,6 @@ sys.modules[_mod] = _stub -def _patch_pi05_for_transformers() -> None: - from lerobot.policies.pi05 import modeling_pi05 - from lerobot.policies import pi_gemma - from transformers import masking_utils - - def patched_embed_image(self, image): - out_dtype = image.dtype - if image.dtype != torch.float32: - image = image.to(torch.float32) - output = self.paligemma.model.get_image_features(image) - features = output.pooler_output if hasattr(output, "pooler_output") else output - features = features * self.paligemma.config.text_config.hidden_size**0.5 - if features.dtype != out_dtype: - features = features.to(out_dtype) - return features - - modeling_pi05.PaliGemmaWithExpertModel.embed_image = patched_embed_image - - original = masking_utils.create_causal_mask - - def causal_mask_shim(*args, **kwargs): - if "inputs_embeds" in kwargs and "input_embeds" not in kwargs: - kwargs["input_embeds"] = kwargs.pop("inputs_embeds") - return original(*args, **kwargs) - - masking_utils.create_causal_mask = causal_mask_shim - if hasattr(pi_gemma, "create_causal_mask"): - pi_gemma.create_causal_mask = causal_mask_shim - - def _repo_commit() -> str: root = Path(__file__).resolve().parents[1] try: @@ -160,7 +130,8 @@ def main(argv: list[str] | None = None) -> int: if args.num_steps <= 0: raise ValueError("--num-steps must be positive.") - _patch_pi05_for_transformers() + # Reference is native LeRobot 0.6.1 under the qualified transformers + # (5.5.4): no embedding or mask shims (Studio ADR 0003 correction 2026-10-12). import onnxruntime as ort from huggingface_hub import snapshot_download diff --git a/scripts/local_pi0_monolithic_parity.py b/scripts/local_pi0_monolithic_parity.py index 871e3f71..052cb3e3 100644 --- a/scripts/local_pi0_monolithic_parity.py +++ b/scripts/local_pi0_monolithic_parity.py @@ -35,44 +35,6 @@ sys.modules[_mod] = _stub -def _patch_pi0_for_transformers_457() -> None: - from lerobot.policies.pi0 import modeling_pi0 - - def patched_embed_image(self, image): - out_dtype = image.dtype - if image.dtype != torch.float32: - image = image.to(torch.float32) - image_outputs = self.paligemma.model.get_image_features(image) - features = ( - image_outputs.pooler_output - if hasattr(image_outputs, "pooler_output") - else image_outputs - ) - features = features * self.paligemma.config.text_config.hidden_size**0.5 - if features.dtype != out_dtype: - features = features.to(out_dtype) - return features - - modeling_pi0.PaliGemmaWithExpertModel.embed_image = patched_embed_image - - -def _patch_create_causal_mask_kwarg() -> None: - from transformers import masking_utils - - original = masking_utils.create_causal_mask - - def shim(*args, **kwargs): - if "inputs_embeds" in kwargs and "input_embeds" not in kwargs: - kwargs["input_embeds"] = kwargs.pop("inputs_embeds") - return original(*args, **kwargs) - - masking_utils.create_causal_mask = shim - from lerobot.policies import pi_gemma - - if hasattr(pi_gemma, "create_causal_mask"): - pi_gemma.create_causal_mask = shim - - def _repo_commit() -> str: root = Path(__file__).resolve().parents[1] try: @@ -167,8 +129,8 @@ def main(argv: list[str] | None = None) -> int: if args.num_steps <= 0: raise ValueError("--num-steps must be positive.") - _patch_pi0_for_transformers_457() - _patch_create_causal_mask_kwarg() + # Reference is native LeRobot 0.6.1 under the qualified transformers + # (5.5.4): no embedding or mask shims (Studio ADR 0003 correction 2026-10-12). import onnxruntime as ort from huggingface_hub import snapshot_download diff --git a/scripts/modal_groot_export_parity_pinned.py b/scripts/modal_groot_export_parity_pinned.py index 1edf1322..2783269c 100644 --- a/scripts/modal_groot_export_parity_pinned.py +++ b/scripts/modal_groot_export_parity_pinned.py @@ -67,9 +67,9 @@ def _hf_secret(): "torch>=2.8,<2.12", "safetensors>=0.4.0", "huggingface_hub", - # transformers==5.3.0 EXACTLY: the monolithic exporter refuses + # transformers==5.5.4 EXACTLY: the monolithic exporter refuses # anything else. - "transformers==5.3.0", + "transformers==5.5.4", "onnx>=1.16", "onnxruntime>=1.20", "onnxscript>=0.1", diff --git a/scripts/modal_layer_pruning_profile.py b/scripts/modal_layer_pruning_profile.py index f9f45d37..0e6f910e 100644 --- a/scripts/modal_layer_pruning_profile.py +++ b/scripts/modal_layer_pruning_profile.py @@ -66,7 +66,7 @@ def _build_bust() -> str: .apt_install("git") .pip_install( "lerobot==0.6.1", - "transformers==5.3.0", + "transformers==5.5.4", "num2words", "safetensors>=0.4.0", "scipy", diff --git a/scripts/modal_pi05_export_parity_pinned.py b/scripts/modal_pi05_export_parity_pinned.py index 527c1e4f..9445ad01 100644 --- a/scripts/modal_pi05_export_parity_pinned.py +++ b/scripts/modal_pi05_export_parity_pinned.py @@ -2,7 +2,7 @@ Runs the receipt-grade harness `scripts/local_pi05_monolithic_parity.py` on Modal Linux + CUDA, following the proven pi0 pattern (exact 40-hex model -commit pin, no floating HEAD, plus an in-function self-kill watchdog): +commit pin, no floating HEAD, bounded GPU time): - `lerobot/pi05_base` is pinned to PI05_BASE_REVISION, the last revision before "Add relative action processor steps (#6)" (2026-06-03) added a @@ -14,9 +14,8 @@ - The Tether implementation under test is pinned to TETHER_REVISION (an exact 40-hex commit): the container clones the repo and checks out that commit, and the harness records `git rev-parse HEAD` from that checkout. -- A self-kill wall-clock watchdog bounds GPU burn: `timeout=` on the - decorator is the platform's promise; a hung download or stuck CUDA call - can sit in the container without tripping it. +- GPU burn is bounded by per-phase subprocess timeouts, the Modal function + timeout and retries=0, plus a restart guard (see EXPORT_TIMEOUT_SECONDS). Usage: modal run scripts/modal_pi05_export_parity_pinned.py @@ -47,7 +46,7 @@ ) HF_CACHE_PATH = "/root/.cache/huggingface" -PARITY_OUT_PATH = "/parity_out/lerobot-061-20261011" +PARITY_OUT_PATH = "/parity_out/lerobot-061-tf554-20261012" def _hf_secret(): @@ -80,9 +79,9 @@ def _hf_secret(): "accelerate", "draccus==0.11.6", ) - # transformers==5.3.0 EXACTLY: the monolithic exporter refuses anything - # else (5.4+ has a q_length regression in masking_utils.sdpa_mask). - .pip_install("transformers==5.3.0") + # transformers==5.5.4 EXACTLY: LeRobot 0.6.1 needs >=5.4,<5.6 and the + # monolithic exporter gate refuses anything but the qualified release. + .pip_install("transformers==5.5.4") .env({ "HF_HOME": HF_CACHE_PATH, "TRANSFORMERS_CACHE": f"{HF_CACHE_PATH}/transformers", @@ -118,10 +117,27 @@ def _hf_secret(): ) +# Phase budgets from measured runs: pi0 fresh export 1776.5 s and harness +# incl. setup 274.9 s on A100-40GB (Studio +# docs/research/verification/lerobot-06-parity-rerun-20261012.md); pi0.5 +# fresh export plus failed session about 2190 s on A10G +# (docs/parity/parity-pi05-refix-report.md). About 1.5x and 3x margin. Each phase runs in a subprocess with this timeout, so an +# overrun ends the input as an ordinary failure. The previous in-container +# SIGKILL watchdog surfaced as a runner crash, which Modal treats as an +# internal failure and re-schedules regardless of the retry policy. +EXPORT_TIMEOUT_SECONDS = 2700 +PARITY_TIMEOUT_SECONDS = 900 +SETUP_MARGIN_SECONDS = 600 +MODAL_TIMEOUT_SECONDS = EXPORT_TIMEOUT_SECONDS + PARITY_TIMEOUT_SECONDS + SETUP_MARGIN_SECONDS + + @app.function( image=gpu_image, - gpu="A10G", - timeout=3600, + # A100-40GB: on A10G the fp32 reference and the ~13 GB ORT session do + # not co-reside (docs/parity/parity-pi05-refix-report.md, run 1 OOM). + gpu="A100-40GB", + timeout=MODAL_TIMEOUT_SECONDS, + retries=0, volumes={ HF_CACHE_PATH: _hf_cache_volume, "/parity_out": _parity_out_volume, @@ -133,39 +149,24 @@ def run_export_parity( tether_revision: str = TETHER_REVISION, num_steps: int = 10, reuse_export: bool = False, - watchdog_seconds: float = 3300, + export_timeout_seconds: float = EXPORT_TIMEOUT_SECONDS, + parity_timeout_seconds: float = PARITY_TIMEOUT_SECONDS, + run_id: str = "", ) -> dict: import subprocess import sys import time from pathlib import Path + import json as _json import os as _os - import signal as _signal - import threading as _threading - - _WATCHDOG_SECONDS = float( - _os.environ.get("PARITY_WATCHDOG_SECONDS", str(watchdog_seconds)) - ) - - def _self_kill() -> None: - print( - f"[watchdog] deadline of {_WATCHDOG_SECONDS:.0f}s reached; killing this " - "container rather than burning GPU time on a hung step.", - flush=True, - ) - _os.kill(_os.getpid(), _signal.SIGKILL) - - _watchdog = _threading.Timer(_WATCHDOG_SECONDS, _self_kill) - _watchdog.daemon = True - _watchdog.start() _started_at = time.monotonic() def _progress(stage: str) -> None: print(f"[progress] {time.monotonic() - _started_at:7.1f}s {stage}", flush=True) - _progress("container up, watchdog armed") + _progress("container up") summary: dict = { "model_source": "lerobot/pi05_base", "model_revision": model_revision, @@ -174,6 +175,20 @@ def _progress(stage: str) -> None: "num_steps": num_steps, } + # Restart guard: if Modal re-schedules this input after a container + # crash, the second attempt finds its own marker and exits at once + # instead of starting another GPU export. + if run_id: + marker = Path(PARITY_OUT_PATH) / "pi05" / "attempts" / run_id + _parity_out_volume.reload() + if marker.exists(): + _progress("restarted attempt detected; refusing to run again") + summary["verdict"] = "aborted-restarted-attempt" + return summary + marker.parent.mkdir(parents=True, exist_ok=True) + marker.write_text(str(time.time())) + _parity_out_volume.commit() + # Fail fast if the CUDA EP cannot be created (a broken CUDA/cuDNN # image otherwise surfaces 10 minutes later as a no-fallback gate # failure after the reference has already run). @@ -241,46 +256,58 @@ def _progress(stage: str) -> None: snap = snapshot_download("lerobot/pi05_base", revision=model_revision) summary["snapshot_dir"] = snap - from tether.exporters.monolithic import export_pi05_monolithic - export_dir = Path(PARITY_OUT_PATH) / "pi05" / "export" - existing = export_dir / "model.onnx" - # model.onnx may be graph-only with weights in model.onnx.data: count - # the whole artifact dir, which is also what the receipt hashes. - existing_bytes = ( - sum(f.stat().st_size for f in export_dir.glob("*") if f.is_file()) - if existing.is_file() - else 0 + provenance_path = export_dir / "tether-export-provenance.json" + harness_env = dict(_os.environ) + harness_env["PYTHONPATH"] = str(pin_dir / "src") + _os.pathsep + harness_env.get( + "PYTHONPATH", "" ) - if reuse_export and existing_bytes > 10**9: - export_result = { - "status": "reused", - "onnx_path": str(existing), - "size_mb": existing_bytes / 1e6, - "num_steps": num_steps, - } - _progress(f"reusing retained export ({export_result['size_mb']:.1f}MB)") + from importlib.metadata import version as _v + + provenance = { + "tether_revision": tether_revision, + "model_revision": model_revision, + "num_steps": num_steps, + **{p: _v(p) for p in ("lerobot", "transformers", "torch", "onnx-diagnostic", "onnxscript")}, + } + summary["export_provenance"] = provenance + retained = ( + _json.loads(provenance_path.read_text()) if provenance_path.is_file() else None + ) + if reuse_export and retained == provenance: + export_result = {"status": "reused", "onnx_path": str(export_dir / "model.onnx")} + _progress("reusing retained export (provenance matches)") else: - _progress("export_pi05_monolithic from pinned snapshot") - export_result = export_pi05_monolithic(snap, export_dir, num_steps=num_steps) + if reuse_export: + _progress(f"not reusing: retained provenance {retained} != {provenance}") + _progress("export_pi05_monolithic from pinned snapshot (subprocess)") + code = ( + "import json, sys; from tether.exporters.monolithic import export_pi05_monolithic; " + "r = export_pi05_monolithic(sys.argv[1], sys.argv[2], num_steps=int(sys.argv[3])); " + "print('EXPORT_RESULT ' + json.dumps(r), flush=True)" + ) + try: + proc = subprocess.run( + [sys.executable, "-c", code, snap, str(export_dir), str(num_steps)], + cwd=str(pin_dir), env=harness_env, capture_output=True, text=True, + timeout=export_timeout_seconds, + ) + except subprocess.TimeoutExpired as exc: + _parity_out_volume.commit() + raise RuntimeError( + f"export exceeded {export_timeout_seconds:.0f}s; stopped" + ) from exc + print(proc.stdout[-4000:], flush=True) + print(proc.stderr[-4000:], flush=True) + if proc.returncode != 0: + raise RuntimeError(f"export failed with return code {proc.returncode}") + line = next(x for x in proc.stdout.splitlines() if x.startswith("EXPORT_RESULT ")) + export_result = _json.loads(line.split(" ", 1)[1]) + provenance_path.write_text(_json.dumps(provenance, sort_keys=True) + "\n") + _parity_out_volume.commit() _progress(f"export ok: {export_result.get('size_mb', 0):.1f}MB") summary["export"] = export_result - # Release the export phase's cached GPU blocks before the parity - # subprocess: the harness places the reference on CUDA, and the - # parent's caching-allocator reservation would otherwise OOM it - # (observed: parent held 22.03/22.06 GiB, child got 16 MiB free). - import gc as _gc - - _gc.collect() - try: - import torch as _torch - - if _torch.cuda.is_available(): - _torch.cuda.empty_cache() - except Exception as exc: # noqa: BLE001 -- diagnostic only - print(f"[warn] cuda cache release failed: {exc!r}", flush=True) - _progress("parent GPU cache released") # 3. Receipt-grade parity with CUDA, CPU fallback disabled. receipt_path = Path(PARITY_OUT_PATH) / "pi05" / "pi05-export-parity-receipt.json" @@ -295,19 +322,18 @@ def _progress(stage: str) -> None: "--receipt", str(receipt_path), ] _progress("running receipt-grade parity (CUDA, no CPU fallback)") - harness_env = dict(_os.environ) - harness_env["PYTHONPATH"] = str(pin_dir / "src") + _os.pathsep + harness_env.get( - "PYTHONPATH", "" - ) - proc = subprocess.run( - cmd, cwd=str(pin_dir), capture_output=True, text=True, env=harness_env - ) + try: + proc = subprocess.run( + cmd, cwd=str(pin_dir), capture_output=True, text=True, env=harness_env, + timeout=parity_timeout_seconds, + ) + except subprocess.TimeoutExpired as exc: + _parity_out_volume.commit() + raise RuntimeError(f"parity harness exceeded {parity_timeout_seconds:.0f}s; stopped") from exc print(proc.stdout[-6000:], flush=True) print(proc.stderr[-3000:], flush=True) summary["harness_returncode"] = proc.returncode - import json as _json - if receipt_path.is_file(): receipt = _json.loads(receipt_path.read_text()) summary["verdict"] = receipt.get("verdict") @@ -323,7 +349,6 @@ def _progress(stage: str) -> None: summary["verdict"] = "no-receipt" _parity_out_volume.commit() - _watchdog.cancel() _progress("done") return summary @@ -331,10 +356,21 @@ def _progress(stage: str) -> None: @app.local_entrypoint() def main( tether_revision: str = TETHER_REVISION, - watchdog_seconds: float = 1800, + reuse_export: bool = False, + num_steps: int = 10, + export_timeout_seconds: float = EXPORT_TIMEOUT_SECONDS, + parity_timeout_seconds: float = PARITY_TIMEOUT_SECONDS, + run_id: str = "", ) -> None: + import uuid + result = run_export_parity.remote( - tether_revision=tether_revision, watchdog_seconds=watchdog_seconds + tether_revision=tether_revision, + reuse_export=reuse_export, + num_steps=num_steps, + export_timeout_seconds=export_timeout_seconds, + parity_timeout_seconds=parity_timeout_seconds, + run_id=run_id or uuid.uuid4().hex, ) print("\n=== RESULT ===") for key, value in result.items(): diff --git a/scripts/modal_pi0_export_parity_pinned.py b/scripts/modal_pi0_export_parity_pinned.py index 61ec89c5..6b9f9883 100644 --- a/scripts/modal_pi0_export_parity_pinned.py +++ b/scripts/modal_pi0_export_parity_pinned.py @@ -11,7 +11,8 @@ - A100-40GB: the fp32 reference + ~13 GB session cannot co-reside on A10G (pi0.5 refix OOM'd allocating a 128 MB arena there); this is a tier change only, gates unmodified. -- In-function self-kill watchdog bounds GPU burn. +- GPU burn is bounded by per-phase subprocess timeouts, the Modal function + timeout and retries=0, plus a restart guard (see EXPORT_TIMEOUT_SECONDS). Usage: modal run scripts/modal_pi0_export_parity_pinned.py @@ -39,7 +40,7 @@ ) HF_CACHE_PATH = "/root/.cache/huggingface" -PARITY_OUT_PATH = "/parity_out/lerobot-061-20261011" +PARITY_OUT_PATH = "/parity_out/lerobot-061-tf554-20261012" def _hf_secret(): @@ -72,9 +73,9 @@ def _hf_secret(): "accelerate", "draccus==0.11.6", ) - # transformers==5.3.0 EXACTLY: the monolithic exporter refuses anything - # else (5.4+ has a q_length regression in masking_utils.sdpa_mask). - .pip_install("transformers==5.3.0") + # transformers==5.5.4 EXACTLY: LeRobot 0.6.1 needs >=5.4,<5.6 and the + # monolithic exporter gate refuses anything but the qualified release. + .pip_install("transformers==5.5.4") .env({ "HF_HOME": HF_CACHE_PATH, "TRANSFORMERS_CACHE": f"{HF_CACHE_PATH}/transformers", @@ -110,10 +111,25 @@ def _hf_secret(): ) +# Phase budgets from measured runs: pi0 fresh export 1776.5 s and harness +# incl. setup 274.9 s on A100-40GB (Studio +# docs/research/verification/lerobot-06-parity-rerun-20261012.md); pi0.5 +# fresh export plus failed session about 2190 s on A10G +# (docs/parity/parity-pi05-refix-report.md). About 1.5x and 3x margin. Each phase runs in a subprocess with this timeout, so an +# overrun ends the input as an ordinary failure. The previous in-container +# SIGKILL watchdog surfaced as a runner crash, which Modal treats as an +# internal failure and re-schedules regardless of the retry policy. +EXPORT_TIMEOUT_SECONDS = 2700 +PARITY_TIMEOUT_SECONDS = 900 +SETUP_MARGIN_SECONDS = 600 +MODAL_TIMEOUT_SECONDS = EXPORT_TIMEOUT_SECONDS + PARITY_TIMEOUT_SECONDS + SETUP_MARGIN_SECONDS + + @app.function( image=gpu_image, gpu="A100-40GB", - timeout=3600, + timeout=MODAL_TIMEOUT_SECONDS, + retries=0, volumes={ HF_CACHE_PATH: _hf_cache_volume, "/parity_out": _parity_out_volume, @@ -125,39 +141,24 @@ def run_export_parity( tether_revision: str = TETHER_REVISION, num_steps: int = 10, reuse_export: bool = False, - watchdog_seconds: float = 3300, + export_timeout_seconds: float = EXPORT_TIMEOUT_SECONDS, + parity_timeout_seconds: float = PARITY_TIMEOUT_SECONDS, + run_id: str = "", ) -> dict: import subprocess import sys import time from pathlib import Path + import json as _json import os as _os - import signal as _signal - import threading as _threading - - _WATCHDOG_SECONDS = float( - _os.environ.get("PARITY_WATCHDOG_SECONDS", str(watchdog_seconds)) - ) - - def _self_kill() -> None: - print( - f"[watchdog] deadline of {_WATCHDOG_SECONDS:.0f}s reached; killing this " - "container rather than burning GPU time on a hung step.", - flush=True, - ) - _os.kill(_os.getpid(), _signal.SIGKILL) - - _watchdog = _threading.Timer(_WATCHDOG_SECONDS, _self_kill) - _watchdog.daemon = True - _watchdog.start() _started_at = time.monotonic() def _progress(stage: str) -> None: print(f"[progress] {time.monotonic() - _started_at:7.1f}s {stage}", flush=True) - _progress("container up, watchdog armed") + _progress("container up") summary: dict = { "model_source": "lerobot/pi0_base", "model_revision": model_revision, @@ -166,6 +167,20 @@ def _progress(stage: str) -> None: "num_steps": num_steps, } + # Restart guard: if Modal re-schedules this input after a container + # crash, the second attempt finds its own marker and exits at once + # instead of starting another GPU export. + if run_id: + marker = Path(PARITY_OUT_PATH) / "pi0" / "attempts" / run_id + _parity_out_volume.reload() + if marker.exists(): + _progress("restarted attempt detected; refusing to run again") + summary["verdict"] = "aborted-restarted-attempt" + return summary + marker.parent.mkdir(parents=True, exist_ok=True) + marker.write_text(str(time.time())) + _parity_out_volume.commit() + # Fail fast if the CUDA EP cannot be created (a broken CUDA/cuDNN # image otherwise surfaces much later as a no-fallback gate failure # after the reference has already run). @@ -233,46 +248,58 @@ def _progress(stage: str) -> None: snap = snapshot_download("lerobot/pi0_base", revision=model_revision) summary["snapshot_dir"] = snap - from tether.exporters.monolithic import export_pi0_monolithic - export_dir = Path(PARITY_OUT_PATH) / "pi0" / "export" - existing = export_dir / "model.onnx" - # model.onnx may be graph-only with weights in model.onnx.data: count - # the whole artifact dir, which is also what the receipt hashes. - existing_bytes = ( - sum(f.stat().st_size for f in export_dir.glob("*") if f.is_file()) - if existing.is_file() - else 0 + provenance_path = export_dir / "tether-export-provenance.json" + harness_env = dict(_os.environ) + harness_env["PYTHONPATH"] = str(pin_dir / "src") + _os.pathsep + harness_env.get( + "PYTHONPATH", "" ) - if reuse_export and existing_bytes > 10**9: - export_result = { - "status": "reused", - "onnx_path": str(existing), - "size_mb": existing_bytes / 1e6, - "num_steps": num_steps, - } - _progress(f"reusing retained export ({export_result['size_mb']:.1f}MB)") + from importlib.metadata import version as _v + + provenance = { + "tether_revision": tether_revision, + "model_revision": model_revision, + "num_steps": num_steps, + **{p: _v(p) for p in ("lerobot", "transformers", "torch", "onnx-diagnostic", "onnxscript")}, + } + summary["export_provenance"] = provenance + retained = ( + _json.loads(provenance_path.read_text()) if provenance_path.is_file() else None + ) + if reuse_export and retained == provenance: + export_result = {"status": "reused", "onnx_path": str(export_dir / "model.onnx")} + _progress("reusing retained export (provenance matches)") else: - _progress("export_pi0_monolithic from pinned snapshot") - export_result = export_pi0_monolithic(snap, export_dir, num_steps=num_steps) + if reuse_export: + _progress(f"not reusing: retained provenance {retained} != {provenance}") + _progress("export_pi0_monolithic from pinned snapshot (subprocess)") + code = ( + "import json, sys; from tether.exporters.monolithic import export_pi0_monolithic; " + "r = export_pi0_monolithic(sys.argv[1], sys.argv[2], num_steps=int(sys.argv[3])); " + "print('EXPORT_RESULT ' + json.dumps(r), flush=True)" + ) + try: + proc = subprocess.run( + [sys.executable, "-c", code, snap, str(export_dir), str(num_steps)], + cwd=str(pin_dir), env=harness_env, capture_output=True, text=True, + timeout=export_timeout_seconds, + ) + except subprocess.TimeoutExpired as exc: + _parity_out_volume.commit() + raise RuntimeError( + f"export exceeded {export_timeout_seconds:.0f}s; stopped" + ) from exc + print(proc.stdout[-4000:], flush=True) + print(proc.stderr[-4000:], flush=True) + if proc.returncode != 0: + raise RuntimeError(f"export failed with return code {proc.returncode}") + line = next(x for x in proc.stdout.splitlines() if x.startswith("EXPORT_RESULT ")) + export_result = _json.loads(line.split(" ", 1)[1]) + provenance_path.write_text(_json.dumps(provenance, sort_keys=True) + "\n") + _parity_out_volume.commit() _progress(f"export ok: {export_result.get('size_mb', 0):.1f}MB") summary["export"] = export_result - # Release the export phase's cached GPU blocks before the parity - # subprocess: the harness places the reference on CUDA, and the - # parent's caching-allocator reservation would otherwise OOM it - # (observed on pi0.5: parent held 22.03/22.06 GiB, child got 16 MiB). - import gc as _gc - - _gc.collect() - try: - import torch as _torch - - if _torch.cuda.is_available(): - _torch.cuda.empty_cache() - except Exception as exc: # noqa: BLE001 -- diagnostic only - print(f"[warn] cuda cache release failed: {exc!r}", flush=True) - _progress("parent GPU cache released") # 3. Receipt-grade parity with CUDA, CPU fallback disabled. receipt_path = Path(PARITY_OUT_PATH) / "pi0" / "pi0-export-parity-receipt.json" @@ -287,19 +314,18 @@ def _progress(stage: str) -> None: "--receipt", str(receipt_path), ] _progress("running receipt-grade parity (CUDA, no CPU fallback)") - harness_env = dict(_os.environ) - harness_env["PYTHONPATH"] = str(pin_dir / "src") + _os.pathsep + harness_env.get( - "PYTHONPATH", "" - ) - proc = subprocess.run( - cmd, cwd=str(pin_dir), capture_output=True, text=True, env=harness_env - ) + try: + proc = subprocess.run( + cmd, cwd=str(pin_dir), capture_output=True, text=True, env=harness_env, + timeout=parity_timeout_seconds, + ) + except subprocess.TimeoutExpired as exc: + _parity_out_volume.commit() + raise RuntimeError(f"parity harness exceeded {parity_timeout_seconds:.0f}s; stopped") from exc print(proc.stdout[-6000:], flush=True) print(proc.stderr[-3000:], flush=True) summary["harness_returncode"] = proc.returncode - import json as _json - if receipt_path.is_file(): receipt = _json.loads(receipt_path.read_text()) summary["verdict"] = receipt.get("verdict") @@ -315,7 +341,6 @@ def _progress(stage: str) -> None: summary["verdict"] = "no-receipt" _parity_out_volume.commit() - _watchdog.cancel() _progress("done") return summary @@ -325,13 +350,19 @@ def main( tether_revision: str = TETHER_REVISION, reuse_export: bool = False, num_steps: int = 10, - watchdog_seconds: float = 1800, + export_timeout_seconds: float = EXPORT_TIMEOUT_SECONDS, + parity_timeout_seconds: float = PARITY_TIMEOUT_SECONDS, + run_id: str = "", ) -> None: + import uuid + result = run_export_parity.remote( tether_revision=tether_revision, reuse_export=reuse_export, num_steps=num_steps, - watchdog_seconds=watchdog_seconds, + export_timeout_seconds=export_timeout_seconds, + parity_timeout_seconds=parity_timeout_seconds, + run_id=run_id or uuid.uuid4().hex, ) print("\n=== RESULT ===") for key, value in result.items(): diff --git a/scripts/modal_stateout_distill_stage2.py b/scripts/modal_stateout_distill_stage2.py index f2e3d357..ee02bcb6 100644 --- a/scripts/modal_stateout_distill_stage2.py +++ b/scripts/modal_stateout_distill_stage2.py @@ -69,7 +69,7 @@ def _bust(): .apt_install("git", "ffmpeg") .pip_install( "lerobot==0.6.1", - "transformers==5.3.0", + "transformers==5.5.4", "num2words", "safetensors>=0.4.0", "numpy", diff --git a/scripts/modal_stateout_smoke.py b/scripts/modal_stateout_smoke.py index 6b1307cf..b0281a5e 100644 --- a/scripts/modal_stateout_smoke.py +++ b/scripts/modal_stateout_smoke.py @@ -59,7 +59,7 @@ def _bust(): .apt_install("git") .pip_install( "lerobot==0.6.1", - "transformers==5.3.0", + "transformers==5.5.4", "num2words", "safetensors>=0.4.0", "numpy", diff --git a/src/tether/_lerobot_version.py b/src/tether/_lerobot_version.py index a88eefb8..c1d0d01a 100644 --- a/src/tether/_lerobot_version.py +++ b/src/tether/_lerobot_version.py @@ -1,3 +1,7 @@ """LeRobot runtime qualified for dataset admission and export (ADR 0003).""" QUALIFIED_LEROBOT_VERSION = "0.6.1" +# LeRobot 0.6.1 declares transformers>=5.4,<5.6 and its pi0/pi0.5 code relies +# on 5.4+ embedding scaling; on 5.3 the image and language embeddings are +# 1/sqrt(hidden) too small (Studio ADR 0003, correction 2026-10-12). +QUALIFIED_TRANSFORMERS_VERSION = "5.5.4" diff --git a/src/tether/cli.py b/src/tether/cli.py index 1154889d..249bd5aa 100644 --- a/src/tether/cli.py +++ b/src/tether/cli.py @@ -237,7 +237,7 @@ def export( "path, one ONNX file). Opt into --decomposed only if you specifically need " "the 5-stage export for debugging; --decomposed is the older path with " "known correctness gaps. Monolithic requires `pip install " - "'fastcrest-tether[monolithic]'` (pins transformers==5.3.0).", + "'fastcrest-tether[monolithic]'` (pins transformers==5.5.4).", ), export_mode: str = typer.Option( "auto", @@ -363,7 +363,7 @@ def export( err_console.print(f"[red]{exc}[/red]", markup=False) err_console.print( "\nFix: pip install 'fastcrest-tether[monolithic]' " - "(pins transformers==5.3.0; use a clean venv to avoid " + "(pins transformers==5.5.4; use a clean venv to avoid " "the base transformers<5.0 conflict)", style="cyan", markup=False, ) @@ -459,7 +459,7 @@ def export( err_console.print(f"[red]{exc}[/red]", markup=False) err_console.print( "\nFix: pip install 'fastcrest-tether[monolithic]' " - "(pins transformers==5.3.0; use a clean venv to avoid " + "(pins transformers==5.5.4; use a clean venv to avoid " "the base transformers<5.0 conflict)", style="cyan", markup=False, ) @@ -5606,7 +5606,7 @@ def go( console.print( "\n`tether go` needs the monolithic export extras to deploy this model.\n" "Fix: pip install 'fastcrest-tether[monolithic]'\n" - "(pins transformers==5.3.0; use a clean venv to avoid the " + "(pins transformers==5.5.4; use a clean venv to avoid the " "base transformers<5.0 conflict)", style="cyan", markup=False, ) diff --git a/src/tether/diagnostics/check_vlm_tokenization.py b/src/tether/diagnostics/check_vlm_tokenization.py index a005442e..386c789b 100644 --- a/src/tether/diagnostics/check_vlm_tokenization.py +++ b/src/tether/diagnostics/check_vlm_tokenization.py @@ -123,8 +123,8 @@ def _run(model_path: str, **kwargs) -> CheckResult: actual=f"AutoTokenizer raised {type(e).__name__}: {e}", remediation=( f"Export has tokenizer files but they are malformed. Check the " - f"export step's logs OR pin transformers==5.3.0 per ADR " - f"2026-04-17 onnx-export-gotchas. See {GH_ISSUE}." + f"export step's logs OR install the qualified transformers " + f"(pip install 'fastcrest-tether[monolithic]'). See {GH_ISSUE}." ), duration_ms=0.0, github_issue=GH_ISSUE, @@ -150,7 +150,7 @@ def _run(model_path: str, **kwargs) -> CheckResult: remediation=( f"Tokenizer/model vocab_size mismatch — tokens > {vocab_size} will " f"crash the ONNX path. Likely cause: transformers version drift. " - f"Pin transformers==5.3.0 per ADR 2026-04-17." + f"Install the qualified transformers: pip install 'fastcrest-tether[monolithic]'." ), duration_ms=0.0, github_issue=GH_ISSUE, diff --git a/src/tether/exporters/decomposed.py b/src/tether/exporters/decomposed.py index 1d9a8ba3..5852d6bf 100644 --- a/src/tether/exporters/decomposed.py +++ b/src/tether/exporters/decomposed.py @@ -38,7 +38,7 @@ ## Dependencies -Same as ``monolithic`` extra: transformers==5.3.0, lerobot==0.6.1, +Same as ``monolithic`` extra: transformers==5.5.4, lerobot==0.6.1, onnx-diagnostic>=0.9. ``apply_export_patches`` from ``monolithic.py`` is invoked here to get the shared denoise-step + cache-freeze patches. diff --git a/src/tether/exporters/monolithic.py b/src/tether/exporters/monolithic.py index 9a832d52..f5e00e58 100644 --- a/src/tether/exporters/monolithic.py +++ b/src/tether/exporters/monolithic.py @@ -11,7 +11,7 @@ Requires (pinned in the ``monolithic`` extra): lerobot==0.6.1 - transformers==5.3.0 (5.4+ has a q_length scalar regression) + transformers==5.5.4 (LeRobot 0.6.1 requires >=5.4,<5.6) onnx-diagnostic>=0.9 onnxscript>=0.1 optree, scipy, num2words @@ -23,7 +23,7 @@ """ from __future__ import annotations -from tether._lerobot_version import QUALIFIED_LEROBOT_VERSION +from tether._lerobot_version import QUALIFIED_LEROBOT_VERSION, QUALIFIED_TRANSFORMERS_VERSION import logging import time @@ -160,15 +160,16 @@ def _require_monolithic_deps() -> None: missing = [] try: import transformers - if transformers.__version__ != "5.3.0": + if transformers.__version__ != QUALIFIED_TRANSFORMERS_VERSION: raise ImportError( f"transformers {transformers.__version__} detected; the " - f"monolithic export requires exactly 5.3.0 (5.4+ has a " - f"q_length regression in masking_utils.sdpa_mask). Install " - f"with: pip install transformers==5.3.0" + f"monolithic export requires exactly {QUALIFIED_TRANSFORMERS_VERSION} " + f"(LeRobot {QUALIFIED_LEROBOT_VERSION} needs >=5.4: on 5.3 its " + f"pi0/pi0.5 embeddings are mis-scaled). Install with: " + f"pip install transformers=={QUALIFIED_TRANSFORMERS_VERSION}" ) except ImportError as e: - missing.append(f"transformers==5.3.0 ({e})") + missing.append(f"transformers=={QUALIFIED_TRANSFORMERS_VERSION} ({e})") # onnx-diagnostic 0.8.11 and 0.9.0-0.9.3 unconditionally patch # torch._export.non_strict_utils._constrain_user_specified_dimhint_range, diff --git a/src/tether/models/llm/paligemma_backbone.py b/src/tether/models/llm/paligemma_backbone.py index 6c53b54d..f794e7c9 100644 --- a/src/tether/models/llm/paligemma_backbone.py +++ b/src/tether/models/llm/paligemma_backbone.py @@ -110,6 +110,18 @@ def embed_tokens(self) -> nn.Module: before merging in the projected image embeds.""" return self.language_model.embed_tokens + def embed_text_openpi(self, token_ids: torch.Tensor) -> torch.Tensor: + """openpi text embedding: raw table lookup times sqrt(hidden). + + Looks up the weight directly because the module's own scaling moved + between transformers releases: 5.3 Gemma uses a plain nn.Embedding + (scaled later in GemmaModel.forward), 5.4+ uses + GemmaTextScaledWordEmbedding, which already multiplies by sqrt(hidden). + Calling the module and scaling again double-scales on 5.4+. + """ + weight = self.embed_tokens.weight + return torch.nn.functional.embedding(token_ids, weight) * self.text_hidden_size**0.5 + @property def text_hidden_size(self) -> int: """Hidden dim of the language tower (1152 for PaliGemma-3B-pt-224).""" diff --git a/src/tether/models/vlas/pi0.py b/src/tether/models/vlas/pi0.py index 932505d5..fcf184eb 100644 --- a/src/tether/models/vlas/pi0.py +++ b/src/tether/models/vlas/pi0.py @@ -398,8 +398,6 @@ def predict_action( # protocol: pre-scale text externally; image is raw multi_modal_projector # output (no additional scaling needed because the get_image_features # path isn't used — we call multi_modal_projector directly). - text_hidden = self.llm_backbone.text_hidden_size - sqrt_h = text_hidden ** 0.5 image_embeds_list: list[torch.Tensor] = [] for img in images: # SigLIP: [B, 3, 224, 224] → [B, 256, vision_hidden=1152] @@ -410,7 +408,7 @@ def predict_action( image_embeds_list.append(img_emb) # Pre-scale text per lerobot embed_prefix at modeling_pi0.py:669. - text_embs = self.llm_backbone.embed_tokens(lang_tokens) * sqrt_h + text_embs = self.llm_backbone.embed_text_openpi(lang_tokens) # ─── 4. Concat into prefix ────────────────────────────────────── prefix_embs = torch.cat([*image_embeds_list, text_embs], dim=1) diff --git a/src/tether/models/vlas/pi05.py b/src/tether/models/vlas/pi05.py index 50302853..bc108511 100644 --- a/src/tether/models/vlas/pi05.py +++ b/src/tether/models/vlas/pi05.py @@ -304,14 +304,12 @@ def predict_action( # Same scaling protocol as Pi0VLA: PiGemma omits internal sqrt(h) # scaling, so text needs explicit pre-scale; image stays raw # (lerobot patched_embed_image net = ×1). - text_hidden = self.llm_backbone.text_hidden_size - sqrt_h = text_hidden ** 0.5 image_embeds_list: list[torch.Tensor] = [] for img in images: img_emb = self.vision_backbone(img) img_emb = self.llm_backbone.multi_modal_projector(img_emb) image_embeds_list.append(img_emb) - text_embs = self.llm_backbone.embed_tokens(lang_tokens) * sqrt_h + text_embs = self.llm_backbone.embed_text_openpi(lang_tokens) # ─── 4. Concat into prefix (NO state token — state is in lang_tokens) ── prefix_embs = torch.cat([*image_embeds_list, text_embs], dim=1) diff --git a/src/tether/runtime/fast_inference/pi05.py b/src/tether/runtime/fast_inference/pi05.py index 9fc374ab..950bb5c0 100644 --- a/src/tether/runtime/fast_inference/pi05.py +++ b/src/tether/runtime/fast_inference/pi05.py @@ -799,9 +799,8 @@ def predict_action( ) # Embed via the paligemma text model's embed_tokens. # Pi0.5 scales the embedding by sqrt(hidden_dim) — matches the FluxVLA reference. - text_model = self._vla.llm_backbone.model.model.language_model - lang_emb = text_model.embed_tokens(lang_tokens[0, :prompt_len]) - lang_emb = (lang_emb * math.sqrt(lang_emb.shape[-1])).bfloat16() + lang_emb = self._vla.llm_backbone.embed_text_openpi(lang_tokens[0, :prompt_len]) + lang_emb = lang_emb.bfloat16() chunk_size = self.n_action_steps if noise is None: diff --git a/tests/_lerobot_pi_golden.py b/tests/_lerobot_pi_golden.py new file mode 100644 index 00000000..9018e74c --- /dev/null +++ b/tests/_lerobot_pi_golden.py @@ -0,0 +1,270 @@ +"""Golden pi0/pi0.5 reference from the qualified OLD stack (independent of LeRobot 0.6.1). + +Why: the LeRobot 0.6.1 port tests compared Tether's patched forward with +native 0.6.1 in the same interpreter. Under transformers 5.3 native 0.6.1 is +itself mis-scaled (image and language embeddings ~1/sqrt(2048) of openpi), so +"matches native" passed while GPU parity failed at cosine 0.47. This fixture +pins outputs from the stack that was GPU-qualified before the migration: +LeRobot 0.5.1 + transformers 5.3.0 + Tether cdb94dc. Any stack that drifts +from openpi scale fails against it. + + capture (old stack): python tests/_lerobot_pi_golden.py capture {pi0,pi05} OUT.pt + compare (new stack): python tests/_lerobot_pi_golden.py compare {pi0,pi05} GOLDEN.pt + export (new stack): python tests/_lerobot_pi_golden.py export {pi0,pi05} GOLDEN.pt DIR + +The tiny model shrinks constructor sizes only (two layers, width 32, two-layer +SigLIP, vocabulary 64, 16x16 images, three-action chunk). Weights are saved in +the fixture, so initialisation order differences between versions cannot leak in. +""" + +from __future__ import annotations + +import sys + +NUM_STEPS = 10 +# float32 tolerance: the old stack divides image features by sqrt(2048) inside +# transformers 5.3 and LeRobot 0.5.1 multiplies them back; 5.4+ skips both, +# and language scaling moved into GemmaTextScaledWordEmbedding. Equal maths, +# different rounding, so allow a few float32 ulps at these magnitudes. +RTOL = 1e-5 +ATOL = 1e-5 + + +def _modules(family): + if family == "pi0": + from lerobot.policies.pi0 import modeling_pi0 as module + + return module, module.PI0Pytorch, module.PI0Config + from lerobot.policies.pi05 import modeling_pi05 as module + + return module, module.PI05Pytorch, module.PI05Config + + +def build(family): + import torch + from unittest.mock import patch + + torch.set_num_threads(1) + torch.manual_seed(123) + module, cls, config_cls = _modules(family) + original_pali = module.PaliGemmaForConditionalGenerationWithPiGemma + original_expert = module.PiGemmaForCausalLM + + def tiny_pali(config): + config.text_config.vocab_size = 64 + config.vision_config.hidden_size = 32 + config.vision_config.intermediate_size = 64 + config.vision_config.num_hidden_layers = 2 + config.vision_config.num_attention_heads = 4 + config.vision_config.patch_size = 4 + config.vision_config.projection_dim = 32 + return original_pali(config=config) + + def tiny_expert(config): + config.vocab_size = 64 + return original_expert(config=config) + + config = config_cls( + device="cpu", + dtype="float32", + image_resolution=(16, 16), + max_action_dim=4, + max_state_dim=4, + chunk_size=3, + n_action_steps=3, + compile_model=False, + ) + with ( + patch.object( + module, "get_gemma_config", return_value=module.GemmaConfig(32, 2, 64, 8, 1, 4) + ), + patch.object(module, "PaliGemmaForConditionalGenerationWithPiGemma", tiny_pali), + patch.object(module, "PiGemmaForCausalLM", tiny_expert), + ): + model = cls(config).eval() + return model + + +def make_inputs(): + import torch + + g = torch.Generator().manual_seed(7) + # Images in [-1, 1] like LeRobot's preprocessed SigLIP input. + return { + "img0": torch.rand(2, 3, 16, 16, generator=g) * 2 - 1, + "img1": torch.rand(2, 3, 16, 16, generator=g) * 2 - 1, + "img2": torch.rand(2, 3, 16, 16, generator=g) * 2 - 1, + "imask0": torch.tensor([True, True]), + "imask1": torch.tensor([True, False]), + "imask2": torch.tensor([False, True]), + "tokens": torch.randint(0, 64, (2, 4), generator=g), + "lmask": torch.tensor([[True, True, False, False], [True, True, True, False]]), + "state": torch.randn(2, 4, generator=g), + "noise": torch.randn(2, 3, 4, generator=g), + "actions": torch.randn(2, 3, 4, generator=g), + "time": torch.tensor([0.7, 0.3]), + } + + +def _obs(family, x): + obs = [ + [x["img0"], x["img1"], x["img2"]], + [x["imask0"], x["imask1"], x["imask2"]], + x["tokens"], + x["lmask"], + ] + return obs + ([x["state"]] if family == "pi0" else []) + + +def outputs(family, model, x): + """Native outputs, then Tether's patched export forward (installs patches).""" + import copy + + import torch + + obs = _obs(family, x) + native = copy.deepcopy(model) + out = {} + with torch.no_grad(): + prefix, pad, _ = native.embed_prefix(*obs[:4]) + out["prefix_embs"] = prefix + out["prefix_pad"] = pad.to(torch.int64) + out["loss"] = native(*obs, x["actions"], x["noise"], x["time"]) + out["actions_1"] = native.sample_actions(*obs, noise=x["noise"].clone(), num_steps=1) + out["actions_10"] = native.sample_actions( + *obs, noise=x["noise"].clone(), num_steps=NUM_STEPS + ) + from tether.exporters import monolithic + + monolithic.apply_export_patches() + if family == "pi05": + monolithic._apply_pi05_denoise_step_patch() + out["patched_actions_10"] = model.sample_actions( + *obs, noise=x["noise"].clone(), num_steps=NUM_STEPS + ) + return out + + +def capture(family, path): + import importlib.metadata as md + + import torch + + model = build(family) + x = make_inputs() + state = {k: v.clone().contiguous() for k, v in model.state_dict().items()} + out = outputs(family, model, x) + meta = {p: md.version(p) for p in ("lerobot", "transformers", "torch")} + torch.save({"state_dict": state, "inputs": x, "outputs": out, "meta": meta}, path) + print(family, "captured", meta) + + +def _load(family, path): + import torch + + golden = torch.load(path, weights_only=True) + model = build(family) + missing, unexpected = model.load_state_dict(golden["state_dict"], strict=False) + # Tied lm_head weights may be keyed differently across versions; anything + # else missing means the architectures diverged and must fail loudly. + assert not unexpected, unexpected + assert all("lm_head" in k for k in missing), missing + return golden, model + + +def _report(name, actual, expected): + import torch + + diff = (actual.double() - expected.double()).abs() + cos = torch.nn.functional.cosine_similarity( + actual.double().flatten(), expected.double().flatten(), dim=0 + ) + scale = actual.double().norm() / expected.double().norm() + print( + f"{name}: max_abs={diff.max().item():.3e} mean_abs={diff.mean().item():.3e} " + f"cos={cos.item():.9f} norm_ratio={scale.item():.6f}" + ) + + +def compare(family, path): + import torch + + golden, model = _load(family, path) + out = outputs(family, model, golden["inputs"]) + failures = [] + for name, expected in golden["outputs"].items(): + actual = out[name] + if actual.dtype.is_floating_point: + _report(name, actual, expected) + try: + torch.testing.assert_close(actual, expected, rtol=RTOL, atol=ATOL) + except AssertionError as exc: + failures.append(f"{name}: {exc}") + print("golden from", golden["meta"]) + assert not failures, "\n".join(failures) + print(family, "golden parity passed") + + +def export(family, path, out_dir): + """Real monolithic toolchain (onnx-diagnostic patches, torch.export, + torch.onnx.export, Where-dtype fix) on the tiny model, run in ONNX Runtime + and compared with the OLD-stack golden. Mirrors export_{pi0,pi05}_monolithic + minus checkpoint loading and tokenizer probing; B=1 like the exporter.""" + from pathlib import Path + + import numpy as np + import onnxruntime as ort + import torch + from onnx_diagnostic.torch_export_patches import torch_export_patches + + from tether.exporters import monolithic + + golden, model = _load(family, path) + x = golden["inputs"] + monolithic.apply_export_patches() + if family == "pi05": + monolithic._apply_pi05_denoise_step_patch() + monolithic._force_eager_attn(model) + + class Wrapper(torch.nn.Module): + def __init__(self): + super().__init__() + self.model = model + + def forward(self, i0, i1, i2, m0, m1, m2, tokens, lmask, *rest): + kwargs = {"noise": rest[-1], "num_steps": NUM_STEPS} + args = [[i0, i1, i2], [m0, m1, m2], tokens, lmask, *rest[:-1]] + return self.model.sample_actions(*args, **kwargs) + + names = ["img0", "img1", "img2", "imask0", "imask1", "imask2", "tokens", "lmask"] + names += (["state"] if family == "pi0" else []) + ["noise"] + # Row 0 of the golden batch: all three cameras present for row 0 except + # camera 2; B=1 matches the production exporter's trace shape. + feed = {n: x[n][:1].clone() for n in names} + out_dir = Path(out_dir) + out_dir.mkdir(parents=True, exist_ok=True) + onnx_path = out_dir / "model.onnx" + wrapper = Wrapper().eval() + with torch_export_patches(patch_transformers=True): + ep = torch.export.export(wrapper, tuple(feed.values()), dynamic_shapes=None, strict=False) + torch.onnx.export( + ep, + tuple(feed.values()), + str(onnx_path), + input_names=names, + output_names=["actions"], + opset_version=19, + ) + monolithic._fix_onnx_where_dtype_mismatches(onnx_path) + session = ort.InferenceSession(str(onnx_path), providers=["CPUExecutionProvider"]) + (actions,) = session.run(None, {n: v.numpy() for n, v in feed.items()}) + actual = torch.from_numpy(np.asarray(actions)) + expected = golden["outputs"]["actions_10"][:1] + _report("onnx_actions_10", actual, expected) + torch.testing.assert_close(actual, expected, rtol=1e-4, atol=1e-4) + print(family, "onnx export golden parity passed") + + +if __name__ == "__main__": + mode, family = sys.argv[1], sys.argv[2] + {"capture": capture, "compare": compare, "export": export}[mode](family, *sys.argv[3:]) diff --git a/tests/fixtures/lerobot_pi_golden/SHA256SUMS b/tests/fixtures/lerobot_pi_golden/SHA256SUMS new file mode 100644 index 00000000..1ba19560 --- /dev/null +++ b/tests/fixtures/lerobot_pi_golden/SHA256SUMS @@ -0,0 +1,2 @@ +992d9f5cedcb8d13fbe7202f584f57267df6e08ac65bee0ee3dec7cc0986bde1 pi0.pt +3f57a88d0f220703a201581d8f1033f06aed7ba311b9e61f5ec9115a6ad69c3e pi05.pt diff --git a/tests/fixtures/lerobot_pi_golden/pi0.pt b/tests/fixtures/lerobot_pi_golden/pi0.pt new file mode 100644 index 0000000000000000000000000000000000000000..917821a4c40c01c20bbb2aee9bb2bf569943f710 GIT binary patch literal 327485 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ǶF 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↰P!S;e~zsV99H5@cU{G^;MH_mzOp< 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

;}K<_!>s35;BbT?wOw?JBj+CD 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 aG1$3EzP}S6hk`kYDqu!${Fzujx$Hlq{(+(Z literal 0 HcmV?d00001 diff --git a/tests/fixtures/lerobot_pi_golden/pi05.pt b/tests/fixtures/lerobot_pi_golden/pi05.pt new file mode 100644 index 0000000000000000000000000000000000000000..ebaceb3ed93a33cbdafc1dbabc83d4a38ee371f8 GIT binary patch literal 386805 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

WQ0+<78BC!X%q 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�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 z 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 literal 0 HcmV?d00001 diff --git a/tests/test_cli_export_end_to_end.py b/tests/test_cli_export_end_to_end.py index 73e09234..eb88717f 100644 --- a/tests/test_cli_export_end_to_end.py +++ b/tests/test_cli_export_end_to_end.py @@ -18,11 +18,14 @@ from __future__ import annotations import logging +import re import sys import types import pytest +from tether._lerobot_version import QUALIFIED_TRANSFORMERS_VERSION + def test_monolithic_module_importable(): """The module must be importable even without the [monolithic] extras @@ -91,7 +94,18 @@ def test_dep_check_catches_wrong_transformers(monkeypatch): import transformers monkeypatch.setattr(transformers, "__version__", "4.99.0") - with pytest.raises(ImportError, match="5.3.0"): + with pytest.raises(ImportError, match=re.escape(QUALIFIED_TRANSFORMERS_VERSION)): + monolithic._require_monolithic_deps() + + +def test_dep_check_refuses_transformers_53(monkeypatch): + """5.3.0 + LeRobot 0.6.1 mis-scales pi0/pi0.5 embeddings ~45x (GPU parity + cosine 0.47, Studio ADR 0003 correction 2026-10-12); the gate must refuse it.""" + from tether.exporters import monolithic + import transformers + + monkeypatch.setattr(transformers, "__version__", "5.3.0") + with pytest.raises(ImportError, match="mis-scaled"): monolithic._require_monolithic_deps() @@ -102,7 +116,7 @@ def test_dep_check_catches_wrong_lerobot(monkeypatch, lerobot_version): from tether.exporters import monolithic import transformers - monkeypatch.setattr(transformers, "__version__", "5.3.0") + monkeypatch.setattr(transformers, "__version__", QUALIFIED_TRANSFORMERS_VERSION) for mod_name in ("lerobot", "onnx_diagnostic", "onnxscript", "optree", "scipy"): monkeypatch.setitem(sys.modules, mod_name, types.ModuleType(mod_name)) diff --git a/tests/test_lerobot_pi_golden.py b/tests/test_lerobot_pi_golden.py new file mode 100644 index 00000000..cd4c99c4 --- /dev/null +++ b/tests/test_lerobot_pi_golden.py @@ -0,0 +1,73 @@ +"""pi0/pi0.5 against a golden captured on the pre-migration stack (see _lerobot_pi_golden.py). + +The fixture was captured with LeRobot 0.5.1 + transformers 5.3.0 + torch 2.7.1 +and Tether cdb94dc (the GPU-qualified stack before ADR 0003): + + PYTHONPATH=/src /bin/python \\ + tests/_lerobot_pi_golden.py capture {pi0,pi05} tests/fixtures/lerobot_pi_golden/{pi0,pi05}.pt +""" + +from __future__ import annotations + +import hashlib +import importlib.metadata +import importlib.util +import subprocess +import sys +from pathlib import Path + +import pytest + +HERE = Path(__file__).resolve().parent +FIXTURES = HERE / "fixtures" / "lerobot_pi_golden" +HELPER = HERE / "_lerobot_pi_golden.py" +FAMILIES = ["pi0", "pi05"] + + +def _require_lerobot_061(): + try: + version = importlib.metadata.version("lerobot") + except importlib.metadata.PackageNotFoundError: + pytest.skip("requires the LeRobot 0.6.1 native extra") + if version != "0.6.1": + pytest.skip("this golden check exercises LeRobot 0.6.1") + + +def _run(*args, timeout=600): + result = subprocess.run( + [sys.executable, str(HELPER), *args], capture_output=True, text=True, timeout=timeout + ) + assert result.returncode == 0, result.stdout + result.stderr + return result.stdout + + +def test_golden_fixture_provenance(): + torch = pytest.importorskip("torch") + sums = dict( + reversed(line.split()) for line in (FIXTURES / "SHA256SUMS").read_text().splitlines() + ) + for family in FAMILIES: + path = FIXTURES / f"{family}.pt" + assert hashlib.sha256(path.read_bytes()).hexdigest() == sums[path.name] + meta = torch.load(path, weights_only=True)["meta"] + assert meta == {"lerobot": "0.5.1", "transformers": "5.3.0", "torch": "2.7.1"} + + +@pytest.mark.parametrize("family", FAMILIES) +def test_native_and_patched_match_pre_migration_golden(family): + _require_lerobot_061() + out = _run("compare", family, str(FIXTURES / f"{family}.pt")) + assert f"{family} golden parity passed" in out + + +@pytest.mark.parametrize("family", FAMILIES) +def test_monolithic_onnx_export_matches_pre_migration_golden(family, tmp_path): + _require_lerobot_061() + torch = pytest.importorskip("torch") + if tuple(int(p) for p in torch.__version__.split(".")[:2]) < (2, 8): + pytest.skip("onnx-diagnostic export patches need torch>=2.8") + for module in ("onnx_diagnostic", "onnxruntime", "onnxscript"): + if importlib.util.find_spec(module) is None: + pytest.skip(f"requires the monolithic extra ({module})") + out = _run("export", family, str(FIXTURES / f"{family}.pt"), str(tmp_path), timeout=900) + assert f"{family} onnx export golden parity passed" in out diff --git a/tests/test_paligemma_backbone.py b/tests/test_paligemma_backbone.py index 31344857..7bf35768 100644 --- a/tests/test_paligemma_backbone.py +++ b/tests/test_paligemma_backbone.py @@ -215,3 +215,25 @@ def __init__(self): ) return _Stub() + + +@pytest.mark.parametrize("module_scale", [1.0, 8.0**0.5]) +def test_embed_text_openpi_is_independent_of_embedding_module_scaling(module_scale): + """transformers 5.3 Gemma embeds unscaled; 5.4+ GemmaTextScaledWordEmbedding + already multiplies by sqrt(hidden). openpi text = table lookup * sqrt(hidden) + either way, never sqrt(hidden) twice.""" + stub = _make_stub_paligemma(text_hidden=8, vocab_size=16) + table = stub.model.language_model.embed_tokens + + class Scaled(nn.Embedding): + def forward(self, ids): + return super().forward(ids) * module_scale + + scaled = Scaled(16, 8) + scaled.weight = table.weight + stub.model.language_model.embed_tokens = scaled + ids = torch.tensor([[1, 5, 15]]) + expected = table.weight[ids] * 8.0**0.5 + torch.testing.assert_close( + PaliGemmaBackbone(model=stub).embed_text_openpi(ids), expected, rtol=0, atol=0 + ) diff --git a/tests/test_pi05_vla.py b/tests/test_pi05_vla.py index 352ffffb..914e05a9 100644 --- a/tests/test_pi05_vla.py +++ b/tests/test_pi05_vla.py @@ -22,6 +22,7 @@ from tether.models.base_vla import BaseVLA from tether.models.heads import VLAHead from tether.models.llm import LLMBackbone +from tether.models.llm.paligemma_backbone import PaliGemmaBackbone from tether.models.vision import VisionBackbone from tether.models.vlas.pi05 import Pi05VLA from tether.registry.components import VLAS @@ -231,6 +232,8 @@ def forward(self, images): class _StubPaliGemmaForPi05(LLMBackbone, nn.Module): """Stub PaliGemma — exposes the attrs Pi05VLA.predict_action uses.""" + embed_text_openpi = PaliGemmaBackbone.embed_text_openpi + def __init__( self, text_hidden: int = 2048, diff --git a/tests/test_pi0_vla.py b/tests/test_pi0_vla.py index 71271c60..4cd83103 100644 --- a/tests/test_pi0_vla.py +++ b/tests/test_pi0_vla.py @@ -23,6 +23,7 @@ from tether.models.base_vla import BaseVLA from tether.models.heads import VLAHead from tether.models.llm import LLMBackbone +from tether.models.llm.paligemma_backbone import PaliGemmaBackbone from tether.models.projectors import Projector from tether.models.vision import VisionBackbone from tether.models.vlas.pi0 import Pi0VLA @@ -271,6 +272,8 @@ class _StubPaliGemmaForPi0(LLMBackbone, nn.Module): """Stub PaliGemma exposing the property accessors Pi0VLA.predict_action relies on. Returns past_key_values that look like a transformers Cache.""" + embed_text_openpi = PaliGemmaBackbone.embed_text_openpi + def __init__( self, text_hidden: int = 2048, From c93e852acf6669477448d7b1c22d528c01796231 Mon Sep 17 00:00:00 2001 From: RomirJ Date: Mon, 12 Oct 2026 17:49:32 -0700 Subject: [PATCH 8/8] Format two files the quality ratchet flagged as new debt ruff format on src/tether/finetune/resume.py and tests/test_finetune_local_dataset.py (lines added earlier on this branch). Co-Authored-By: Claude Opus 5.5 --- src/tether/finetune/resume.py | 10 +++++++++- tests/test_finetune_local_dataset.py | 4 +++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/tether/finetune/resume.py b/src/tether/finetune/resume.py index 0fe57165..6d981110 100644 --- a/src/tether/finetune/resume.py +++ b/src/tether/finetune/resume.py @@ -47,7 +47,15 @@ def resolve_resume_checkpoint(output_dir: Path) -> tuple[Path, Path]: except (OSError, ValueError) as exc: raise ResumeConfigurationError(f"resume train_config.json is unreadable: {config}") from exc if isinstance(saved, dict) and any( - key in saved for key in ("eval_freq", "use_rabc", "rabc_progress_path", "rabc_kappa", "rabc_epsilon", "rabc_head_mode") + key in saved + for key in ( + "eval_freq", + "use_rabc", + "rabc_progress_path", + "rabc_kappa", + "rabc_epsilon", + "rabc_head_mode", + ) ): raise ResumeConfigurationError( "cross-version-resume-unsupported: LeRobot 0.5.x training configs " diff --git a/tests/test_finetune_local_dataset.py b/tests/test_finetune_local_dataset.py index 186a8d4e..1a678224 100644 --- a/tests/test_finetune_local_dataset.py +++ b/tests/test_finetune_local_dataset.py @@ -784,5 +784,7 @@ def test_pinned_lerobot_sources_match_installed_qualified_runtime(): if dist.version != QUALIFIED_LEROBOT_VERSION: pytest.skip(f"lerobot {dist.version} is not the qualified {QUALIFIED_LEROBOT_VERSION}") pins = {**local_dataset.WRITER_FILES, **local_dataset.NORMALIZATION_FILES} - actual = {name: hashlib.sha256(Path(dist.locate_file(name)).read_bytes()).hexdigest() for name in pins} + actual = { + name: hashlib.sha256(Path(dist.locate_file(name)).read_bytes()).hexdigest() for name in pins + } assert actual == pins