Instructions to use PartAI/FlaMinGo-timesfm with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use PartAI/FlaMinGo-timesfm with Transformers:
# Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("PartAI/FlaMinGo-timesfm", device_map="auto") - Notebooks
- Google Colab
- Kaggle
| library_name: transformers | |
| license: apache-2.0 | |
| tags: | |
| - PartAI | |
| - time-series-forecasting | |
| - Classification | |
| - Foundation-Models | |
| base_model: | |
| - google/timesfm-2.0-500m-pytorch | |
| # Model Detail | |
| FlaMinGo is a foundation model for time-series classification, fine-tuned on extensive **Persian financial datasets**. Developed by [Part AI](https://partdp.ai/), it extends Google's [TimesFM](https://github.com/google-research/timesfm) model by **adding classification capability**, enabling it to handle both forecasting and classification tasks. | |
| # How to use | |
| To perform inference on your dataset, follow these steps: | |
| 1. Clone our repository | |
| 2. Install the required dependencies. Ensure you are using **Python 3.11**: | |
| ``` | |
| cd FlaMinGo-timesfm | |
| pip install --upgrade pip | |
| pip install timesfm[torch] | |
| pip install -e . | |
| ``` | |
| 3. Download the TimeSFM model weights: | |
| - [TimeSFM 200M Model Weights](https://huggingface.co/google/timesfm-1.0-200m-pytorch/tree/main) | |
| - [TimeSFM 500M Model Weights](https://huggingface.co/google/timesfm-2.0-500m-pytorch/tree/main) | |
| ## Configuration | |
| Before running the model, set up the necessary configurations in the `.env` file located in the repository. The following environment variables must be configured: | |
| - `MODEL_PATH`: Path to the TimeSFM model | |
| - `SAVE_MODEL_PATH`: Path to save the fine-tuned model for the classification task | |
| - `TRAIN_FILE_PATH`: Path to the training dataset | |
| - `TEST_FILE_PATH`: Path to the test dataset | |
| - `USE_GPU`: Use GPU or CPU | |
| - `NUM_LAYERS`: Number of layers in the TimeSFM model (chosen based on the TimeSFM model size: 200M or 500M) | |
| - `TARGET_COL_NAME`: Target column index in the dataset | |
| Example `.env` file: | |
| ``` | |
| MODEL_PATH=/app/weights/torch_model.ckpt | |
| SAVE_MODEL_PATH=timesfm_classification_model.pth | |
| TRAIN_FILE_PATH=/app/dataset/ECG200_TRAIN | |
| TEST_FILE_PATH=/app/dataset/ECG200_TEST | |
| USE_GPU=cpu | |
| NUM_LAYERS=20 | |
| TARGET_COL_NAME=0 | |
| ``` | |
| ## Fine-Tuning the Model | |
| To fine-tune the TimesFM model on your dataset, navigate to the `experiments/torch_classification_timesfm` directory in FlaMinGo repo and run the following command: | |
| ``` | |
| python run_timesfm_classification.py | |
| ``` | |
| This script will load the dataset, fine-tune the model, and save the fine-tuned model to the path specified in `SAVE_MODEL_PATH`. | |
| Alternatively, you can use the `notebooks/finetune_timesfm_torch_classification.ipynb` Jupyter notebook to fine-tune the model and perform inference interactively. | |
| ## Notes | |
| - Ensure that the dataset paths (`TRAIN_FILE_PATH` and `TEST_FILE_PATH`) are correctly specified in the .env file. | |
| - If using a GPU, set `USE_GPU=gpu` in the `.env` file and ensure that CUDA is properly installed. | |
| - The number of layers (`NUM_LAYERS`) should match the TimesFM size (200M or 500M). | |
| - Ensure that the training and testing datasets are in `.csv` format. | |
| # Evaluation | |
| FlaMinGo, available in two versions (FlaMinGo-200M and FlaMinGo-500M), was evaluated against three popular time-series classification models (MOMENT, TimesNet, and GPT4TS) on multiple datasets from the UCR collection. | |
| | **Dataset** | **FlaMinGo (Timesfm-200M)** | **FlaMinGo (Timesfm-500M)** | **MOMENT** | **TimesNet** | **GPT4TS** | | |
| |----------------------------------------|:--------------------------------:|:--------------------------------:|:----------:|:------------:|-----------:| | |
| | Ham | 69.5 | 63.8 | 58.1 | 68.6 | **78.1** | | |
| | InsectWingbeatSound | **62.1** | 54.4 | 60.7 | 52.9 | 59.8 | | |
| | ECG5000 | 94 | 91.6 | **94.2** | 58.4 | 58.4 | | |
| | ECG200 | **90** | 87 | 76 | 83 | 79 | | |
| | BirdChicken | **85** | 75 | 85 | 45 | 55 | | |
| | Adiac | 62.9 | 22.3 | **68.8** | 56.5 | 59.8 | | |
| | ProximalPhalanxOutlineAgeGroup | 82.4 | 80.5 | 86.3 | **86.8** | 83.9 | | |
| | Trace | 92 | 76 | **100** | 76 | 71 | | |
| | wafer | 99.5 | 98.5 | **99.7** | 98.9 | 99.4 | | |
| | CBF | **99.4** | 90.1 | 96 | 76.1 | 83 | | |
| | ElectricDevices | **70** | 64 | 64.6 | 55.2 | 50.6 | | |
| | MoteStrain | **80** | 74.6 | 77.4 | 70 | 68.1 | | |
| | TwoLeadECG | **90.1** | 80.1 | 84.7 | 63.3 | 65.8 | | |
| | ShapeletSim | 89.4 | 63.3 | **96.1** | 50 | 48.9 | | |
| | Cricket_Z | **76.7** | 61.5 | 73.1 | 45.9 | 39.7 | | |
| | Strawberry | 92.2 | 86.6 | **95.1** | 94.6 | 93.5 | | |
| | FordA | 93.1 | 81.3 | **93.6** | 91.3 | 91.4 | | |
| | Symbols | 87.6 | 81.8 | **93.6** | 86.4 | 69.4 | | |
| | MiddlePhalanxTW | **63.7** | 63.4 | 53.2 | 50.6 | 57.1 | | |
| | yoga | 77.5 | 73.6 | **83.4** | 67.2 | 69.1 | | |
| | Meat | **93.3** | 93.3 | 91.7 | 43.3 | 66.7 | | |
| | MedicalImages | 71.7 | 58.2 | **76.2** | 57.1 | 49.6 | | |
| | DistalPhalanxTW | **77.5** | 77 | 61.2 | 60.4 | 61.9 | | |
| | ProximalPhalanxOutlineCorrect | 81.1 | 79.7 | 85.6 | **86.9** | 80.1 | | |
| | Herring | **59.4** | 59.4 | 59.4 | 53.1 | 57.8 | | |
| | ToeSegmentation2 | 86.2 | 73.1 | **91.5** | 73.1 | 73.1 | | |
| | OSULeaf | **79** | 57 | 78.5 | 39.7 | 23.1 | | |
| | **Average Accuracy** | **81.6** | 73.2 | 80.1 | 66.1 | 68.2 | | |
| Our results show that FlaMinGo achieves competitive performance across diverse time-series classification tasks. It outperforms existing models in **13** classification tasks and achieves the **highest overall average accuracy** among all models. In most other cases, it delivers results comparable to the best-performing models. Since FlaMinGo has been fine-tuned on Persian financial data to improve forecasting capability, we also compared its forecasting performance against TimeSFM on crypto-related datasets we gathered. This evaluation provides insights into how fine-tuning affects the model's ability to predict financial trends. | |
| | **Dataset** | **MSE (pretrained)** | **MAE (pretrained)** | **MSE (fine-tuned)** | **MAE (fine-tuned)** | | |
| |----------------------------------------|:--------------------------------:|:--------------------------------:|:----------:|:------------:| | |
| | Crypto-1 | 1.93E-06 | 1.76E-04 | **1.24E-06** | **0.000144** | | |
| | Crypto-2 | 4.31E-06 | 2.43E-04 | **3.66E-06** | **0.000218** | | |
| | Crypto-3 | 7.36E-06 | 3.31E-04 | **6.54E-06** | **0.000307** | | |
| | Crypto-4 | 6.71 | 0.3 | **5.92** | **0.28** | | |
| | Crypto-5 | 7.26E-07 | 1.08E-04 | **6.68E-07** | **0.0001** | | |
| | Crypto-6 | 54028.91 | 29.82 | **40619.24** | **25.42** | | |
| | Crypto-7 | 0.19 | 0.0499 | **0.18** | **0.0458** | | |
| | Crypto-8 | 0.00181 | 0.00543 | **0.00168** | **0.00515** | | |
| | **Average Improvement** | | | **MSE: 14.88%** | **MAE: 9.74%** | | |
| These results demonstrate the effectiveness of fine-tuning on Persian financial data, improving the model’s adaptability to structured time-series patterns. **It is also worth noting** that the fine-tuned model was evaluated on cryptocurrency datasets, which pose greater complexity, achieving a **14.88% improvement in MSE** and a **9.74% improvement in MAE**, further showcasing its enhanced predictive performance. | |
| ## Contact us | |
| If you have any questions regarding this model, you can reach us via the [community](https://huggingface.co/PartAI/FlaMinGo-timesfm/discussions) on Hugging Face. |