TeeMoE / README.md
TonyChen06's picture
Link published arXiv paper and citation
a2edd28 verified
|
Raw History Blame Contribute Delete
3.32 kB
---
license: mit
language:
- en
base_model: Qwen/Qwen3.6-27B
base_model_relation: adapter
tags:
- time-series
- forecasting
- lora
- mixture-of-experts
- safetensors
---
# OpenTSLM TeeMoE
OpenTSLM TeeMoE is part of the [OpenTSLM](https://github.com/OpenTSLM)
project. It brings numerical forecasting, context-conditioned forecasting, and
time-series analysis together in one language model. Built on
[Qwen3.6-27B](https://huggingface.co/Qwen/Qwen3.6-27B), it combines three LoRA
experts through a learned controller that weights them for each request.
## Paper
The model is described in **OpenTSLM TeeMoE: A Unified Time-Series Language Model
for Forecasting, Contextual Prediction, and Reasoning**.
Accepted at the [Foundation Models for Temporal Systems (FMTS) workshop at NeurIPS 2026](https://fmts-workshop.github.io/index.html#program).
[Paper](https://arxiv.org/abs/2609.40265) ·
[Code](https://github.com/OpenTSLM/OpenTSLM-TeeMoE)
## Usage
See the [TeeMoE repository](https://github.com/OpenTSLM/OpenTSLM-TeeMoE) for
installation, evaluation, and training instructions.
The inference setup targets Linux with an NVIDIA 80 GB GPU. It requires Git,
[uv](https://docs.astral.sh/uv/), the CUDA toolkit (`nvcc`), and a C++ compiler.
The setup script creates the Python 3.12 environments:
```bash
git clone https://github.com/OpenTSLM/OpenTSLM-TeeMoE
cd OpenTSLM-TeeMoE
bash scripts/setup.sh inference
source .venv/bin/activate
```
Load this checkpoint through the TeeMoE package:
```python
import numpy as np
from teemoe import TeeMoE
model = TeeMoE.from_pretrained("OpenTSLM/TeeMoE")
history = (10 + np.sin(np.arange(168) / 12)).tolist()
forecast = model.forecast(
history,
horizon=24,
frequency="h",
start="2024-05-01 00:00",
context="A promotion starts at the first forecast hour and lasts 24 hours.",
)
print(forecast.median)
print(forecast.quantiles.shape) # (24, 9), quantile levels 0.1 through 0.9
answer = model.analyze(
history,
"Which pattern best describes the series?",
options=["Periodic variation", "Constant values", "Steady increase"],
)
print(answer.text)
```
`from_pretrained` also accepts a local directory. `forecast_batch` and
`analyze_batch` accept lists of requests. See the code README for multi-GPU
configuration, evaluation commands, and training from public data.
This checkpoint contains the three LoRA adapters, expert controller, numerical
connector and decoder, and learned ensemble weights. The package downloads the
base language model and external forecasting models as needed.
## Citation
If you use TeeMoE in your work, please cite:
```bibtex
@misc{chen2026opentslmteemoe,
title = {{OpenTSLM TeeMoE: A Unified Time-Series Language Model for Forecasting, Contextual Prediction, and Reasoning}},
author = {Tony Chen and Timo Stoffregen and Maxwell Xu and Thomas Kaar and Martin Maritsch and Geremia Pompei and Nicolas Zumarraga and Robert Jakob and Paul Schmiedmayer and Patrick Langer and Juncheng Liu},
year = {2026},
eprint = {2609.40265},
archivePrefix = {arXiv},
primaryClass = {cs.LG},
url = {https://arxiv.org/abs/2609.40265}
}
```
## License
The TeeMoE components are released under the [MIT license](LICENSE). The Qwen
backbone and external forecasting models retain their respective licenses.