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
Shano is a foundation model for time-series classification, fine-tuned on extensive Persian financial datasets. Developed by Part AI, it extends Google's 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:
- Clone our repository
- Install the required dependencies. Ensure you are using Python 3.11:
cd Shano
pip install --upgrade pip
pip install timesfm[torch]
pip install -e .
- Download the TimeSFM model weights:
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 modelSAVE_MODEL_PATH
: Path to save the fine-tuned model for the classification taskTRAIN_FILE_PATH
: Path to the training datasetTEST_FILE_PATH
: Path to the test datasetUSE_GPU
: Use GPU or CPUNUM_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 Shano 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
andTEST_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
Shano, available in two versions (Shano-200M and Shano-500M), was evaluated against three popular time-series classification models (MOMENT, TimesNet, and GPT4TS) on multiple datasets from the UCR collection.
Dataset | Shano (Timesfm-200M) | Shano (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 |
Our results show that Shano achieves competitive performance across diverse time-series classification tasks. In several cases, it outperforms existing models, while in most other cases, it delivers results comparable to the best-performing models. Since Shano 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 |
These results highlight the effectiveness of fine-tuning on Persian financial data, which enhances the model’s adaptability to structured time-series patterns.
Contact us
If you have any questions regarding this model, you can reach us via the community on Hugging Face.