-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcrucible.yaml
More file actions
138 lines (127 loc) · 3.77 KB
/
Copy pathcrucible.yaml
File metadata and controls
138 lines (127 loc) · 3.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
# ─────────────────────────────────────────────────────────────────────────────
# This is the Parameter Golf reference project config — the one Crucible
# was originally built for. It is checked in as a working, end-to-end
# example of an LM training setup on RunPod.
#
# If you are starting a new project and want a clean, modality-agnostic
# starting point instead, use:
#
# cp crucible.yaml.example crucible.yaml
# crucible project new my-project --template <lm|vision|diffusion|world_model|generic>
#
# The `willdepueoai/parameter-golf` dataset reference below is a specific
# HuggingFace dataset for the OpenAI Parameter Golf competition, NOT a
# general default. Override `data.repo_id` for any other project.
# ─────────────────────────────────────────────────────────────────────────────
name: parameter-golf
version: "0.1.0"
# Compute provider
provider:
type: runpod
ssh_key: ~/.ssh/id_ed25519_runpod
image: runpod/pytorch:1.0.2-cu1281-torch280-ubuntu2404
gpu_types:
- "NVIDIA GeForce RTX 4090"
gpu_count: 1
defaults:
container_disk: 20
volume_disk: 40
workspace_path: /workspace/parameter-golf
python_bin: python3.12
env_source: .env.runpod.local
# Data pipeline
data:
source: huggingface
repo_id: willdepueoai/parameter-golf
variant: fineweb10B_sp1024
local_root: ./data
manifest: manifest.json
# Remote data readiness probe. Fleet bootstrap generates a probe
# script from these fields; if any of the listed paths is missing,
# `download_command` is run on the pod.
probe:
paths:
- "data/tokenizers/fineweb_1024_bpe.model"
- "data/datasets/fineweb10B_sp1024/fineweb_train_*.bin"
- "data/datasets/fineweb10B_sp1024/fineweb_val_*.bin"
download_command: "python3 data/cached_challenge_fineweb.py --variant sp1024"
# Training backends
training:
- backend: torch
script: src/crucible/training/torch_backend.py
# Metrics configuration
metrics:
primary: val_bpb
secondary: val_loss
size: model_bytes
direction: minimize
# Experiment presets
presets:
smoke:
MAX_WALLCLOCK_SECONDS: "180"
ITERATIONS: "400"
TRAIN_BATCH_TOKENS: "8192"
screen:
MAX_WALLCLOCK_SECONDS: "3600"
ITERATIONS: "2000"
TRAIN_BATCH_TOKENS: "65536"
VAL_LOSS_EVERY: "500"
VAL_BATCH_SIZE: "8192"
TRAIN_LOG_EVERY: "20"
WARMUP_STEPS: "10"
TRAIN_SHARD_LIMIT: "8"
proxy:
MAX_WALLCLOCK_SECONDS: "1800"
ITERATIONS: "6000"
TRAIN_BATCH_TOKENS: "65536"
# Runner script on pods (invoked by fleet scheduler via SSH)
runner_script: src/crucible/runner/run_remote.py
remote_results_file: experiments.jsonl
# Timeout map (seconds) per backend per preset
timeout_map:
torch:
smoke: 300
screen: 4200
proxy: 2400
medium: 4800
promotion: 9600
overnight: 5400
mlx:
smoke: 180
screen: 900
proxy: 3600
medium: 7200
promotion: 14400
overnight: 7200
# Autonomous researcher
researcher:
model: claude-sonnet-4-6-20250514
budget_hours: 10.0
max_iterations: 20
program_file: program.md
# Version store
store_dir: .crucible
# Sync exclusions
sync_excludes:
- .git
- .venv
- __pycache__
- .crucible/designs
- .crucible/context
- .crucible/notes
- .crucible/store.jsonl
- .crucible/notes.jsonl
- logs
- data/datasets
- data/tokenizers
- fleet_runs
- day_runs
- .DS_Store
- checkpoints
- videos
- wandb
# Output paths
results_file: experiments.jsonl
fleet_results_file: experiments_fleet.jsonl
logs_dir: logs
nodes_file: nodes.json