Tiered fitness
5.6 Tiered fitness и screen-cache¶
Опциональный режим (fitness_tiered_enabled=True, по умолчанию выключен) для ускорения
оценки больших популяций. Реализация: tiered_eval.py, screen_cache.py.
Этапы одного поколения:
- Screen (все особи): stratified подмножество val размером
fitness_screen_size(default 2048), индексы вdata/cifar10/fitness_screen_indices.json(seed=cfg.seed+1, баланс 50/50 pos/neg). - Survivors: top
fitness_screen_survivor_fraction(default 50%) по screen-fitness получают полный forward наfitness_val_size(25k). - Combined fitness: survivors — full val score; остальные — screen score.
Elite count =
int(population_size × elite_percent)от всей популяции по combined ranking. - После periodic GD: для элит сохраняются fp16-активации screen-val в RAM (
ScreenCacheStore, LRU). - Следующее поколение: offspring с lineage от элиты может переиспользовать cache
(exact hit или incremental forward для
split/without_split/clone).
| Параметр | Default | Описание |
|---|---|---|
fitness_tiered_enabled |
False |
Включить двухступенчатый eval |
fitness_screen_size |
2048 |
Размер screen-val |
fitness_screen_survivor_fraction |
0.5 |
Доля pop на full val после screen |
fitness_screen_cache_enabled |
True |
RAM-кеш 2k-активаций элит |
fitness_screen_cache_max_entries |
1000 |
Макс. записей LRU |
fitness_screen_cache_max_bytes |
50_000_000_000 |
Бюджет RAM (~50 GiB) |
offspring_queue_max_size |
1000 |
Жёсткий cap очереди offspring |
Structured study (05_structured_study.py) по умолчанию не включает tiered — текущие --resume
продолжают legacy-пайплайн.