đ [VLDB' 25] ChatTS-14B Model
ChatTS focuses on understanding and reasoning about time series, offering enhanced capabilities for time series analysis and integration with LLMs.
[VLDB' 25] ChatTS: Aligning Time Series with LLMs via Synthetic Data for Enhanced Understanding and Reasoning
ChatTS
is dedicated to Understanding and Reasoning about time series, similar to the functions of vision/video/audio-MLLMs. This repository provides code, datasets, and the model for ChatTS
: ChatTS: Aligning Time Series with LLMs via Synthetic Data for Enhanced Understanding and Reasoning.
ChatTS
natively supports multi-variate time series data of any length and value range. With ChatTS
, you can easily understand and reason about both the shape features and value features in the time series. Additionally, ChatTS
can be integrated into existing LLM pipelines for more time series-related applications, leveraging existing inference frameworks such as vLLMs
.
Here is an example of a ChatTS application, which allows users to interact with an LLM to understand and reason about time series data:

Link to the paper
Link to the Github repository
đ Quick Start
This section provides a quick overview of how to use the ChatTS model.
⨠Features
- Native support for multi-variate time series data with any length and range of values.
- Ability to understand and reason about both shape and value features in time series.
- Integration with existing LLM pipelines for time series-related applications.
đģ Usage Examples
Basic Usage
from transformers import AutoModelForCausalLM, AutoTokenizer, AutoProcessor
import torch
import numpy as np
model = AutoModelForCausalLM.from_pretrained("./ckpt", trust_remote_code=True, device_map="auto", torch_dtype='float16')
tokenizer = AutoTokenizer.from_pretrained("./ckpt", trust_remote_code=True)
processor = AutoProcessor.from_pretrained("./ckpt", trust_remote_code=True, tokenizer=tokenizer)
timeseries = np.sin(np.arange(256) / 10) * 5.0
timeseries[100:] -= 10.0
prompt = f"I have a time series length of 256: <ts><ts/>. Please analyze the local changes in this time series."
prompt = f"<|im_start|>system\nYou are a helpful assistant.<|im_end|><|im_start|>user\n{prompt}<|im_end|><|im_start|>assistant\n"
inputs = processor(text=[prompt], timeseries=[timeseries], padding=True, return_tensors="pt")
outputs = model.generate(**inputs, max_new_tokens=300)
print(tokenizer.decode(outputs[0][len(inputs['input_ids'][0]):], skip_special_tokens=True))
đ Documentation
- This model is fine-tuned on the QWen2.5-14B-Instruct (https://huggingface.co/Qwen/Qwen2.5-14B-Instruct) model. For more usage details, please refer to the
README.md
in the ChatTS repository.
đ License
This model is licensed under the Apache License 2.0.
đ Reference
- QWen2.5-14B-Instruct (https://huggingface.co/Qwen/Qwen2.5-14B-Instruct)
- transformers (https://github.com/huggingface/transformers.git)
- ChatTS Paper
đ Cite
@article{xie2024chatts,
title={ChatTS: Aligning Time Series with LLMs via Synthetic Data for Enhanced Understanding and Reasoning},
author={Xie, Zhe and Li, Zeyan and He, Xiao and Xu, Longlong and Wen, Xidao and Zhang, Tieying and Chen, Jianjun and Shi, Rui and Pei, Dan},
journal={arXiv preprint arXiv:2412.03104},
year={2024}
}