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
```bash
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:
```bash
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:
```bash
export ROOT=/absolute/path/to/robocasa-kitchen
```
For π0.5:
```bash
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:
```bash
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:
```bash
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.