This repo implements a runnable continual-learning pipeline for the CLEAR-style streaming protocol:
- Train on bucket
i - Evaluate on bucket
i + 1 - Compare
finetune,replay,replay + prototypes, andfull iNeMo-like proxy
The default configs now point at a structured synthetic benchmark
(./data/synth_CLEAR_delivery_v1) that preserves class identity while applying
bucket-wise domain shift. If the dataset is missing, python -m src.run
generates it automatically.
python -m venv .venv
.venv\Scripts\Activate.ps1
pip install -r requirements.txtpython -m src.data.synthetic_clear --out_dir ./data/synth_CLEAR_delivery_v1 --layout imagefolder --num_buckets 6 --num_classes 11 --imgs_per_class_per_bucket 40 --image_size 64 --seed 123Default:
python -m src.run --config configs/base.yamlpython -m src.run --config configs/finetune_only.yaml
python -m src.run --config configs/replay_baseline.yaml
python -m src.run --config configs/replay_plus_prototypes.yaml
python -m src.run --config configs/full_inemo_proxy.yamlruns/<RUN_ID>/
config_resolved.yamlmetrics_streaming.csvwith columns:step,train_bucket,test_bucket,nda_on_next_bucket,mean_nda_so_farmetrics_shadow.csvwheneval.shadow_holdout_ratio > 0run_summary.jsonclass_map.jsonwhenlogging.save_class_map: truenda.pngwhenlogging.make_plots: trueshadow.pngwhenlogging.make_plots: trueand shadow metrics are enabledmodel_final.ptwhenlogging.save_model: true
run_summary.json now includes aggregate NDA fields and shadow-summary fields so
suite-level reporting can be built without re-parsing everything manually.
python scripts/plot_metrics.py --streaming_csv runs/<RUN_ID>/metrics_streaming.csv --out_png runs/<RUN_ID>/nda.png --shadow_csv runs/<RUN_ID>/metrics_shadow.csv --shadow_out_png runs/<RUN_ID>/shadow.pngpython scripts/run_ablation_suite.py --manifest_out deliverables/<STAMP>/ablation_manifest.json --aggregate_out_dir deliverables/<STAMP>This runs the four core configs and writes:
deliverables/<STAMP>/ablation_manifest.jsondeliverables/<STAMP>/suite_summary.csvdeliverables/<STAMP>/suite_summary.mddeliverables/<STAMP>/nda_by_step.pngdeliverables/<STAMP>/mean_nda_bar.pngdeliverables/<STAMP>/shadow_mean_accuracy.pngdeliverables/<STAMP>/shadow_mean_forgetting.png
The current delivery note is in: