Skip to content

Conversation

@aryanrahar
Copy link

@aryanrahar aryanrahar commented Sep 12, 2025

This PR addresses #627 (Libero config bug) by ensuring quantile normalization is enabled for the LIBERO presets that use pi0-FAST. It is a minimal, non-duplicative change that modifies only the preset configuration to set:
base_config=DataConfig(prompt_from_task=True, use_quantile_norm=True)
for-
pi0_fast_libero
pi0_fast_libero_low_mem_finetune

Motivation & Context
pi0-FAST training/eval on LIBERO expects quantile normalization to be enabled for stable behavior. The previous preset definitions did not explicitly pass use_quantile_norm=True through the nested base_config=DataConfig(...), which could lead to runs where normalization is off. Making this explicit removes ambiguity and aligns the preset with the intended defaults.

What Changed (files & scope)
Edited: src/openpi/training/config.py
In both TrainConfig(...) blocks named pi0_fast_libero and pi0_fast_libero_low_mem_finetune, updated:
base_config=DataConfig(prompt_from_task=True, use_quantile_norm=True)

No other files touched. No duplicated code introduced. No behavior changes beyond enabling the expected normalization flag for these two presets.

with this PR-
uv run python - << 'PY'
from openpi.training import config as C
cfg = C.get_config("pi0_fast_libero")
print("use_quantile_norm =", getattr(getattr(cfg.data, "base_config", cfg.data), "use_quantile_norm", None))
PY
it prints use_quantile_norm = True

Checklist-
pre-commit run locally
ruff check / ruff format run locally (changed files)
Reproduction + verification steps included
References #627

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant