SeeYooLeo's picture
Point downloads and checkpoint links to renamed repository
785ae26 verified
|
Raw History Blame Contribute Delete
3.28 kB

Download, inference and evaluation

Download one checkpoint

pip install -U huggingface_hub
hf download SeeYooLeo/CIG-RoboCasa-Kitchen \
  --revision 4bdc391cb1dd6df8faa978e55aebf31e40c39da4 \
  --include "pi05-cig/*" --local-dir weights

Replace pi05-cig with pi05-baseline, oft-baseline or oft-cig as needed. Keep the bundled normalization statistics. Download complete folders; OFT also requires its action head, proprioceptive projector and tokenizer files.

Verify downloaded files without the code release

Run from the directory containing weights/. The following checks all locally present checkpoint folders and rejects incomplete or modified files within those folders:

python - <<'PY'
import hashlib
import json
from pathlib import Path
from huggingface_hub import hf_hub_download

manifest_path = hf_hub_download(
    "SeeYooLeo/CIG-RoboCasa-Kitchen", "weights_manifest.json",
    revision="4bdc391cb1dd6df8faa978e55aebf31e40c39da4",
)
manifest = json.loads(Path(manifest_path).read_text())
selected = {name for name in manifest["models"] if (Path("weights") / name).is_dir()}
if not selected:
    raise RuntimeError("Download a checkpoint under weights/ first.")
count = 0
for entry in manifest["files"]:
    path = Path(entry["path"])
    if path.parts[1] not in selected:
        continue
    digest = hashlib.sha256()
    with path.open("rb") as stream:
        for chunk in iter(lambda: stream.read(16 * 1024 * 1024), b""):
            digest.update(chunk)
    if path.stat().st_size != entry["size"] or digest.hexdigest() != entry["sha256"]:
        raise RuntimeError(f"Checksum mismatch: {path}")
    count += 1
print(f"Verified {count} files across {len(selected)} checkpoints")
PY

Start a policy server

These commands require the companion robocasa-kitchen code release, its installed model environments and the downloaded weights. Set ROOT to the absolute path of that release:

export ROOT=/absolute/path/to/robocasa-kitchen

For π0.5:

source "$ROOT/.venv-pi05/bin/activate"
cd "$ROOT/pi05"
JAX_PLATFORMS=cpu CUDA_VISIBLE_DEVICES=0 python scripts/serve.py \
  --checkpoint ../weights/pi05-cig --port 8000

For OFT:

source "$ROOT/.venv-oft/bin/activate"
cd "$ROOT/oft"
CUDA_VISIBLE_DEVICES=0 python serve.py \
  --checkpoint ../weights/oft-cig --port 8000

Choose one server per port. Substitute the baseline folder to evaluate the corresponding baseline. OFT LoRA updates are already merged; no additional adapter merge is needed.

Evaluate robocasa-kitchen

Install the pinned robocasa-kitchen v0.1 simulator and its assets using the companion release's installation guide. In another terminal, set the same ROOT, then run:

source "$ROOT/.venv-sim/bin/activate"
cd "$ROOT"
MUJOCO_GL=egl python evaluation/evaluate.py \
  --host 127.0.0.1 --port 8000 --task all --trials 50 --seed 42 \
  --replan-steps 5 --output results/pi05-cig.json

Use an output filename matching the selected checkpoint. A full run contains 1,200 episodes. For a quick connection check, use --task PnPCounterToCab --trials 1. The code release's evaluation guide specifies task horizons and held-out splits. Newly measured results can differ from the manuscript-reported table.