Card: three-line 'Use it' quickstart via load_lotus
Browse files
README.md
CHANGED
|
@@ -36,6 +36,7 @@ baseline by **3.36%** — and its 270M-parameter model is the top system on the
|
|
| 36 |
reasoning benchmark ahead of backbones 25–50× larger.
|
| 37 |
|
| 38 |
Paper: [arXiv:2610.18877](https://arxiv.org/abs/2610.18877) · Code: [DA2I2-SLM/Lotus](https://github.com/DA2I2-SLM/Lotus)
|
|
|
|
| 39 |
|
| 40 |
## Training
|
| 41 |
|
|
@@ -77,7 +78,27 @@ checkpoints used in the paper (joint five-task and sequential-curriculum variant
|
|
| 77 |
ECG-QA accuracy is computed on the first 5,000 test items (manifest:
|
| 78 |
`eval_manifests/ecg_test_first5000.json` in the code repository).
|
| 79 |
|
| 80 |
-
##
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 81 |
|
| 82 |
A checkpoint is a `torch.save` dictionary holding the time-series encoder, projector, next-patch
|
| 83 |
decoder and LoRA adapters; the base LLM is loaded from its Hugging Face id. The model class is
|
|
@@ -123,6 +144,8 @@ text, _ = model.generate(batch, max_new_tokens=200)
|
|
| 123 |
print(text[0]) # rationale, ends with "Answer: walking."
|
| 124 |
```
|
| 125 |
|
|
|
|
|
|
|
| 126 |
The exact prompts for every task are in [`docs/prompts.md`](https://github.com/DA2I2-SLM/Lotus/blob/main/docs/prompts.md),
|
| 127 |
the evaluation harnesses in [`evaluation/`](https://github.com/DA2I2-SLM/Lotus/tree/main/evaluation),
|
| 128 |
and a runnable tutorial (loading, QA, captioning, forecasting and this checkpoint) in the
|
|
|
|
| 36 |
reasoning benchmark ahead of backbones 25–50× larger.
|
| 37 |
|
| 38 |
Paper: [arXiv:2610.18877](https://arxiv.org/abs/2610.18877) · Code: [DA2I2-SLM/Lotus](https://github.com/DA2I2-SLM/Lotus)
|
| 39 |
+
· Phase-1 (pretraining) checkpoints: [hiepnh137/LangTimeFoundationModel](https://huggingface.co/hiepnh137/LangTimeFoundationModel)
|
| 40 |
|
| 41 |
## Training
|
| 42 |
|
|
|
|
| 78 |
ECG-QA accuracy is computed on the first 5,000 test items (manifest:
|
| 79 |
`eval_manifests/ecg_test_first5000.json` in the code repository).
|
| 80 |
|
| 81 |
+
## Use it
|
| 82 |
+
|
| 83 |
+
Everything needed to run the model — including the LOTUS code — is inside this repository:
|
| 84 |
+
|
| 85 |
+
```python
|
| 86 |
+
from huggingface_hub import snapshot_download
|
| 87 |
+
import sys; sys.path.insert(0, snapshot_download("daidv1112/LOTUS",
|
| 88 |
+
allow_patterns=["load_lotus.py", "src/*"]))
|
| 89 |
+
from load_lotus import load_lotus
|
| 90 |
+
|
| 91 |
+
lotus = load_lotus() # Qwen3-0.6B checkpoint, GPU + dtype picked automatically
|
| 92 |
+
lotus.ask("Is the time series showing an upward trend?", values) # any question, your series
|
| 93 |
+
```
|
| 94 |
+
|
| 95 |
+
`pip install torch transformers peft numpy` (Python ≥ 3.10). `load_lotus()` downloads the
|
| 96 |
+
checkpoint on first use; `ask()` takes any natural-language question and the raw series (it is
|
| 97 |
+
z-normalised inside), with an optional `domain=` context hint. Example output:
|
| 98 |
+
*"True. The series shows an upward trend as it starts at 0.25 and increases to 2.0."*
|
| 99 |
+
|
| 100 |
+
<details>
|
| 101 |
+
<summary>Low-level quickstart (explicit model construction)</summary>
|
| 102 |
|
| 103 |
A checkpoint is a `torch.save` dictionary holding the time-series encoder, projector, next-patch
|
| 104 |
decoder and LoRA adapters; the base LLM is loaded from its Hugging Face id. The model class is
|
|
|
|
| 144 |
print(text[0]) # rationale, ends with "Answer: walking."
|
| 145 |
```
|
| 146 |
|
| 147 |
+
</details>
|
| 148 |
+
|
| 149 |
The exact prompts for every task are in [`docs/prompts.md`](https://github.com/DA2I2-SLM/Lotus/blob/main/docs/prompts.md),
|
| 150 |
the evaluation harnesses in [`evaluation/`](https://github.com/DA2I2-SLM/Lotus/tree/main/evaluation),
|
| 151 |
and a runnable tutorial (loading, QA, captioning, forecasting and this checkpoint) in the
|