--- license: mit library_name: pytorch tags: - time-series - accelerometer - ecg - sleep - nilm - capture24 - ltaf - uk-dale - sleep-psg - classifier --- # ARTS-RLM Tool Classifiers PyTorch checkpoints for the time-series classifiers exposed as **tools** to the recursive agent in *Recursive Agents are Effective Time Series Reasoners* (ARTS-RLM). Each subset of the benchmark (capture24 / ltaf / sleep_psg / uk_dale) gets a small specialist classifier the agent can call as a tool while reasoning over long-context signals. ## Layout The repo mirrors the on-disk paths the ARTS-RLM configs already point at, so files can be dropped straight into the project tree. ``` . ├── results/classifier/ │ ├── chronos2/best_classifier.pt # Capture24 — Chronos-2 encoder + head (active in configs/rlm) │ ├── oxwearables/best_classifier.pt # Capture24 — OxWearables baseline (+ results.json) │ └── dual/ │ ├── best_classifier.pt # Capture24 — dual-encoder (pretrain) │ └── finetune/best_classifier.pt # Capture24 — dual-encoder (finetune) ├── results/sleep_classifier/ │ ├── sleep_stages/best_classifier.pt # Sleep-PSG — 5-stage sleep classifier │ └── arousals/best_classifier.pt # Sleep-PSG — arousal detector (+ results.json) ├── checkpoints/ltaf/ │ ├── rhythm_resnet1d/best_classifier.pt # LTAF — rhythm (AF/AFL/NSR/…) ResNet1D │ └── beats_htf/best_classifier.pt # LTAF — beat (N/V/S) HTF head └── results/uk_dale_classifier{,_v2,_v2_ft}/best_classifier.pt # UK-DALE — appliance window classifier # v1: active eval/RLM configs # v2 / v2_ft: arts_rlm_qwen35_9b.toml smoke ``` ## Which checkpoint do the configs use? | Subset | Tool | Checkpoint | |-------------|---------------------------------|--------------------------------------------------------------| | capture24 | `har_classifier` | `results/classifier/chronos2/best_classifier.pt` | | ltaf | `ecg_rhythm` | `checkpoints/ltaf/rhythm_resnet1d/best_classifier.pt` | | ltaf | `ecg_beats` | `checkpoints/ltaf/beats_htf/best_classifier.pt` | | sleep_psg | `sleep_classifier` | `results/sleep_classifier/sleep_stages/best_classifier.pt` | | sleep_psg | `sleep_classifier` (arousals) | `results/sleep_classifier/arousals/best_classifier.pt` | | uk_dale | `uk_dale_appliance_window` | `results/uk_dale_classifier/best_classifier.pt` | The alternative `uk_dale_classifier_v2{,_ft}` and `results/classifier/{oxwearables,dual}` are shipped for the ablation table. ## Download Use the ARTS-RLM helper (drops files into the locations the configs expect): ```bash python scripts/data/download_from_hf.py --dataset classifiers ``` Or pull individual files directly: ```bash huggingface-cli download nz00shuuuu/arts-rlm-classifiers \ results/classifier/chronos2/best_classifier.pt \ --local-dir . ``` ## Loading Each checkpoint is a plain `torch.save({...})` dict. They are loaded inside `src/models/tools/` via the respective tool's `_load_classifier(...)` helper — look at `src/models/tools/registry.py` for the wiring. ```python import torch state = torch.load("results/classifier/chronos2/best_classifier.pt", map_location="cpu") ```