Перейти к содержанию

Tiered fitness

5.6 Tiered fitness и screen-cache

Опциональный режим (fitness_tiered_enabled=True, по умолчанию выключен) для ускорения оценки больших популяций. Реализация: tiered_eval.py, screen_cache.py.

Этапы одного поколения:

  1. Screen (все особи): stratified подмножество val размером fitness_screen_size (default 2048), индексы в data/cifar10/fitness_screen_indices.json (seed=cfg.seed+1, баланс 50/50 pos/neg).
  2. Survivors: top fitness_screen_survivor_fraction (default 50%) по screen-fitness получают полный forward на fitness_val_size (25k).
  3. Combined fitness: survivors — full val score; остальные — screen score. Elite count = int(population_size × elite_percent) от всей популяции по combined ranking.
  4. После periodic GD: для элит сохраняются fp16-активации screen-val в RAM (ScreenCacheStore, LRU).
  5. Следующее поколение: 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-пайплайн.