gradlab 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- gradlab-0.1.0/.gitignore +70 -0
- gradlab-0.1.0/METRICS.md +344 -0
- gradlab-0.1.0/PKG-INFO +332 -0
- gradlab-0.1.0/README.md +287 -0
- gradlab-0.1.0/THIRD_PARTY_NOTICES.md +81 -0
- gradlab-0.1.0/experiments/goals/Breakout-Atari2600-v0/_goal.yaml +77 -0
- gradlab-0.1.0/experiments/goals/Breakout-Atari2600-v0/no-noop/_goal.yaml +14 -0
- gradlab-0.1.0/experiments/goals/Breakout-Atari2600-v0/no-noop/recipes/ppo.yaml +18 -0
- gradlab-0.1.0/experiments/goals/Breakout-Atari2600-v0/recipes/ppo-128x64.yaml +14 -0
- gradlab-0.1.0/experiments/goals/Breakout-Atari2600-v0/recipes/ppo-archive-curriculum.yaml +31 -0
- gradlab-0.1.0/experiments/goals/Breakout-Atari2600-v0/recipes/ppo-stable-updates.yaml +16 -0
- gradlab-0.1.0/experiments/goals/Breakout-Atari2600-v0/recipes/ppo.yaml +18 -0
- gradlab-0.1.0/experiments/goals/SuperMarioBros-Nes-v0/EndToEnd/_goal.yaml +45 -0
- gradlab-0.1.0/experiments/goals/SuperMarioBros-Nes-v0/EndToEnd/recipes/ppo.yaml +9 -0
- gradlab-0.1.0/experiments/goals/SuperMarioBros-Nes-v0/Level1-1/_goal.yaml +25 -0
- gradlab-0.1.0/experiments/goals/SuperMarioBros-Nes-v0/Level1-1/recipes/a2c.yaml +17 -0
- gradlab-0.1.0/experiments/goals/SuperMarioBros-Nes-v0/Level1-1/recipes/dstack-smoke.yaml +13 -0
- gradlab-0.1.0/experiments/goals/SuperMarioBros-Nes-v0/Level1-1/recipes/go-explore-jerk-20m.yaml +42 -0
- gradlab-0.1.0/experiments/goals/SuperMarioBros-Nes-v0/Level1-1/recipes/jerk.yaml +24 -0
- gradlab-0.1.0/experiments/goals/SuperMarioBros-Nes-v0/Level1-1/recipes/ppo.yaml +8 -0
- gradlab-0.1.0/experiments/goals/SuperMarioBros-Nes-v0/Level1-1-no-stall/_goal.yaml +10 -0
- gradlab-0.1.0/experiments/goals/SuperMarioBros-Nes-v0/Level1-1-no-stall/recipes/ppo.yaml +8 -0
- gradlab-0.1.0/experiments/goals/SuperMarioBros-Nes-v0/Level1-2/_goal.yaml +27 -0
- gradlab-0.1.0/experiments/goals/SuperMarioBros-Nes-v0/Level1-2/recipes/ppo.yaml +17 -0
- gradlab-0.1.0/experiments/goals/SuperMarioBros-Nes-v0/Level1-3/_goal.yaml +7 -0
- gradlab-0.1.0/experiments/goals/SuperMarioBros-Nes-v0/Level1-3/recipes/ppo-train-clear-100.yaml +22 -0
- gradlab-0.1.0/experiments/goals/SuperMarioBros-Nes-v0/Level1-3/recipes/ppo.yaml +8 -0
- gradlab-0.1.0/experiments/goals/SuperMarioBros-Nes-v0/Level1-4/_goal.yaml +7 -0
- gradlab-0.1.0/experiments/goals/SuperMarioBros-Nes-v0/Level1-4/recipes/ppo-l14-soft-update.yaml +16 -0
- gradlab-0.1.0/experiments/goals/SuperMarioBros-Nes-v0/Level2-1/_goal.yaml +7 -0
- gradlab-0.1.0/experiments/goals/SuperMarioBros-Nes-v0/Level2-1/recipes/ppo.yaml +8 -0
- gradlab-0.1.0/experiments/goals/SuperMarioBros-Nes-v0/Level2-2/_goal.yaml +7 -0
- gradlab-0.1.0/experiments/goals/SuperMarioBros-Nes-v0/Level2-2/recipes/ppo.yaml +8 -0
- gradlab-0.1.0/experiments/goals/SuperMarioBros-Nes-v0/Level2-3/_goal.yaml +7 -0
- gradlab-0.1.0/experiments/goals/SuperMarioBros-Nes-v0/Level2-3/recipes/ppo.yaml +8 -0
- gradlab-0.1.0/experiments/goals/SuperMarioBros-Nes-v0/Level2-4/_goal.yaml +7 -0
- gradlab-0.1.0/experiments/goals/SuperMarioBros-Nes-v0/Level2-4/recipes/ppo.yaml +8 -0
- gradlab-0.1.0/experiments/goals/SuperMarioBros-Nes-v0/Level3-1/_goal.yaml +7 -0
- gradlab-0.1.0/experiments/goals/SuperMarioBros-Nes-v0/Level3-1/recipes/ppo.yaml +8 -0
- gradlab-0.1.0/experiments/goals/SuperMarioBros-Nes-v0/Level3-2/_goal.yaml +7 -0
- gradlab-0.1.0/experiments/goals/SuperMarioBros-Nes-v0/Level3-2/recipes/ppo.yaml +8 -0
- gradlab-0.1.0/experiments/goals/SuperMarioBros-Nes-v0/Level3-3/_goal.yaml +7 -0
- gradlab-0.1.0/experiments/goals/SuperMarioBros-Nes-v0/Level3-3/recipes/ppo.yaml +8 -0
- gradlab-0.1.0/experiments/goals/SuperMarioBros-Nes-v0/Level3-4/_goal.yaml +7 -0
- gradlab-0.1.0/experiments/goals/SuperMarioBros-Nes-v0/Level3-4/recipes/ppo.yaml +8 -0
- gradlab-0.1.0/experiments/goals/SuperMarioBros-Nes-v0/Level4-1/_goal.yaml +7 -0
- gradlab-0.1.0/experiments/goals/SuperMarioBros-Nes-v0/Level4-1/recipes/ppo.yaml +8 -0
- gradlab-0.1.0/experiments/goals/SuperMarioBros-Nes-v0/Level4-2/_goal.yaml +7 -0
- gradlab-0.1.0/experiments/goals/SuperMarioBros-Nes-v0/Level4-2/recipes/ppo.yaml +8 -0
- gradlab-0.1.0/experiments/goals/SuperMarioBros-Nes-v0/Level4-3/_goal.yaml +7 -0
- gradlab-0.1.0/experiments/goals/SuperMarioBros-Nes-v0/Level4-3/recipes/ppo.yaml +8 -0
- gradlab-0.1.0/experiments/goals/SuperMarioBros-Nes-v0/Level4-4/_goal.yaml +7 -0
- gradlab-0.1.0/experiments/goals/SuperMarioBros-Nes-v0/Level4-4/recipes/ppo.yaml +8 -0
- gradlab-0.1.0/experiments/goals/SuperMarioBros-Nes-v0/Levels_1-1_1-2/_goal.yaml +124 -0
- gradlab-0.1.0/experiments/goals/SuperMarioBros-Nes-v0/Levels_1-1_1-2/recipes/ppo.yaml +8 -0
- gradlab-0.1.0/experiments/goals/SuperMarioBros-Nes-v0/Levels_1-1_1-2/recipes/raw-advantage.yaml +14 -0
- gradlab-0.1.0/experiments/goals/SuperMarioBros-Nes-v0/_goal-common.yaml +134 -0
- gradlab-0.1.0/experiments/goals/SuperMarioBros-Nes-v0/_reports.yaml +23 -0
- gradlab-0.1.0/experiments/goals/SuperMarioBros-Nes-v0/_reward-shapes-common.yaml +32 -0
- gradlab-0.1.0/experiments/goals/VizdoomBasic-v1/_goal.yaml +98 -0
- gradlab-0.1.0/experiments/goals/VizdoomBasic-v1/recipes/ppo.yaml +12 -0
- gradlab-0.1.0/experiments/goals/VizdoomDeadlyCorridor-v1/_goal.yaml +60 -0
- gradlab-0.1.0/experiments/goals/VizdoomDeadlyCorridor-v1/recipes/ppo.yaml +9 -0
- gradlab-0.1.0/experiments/goals/VizdoomDefendCenter-v1/_goal.yaml +55 -0
- gradlab-0.1.0/experiments/goals/VizdoomDefendCenter-v1/recipes/ppo.yaml +9 -0
- gradlab-0.1.0/experiments/goals/VizdoomDefendLine-v1/_goal.yaml +55 -0
- gradlab-0.1.0/experiments/goals/VizdoomDefendLine-v1/recipes/ppo.yaml +9 -0
- gradlab-0.1.0/experiments/goals/VizdoomHealthGathering-v1/_goal.yaml +46 -0
- gradlab-0.1.0/experiments/goals/VizdoomHealthGathering-v1/recipes/ppo.yaml +9 -0
- gradlab-0.1.0/experiments/goals/VizdoomHealthGatheringSupreme-v1/_goal.yaml +46 -0
- gradlab-0.1.0/experiments/goals/VizdoomHealthGatheringSupreme-v1/recipes/ppo.yaml +9 -0
- gradlab-0.1.0/experiments/goals/VizdoomMyWayHome-v1/_goal.yaml +42 -0
- gradlab-0.1.0/experiments/goals/VizdoomMyWayHome-v1/recipes/ppo.yaml +9 -0
- gradlab-0.1.0/experiments/goals/VizdoomPredictPosition-v1/_goal.yaml +42 -0
- gradlab-0.1.0/experiments/goals/VizdoomPredictPosition-v1/recipes/ppo.yaml +9 -0
- gradlab-0.1.0/experiments/goals/VizdoomTakeCover-v1/_goal.yaml +46 -0
- gradlab-0.1.0/experiments/goals/VizdoomTakeCover-v1/recipes/ppo.yaml +9 -0
- gradlab-0.1.0/experiments/goals/_catalog.yaml +29 -0
- gradlab-0.1.0/experiments/goals/_vizdoom-common.yaml +93 -0
- gradlab-0.1.0/experiments/goals/alepy__mspacman/_goal.yaml +90 -0
- gradlab-0.1.0/experiments/goals/alepy__mspacman/recipes/ppo.yaml +11 -0
- gradlab-0.1.0/experiments/goals/gradlab__bandit/_goal.yaml +65 -0
- gradlab-0.1.0/experiments/goals/gradlab__bandit/recipes/ppo.yaml +23 -0
- gradlab-0.1.0/experiments/recipes/_presets/atari-ppo.yaml +21 -0
- gradlab-0.1.0/experiments/recipes/_presets/mario-mixed-ppo.yaml +29 -0
- gradlab-0.1.0/experiments/recipes/_presets/mario-single-on-policy.yaml +18 -0
- gradlab-0.1.0/experiments/recipes/_presets/mario-single-ppo.yaml +14 -0
- gradlab-0.1.0/pyproject.toml +141 -0
- gradlab-0.1.0/src/gradlab/__init__.py +5 -0
- gradlab-0.1.0/src/gradlab/action_contract.py +340 -0
- gradlab-0.1.0/src/gradlab/artifacts.py +282 -0
- gradlab-0.1.0/src/gradlab/bandit_env.py +137 -0
- gradlab-0.1.0/src/gradlab/batch_runtime.py +1670 -0
- gradlab-0.1.0/src/gradlab/benchmark.py +416 -0
- gradlab-0.1.0/src/gradlab/benchmark_profiles.py +406 -0
- gradlab-0.1.0/src/gradlab/boundary_schema.py +53 -0
- gradlab-0.1.0/src/gradlab/callbacks.py +1119 -0
- gradlab-0.1.0/src/gradlab/checkpoint_acceptance.py +477 -0
- gradlab-0.1.0/src/gradlab/cli_args.py +26 -0
- gradlab-0.1.0/src/gradlab/clock.py +36 -0
- gradlab-0.1.0/src/gradlab/config_loader.py +545 -0
- gradlab-0.1.0/src/gradlab/config_validation.py +245 -0
- gradlab-0.1.0/src/gradlab/contract_versions.py +3 -0
- gradlab-0.1.0/src/gradlab/dataset_cli.py +212 -0
- gradlab-0.1.0/src/gradlab/dataset_contract.py +539 -0
- gradlab-0.1.0/src/gradlab/dataset_hub.py +434 -0
- gradlab-0.1.0/src/gradlab/dataset_media.py +393 -0
- gradlab-0.1.0/src/gradlab/dataset_minari.py +157 -0
- gradlab-0.1.0/src/gradlab/dataset_providers.py +361 -0
- gradlab-0.1.0/src/gradlab/dataset_record.py +1018 -0
- gradlab-0.1.0/src/gradlab/dataset_store.py +777 -0
- gradlab-0.1.0/src/gradlab/device.py +15 -0
- gradlab-0.1.0/src/gradlab/dotenv.py +24 -0
- gradlab-0.1.0/src/gradlab/dstack_backend.py +510 -0
- gradlab-0.1.0/src/gradlab/early_stop.py +669 -0
- gradlab-0.1.0/src/gradlab/env.py +645 -0
- gradlab-0.1.0/src/gradlab/env_cli.py +675 -0
- gradlab-0.1.0/src/gradlab/env_config.py +123 -0
- gradlab-0.1.0/src/gradlab/env_identity.py +481 -0
- gradlab-0.1.0/src/gradlab/env_metadata.py +208 -0
- gradlab-0.1.0/src/gradlab/env_providers.py +1040 -0
- gradlab-0.1.0/src/gradlab/env_registry.py +557 -0
- gradlab-0.1.0/src/gradlab/eval.py +298 -0
- gradlab-0.1.0/src/gradlab/eval_backend.py +25 -0
- gradlab-0.1.0/src/gradlab/eval_metrics.py +436 -0
- gradlab-0.1.0/src/gradlab/eval_runner.py +638 -0
- gradlab-0.1.0/src/gradlab/experiment_cli.py +1471 -0
- gradlab-0.1.0/src/gradlab/experiment_contracts.py +603 -0
- gradlab-0.1.0/src/gradlab/file_utils.py +59 -0
- gradlab-0.1.0/src/gradlab/go_explore.py +838 -0
- gradlab-0.1.0/src/gradlab/goal_schema.py +55 -0
- gradlab-0.1.0/src/gradlab/import_roms.py +22 -0
- gradlab-0.1.0/src/gradlab/jerk.py +501 -0
- gradlab-0.1.0/src/gradlab/json_utils.py +68 -0
- gradlab-0.1.0/src/gradlab/lifecycle_certification.py +1700 -0
- gradlab-0.1.0/src/gradlab/local_train.py +357 -0
- gradlab-0.1.0/src/gradlab/main.py +66 -0
- gradlab-0.1.0/src/gradlab/metric_names.py +468 -0
- gradlab-0.1.0/src/gradlab/metric_store.py +538 -0
- gradlab-0.1.0/src/gradlab/modal_app.py +73 -0
- gradlab-0.1.0/src/gradlab/modal_eval_backend.py +51 -0
- gradlab-0.1.0/src/gradlab/modal_eval_config.py +74 -0
- gradlab-0.1.0/src/gradlab/modal_eval_protocol.py +205 -0
- gradlab-0.1.0/src/gradlab/modal_eval_storage.py +37 -0
- gradlab-0.1.0/src/gradlab/modal_eval_worker.py +407 -0
- gradlab-0.1.0/src/gradlab/model_sources.py +467 -0
- gradlab-0.1.0/src/gradlab/operator_credentials.py +360 -0
- gradlab-0.1.0/src/gradlab/play.py +136 -0
- gradlab-0.1.0/src/gradlab/play_application.py +503 -0
- gradlab-0.1.0/src/gradlab/play_attribution.py +187 -0
- gradlab-0.1.0/src/gradlab/play_catalog.py +1642 -0
- gradlab-0.1.0/src/gradlab/play_debug.py +213 -0
- gradlab-0.1.0/src/gradlab/play_runtime.py +471 -0
- gradlab-0.1.0/src/gradlab/play_session.py +898 -0
- gradlab-0.1.0/src/gradlab/play_termination.py +88 -0
- gradlab-0.1.0/src/gradlab/play_web.py +2329 -0
- gradlab-0.1.0/src/gradlab/policy_bundle.py +1449 -0
- gradlab-0.1.0/src/gradlab/policy_models.py +137 -0
- gradlab-0.1.0/src/gradlab/policy_observation.py +117 -0
- gradlab-0.1.0/src/gradlab/policy_registry.py +88 -0
- gradlab-0.1.0/src/gradlab/policy_runtime.py +15 -0
- gradlab-0.1.0/src/gradlab/preprocessing.py +102 -0
- gradlab-0.1.0/src/gradlab/provider_config.py +69 -0
- gradlab-0.1.0/src/gradlab/publication.py +982 -0
- gradlab-0.1.0/src/gradlab/r2_store.py +556 -0
- gradlab-0.1.0/src/gradlab/ranking.py +78 -0
- gradlab-0.1.0/src/gradlab/recipe_catalog.py +154 -0
- gradlab-0.1.0/src/gradlab/recipe_documents.py +970 -0
- gradlab-0.1.0/src/gradlab/recipe_schema.py +170 -0
- gradlab-0.1.0/src/gradlab/recipe_variants.py +67 -0
- gradlab-0.1.0/src/gradlab/reward_programs.py +358 -0
- gradlab-0.1.0/src/gradlab/reward_transform.py +212 -0
- gradlab-0.1.0/src/gradlab/rom_assets.py +398 -0
- gradlab-0.1.0/src/gradlab/rom_cli.py +190 -0
- gradlab-0.1.0/src/gradlab/rom_runtime.py +93 -0
- gradlab-0.1.0/src/gradlab/run_authority.py +808 -0
- gradlab-0.1.0/src/gradlab/run_contracts.py +511 -0
- gradlab-0.1.0/src/gradlab/run_supervisor.py +2158 -0
- gradlab-0.1.0/src/gradlab/runtime_contract.py +96 -0
- gradlab-0.1.0/src/gradlab/runtime_refs.py +771 -0
- gradlab-0.1.0/src/gradlab/sb3_models.py +49 -0
- gradlab-0.1.0/src/gradlab/schedules.py +110 -0
- gradlab-0.1.0/src/gradlab/seeds.py +62 -0
- gradlab-0.1.0/src/gradlab/state_archive.py +1409 -0
- gradlab-0.1.0/src/gradlab/supervisor_ledger.py +431 -0
- gradlab-0.1.0/src/gradlab/supervisor_runtime.py +150 -0
- gradlab-0.1.0/src/gradlab/targets.py +78 -0
- gradlab-0.1.0/src/gradlab/task_advantage.py +72 -0
- gradlab-0.1.0/src/gradlab/task_kernels.py +2033 -0
- gradlab-0.1.0/src/gradlab/templates/model_card.md.j2 +97 -0
- gradlab-0.1.0/src/gradlab/train.py +182 -0
- gradlab-0.1.0/src/gradlab/train_config.py +969 -0
- gradlab-0.1.0/src/gradlab/training/__init__.py +1 -0
- gradlab-0.1.0/src/gradlab/training/go_explore.py +597 -0
- gradlab-0.1.0/src/gradlab/training/jerk.py +535 -0
- gradlab-0.1.0/src/gradlab/training/sb3.py +218 -0
- gradlab-0.1.0/src/gradlab/training/sb3_helpers.py +142 -0
- gradlab-0.1.0/src/gradlab/training/sb3_on_policy.py +456 -0
- gradlab-0.1.0/src/gradlab/training/sb3_vec_env.py +199 -0
- gradlab-0.1.0/src/gradlab/training_backend.py +213 -0
- gradlab-0.1.0/src/gradlab/trusted_inputs.py +426 -0
- gradlab-0.1.0/src/gradlab/turbo_api.py +164 -0
- gradlab-0.1.0/src/gradlab/validation.py +115 -0
- gradlab-0.1.0/src/gradlab/video.py +271 -0
- gradlab-0.1.0/src/gradlab/wandb_leaders.py +552 -0
- gradlab-0.1.0/src/gradlab/wandb_publisher.py +377 -0
- gradlab-0.1.0/src/gradlab/wandb_reports.py +1092 -0
- gradlab-0.1.0/src/gradlab/wandb_utils.py +126 -0
- gradlab-0.1.0/src/gradlab/web_player/app.js +1454 -0
- gradlab-0.1.0/src/gradlab/web_player/index.html +95 -0
- gradlab-0.1.0/src/gradlab/web_player/panels/README.md +58 -0
- gradlab-0.1.0/src/gradlab/web_player/panels/catalog.js +250 -0
- gradlab-0.1.0/src/gradlab/web_player/panels/controls.js +321 -0
- gradlab-0.1.0/src/gradlab/web_player/panels/events.js +56 -0
- gradlab-0.1.0/src/gradlab/web_player/panels/game.js +131 -0
- gradlab-0.1.0/src/gradlab/web_player/panels/manager.js +301 -0
- gradlab-0.1.0/src/gradlab/web_player/panels/observation.js +49 -0
- gradlab-0.1.0/src/gradlab/web_player/panels/raw.js +26 -0
- gradlab-0.1.0/src/gradlab/web_player/panels/runtime.js +193 -0
- gradlab-0.1.0/src/gradlab/web_player/panels/shared.js +280 -0
- gradlab-0.1.0/src/gradlab/web_player/panels/telemetry-panel.js +384 -0
- gradlab-0.1.0/src/gradlab/web_player/panels/telemetry.js +258 -0
- gradlab-0.1.0/src/gradlab/web_player/panels/workspace.js +180 -0
- gradlab-0.1.0/src/gradlab/web_player/sources/browser.js +1373 -0
- gradlab-0.1.0/src/gradlab/web_player/styles.css +837 -0
- gradlab-0.1.0/src/gradlab/web_player/tabler-chevron-down.svg +4 -0
- gradlab-0.1.0/src/gradlab/web_player/tabler-icons.svg +46 -0
- gradlab-0.1.0/src/gradlab/web_player/vendor/gridstack/gridstack-all.js +3 -0
- gradlab-0.1.0/src/gradlab/web_player/vendor/gridstack/gridstack.min.css +1 -0
gradlab-0.1.0/.gitignore
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# Python bytecode/caches
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
|
|
6
|
+
# Virtual environments and local package managers
|
|
7
|
+
.venv/
|
|
8
|
+
.venv*/
|
|
9
|
+
venv/
|
|
10
|
+
env/
|
|
11
|
+
.uv-cache/
|
|
12
|
+
node_modules/
|
|
13
|
+
|
|
14
|
+
# Python build artifacts
|
|
15
|
+
build/
|
|
16
|
+
dist/
|
|
17
|
+
*.egg-info/
|
|
18
|
+
.eggs/
|
|
19
|
+
|
|
20
|
+
# Test, type-checker, and lint caches
|
|
21
|
+
.pytest_cache/
|
|
22
|
+
.ruff_cache/
|
|
23
|
+
.mypy_cache/
|
|
24
|
+
.pyre/
|
|
25
|
+
.coverage
|
|
26
|
+
coverage.xml
|
|
27
|
+
htmlcov/
|
|
28
|
+
|
|
29
|
+
# Local config/secrets
|
|
30
|
+
.env
|
|
31
|
+
.env.*
|
|
32
|
+
!.env.example
|
|
33
|
+
|
|
34
|
+
# Matplotlib and notebook caches
|
|
35
|
+
.matplotlib/
|
|
36
|
+
.ipynb_checkpoints/
|
|
37
|
+
|
|
38
|
+
# Training outputs
|
|
39
|
+
runs/
|
|
40
|
+
logs/
|
|
41
|
+
models/
|
|
42
|
+
videos/
|
|
43
|
+
wandb/
|
|
44
|
+
experiments/goals/*/runs/
|
|
45
|
+
experiments/goals/*/logs/
|
|
46
|
+
experiments/goals/*/models/
|
|
47
|
+
experiments/goals/*/videos/
|
|
48
|
+
experiments/goals/*/wandb/
|
|
49
|
+
experiments/goals/*/artifacts/
|
|
50
|
+
|
|
51
|
+
# RL/model artifacts generated outside ignored run dirs
|
|
52
|
+
*.ckpt
|
|
53
|
+
*.onnx
|
|
54
|
+
*.pt
|
|
55
|
+
*.pth
|
|
56
|
+
*.npz
|
|
57
|
+
*.safetensors
|
|
58
|
+
*.tfevents.*
|
|
59
|
+
events.out.tfevents.*
|
|
60
|
+
|
|
61
|
+
# OS/editor noise
|
|
62
|
+
.DS_Store
|
|
63
|
+
.idea/
|
|
64
|
+
.vscode/
|
|
65
|
+
*.swp
|
|
66
|
+
*.swo
|
|
67
|
+
|
|
68
|
+
.secret/
|
|
69
|
+
|
|
70
|
+
artifacts/
|
gradlab-0.1.0/METRICS.md
ADDED
|
@@ -0,0 +1,344 @@
|
|
|
1
|
+
# Metrics schema v10
|
|
2
|
+
|
|
3
|
+
This file is the human contract for gradlab telemetry. The Python registry in
|
|
4
|
+
`src/gradlab/metric_names.py` is the executable source of truth. Every emitted metric must match an
|
|
5
|
+
exact registry entry or a bounded template.
|
|
6
|
+
|
|
7
|
+
## Surfaces and dimensions
|
|
8
|
+
|
|
9
|
+
- W&B is the authoritative scientific metric surface. One supervisor process inside the training
|
|
10
|
+
container is the only process allowed to open and write the logical W&B run.
|
|
11
|
+
- The learner writes structured events only to its embedded SQLite WAL outbox. It performs no
|
|
12
|
+
network I/O for metrics, checkpoint publication, or evaluation dispatch.
|
|
13
|
+
- Modal never receives W&B credentials. The supervisor validates Modal results and appends their
|
|
14
|
+
metrics to the same W&B run.
|
|
15
|
+
- SQLite and private-R2 JSONL metric segments are delivery and recovery transports, not competing
|
|
16
|
+
scientific metric stores. Verified terminal journals expire after seven days.
|
|
17
|
+
- Public model R2 contains immutable checkpoint closures and a mutable no-cache run index. Private
|
|
18
|
+
eval R2 contains intents, results, and episode evidence. Private control R2 contains leases,
|
|
19
|
+
journals, promotions, and terminal receipts.
|
|
20
|
+
- W&B config contains run-defining dimensions: `metrics_schema_version: 10`, `training_backend_id`,
|
|
21
|
+
`training_backend_config_hash`, `algorithm_id`, goal,
|
|
22
|
+
environment, starts, seed, frame skip, environment count, hyperparameters, eval protocol, and
|
|
23
|
+
runtime versions.
|
|
24
|
+
- `goal_contract_sha256` is the semantic SHA-256 of the fully composed, rendered, validated goal
|
|
25
|
+
contract. Generated goal reports use it with `goal_slug` to keep current-contract leaderboards
|
|
26
|
+
comparable; runs without the current fingerprint remain historical evidence only.
|
|
27
|
+
- Catalog-backed runs also record `effective_goal_contract_sha256`, `reward_program_kind`,
|
|
28
|
+
`reward_program_revision`, `reward_shape`, `reward_shape_sha256`, and
|
|
29
|
+
`reward_shape_is_default`. Reward-derived returns are comparable only when the selected reward
|
|
30
|
+
semantic identity and effective goal contract match; the readable key alone is not sufficient.
|
|
31
|
+
- `leader/checkpoint/*` contains diagnostic projections of the selected checkpoint. The
|
|
32
|
+
create-only private-R2 `PromotionReceipt` is the authoritative selection.
|
|
33
|
+
- Heavy model bytes, videos, replays, episode rows, diagnostics, and recovery payloads never go to
|
|
34
|
+
W&B.
|
|
35
|
+
- Interactive playback uses local descriptor keys such as `reward/shaped`, `policy/value`, and
|
|
36
|
+
`action/executed` to configure live panels. They are typed projections of one streamed transition
|
|
37
|
+
or its bounded in-browser history, are not emitted metrics, and must not be interpreted as aliases
|
|
38
|
+
for similarly named W&B registry entries. `reward/provider` is the provider output before the
|
|
39
|
+
task program and gradlab-owned reward transform; `reward/shaped` is the final policy-facing reward
|
|
40
|
+
after task shaping, scaling, and clipping. Playback computes realized return-to-go and `V(s) -
|
|
41
|
+
G(s)` only for a terminal, stochastic, policy-driven trajectory whose policy environment,
|
|
42
|
+
reward stream, discount, action sampling, and boundary/bootstrap semantics match training.
|
|
43
|
+
Otherwise those critic diagnostics are explicitly unavailable rather than numerically compared.
|
|
44
|
+
|
|
45
|
+
The active checkpoint protocol is `acceptance`; complete accepted evidence additionally emits the
|
|
46
|
+
`full` metric family. Dimension IDs must be unique and match `[A-Za-z0-9_.-]+`; unsafe IDs are
|
|
47
|
+
rejected rather than silently rewritten. Starts use the same readable ID in training and evaluation.
|
|
48
|
+
Provider `info` fields never become metrics automatically.
|
|
49
|
+
|
|
50
|
+
Configuration-selected internal learner feedback, such as an archive curriculum's per-start
|
|
51
|
+
priority statistic, is not telemetry merely because it has a readable name. Internal feedback
|
|
52
|
+
identifiers do not use metric paths and are not published to W&B unless a separately registered
|
|
53
|
+
metric explicitly projects them. If projected, the emitted name and semantics must appear in the
|
|
54
|
+
registry below. For SB3 PPO and A2C, archive-curriculum `priority_metric: value_error` specifically
|
|
55
|
+
means the arithmetic mean of `abs(A_t)` over one completed archive-origin trajectory, where `A_t`
|
|
56
|
+
is raw GAE before PPO minibatch normalization. That scalar updates the archive's cell-level EMA and
|
|
57
|
+
is intentionally not emitted; `train/curriculum/archive/feedback/trajectory/count` reports only how
|
|
58
|
+
many such trajectory updates were committed.
|
|
59
|
+
|
|
60
|
+
An episode metric is a **return**. `reward` is reserved for per-step shaping and component
|
|
61
|
+
attribution. Frame skip remains run config. W&B uses three explicit axes:
|
|
62
|
+
|
|
63
|
+
- `train/global_step`: policy environment transitions consumed by training.
|
|
64
|
+
- `eval/checkpoint_step`: step of the checkpoint represented by an evaluation row.
|
|
65
|
+
- `orchestration/event_seq`: durable supervisor delivery order.
|
|
66
|
+
|
|
67
|
+
Each axis is configured with a W&B `max` summary reducer. W&B's public API may therefore expose
|
|
68
|
+
its summary value as a reducer mapping such as `{"max": 5046272}` rather than as a bare number.
|
|
69
|
+
Catalog and report consumers must unwrap the configured reducer value; a recipe's requested
|
|
70
|
+
`timesteps` cap is not a substitute for the observed `train/global_step`.
|
|
71
|
+
|
|
72
|
+
Asynchronous evaluations may arrive after later training rows without changing their scientific
|
|
73
|
+
X-axis. Each producer writes only its applicable scientific axis; durable delivery order uses
|
|
74
|
+
`orchestration/event_seq`.
|
|
75
|
+
|
|
76
|
+
Purged legacy W&B and R2 state has no compatibility guarantee. Newly materialized runs declare
|
|
77
|
+
schema v10.
|
|
78
|
+
|
|
79
|
+
## Research interpretation
|
|
80
|
+
|
|
81
|
+
- Mario ranks checkpoints only after acceptance: earliest `leader/checkpoint/step`, then highest
|
|
82
|
+
`eval/full/episode/return/mean`. Breakout is training-only and ranks current-contract seeded recipe
|
|
83
|
+
cohorts using `train/episode/return/shaped/from/target/mean`, which excludes archive-curriculum
|
|
84
|
+
origins and non-episode control boundaries; tied cohorts prefer fewer policy transitions.
|
|
85
|
+
- Aggregate training `current/rate/*` is cumulative. Aggregate `window_100/rate/*` is the latest
|
|
86
|
+
100 attempts. Global
|
|
87
|
+
window-100 min/mean appear only after every configured start has 100 attempts. Always pair early
|
|
88
|
+
current aggregates with `start_coverage/rate`.
|
|
89
|
+
- A bounded training-only search may use per-start success counts and the history peak and first
|
|
90
|
+
threshold crossing of `train/outcome/success/window_100/rate/min` to screen and rank recipes.
|
|
91
|
+
That evidence is not checkpoint evaluation and cannot establish checkpoint promotion, goal
|
|
92
|
+
acceptance, or release evidence.
|
|
93
|
+
- Failure reasons may overlap, so reason counts and rates need not sum to the terminal count.
|
|
94
|
+
Successful episodes contribute to success metrics, not the failure-reason families.
|
|
95
|
+
- Positive PPO policy entropy, dominant-action rate, and the action histogram diagnose discrete
|
|
96
|
+
policy collapse. Value prediction and advantage histograms are sampled every 64 rollouts.
|
|
97
|
+
- For reward-transform ablations, first compare `train/reward/raw/*` with
|
|
98
|
+
`train/reward/shaped/*`. `task.reward.reward_scale` is a positive divisor, so a value below one
|
|
99
|
+
amplifies the policy-facing reward. If raw rewards match but shaped magnitudes diverge, inspect
|
|
100
|
+
value loss and explained variance before policy entropy, dominant-action rate, KL, and clip
|
|
101
|
+
fraction: squared-error value loss can grow roughly with the square of the target scale, while
|
|
102
|
+
advantage normalization does not protect the critic from poorly conditioned targets.
|
|
103
|
+
- Do not compare shaped episode-return or value magnitudes as policy quality across different reward
|
|
104
|
+
transforms. Use task success and acceptance-evaluation metrics for the outcome comparison; use
|
|
105
|
+
reward, critic, and policy metrics to locate the causal chain.
|
|
106
|
+
- Snapshot-curriculum `sampling/probability/max` and `sampling/effective_cell/count` summarize the
|
|
107
|
+
current cell-probability distribution. They do not report realized per-cell selection frequency
|
|
108
|
+
or identify which resident cells were selected.
|
|
109
|
+
- Derived throughput phase timing satisfies `loop wall time = env_step_seconds +
|
|
110
|
+
rollout_overhead_seconds + between_rollouts_seconds`. Compare those three phase durations on
|
|
111
|
+
matching workloads to identify a training-loop bottleneck. `rollout_overhead_seconds` includes
|
|
112
|
+
policy inference plus wrapper, buffer, reset, task, and callback work outside the native provider.
|
|
113
|
+
`between_rollouts_seconds` includes optimizer updates, callbacks, and logging, so it is deliberately
|
|
114
|
+
not named optimization time.
|
|
115
|
+
- Reward components are emitted only when active. Each component has mean, nonzero rate, and share;
|
|
116
|
+
raw reward appears only when it differs from shaped reward. Mario's `progress` component includes
|
|
117
|
+
both its base new-progress reward and any configured additional new-progress reward above
|
|
118
|
+
`progress_reward_boost_start_x`.
|
|
119
|
+
- Episode-return means are neither a best-episode metric nor the score of a currently visible lane:
|
|
120
|
+
they reduce the latest 100 completed episodes across all applicable vector lanes. W&B chart
|
|
121
|
+
smoothing, when enabled, is applied on top of that already-rolling value. Under the root Breakout
|
|
122
|
+
contract (`reward_mode: native`, unclipped), shaped episode return is the sum of Atari row-score
|
|
123
|
+
deltas, so individual 400-plus games can coexist with a much lower mean when other lanes finish
|
|
124
|
+
with lower scores.
|
|
125
|
+
- Episode returns, success rates, failure reasons, policy entropy, and optimizer diagnostics
|
|
126
|
+
describe performance or mechanism; no one of them should be treated as a generic stall-stop
|
|
127
|
+
signal. A configured plateau condition may watch any registered numeric training metric, with
|
|
128
|
+
direction, minimum meaningful improvement, warmup, and patience owned by the goal or recipe.
|
|
129
|
+
`train/early_stop/{condition}/*` projects that condition's local state for diagnosis and shadow
|
|
130
|
+
calibration. It means only that the selected metric has not improved under the declared
|
|
131
|
+
condition, not that the task is impossible or that a checkpoint is accepted. Private control-R2
|
|
132
|
+
receipts, never W&B diagnostics, are authoritative for an active early-stop outcome.
|
|
133
|
+
|
|
134
|
+
## Full-evaluation table
|
|
135
|
+
|
|
136
|
+
`eval/full/by_start` has one row per start and observed failure reason with these columns:
|
|
137
|
+
|
|
138
|
+
`checkpoint_step`, `start_id`, `episodes`, `success_count`, `success_rate`, `return_mean`,
|
|
139
|
+
`return_std`, `return_median`, `reason`, `reason_count`, `reason_rate`.
|
|
140
|
+
The reason value is empty, with zero count and rate, when a start has no recorded failure reason.
|
|
141
|
+
|
|
142
|
+
Episode-level evidence stays in R2. Confidence intervals and start-by-reason scalar products
|
|
143
|
+
are intentionally computed offline rather than added to W&B history.
|
|
144
|
+
|
|
145
|
+
An acceptance rejection is complete evidence of failure, but not a complete 100-episode
|
|
146
|
+
evaluation. W&B history always receives `eval/checkpoint_step`, pass, planned/completed episodes, and
|
|
147
|
+
acceptance duration. It receives no partial `eval/full/*` result. Accepted projections additionally
|
|
148
|
+
include variable return, length, progress, episode count, artifact, source, and `eval/full/by_start`.
|
|
149
|
+
Constant acceptance success rates, per-start success scalars, failure-reason scalars, duplicate full
|
|
150
|
+
duration, and constant leader-success fields remain in private-R2 evidence but are suppressed from
|
|
151
|
+
acceptance W&B history.
|
|
152
|
+
|
|
153
|
+
`eval/acceptance/pass` is per-checkpoint history. W&B summarizes that history with `max`, so the
|
|
154
|
+
summary means that some checkpoint passed; it is not the run verdict. The authoritative verdict is
|
|
155
|
+
the create-only private-R2 `PromotionReceipt`, whose selected result is hash-bound to the complete
|
|
156
|
+
acceptance evidence. At terminal publication, that receipt restamps `gradlab/goal/outcome`, the diagnostic
|
|
157
|
+
`leader/checkpoint/*` fields, and the accepted W&B projection. Later rejected checkpoint projections
|
|
158
|
+
remain in history and never modify the active projection. Raw acceptance aggregates and episode
|
|
159
|
+
evidence remain authoritative in private eval R2.
|
|
160
|
+
|
|
161
|
+
## Delivery, backpressure, and recovery
|
|
162
|
+
|
|
163
|
+
Every event has a stable content-derived event ID. Delivery to W&B is at least once; the durable
|
|
164
|
+
`orchestration/event_seq` is also W&B's internal step, so replay after an interrupted local
|
|
165
|
+
acknowledgement cannot append a second scientific point. Reports and summary projection retain the
|
|
166
|
+
event ID for explicit deduplication. Promotion, terminal state, and early-stop authority are exactly
|
|
167
|
+
once through conditional private-R2 receipts.
|
|
168
|
+
|
|
169
|
+
The supervisor seals immutable metric-journal segments to private R2 every five seconds or 1,000
|
|
170
|
+
events and batches pending frames to W&B. A retry reconstructs its local SQLite state from those
|
|
171
|
+
segments before producing new events. It resumes the same W&B run with `resume="must"`.
|
|
172
|
+
|
|
173
|
+
Backpressure is sampled every 15 seconds. The supervisor reports queue depth, oldest unpublished
|
|
174
|
+
age, ingress and publish rates, observed publication-capacity ratio, local/R2/W&B high-water marks,
|
|
175
|
+
remote-visible W&B lag, checkpoint backlog, pending evals, scratch utilization, accepted-result to
|
|
176
|
+
stop latency, and post-learner idle-GPU tail. Publication capacity is healthy only when measured
|
|
177
|
+
publish capacity is at least twice peak ingress.
|
|
178
|
+
|
|
179
|
+
Unpublished W&B age warns at 45 seconds and is unhealthy at 60 seconds. Terminal W&B drain has a
|
|
180
|
+
300-second deadline. If neither W&B nor private R2 can preserve pending metrics, or task scratch
|
|
181
|
+
usage reaches 80%, the supervisor requests a safe learner stop and emits a resumable failure rather
|
|
182
|
+
than discarding evidence.
|
|
183
|
+
|
|
184
|
+
A logical run succeeds only when its private-R2 `TerminalReceipt` proves complete checkpoint and
|
|
185
|
+
evaluation inventories, a promotion, the W&B high-water mark, and a complete drain. dstack process
|
|
186
|
+
exit alone is never scientific success.
|
|
187
|
+
|
|
188
|
+
## Registry
|
|
189
|
+
|
|
190
|
+
<!-- METRIC_REGISTRY_START -->
|
|
191
|
+
| Metric or template | Meaning | Unit | Cadence | Surface |
|
|
192
|
+
|---|---|---|---|---|
|
|
193
|
+
| `train/episode/return/shaped/mean` | Rolling mean shaped return over the latest 100 genuine completed training episodes across target and archive origins; a archive-origin return starts at restoration, and control boundaries are excluded. | scalar | rollout | history |
|
|
194
|
+
| `train/episode/length/mean` | Rolling mean length over the latest 100 completed training episodes. | steps | rollout | history |
|
|
195
|
+
| `train/outcome/terminal/count` | Cumulative terminal episode records. | episodes | rollout | history |
|
|
196
|
+
| `train/outcome/reason/{reason}/count` | Cumulative failed episodes containing a reason. | episodes | rollout | history |
|
|
197
|
+
| `train/outcome/reason/{reason}/rate/window_100` | Failure-reason incidence over the latest 100 terminal episodes. | fraction | rollout | history |
|
|
198
|
+
| `train/outcome/success/from/{start}/count` | Cumulative successful genuine target-origin episodes from a start; archive-origin episodes are excluded. | episodes | rollout | history |
|
|
199
|
+
| `train/outcome/success/from/{start}/attempts` | Cumulative genuine target-origin episode attempts from a start; archive-origin episodes are excluded. | episodes | rollout | history |
|
|
200
|
+
| `train/outcome/success/from/{start}/rate/window_100` | Success rate over the latest 100 genuine target-origin attempts from a start. | fraction | rollout | history |
|
|
201
|
+
| `train/outcome/success/current/rate/min` | Minimum cumulative target-origin success rate across observed starts. | fraction | rollout | history |
|
|
202
|
+
| `train/outcome/success/current/rate/mean` | Mean cumulative target-origin success rate across observed starts. | fraction | rollout | history |
|
|
203
|
+
| `train/outcome/success/window_100/rate/min` | Minimum target-origin window-100 success rate after every start has 100 genuine target-origin attempts. | fraction | rollout | history |
|
|
204
|
+
| `train/outcome/success/window_100/rate/mean` | Mean target-origin window-100 success rate after every start has 100 genuine target-origin attempts. | fraction | rollout | history |
|
|
205
|
+
| `train/outcome/success/start_coverage/rate` | Configured starts with a genuine target-origin attempt divided by configured starts. | fraction | rollout | history |
|
|
206
|
+
| `train/early_stop/{condition}/value` | Current finite value consumed by a configured metric early-stop condition. | scalar | watched metric sample | history |
|
|
207
|
+
| `train/early_stop/{condition}/best` | Best value retained by a configured metric early-stop condition. | scalar | watched metric sample | history |
|
|
208
|
+
| `train/early_stop/{condition}/patience/elapsed_steps` | Policy steps elapsed in the condition's current patience interval. | steps | watched metric sample | history |
|
|
209
|
+
| `train/early_stop/{condition}/patience/progress` | Condition patience progress capped at one; one means the condition would trigger. | fraction | watched metric sample | history |
|
|
210
|
+
| `train/early_stop/{condition}/would_trigger` | Whether the configured condition would trigger at this sample, regardless of observe or stop action. | boolean | watched metric sample | history |
|
|
211
|
+
| `train/reward/shaped/mean` | Distribution of learner-facing per-step reward after gradlab applies the task reward scale and then clipping. | scalar | rollout | history |
|
|
212
|
+
| `train/reward/shaped/std` | Distribution of learner-facing per-step reward after gradlab applies the task reward scale and then clipping. | scalar | rollout | history |
|
|
213
|
+
| `train/reward/shaped/min` | Distribution of learner-facing per-step reward after gradlab applies the task reward scale and then clipping. | scalar | rollout | history |
|
|
214
|
+
| `train/reward/shaped/max` | Distribution of learner-facing per-step reward after gradlab applies the task reward scale and then clipping. | scalar | rollout | history |
|
|
215
|
+
| `train/reward/shaped/nonzero_rate` | Distribution of learner-facing per-step reward after gradlab applies the task reward scale and then clipping. | scalar | rollout | history |
|
|
216
|
+
| `train/reward/raw/mean` | Distribution of completed task reward immediately before gradlab-owned scaling and clipping, emitted when distinct from shaped reward. For an identity task this is the untransformed provider reward. | scalar | rollout | history |
|
|
217
|
+
| `train/reward/raw/std` | Distribution of completed task reward immediately before gradlab-owned scaling and clipping, emitted when distinct from shaped reward. For an identity task this is the untransformed provider reward. | scalar | rollout | history |
|
|
218
|
+
| `train/reward/component/{component}/mean` | Active reward-component attribution in pre-transform task-reward units. | scalar | rollout | history |
|
|
219
|
+
| `train/reward/component/{component}/nonzero_rate` | Active reward-component attribution in pre-transform task-reward units. | scalar | rollout | history |
|
|
220
|
+
| `train/reward/component/{component}/share` | Absolute contribution share computed from components in pre-transform task-reward units. | scalar | rollout | history |
|
|
221
|
+
| `train/reward/signal/{signal}/mean` | Configured reward-source signal. | scalar | rollout | history |
|
|
222
|
+
| `train/reward/signal/{signal}/max` | Configured reward-source signal. | scalar | rollout | history |
|
|
223
|
+
| `train/reward/signal/{signal}/nonzero_rate` | Configured reward-source signal. | scalar | rollout | history |
|
|
224
|
+
| `train/algorithm/ppo/update/approx_kl` | Approximate KL divergence for the PPO update. | scalar | rollout | history |
|
|
225
|
+
| `train/algorithm/ppo/update/clip_fraction` | Fraction of policy ratios clipped by PPO. | scalar | rollout | history |
|
|
226
|
+
| `train/algorithm/jerk/retained/count` | Distinct action sequences retained by JERK search. | sequences | rollout | history |
|
|
227
|
+
| `train/algorithm/jerk/best/return_mean` | Mean observed return of JERK's highest-ranked retained sequence. | return | rollout | history |
|
|
228
|
+
| `train/algorithm/jerk/best/sequence_length` | Action length of JERK's highest-ranked retained sequence. | steps | rollout | history |
|
|
229
|
+
| `train/algorithm/jerk/archive/selected_prefix_return_mean` | Cumulative mean retained-prefix return selected for JERK archive replay. | return | rollout | history |
|
|
230
|
+
| `train/algorithm/jerk/exploit/probability` | Probability that JERK starts an episode by sampling a retained archive sequence. | fraction | rollout | history |
|
|
231
|
+
| `train/algorithm/go_explore/archive/cell_count` | Semantic cells currently retained by Go-Explore. | cells | interval | history |
|
|
232
|
+
| `train/algorithm/go_explore/archive/entry_count` | Immutable entries in the ephemeral working archive, including replacements not yet removed by periodic compaction. | entries | interval | history |
|
|
233
|
+
| `train/algorithm/go_explore/archive/blob_count` | Distinct content-addressed provider-state blobs retained by the search. | blobs | interval | history |
|
|
234
|
+
| `train/algorithm/go_explore/archive/blob_bytes` | Uncompressed bytes in distinct retained provider-state blobs. | bytes | interval | history |
|
|
235
|
+
| `train/algorithm/go_explore/archive/selection_count` | Cumulative archived-cell selections for restoration. | selections | interval | history |
|
|
236
|
+
| `train/algorithm/go_explore/archive/visit_count` | Cumulative semantic cell visits. | visits | interval | history |
|
|
237
|
+
| `train/algorithm/go_explore/archive/update_count` | Cumulative replacements of an existing cell by a better trajectory. | updates | interval | history |
|
|
238
|
+
| `train/algorithm/go_explore/archive/recent_new_cell_rate` | New semantic cells divided by visits in the bounded recent visit window. | fraction | interval | history |
|
|
239
|
+
| `train/algorithm/go_explore/archive/recent_visit_window` | Visit count represented by the recent new-cell-rate window. | visits | interval | history |
|
|
240
|
+
| `train/algorithm/go_explore/archive/visits_per_cell` | Cumulative visits divided by current cell count. | ratio | interval | history |
|
|
241
|
+
| `train/algorithm/go_explore/success_guided/cell_count` | Cells on the current best-success lineage. | cells | interval | history |
|
|
242
|
+
| `train/algorithm/go_explore/success_guided/selection_count` | Cumulative selections made by success-lineage guidance. | selections | interval | history |
|
|
243
|
+
| `train/algorithm/go_explore/best/progress` | Greatest task progress reached by the best retained trajectory. | progress | interval | history |
|
|
244
|
+
| `train/algorithm/go_explore/best/return` | Shaped return of the best retained trajectory. | return | interval | history |
|
|
245
|
+
| `train/algorithm/go_explore/best/program_steps` | Environment steps in the best retained JERK program. | steps | interval | history |
|
|
246
|
+
| `train/algorithm/go_explore/best/program_runs` | Canonical action runs in the best retained JERK program. | runs | interval | history |
|
|
247
|
+
| `train/algorithm/go_explore/best/completed` | Whether the best retained trajectory completed the task. | boolean | interval | history |
|
|
248
|
+
| `train/algorithm/go_explore/best/improvement_count` | Successful-trajectory improvements after the first completion. | improvements | interval | history |
|
|
249
|
+
| `train/algorithm/{algorithm}/value/explained_variance` | Actor-critic value-function explained variance. | scalar | rollout | history |
|
|
250
|
+
| `train/algorithm/{algorithm}/update/policy_gradient_loss` | Actor-critic policy-gradient loss. | scalar | rollout | history |
|
|
251
|
+
| `train/algorithm/{algorithm}/update/value_loss` | Actor-critic value loss. | scalar | rollout | history |
|
|
252
|
+
| `train/algorithm/{algorithm}/update/learning_rate` | Current actor-critic learning rate. | scalar | rollout | history |
|
|
253
|
+
| `train/algorithm/{algorithm}/policy/entropy` | Positive actor-critic policy entropy. | scalar | rollout | history |
|
|
254
|
+
| `train/algorithm/{algorithm}/policy/distribution_std` | Continuous-action distribution standard deviation. | scalar | rollout | history |
|
|
255
|
+
| `train/algorithm/{algorithm}/policy/dominant_action_rate` | Fraction assigned to the most frequent sampled discrete action. | scalar | rollout | history |
|
|
256
|
+
| `train/algorithm/{algorithm}/policy/action_hist` | Sampled discrete-action histogram. | histogram | every 64 rollouts | history |
|
|
257
|
+
| `train/algorithm/{algorithm}/rollout/value_prediction/mean` | Rollout value-prediction distribution diagnostic. | scalar | rollout | history |
|
|
258
|
+
| `train/algorithm/{algorithm}/rollout/value_prediction/std` | Rollout value-prediction distribution diagnostic. | scalar | rollout | history |
|
|
259
|
+
| `train/algorithm/{algorithm}/rollout/value_prediction/min` | Rollout value-prediction distribution diagnostic. | scalar | rollout | history |
|
|
260
|
+
| `train/algorithm/{algorithm}/rollout/value_prediction/max` | Rollout value-prediction distribution diagnostic. | scalar | rollout | history |
|
|
261
|
+
| `train/algorithm/{algorithm}/rollout/value_prediction/hist` | Rollout value-prediction histogram. | histogram | every 64 rollouts | history |
|
|
262
|
+
| `train/algorithm/{algorithm}/rollout/advantage/mean` | Rollout advantage distribution diagnostic. | scalar | rollout | history |
|
|
263
|
+
| `train/algorithm/{algorithm}/rollout/advantage/std` | Rollout advantage distribution diagnostic. | scalar | rollout | history |
|
|
264
|
+
| `train/algorithm/{algorithm}/rollout/advantage/min` | Rollout advantage distribution diagnostic. | scalar | rollout | history |
|
|
265
|
+
| `train/algorithm/{algorithm}/rollout/advantage/max` | Rollout advantage distribution diagnostic. | scalar | rollout | history |
|
|
266
|
+
| `train/algorithm/{algorithm}/rollout/advantage/hist` | Rollout advantage histogram. | histogram | every 64 rollouts | history |
|
|
267
|
+
| `train/algorithm/{algorithm}/hyperparameter/entropy_coefficient` | Current scheduled entropy coefficient. | scalar | rollout | history |
|
|
268
|
+
| `train/throughput/loop_fps` | Policy transitions divided by rollout-start-to-next-rollout-start wall time. | steps/second | rollout | history |
|
|
269
|
+
| `train/throughput/rollout_fps` | Policy transitions divided by rollout-collection wall time. | steps/second | rollout | history |
|
|
270
|
+
| `train/throughput/env_step_fps` | Policy transitions divided by native-provider step wall time accumulated during the rollout. | steps/second | rollout | history |
|
|
271
|
+
| `train/throughput/rollout_seconds` | Wall time spent collecting one rollout. | seconds | rollout | history |
|
|
272
|
+
| `train/throughput/env_step_seconds` | Native-provider step wall time accumulated while collecting one rollout. | seconds | rollout | history |
|
|
273
|
+
| `train/throughput/rollout_overhead_seconds` | Rollout wall time outside native-provider step calls, including policy inference and wrapper, buffer, reset, task, and callback work. | seconds | rollout | history |
|
|
274
|
+
| `train/throughput/between_rollouts_seconds` | Wall time after rollout collection and before the next rollout, including optimizer updates, callbacks, and logging. | seconds | rollout | history |
|
|
275
|
+
| `train/artifact/save/seconds` | Local model save duration. | seconds | artifact | history |
|
|
276
|
+
| `train/artifact/upload/seconds` | Public R2 checkpoint publication duration. | seconds | artifact | history |
|
|
277
|
+
| `eval/{protocol}/episode/return/mean` | Evaluation episode-return distribution accumulated from learner-facing rewards after gradlab-owned scaling and clipping. | return | evaluation | history |
|
|
278
|
+
| `eval/{protocol}/episode/return/std` | Evaluation episode-return distribution accumulated from learner-facing rewards after gradlab-owned scaling and clipping. | return | evaluation | history |
|
|
279
|
+
| `eval/{protocol}/episode/return/median` | Evaluation episode-return distribution accumulated from learner-facing rewards after gradlab-owned scaling and clipping. | return | evaluation | history |
|
|
280
|
+
| `eval/full/episode/return/best` | Best full-evaluation episode return accumulated after gradlab-owned scaling and clipping. | return | evaluation | history |
|
|
281
|
+
| `eval/{protocol}/episode/length/mean` | Mean evaluation episode length. | steps | evaluation | history |
|
|
282
|
+
| `eval/{protocol}/episode/count` | Evaluation episodes represented. | episodes | evaluation | history |
|
|
283
|
+
| `eval/{protocol}/outcome/success/from/{start}/rate` | Evaluation success rate from a start. | fraction | evaluation | history |
|
|
284
|
+
| `eval/{protocol}/outcome/success/rate/min` | Aggregate per-start evaluation success rate. | fraction | evaluation | history |
|
|
285
|
+
| `eval/{protocol}/outcome/success/rate/mean` | Aggregate per-start evaluation success rate. | fraction | evaluation | history |
|
|
286
|
+
| `eval/{protocol}/outcome/reason/{reason}/rate` | Evaluation failure-reason incidence. | fraction | evaluation | history |
|
|
287
|
+
| `eval/full/progress/{progress}/mean` | Goal-configured full-evaluation progress summary. | value | evaluation | history |
|
|
288
|
+
| `eval/full/progress/{progress}/max` | Goal-configured full-evaluation progress summary. | value | evaluation | history |
|
|
289
|
+
| `eval/{protocol}/checkpoint/artifact` | Evaluated checkpoint artifact reference. | metadata | evaluation | history |
|
|
290
|
+
| `eval/{protocol}/duration/seconds` | Evaluation wall duration. | seconds | evaluation | history |
|
|
291
|
+
| `eval/{protocol}/source` | Evaluation execution source. | text | evaluation | history |
|
|
292
|
+
| `eval/acceptance/pass` | Per-checkpoint acceptance result; W&B summarizes its history with max, not as the verdict. | boolean | acceptance evaluation | history |
|
|
293
|
+
| `eval/acceptance/episodes/planned` | Exact episode identities required by the acceptance manifest. | episodes | acceptance evaluation | history |
|
|
294
|
+
| `eval/acceptance/episodes/completed` | Valid planned episode rows completed before acceptance or fail-fast rejection. | episodes | acceptance evaluation | history |
|
|
295
|
+
| `eval/acceptance/failure/count` | Failed planned episodes; zero for acceptance and one for fail-fast rejection. | episodes | acceptance evaluation | history |
|
|
296
|
+
| `eval/acceptance/duration/seconds` | Acceptance-worker evaluation wall duration. | seconds | acceptance evaluation | history |
|
|
297
|
+
| `eval/full/by_start` | Structured full-evaluation evidence by start and reason. | table | evaluation | history |
|
|
298
|
+
| `leader/checkpoint/acceptance_pass` | Diagnostic projection of the promoted-checkpoint verdict; `eval_scope_exact` is authoritative. | boolean | selection | summary |
|
|
299
|
+
| `leader/checkpoint/success_rate_min` | Diagnostic selected-checkpoint projection. | summary | selection | summary |
|
|
300
|
+
| `leader/checkpoint/success_rate_mean` | Diagnostic selected-checkpoint projection. | summary | selection | summary |
|
|
301
|
+
| `leader/checkpoint/objective` | Diagnostic selected-checkpoint projection; never a ranking input. | summary | selection | summary |
|
|
302
|
+
| `leader/checkpoint/return_mean` | Diagnostic selected-checkpoint projection. | summary | selection | summary |
|
|
303
|
+
| `leader/checkpoint/best_return` | Diagnostic selected-checkpoint projection. | summary | selection | summary |
|
|
304
|
+
| `leader/checkpoint/rank_values` | Diagnostic rendering of authoritative rank values. | summary | selection | summary |
|
|
305
|
+
| `leader/checkpoint/progress_max` | Diagnostic selected-checkpoint projection. | summary | selection | summary |
|
|
306
|
+
| `leader/checkpoint/step` | Diagnostic selected-checkpoint projection. | summary | selection | summary |
|
|
307
|
+
| `leader/checkpoint/artifact_ref` | Diagnostic immutable artifact reference projection. | summary | selection | summary |
|
|
308
|
+
| `leader/checkpoint/eval_source` | Diagnostic evaluation-source projection. | summary | selection | summary |
|
|
309
|
+
| `leader/checkpoint/updated_at` | Diagnostic projection update time. | summary | selection | summary |
|
|
310
|
+
| `train/global_step` | Scientific training X-axis: policy environment transitions consumed. | steps | frame | history |
|
|
311
|
+
| `eval/checkpoint_step` | Scientific evaluation X-axis: step of the evaluated checkpoint. | steps | evaluation | history |
|
|
312
|
+
| `orchestration/event_seq` | Monotonic local outbox event sequence used as W&B delivery order. | events | frame | history |
|
|
313
|
+
| `orchestration/event_id` | Stable content-derived identifier used to deduplicate at-least-once delivery. | metadata | frame | history |
|
|
314
|
+
| `orchestration/outbox/queue_depth` | Metric outbox frames not yet acknowledged by the W&B SDK. | events | supervisor sample | history |
|
|
315
|
+
| `orchestration/outbox/oldest_unpublished_seconds` | Age of the oldest metric frame not yet acknowledged by the W&B SDK. | seconds | supervisor sample | history |
|
|
316
|
+
| `orchestration/outbox/ingress_rate` | Observed local metric-frame creation rate over the latest supervisor interval. | events/second | supervisor sample | history |
|
|
317
|
+
| `orchestration/outbox/publish_rate` | Observed W&B SDK acknowledgment rate over the latest supervisor interval. | events/second | supervisor sample | history |
|
|
318
|
+
| `orchestration/outbox/publication_capacity_ratio` | Observed W&B publication rate divided by observed metric ingress rate. | ratio | supervisor sample | history |
|
|
319
|
+
| `orchestration/outbox/local_high_water` | Largest metric-frame sequence durably present in local SQLite. | events | supervisor sample | history |
|
|
320
|
+
| `orchestration/outbox/r2_high_water` | Largest metric-frame sequence sealed in immutable private R2 journals. | events | supervisor sample | history |
|
|
321
|
+
| `orchestration/outbox/wandb_high_water` | Largest metric-frame sequence acknowledged by the W&B SDK. | events | supervisor sample | history |
|
|
322
|
+
| `orchestration/outbox/wandb_remote_high_water` | Largest orchestration event sequence observed through the W&B API. | events | remote visibility probe | history |
|
|
323
|
+
| `orchestration/outbox/wandb_remote_visible_lag_seconds` | Age of the newest local metric event not yet observed through the W&B API. | seconds | remote visibility probe | history |
|
|
324
|
+
| `orchestration/checkpoint/backlog` | Ready local checkpoints not yet verified in public model R2. | checkpoints | supervisor sample | history |
|
|
325
|
+
| `orchestration/eval/pending` | Persisted evaluation intents without a terminal verified result. | evaluations | supervisor sample | history |
|
|
326
|
+
| `orchestration/eval/result_to_stop_seconds` | Time from observing an accepted eval result to signaling the learner. | seconds | accepted evaluation | history |
|
|
327
|
+
| `orchestration/drain/idle_gpu_tail_seconds` | Time the training container retained its GPU after the learner exited. | seconds | terminal drain | history |
|
|
328
|
+
| `orchestration/scratch/used_fraction` | Fraction of the task scratch filesystem currently used. | fraction | supervisor sample | history |
|
|
329
|
+
| `train/episode/return/shaped/from/target/mean` | Rolling mean shaped return over the latest 100 genuine target-origin training episodes. | return | rollout | history |
|
|
330
|
+
| `train/curriculum/archive/cell/count` | Current archive-curriculum cell count. | cells | rollout | history |
|
|
331
|
+
| `train/curriculum/archive/entry/count` | Current immutable entry count retained by the curriculum view. | entries | rollout | history |
|
|
332
|
+
| `train/curriculum/archive/admission/candidate/count` | Non-terminal cell-crossing candidates observed during the rollout. | transitions | rollout | history |
|
|
333
|
+
| `train/curriculum/archive/admission/accepted/count` | Candidate entries accepted into cell reservoirs during the rollout. | entries | rollout | history |
|
|
334
|
+
| `train/curriculum/archive/evicted/count` | Curriculum cells evicted during the rollout. | cells | rollout | history |
|
|
335
|
+
| `train/curriculum/archive/capture/call/count` | Batched portable provider-state capture calls during the rollout. | calls | rollout | history |
|
|
336
|
+
| `train/curriculum/archive/restore/episode/count` | Archive-origin episodes started during the rollout. | episodes | rollout | history |
|
|
337
|
+
| `train/curriculum/archive/restore/forced_boundary/count` | Non-episode control truncations used to activate archive lanes. | boundaries | rollout | history |
|
|
338
|
+
| `train/curriculum/archive/feedback/trajectory/count` | Completed archive-origin trajectories committed to the priority sampler. | trajectories | rollout | history |
|
|
339
|
+
| `train/curriculum/archive/transition/share` | Fraction of policy transitions whose origin is the archive curriculum. | fraction | rollout | history |
|
|
340
|
+
| `train/curriculum/archive/sampling/probability/max` | Largest final cell probability in the archive sampler. | fraction | rollout | history |
|
|
341
|
+
| `train/curriculum/archive/sampling/effective_cell/count` | Inverse-Simpson effective cell count of the archive sampling distribution. | cells | rollout | history |
|
|
342
|
+
| `train/curriculum/archive/capture/seconds` | Portable state capture wall time accumulated during the rollout. | seconds | rollout | history |
|
|
343
|
+
| `train/curriculum/archive/restore/seconds` | Provider restore wall time for reset calls containing archive lanes. | seconds | rollout | history |
|
|
344
|
+
<!-- METRIC_REGISTRY_END -->
|