Time Series Forecasting
Transformers
PyTorch
Safetensors
time series
forecasting
classification
anomaly detection
imputation
pretrained models
foundation models
time-series
Instructions to use levidio/MOMENT-1-base with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use levidio/MOMENT-1-base with Transformers:
# Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("levidio/MOMENT-1-base", dtype="auto") - Notebooks
- Google Colab
- Kaggle
| license: mit | |
| datasets: | |
| - AutonLab/Timeseries-PILE | |
| metrics: | |
| - accuracy | |
| - mse | |
| - mae | |
| - f1 | |
| tags: | |
| - time series | |
| - forecasting | |
| - classification | |
| - anomaly detection | |
| - imputation | |
| - transformers | |
| - pretrained models | |
| - foundation models | |
| - time-series | |
| pipeline_tag: time-series-forecasting | |
| # MOMENT-base | |
| MOMENT is a family of foundation models for general-purpose time-series analysis. The models in this family (1) serve as a building block for diverse **time-series analysis tasks** (e.g., forecasting, classification, anomaly detection, and imputation, etc.), (2) are effective **out-of-the-box**, i.e., with no (or few) task-specific exemplars (enabling e.g., zero-shot forecasting, few-shot classification, etc.), and (3) are **tunable** using in-distribution and task-specific data to improve performance. | |
| For details on MOMENT models, training data, and experimental results, please refer to the paper [MOMENT: A Family of Open Time-series Foundation Models](https://arxiv.org/pdf/2402.03885.pdf). | |
| MOMENT-1 comes in 3 sizes: [Small](https://huggingface.co/AutonLab/MOMENT-1-small), [Base](https://huggingface.co/AutonLab/MOMENT-1-base), and [Large](https://huggingface.co/AutonLab/MOMENT-1-large). | |
| # Usage | |
| **Recommended Python Version:** Python 3.11 (support for additional versions is expected soon). | |
| You can install the `momentfm` package using pip: | |
| ```bash | |
| pip install momentfm | |
| ``` | |
| Alternatively, to install the latest version directly from the GitHub repository: | |
| ```bash | |
| pip install git+https://github.com/moment-timeseries-foundation-model/moment.git | |
| ``` | |
| To load the pre-trained model for one of the tasks, use one of the following code snippets: | |
| **Forecasting** | |
| ```python | |
| from momentfm import MOMENTPipeline | |
| model = MOMENTPipeline.from_pretrained( | |
| "AutonLab/MOMENT-1-base", | |
| model_kwargs={ | |
| 'task_name': 'forecasting', | |
| 'forecast_horizon': 96 | |
| }, | |
| ) | |
| model.init() | |
| ``` | |
| **Classification** | |
| ```python | |
| from momentfm import MOMENTPipeline | |
| model = MOMENTPipeline.from_pretrained( | |
| "AutonLab/MOMENT-1-base", | |
| model_kwargs={ | |
| 'task_name': 'classification', | |
| 'n_channels': 1, | |
| 'num_class': 2 | |
| }, | |
| ) | |
| model.init() | |
| ``` | |
| **Anomaly Detection, Imputation, and Pre-training** | |
| ```python | |
| from momentfm import MOMENTPipeline | |
| model = MOMENTPipeline.from_pretrained( | |
| "AutonLab/MOMENT-1-base", | |
| model_kwargs={"task_name": "reconstruction"}, | |
| ) | |
| mode.init() | |
| ``` | |
| **Representation Learning** | |
| ```python | |
| from momentfm import MOMENTPipeline | |
| model = MOMENTPipeline.from_pretrained( | |
| "AutonLab/MOMENT-1-base", | |
| model_kwargs={'task_name': 'embedding'}, | |
| ) | |
| ``` | |
| ### Tutorials | |
| Here is the list of tutorials and reproducibile experiments to get started with MOMENT for various tasks: | |
| - [Forecasting](https://github.com/moment-timeseries-foundation-model/moment/blob/main/tutorials/forecasting.ipynb) | |
| - [Classification](https://github.com/moment-timeseries-foundation-model/moment/blob/main/tutorials/classification.ipynb) | |
| - [Anomaly Detection](https://github.com/moment-timeseries-foundation-model/moment/blob/main/tutorials/anomaly_detection.ipynb) | |
| - [Imputation](https://github.com/moment-timeseries-foundation-model/moment/blob/main/tutorials/imputation.ipynb) | |
| - [Representation Learning](https://github.com/moment-timeseries-foundation-model/moment/blob/main/tutorials/representation_learning.ipynb) | |
| - [Real-world Electrocardiogram (ECG) Case Study](https://github.com/moment-timeseries-foundation-model/moment/blob/main/tutorials/ptbxl_classification.ipynb) -- This tutorial also shows how to fine-tune MOMENT for a real-world ECG classification problem, performing training and inference on multiple GPUs and parameter efficient fine-tuning (PEFT). | |
| ## Model Details | |
| ### Model Description | |
| - **Developed by:** [Auton Lab](https://autonlab.org/), [Carnegie Mellon University](https://www.cmu.edu/) | |
| - **Model type:** Time-series Foundation Model | |
| - **License:** MIT License | |
| ### Model Sources | |
| <!-- Provide the basic links for the model. --> | |
| - **Repository:** https://github.com/moment-timeseries-foundation-model/ (Pre-training and research code coming out soon!) | |
| - **Paper:** https://arxiv.org/abs/2402.03885 | |
| - **Demo:** https://github.com/moment-timeseries-foundation-model/moment/tree/main/tutorials | |
| ## Environmental Impact | |
| <!-- Total emissions (in grams of CO2eq) and additional considerations, such as electricity usage, go here. Edit the suggested text below accordingly --> | |
| We train multiple models over many days resulting in significant energy usage and a sizeable carbon footprint. However, we hope that releasing our models will ensure that future time-series modeling efforts are quicker and more efficient, resulting in lower carbon emissions. | |
| We use the Total Graphics Power (TGP) to calculate the total power consumed for training MOMENT models, although the total power consumed by the GPU will likely vary a little based on the GPU utilization while training our model. Our calculations do not account for power demands from other sources of our compute. We use 336.566 Kg C02/MWH as the standard value of CO2 emission per megawatt hour of energy consumed for [Pittsburgh](https://emissionsindex.org/). | |
| - **Hardware Type:** NVIDIA RTX A6000 GPU | |
| - **GPU Hours:** 89 | |
| - **Compute Region:** Pittsburgh, USA | |
| - **Carbon Emission (tCO2eq):** | |
| #### Hardware | |
| All models were trained and evaluated on a computing cluster consisting of 128 AMD EPYC 7502 CPUs, 503 GB of RAM, and 8 NVIDIA RTX A6000 GPUs each with 49 GiB RAM. All MOMENT variants were trained on a single A6000 GPU (with any data or model parallelism). | |
| ## Citation | |
| <!-- If there is a paper or blog post introducing the model, the APA and Bibtex information for that should go in this section. --> | |
| **BibTeX:** | |
| If you use MOMENT please cite our paper: | |
| ```bibtex | |
| @inproceedings{goswami2024moment, | |
| title={MOMENT: A Family of Open Time-series Foundation Models}, | |
| author={Mononito Goswami and Konrad Szafer and Arjun Choudhry and Yifu Cai and Shuo Li and Artur Dubrawski}, | |
| booktitle={International Conference on Machine Learning}, | |
| year={2024} | |
| } | |
| ``` | |
| **APA:** | |
| Goswami, M., Szafer, K., Choudhry, A., Cai, Y., Li, S., & Dubrawski, A. (2024). | |
| MOMENT: A Family of Open Time-series Foundation Models. In International Conference on Machine Learning. PMLR. |