Minimal PyTorch scaffold for an RLM-style orchestrator with an SSM chunk encoder and merge reducers.
chimera/rlm/: prompt store, tool API, controller planner, Chimera LM wrapperchimera/ssm/: SSM-inspired encoder block and LM losschimera/merge/: chunk-level reducerschimera/tasks/: PG-19-style dataset wrappers and baselineschimera/eval/: core metricsscripts/: train/eval/report entry pointsconfigs/: YAML starter configs
- Install deps:
pip install -r requirements.txt- Prepare data:
- Place text files at:
data/pg19/train/*.txtdata/pg19/valid/*.txt(optional)
- Train SSM baseline:
python scripts/train_pg19_ssm.py model=ssm data_dir=data/pg19 out=artifacts/train_ssm.json- Train Transformer baseline:
python scripts/train_pg19_ssm.py model=transformer data_dir=data/pg19 out=artifacts/train_transformer.json- Run long retrieval probe:
python scripts/eval_long_retrieval.py out=artifacts/retrieval_metrics.json- Build markdown report:
python scripts/report_tradeoffs.py out=artifacts/report.md- Current SSM block is a lightweight SSM-inspired implementation for fast iteration.
- Swap in official Mamba/S4 kernels in
chimera/ssm/encoder.pyfor production experiments. scripts/eval_long_retrieval.pyuses synthetic needle probes for orchestration sanity checks.
To pull all benchmark repos (PG-19, BABILong, RULER, InfiniteBench, LongBench-v2) and bootstrap local data subsets:
bash scripts/pull_all_benchmarks.shTo inspect registered benchmark paths:
python3 scripts/list_benchmarks.pyTo customize data volume:
python3 scripts/prepare_all_benchmarks_data.py \
--out-dir data/benchmarks \
--pg19-train-max 1000 \
--babilong-config 32k \
--babilong-task qa1 \
--infinitebench-max-lines-per-file 1000 \
--longbench-max 500Launch any long job in the background with logs + PID files:
bash scripts/launch_detached.sh ssm_train \
python scripts/train_pg19_ssm.py model=ssm data_dir=data/benchmarks/pg19 steps=10000 out=artifacts/train_ssm.jsonCheck progress:
tail -f artifacts/logs/ssm_train.logRun this before every public push:
bash scripts/privacy_audit.shIf it returns non-zero, review and remove matched secrets/paths before pushing.
Install dependencies:
pip install -r requirements.txtRun SSM with Hydra defaults:
python scripts/train_lightning.pyOverride config at launch:
python scripts/train_lightning.py model=transformer trainer=gpu trainer.max_steps=2000 data.batch_size=2Non-blocking launch:
bash scripts/launch_detached.sh lt_ssm \
python scripts/train_lightning.py model=ssm trainer=gpu trainer.max_steps=10000