YAML Metadata Warning:empty or missing yaml metadata in repo card
Check out the documentation for more information.
Put the demo's model weights here
make demo-live loads the ensemble from this folder. It ships empty: the weights are ~1.7 GB, far
past what belongs in git (GitHub rejects any file over 100 MB, and each model.safetensors here is
480-740 MB), so everything except this README is gitignored.
What goes here
demo/models/phase2_config.json
demo/models/v2_threshold.json
demo/models/checkpoints/roberta_inverse_seed42/
demo/models/checkpoints/deberta_inverse_seed42/
demo/models/checkpoints/modernbert_sqrt_inverse_seed42/
Each checkpoint is a directory (weights + tokenizer + training_meta.json); copy it whole.
phase2_config.json is not optional. It records the encoders, seeds, input_format and class-weight
strategies those checkpoints were trained with, and the server reads the ensemble's composition from
it rather than assuming today's defaults.
v2_threshold.json carries the tuned operating point (0.52, the one the paper reports). It is a copy of
outputs/phase1_broad/threshold.json, the Phase 1 run the operating point is tuned on. Without it the
server falls back to the same 0.52 and logs a warning, so the demo still runs, but copy it and the
number is traceable.
Where it comes from
The Phase 3 (mixed-era) run on the cluster, under outputs/phase3/. Three of its thirty checkpoints:
one seed of the macro-F1 arm, which is what a laptop can hold. The strategy names come from
outputs/phase1_broad/strategy_tables.json; a different Phase 1 selection run would name different
directories.
rsync -avP -e 'ssh -J <user>@slurm-client.cs.tau.ac.il' \
--include='phase2_config.json' \
--include='checkpoints/' \
--include='checkpoints/roberta_inverse_seed42/***' \
--include='checkpoints/deberta_inverse_seed42/***' \
--include='checkpoints/modernbert_sqrt_inverse_seed42/***' \
--exclude='*' \
<user>@c-003:/home/yandex/DLWorkShop2025b/<user>/congressional-empirical-discourse/outputs/phase3/ \
demo/models/
Then the operating point, from the Phase 1 run (it is in the local outputs/ once that is synced):
cp outputs/phase1_broad/threshold.json demo/models/v2_threshold.json
Replace the whole folder rather than adding to it: an older phase2_config.json names older
checkpoints, and the server reads the ensemble's composition from it.
Already have the run locally? cp the same four paths out of outputs/phase3/ instead.
Using a different ensemble
make demo-live CHECKPOINT_ROOT=outputs/phase2 # the legacy-only instrument
Any root works as long as it has the checkpoints/ + phase2_config.json layout above.