--- license: apache-2.0 library_name: transformers pipeline_tag: text-generation base_model: - Qwen/Qwen2.5-14B-Instruct datasets: - ChatTSRepo/ChatTS-Training-Dataset language: - zho - eng - fra - spa - por - deu - ita - rus - jpn - kor - vie - tha - ara --- # [VLDB' 25] ChatTS-14B Model
**[VLDB' 25] ChatTS: Aligning Time Series with LLMs via Synthetic Data for Enhanced Understanding and Reasoning** `ChatTS` focuses on **Understanding and Reasoning** about time series, much like what vision/video/audio-MLLMs do. This repo provides code, datasets and model for `ChatTS`: [ChatTS: Aligning Time Series with LLMs via Synthetic Data for Enhanced Understanding and Reasoning](https://arxiv.org/pdf/2412.03104). `ChatTS` features native support for multi-variate time series data with any length and range of values. With `ChatTS`, you can easily understand and reason about both the **shape** features and **value** features in the time series. `ChatTS` can also 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 a LLM to understand and reason about time series data:  [Link to the paper](https://arxiv.org/pdf/2412.03104) [Link to the Github repository](https://github.com/NetManAIOps/ChatTS) ## Usage - 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. - An example usage of ChatTS (with `HuggingFace`): ```python from transformers import AutoModelForCausalLM, AutoTokenizer, AutoProcessor import torch import numpy as np # Load the model, tokenizer and processor 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) # Create time series and prompts timeseries = np.sin(np.arange(256) / 10) * 5.0 timeseries[100:] -= 10.0 prompt = f"I have a time series length of 256: