Spaces:
Sleeping
Sleeping
Download scripts/train_gro.py from LostDecimal/alien-physics-openenv: direct link, hf CLI and curl.
- Browser
- Download file 2.57 kB
-
https://huggingface.co/spaces/LostDecimal/alien-physics-openenv/resolve/main/scripts/train_gro.py
- Command line
-
hf download hf://spaces/LostDecimal/alien-physics-openenv/scripts/train_gro.py
-
curl -L -o train_gro.py https://huggingface.co/spaces/LostDecimal/alien-physics-openenv/resolve/main/scripts/train_gro.py
2.57 kB
| """Group reward optimization entrypoint. | |
| Dry-run writes a reproducible manifest. Full mode runs a lightweight | |
| group-relative policy-gradient loop with Hugging Face Transformers/PyTorch. | |
| """ | |
| from __future__ import annotations | |
| import argparse | |
| try: | |
| from ontology_architect.config import load_config | |
| from ontology_architect.training import run_group_reward_optimization, write_gro_manifest | |
| except ImportError: # pragma: no cover | |
| from config import load_config | |
| from training import run_group_reward_optimization, write_gro_manifest | |
| def main() -> None: | |
| parser = argparse.ArgumentParser() | |
| parser.add_argument("--config", default="configs/tiny_smoke.json") | |
| parser.add_argument("--model-id", required=True) | |
| parser.add_argument("--output-dir", default=None) | |
| parser.add_argument("--group-size", type=int, default=None) | |
| parser.add_argument("--max-steps", type=int, default=None) | |
| parser.add_argument("--max-new-tokens", type=int, default=768) | |
| parser.add_argument("--learning-rate", type=float, default=1e-6) | |
| parser.add_argument("--checkpoint-steps", type=int, default=None) | |
| parser.add_argument("--dry-run", action="store_true") | |
| args = parser.parse_args() | |
| config = load_config(args.config) | |
| output_dir = args.output_dir or f"{config.training.output_dir}/gro" | |
| group_size = args.group_size or config.training.group_size | |
| max_steps = args.max_steps or config.training.max_steps | |
| checkpoint_steps = args.checkpoint_steps if args.checkpoint_steps is not None else config.training.checkpoint_steps | |
| if args.dry_run: | |
| manifest = write_gro_manifest( | |
| args.model_id, | |
| output_dir, | |
| group_size, | |
| max_steps, | |
| dry_run=True, | |
| checkpoint_steps=checkpoint_steps, | |
| ) | |
| print( | |
| f"validated GRO config: group_size={manifest['group_size']} " | |
| f"max_steps={manifest['max_steps']} checkpoint_steps={manifest['checkpoint_steps']}" | |
| ) | |
| return | |
| result = run_group_reward_optimization( | |
| args.model_id, | |
| config, | |
| output_dir, | |
| group_size, | |
| max_steps, | |
| max_new_tokens=args.max_new_tokens, | |
| learning_rate=args.learning_rate, | |
| checkpoint_steps=checkpoint_steps, | |
| ) | |
| write_gro_manifest( | |
| args.model_id, | |
| output_dir, | |
| group_size, | |
| max_steps, | |
| dry_run=False, | |
| checkpoint_steps=checkpoint_steps, | |
| ) | |
| print(f"saved GRO checkpoint to {result['output_dir']}") | |
| if __name__ == "__main__": | |
| main() | |