Instructions to use tomvaillant/d1-2b-spotlight-r3 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use tomvaillant/d1-2b-spotlight-r3 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("feature-extraction", model="tomvaillant/d1-2b-spotlight-r3", trust_remote_code=True)# pip install -U transformers accelerate # Load model directly from transformers import AutoProcessor, AutoModel processor = AutoProcessor.from_pretrained("tomvaillant/d1-2b-spotlight-r3", trust_remote_code=True) model = AutoModel.from_pretrained("tomvaillant/d1-2b-spotlight-r3", trust_remote_code=True, device_map="auto") - Notebooks
- Google Colab
- Kaggle
d1-2b-spotlight-r3
Spotlight's local research-triage decision model: LiquidAI/d1-2B at revision cfe5760ff5d5998f91d9ac56bd4b2dbd96996d41, fine-tuned by Buried Signals to answer Spotlight's lead-triage questions (noul and choice). It reads a JSON state and returns probabilities; it never generates text. Indicator Labs' Engine installs and runs it on the member's Mac.
Serve
python -I d1_serve.py --model-dir <absolute path of this folder> --host 127.0.0.1 --port 8019
- Install the runtime with
pip install --require-hashes -r requirements.lockinto a Python 3.12 venv (torch 2.14.1, transformers 5.21.0, macOS arm64; MPS when available, else CPU). - The server is offline: it sets
HF_HUB_OFFLINE=1and loads only this folder. d1 runs a fine-tune's own code only from a local folder, so this repo is downloaded as a folder, not loaded by repo name. POST /v1/systemonetakes{"state", "questions"}and returns{"model", "answers", "usage", "latency_ms"}, the shape Spotlight's decision client reads.GET /v1/modelsnames the model.- It answers 400 for a malformed body or question, 413 for a body over 16 MB, 422 for a state over 65,536 tokens, and 500 when the model fails. It has no authentication, so it listens on loopback only.
- Peak memory is about 6.3 GB on Apple silicon (MPS, bfloat16).
Files
model.safetensors: the fine-tuned weights, sha256a3997156a61faa7bd70ce2af1f149096c3ef8c88d83b417decea0cba71320fe5.config.jsonandcalibration.json: the release's own files, unchanged.save_pretrainedrewritesauto_mapso the folder no longer loads, so the release config ships instead.- The model code (
*.pyapart fromd1_serve.py), tokenizer, processor and chat-template files andLICENSEare the release's own files, byte-identical to the base revision. d1_serve.py,requirements.lock,NOTICEand this README were added by Buried Signals.
Training
- Round e1: a LoRA (r16, alpha 32) trained on Spotlight triage questions.
- Round r2: e1 continued on a premise-weighted mix.
- WiSE merge: 0.75 ร e1 plus 0.25 ร r2.
- Round r3: a LoRA on that merge, aimed at catching failures; the step-900 checkpoint was merged.
The training data is Spotlight case material and is not published.
Evaluation
Spotlight's K0 fresh-organisation lead-triage eval, with the release calibration and the default set size:
| split | false clues per 100 | clue recall | visible failures caught | lost leads |
|---|---|---|---|---|
| eval-dev (85 leads) | 2.35 | .768 | .81 | 0 |
| sealed holdout (89 leads, run once) | 0.0 | .884 | .78 | 0 |
The eval-dev row was reproduced exactly from this folder through d1_serve.py. Latency was the only difference.
Licence
LFM Open License v1.0 (LICENSE). Commercial use is granted only to entities under the licence's revenue threshold (US$10M a year). NOTICE lists what Buried Signals changed.
- Downloads last month
- 65