mirror 0.8.7: control-twin isolation (AlephLLM@b472815)
Browse files- presets.py +13 -1
presets.py
CHANGED
|
@@ -218,10 +218,22 @@ for _name in list(PRESETS):
|
|
| 218 |
_m = AlephLMConfig.from_dict(_p.model.to_dict())
|
| 219 |
_m.name = _name + "-control"
|
| 220 |
_m.hub_layers = ()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 221 |
PRESETS[_name + "-control"] = Preset(
|
| 222 |
-
model=_m, train=
|
| 223 |
curriculum=[dict(x) for x in _p.curriculum])
|
| 224 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 225 |
|
| 226 |
def get_preset(name: str) -> Preset:
|
| 227 |
if name not in PRESETS:
|
|
|
|
| 218 |
_m = AlephLMConfig.from_dict(_p.model.to_dict())
|
| 219 |
_m.name = _name + "-control"
|
| 220 |
_m.hub_layers = ()
|
| 221 |
+
# 0.8.7: twins get their OWN TrainConfig copy — the shared-instance
|
| 222 |
+
# form let treatment-specific flags leak into controls (2s-control
|
| 223 |
+
# inherited head_addr_frozen=True, a post-revival flag no control's
|
| 224 |
+
# birth recipe may carry) and made cross-mutation possible.
|
| 225 |
+
_t = TrainConfig(**{k: getattr(_p.train, k)
|
| 226 |
+
for k in _p.train.__dataclass_fields__})
|
| 227 |
PRESETS[_name + "-control"] = Preset(
|
| 228 |
+
model=_m, train=_t,
|
| 229 |
curriculum=[dict(x) for x in _p.curriculum])
|
| 230 |
|
| 231 |
+
# The 2s architecture control runs the BIRTH recipe verbatim: born-null
|
| 232 |
+
# unfrozen head (it buries, as the treatment's did for its first 24,860
|
| 233 |
+
# steps — measured 3/3; the +0.01 head term is immaterial at the ±3.4
|
| 234 |
+
# hub scale this control exists to judge).
|
| 235 |
+
PRESETS["mini-beatrix-2s-control"].train.head_addr_frozen = False
|
| 236 |
+
|
| 237 |
|
| 238 |
def get_preset(name: str) -> Preset:
|
| 239 |
if name not in PRESETS:
|