{"id":50772040,"url":"https://github.com/DataDog/toto","last_synced_at":"2026-06-29T00:00:46.879Z","repository":{"id":293537379,"uuid":"977821228","full_name":"DataDog/toto","owner":"DataDog","description":"Time-Series-Optimized Transformer for Observability","archived":false,"fork":false,"pushed_at":"2026-06-15T21:23:54.000Z","size":25838,"stargazers_count":475,"open_issues_count":21,"forks_count":68,"subscribers_count":11,"default_branch":"main","last_synced_at":"2026-06-15T23:17:17.098Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DataDog.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-05-05T02:45:46.000Z","updated_at":"2026-06-15T08:08:54.000Z","dependencies_parsed_at":null,"dependency_job_id":"210ead93-fc30-49bb-ad01-d0ad8674fc8f","html_url":"https://github.com/DataDog/toto","commit_stats":null,"previous_names":["datadog/toto"],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/DataDog/toto","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataDog%2Ftoto","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataDog%2Ftoto/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataDog%2Ftoto/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataDog%2Ftoto/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DataDog","download_url":"https://codeload.github.com/DataDog/toto/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataDog%2Ftoto/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34907985,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-28T02:00:05.809Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-11T20:00:25.090Z","updated_at":"2026-06-29T00:00:46.850Z","avatar_url":"https://github.com/DataDog.png","language":"Jupyter Notebook","funding_links":[],"categories":["Simulation, Forecasting and Macro Modeling"],"sub_categories":["Forecasting and Nowcasting"],"readme":"# Toto - Time Series Optimized Transformer for Observability\n\n**Toto 2.0**: [Technical Report](https://arxiv.org/abs/2605.20119) | [Blog](https://www.datadoghq.com/blog/ai/toto-2/) |  [Model Weights](https://huggingface.co/collections/Datadog/toto-20)\n\n**Toto 1.0**: [Paper](https://arxiv.org/abs/2505.14766) | [Blog](https://www.datadoghq.com/blog/ai/toto-boom-unleashed/) | [Model Card](https://huggingface.co/Datadog/Toto-Open-Base-1.0)\n\nToto is a foundation model for multivariate time series forecasting with a focus on observability metrics. **Toto 2.0** is the current recommended release, featuring a family of u-μP-scaled models ranging from 4m to 2.5B parameters.\n\nThis repository also hosts the code for evaluating time series models on BOOM (**B**enchmark **o**f **O**bservability **M**etrics), a large-scale forecasting dataset composed of real-world observability data.\n\n### Updates\n\n- **[Apr 2026]** 🎉 Toto 2.0 released — five model sizes from 4m to 2.5B parameters.\n- **[Feb 2026]** Fine-tuning support added to Toto 1.0 (training script, configs, and tutorial notebook).\n- **[Feb 2026]** Exogenous covariate support added to Toto 1.0 for fine-tuning and inference.\n\n\n## Table of Contents\n- [Updates](#updates)\n- [Toto 2.0](#toto-20)\n  - [Features](#features)\n  - [Model Weights](#model-weights)\n  - [Installation](#installation)\n  - [Quick Start](#quick-start)\n  - [Tutorials](#tutorials)\n  - [Evaluation](#evaluation)\n  - [Requirements](#requirements)\n- [dd-unit-scaling](#dd-unit-scaling)\n- [Toto 1.0 (Legacy)](#toto-10-legacy)\n- [BOOM (Benchmark of Observability Metrics)](#boom-benchmark-of-observability-metrics)\n- [Citation](#citation)\n- [License](#license)\n- [Contributing](#contributing)\n\n## Toto 2.0\n\nToto 2.0 is the latest generation, featuring a u-μP-scaled transformer with alternating time/variate attention and quantile-based probabilistic forecasting.\n\n\u003e **Note:** Fine-tuning and exogenous variable (EV) support are planned for a future 2.0 release but not yet available. If you need these features today, use [Toto 1.0](#toto-10-legacy).\n\n### Features\n\n- **Zero-Shot Forecasting**: Perform forecasting without fine-tuning on your specific time series.\n- **State-of-the-Art Performance**: Achieves top scores on diverse benchmarks, including the multi-domain [GIFT-Eval](https://huggingface.co/spaces/Salesforce/GIFT-Eval) benchmark and our observability-focused [BOOM](https://huggingface.co/datasets/Datadog/BOOM) benchmark.\n- **Multi-Variate Support**: Efficiently process multiple variables using alternating time/variate attention.\n- **Probabilistic Predictions**: Generate both point forecasts and uncertainty estimates via a quantile head.\n- **High-Dimensional Support**: Handle time series with a large number of variables efficiently.\n- **Decoder-Only Architecture**: Supports variable prediction horizons and context lengths.\n\n\u003e **Inference tips for `forecast()`:**\n\u003e - **`decode_block_size`** selects the decoding strategy:\n\u003e   - `None` (single forward pass): faster, better for short-term accuracy. Used for all leaderboard results.\n\u003e   - e.g. `768` (block decode): better long-term stability for horizons ≳1000. Default in the quick start and notebooks.\n\u003e - **`has_missing_values=False`** (when your context has no gaps) enables Flash Attention kernels for a meaningful speedup. Leave as `True` (default) if `target_mask` contains any `False` entries.\n\n### Model Weights\n| Checkpoint | Parameters |\n|---|---|\n| [Toto-2.0-4m](https://huggingface.co/Datadog/Toto-2.0-4m) | 4m |\n| [Toto-2.0-22m](https://huggingface.co/Datadog/Toto-2.0-22m) | 22m |\n| [Toto-2.0-313m](https://huggingface.co/Datadog/Toto-2.0-313m) | 313m |\n| [Toto-2.0-1B](https://huggingface.co/Datadog/Toto-2.0-1B) | 1B |\n| [Toto-2.0-2.5B](https://huggingface.co/Datadog/Toto-2.0-2.5B) | 2.5B |\n\n### Installation\n\nInstall Toto 2.0 (requires Python 3.12+):\n\n```bash\npip install toto-models\n```\n\n### Quick Start\n\n```python\nimport torch\nfrom toto2 import Toto2Model\n\nmodel = Toto2Model.from_pretrained(\"Datadog/Toto-2.0-22m\")\ndevice = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\nmodel = model.to(device).eval()\n\n# (batch, n_variates, time_steps)\ntarget = torch.randn(1, 1, 512, device=device)\ntarget_mask = torch.ones_like(target, dtype=torch.bool)\nseries_ids = torch.zeros(1, 1, dtype=torch.long, device=device)\n\n# Returns quantiles of shape (9, batch, n_variates, horizon)\n# Quantile levels: [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9]\nquantiles = model.forecast(\n    {\"target\": target, \"target_mask\": target_mask, \"series_ids\": series_ids},\n    horizon=96,\n    decode_block_size=768,\n    has_missing_values=False,\n)\n```\n\n### Tutorials\n\n- [Quick Start](toto2/notebooks/quick_start.ipynb): Load a model, forecast, plot results, handle missing values and multivariate inputs.\n- [GluonTS Integration](toto2/notebooks/gluonts_integration.ipynb): Use `Toto2GluonTSModel` with GluonTS evaluation pipelines and built-in datasets.\n\n### Evaluation\n\n- [GIFT-Eval Notebook](https://github.com/SalesforceAIResearch/gift-eval/blob/main/notebooks/toto_2_0.ipynb): Evaluate Toto 2.0 on the GIFT-Eval benchmark.\n- [BOOM Evaluation Notebook](boom/notebooks/toto.ipynb) and [BOOM README](boom/README.md): Evaluate Toto 2.0 on the BOOM benchmark.\n\n### Requirements\n\n- Python 3.12+\n- PyTorch 2.5+\n- CUDA-capable device (Ampere generation or newer recommended for optimal performance)\n\n## dd-unit-scaling\n\nThis repository also includes [`dd-unit-scaling`](dd_unit_scaling/), a compile-friendly, world-size-aware extension of [graphcore-research/unit-scaling](https://github.com/graphcore-research/unit-scaling). It is used internally by Toto 2.0 to make u-μP work correctly with `torch.compile` and FSDP2. See the [dd-unit-scaling README](dd_unit_scaling/README.md) for details.\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003ch2\u003eToto 1.0 (Legacy)\u003c/h2\u003e\u003c/summary\u003e\n\n\u003e Toto 1.0 is the previous generation of Toto. It is still the right choice if you need **fine-tuning** or **exogenous variable** support, which are planned for 2.0 but not yet available.\n\n[Toto 1.0 Model Card](https://huggingface.co/Datadog/Toto-Open-Base-1.0) | [BOOM Dataset Card](https://huggingface.co/datasets/Datadog/BOOM)\n\n\n### Features\n\n- **Zero-Shot Forecasting**: Perform forecasting without fine-tuning on your specific time series\n- **State-of-the-Art Performance**: Achieves top scores in benchmarks covering diverse time series forecasting tasks. This includes the established multi-domain benchmark [GIFT-Eval](https://huggingface.co/spaces/Salesforce/GIFT-Eval), as well as our own observability-focused benchmark\n[BOOM](https://huggingface.co/datasets/Datadog/BOOM).\n- **Multi-Variate Support**: Efficiently process multiple variables using Proportional Factorized Space-Time Attention\n- **Probabilistic Predictions**: Generate both point forecasts and uncertainty estimates using a Student-T mixture model\n- **High-Dimensional Support**: Handle time series with a large number of variables efficiently\n- **Decoder-Only Architecture**: Support for variable prediction horizons and context lengths\n- **Pre-trained on Massive Data**: Trained on over 2 trillion time series data points, the largest pretraining dataset for any open-weights time series foundation model to date.\n\n### Model Weights\n\n| Checkpoint | Parameters | Notes |\n|------------|------------|-------|\n| [Toto-Open-Base-1.0](https://huggingface.co/Datadog/Toto-Open-Base-1.0) | 151M | The initial open release of Toto. Achieves state-of-the-art performance on both general-purpose and observability-focused benchmarking tasks, as described in our paper. |\n\n### Installation\n\n```bash\n# Optional: create a virtual environment\npython -m venv .venv\nsource .venv/bin/activate\n\n# Install via pip\npip install toto-ts\n```\n\nOr install as a local editable package (recommended for development or fine-tuning):\n\n```bash\ncd Toto\npip install -r requirements.txt\npip install -e .\n```\n\nFor optimal inference speed, it's recommended to install [xformers](https://github.com/facebookresearch/xformers?tab=readme-ov-file#installing-xformers) and [flash-attention](https://github.com/Dao-AILab/flash-attention?tab=readme-ov-file#installation-and-features) as well.\n\n### Quick Start\n\n```python\nimport torch\nfrom toto.data.util.dataset import MaskedTimeseries\nfrom toto.inference.forecaster import TotoForecaster\nfrom toto.model.toto import Toto\n\n# Load the pre-trained model\ntoto = Toto.from_pretrained('Datadog/Toto-Open-Base-1.0')\ntoto.to('cuda')  # Move to GPU\n\n# Optionally compile the model for faster inference\ntoto.compile()  # Uses Torch's JIT compilation for better performance\n\nforecaster = TotoForecaster(toto.model)\n\n# Prepare your input time series (channels, time_steps)\ninput_series = torch.randn(7, 4096).to('cuda')  # Example with 7 variables and 4096 timesteps\n\n# Prepare timestamp information (optional, but expected by API; not used by the current model release)\ntimestamp_seconds = torch.zeros(7, 4096).to('cuda')\ntime_interval_seconds = torch.full((7,), 60*15).to('cuda')  # 15-minute intervals\n\n# Create a MaskedTimeseries object\ninputs = MaskedTimeseries(\n    series=input_series,\n    padding_mask=torch.full_like(input_series, True, dtype=torch.bool),\n    id_mask=torch.zeros_like(input_series),\n    timestamp_seconds=timestamp_seconds,\n    time_interval_seconds=time_interval_seconds,\n)\n\n# Generate forecasts for the next 336 timesteps\nforecast = forecaster.forecast(\n    inputs,\n    prediction_length=336,\n    num_samples=256,  # Number of samples for probabilistic forecasting\n    samples_per_batch=256,  # Control memory usage during inference\n)\n\n# Access results\nmedian_prediction = forecast.median  # Point forecasts\nprediction_samples = forecast.samples  # Probabilistic samples\nlower_quantile = forecast.quantile(0.1)  # 10th percentile for lower confidence bound\nupper_quantile = forecast.quantile(0.9)  # 90th percentile for upper confidence bound\n```\n\n### Tutorials\n\n- [Basic Inference Tutorial](toto/notebooks/inference_tutorial.ipynb): Learn how to load the model and make forecasts\n- [Fine-tuning Tutorial](toto/notebooks/finetuning_tutorial.ipynb): Learn how to fine-tune Toto on custom datasets with or without exogenous covariates\n\n### Pre-Training Data\n\nToto was trained on a massive and diverse mixture of time series datasets:\n\n#### Observability Data\n\nThe largest portion of pretraining data comes from a dataset of approximately 1 trillion time series points collected from Datadog metrics. These metrics are generated from Datadog's monitoring of internal systems, and **do not** include any customer data. They cover a diverse array of software stacks and types of services, and span wide variety of domains within observability, including application performance, infrastructure, networking, security, databases, and more.\n\n#### Public Datasets\n\nTo improve the performance of Toto on general-purpose time series forecasting across many domains, we include publicly available datasets:\n- [GiftEval Pretrain](https://huggingface.co/datasets/Salesforce/GiftEvalPretrain)\n- [Chronos pretraining data](https://huggingface.co/datasets/autogluon/chronos_datasets) (Note: only a subset of this dataset was used to avoid leakage with the GiftEval benchmark)\n\n#### Synthetic Data\nTo improve robustness, approximately 1/3 of the pretraining data mix consists of synthetically-generated time series.\n\n### Evaluation\n\nToto has been rigorously evaluated on multiple benchmarks, including both general-purpose datasets and observability-focused datasets like BOOM. Below, we provide instructions for reproducing our evaluation results.\n\n#### LSF Evaluation\n\nTo reproduce our results on the LSF datasets, follow these steps:\n\n##### Downloading the Datasets\n\nThe LSF evaluation requires three datasets: ETT, Electricity, and Weather. You can download them from the [Time-Series-Library repository](https://github.com/thuml/Time-Series-Library). Follow the instructions in the [repository](https://github.com/thuml/Time-Series-Library#:~:text=r%20requirements.txt-,Prepare,-Data.%20You%20can) to obtain the following already pre-processed datasets:\n\n- **[ETT (Electricity Transformer Temperature)](https://drive.google.com/file/d/1bnrv7gpn27yO54WJI-vuXP5NclE5BlBx/view?usp=drive_link)**: Includes four subsets: ETTh1, ETTh2, ETTm1, and ETTm2.\n- **[Electricity](https://drive.google.com/file/d/1FHH0S3d6IK_UOpg6taBRavx4MragRLo1/view?usp=drive_link)**\n- **[Weather](https://drive.google.com/file/d/1nXdMIJ7K201Bx3IBGNiaNFQ6FzeDEzIr/view?usp=drive_link)**\n\nAfter downloading, ensure the datasets are placed in the `data/lsf_datasets/` directory within the repository, with the following structure:\n\n```\ndata/\n└── lsf_datasets/\n  ├── ETT-small/\n  ├── electricity/\n  └── weather/\n```\n\n##### Running the Evaluation Script\n\nOnce the datasets are set up, you can run the LSF evaluation script as follows to reproduce our results:\n```bash\nexport CUBLAS_WORKSPACE_CONFIG=:4096:8  # For reproducible GPU results\nexport PYTHONPATH=\"$(pwd):$(pwd)/toto:$PYTHONPATH\"  # Add current and \"toto\" dirs to Python module search path\npython toto/evaluation/run_lsf_eval.py \\\n    --datasets ETTh1 \\\n    --context-length 2048 \\\n    --eval-stride 1 \\\n    --checkpoint-path [CHECKPOINT-NAME-OR-DIR]\n```\n\nTo see all available options for the evaluation script, you can use the `--help` flag:\n\n```bash\npython toto/evaluation/run_lsf_eval.py --help\n```\n\n##### Expected Results\nThe script evaluates Toto's performance using Mean Absolute Error (MAE) and Mean Squared Error (MSE) across the specified datasets, context lengths, and prediction lengths. It displays a detailed table of results for each prediction length, along with a summary table that averages the results across prediction lengths for each dataset.\n\nTo reproduce the results presented in the paper, use the default arguments while setting `--eval-stride 1` and specifying all datasets with `--datasets ETTh1 ETTh2 ETTm1 ETTm2 weather electricity`.\n\n#### GIFT-Eval Evaluation\n\nTo reproduce our results on the GIFT-Eval benchmark, we provide a dedicated notebook:\n\n- [GIFT-Eval Evaluation Notebook](toto/evaluation/gift_eval/toto.ipynb): Step-by-step instructions for running Toto on the GIFT-Eval benchmark and reproducing the reported results.\n\n#### BOOM Evaluation\n\nFor evaluating Toto on the BOOM (Benchmark of Observability Metrics) dataset, refer to:\n\n- [BOOM Evaluation Notebook](boom/notebooks/toto.ipynb): Example workflow for running Toto on the BOOM dataset.\n- [BOOM README](boom/README.md): Detailed instructions and scripts for benchmarking on BOOM.\n\n### Fine-tuning\n\nToto can be fine-tuned on your own domain-specific datasets to improve performance on specialized forecasting tasks. The fine-tuning pipeline supports both standard time series and datasets with exogenous (known future) variables.\n\n#### Fine-tuning Tutorial\n\nTo fine-tune Toto, use the provided [finetuning tutorial](toto/notebooks/finetuning_tutorial.ipynb), which demonstrates fine-tuning with and without exogenous variables.\n\nTo customize the fine-tuning recipe, modify the base configuration in [finetune_config.yaml](toto/scripts/configs/finetune_config.yaml).\n\nBy default, the tutorial uses the `proenfo_gfc12` dataset from the [autogluon/fev_datasets](https://huggingface.co/datasets/autogluon/fev_datasets) collection.\n\n#### Custom Datasets\n\nThere are two ways to use custom datasets for fine-tuning:\n\n##### Option A: HuggingFace Dataset with Configuration Dictionary\n\nThe simplest approach is to use a HuggingFace `datasets.Dataset` configured via a dictionary. Modify the `prepare_dataset()` function in [benchmark_finetuning.py](toto/scripts/benchmark_finetuning.py) to load your data:\n\n```python\ncustom_dataset = {\n    \"dataset\": dataset,              # HuggingFace Dataset object\n    \"target_fields\": [\"target\"],     # List of field names for target variables\n    \"target_transform_fns\": [...],   # Transform functions for each target field\n    \"ev_fields\": [\"temp\", \"humidity\"],  # List of exogenous covariate field names\n    \"ev_transform_fns\": [...],       # Transform functions for each exogenous field\n    \"dataset_name\": \"my_dataset\",    # Name of your custom dataset\n}\n```\n\n**HuggingFace Dataset Requirements:**\n\nYour dataset must contain:\n- `timestamp`: A 1D array of timestamps for each time series\n- Target fields (e.g., `target`): Arrays of shape `(T,)` for each target variable\n- Exogenous fields (optional): Arrays of shape `(T,)` for each dynamic exogenous variable\n\nThe pipeline uses [FinetuneDataModule](toto/data/datamodule/finetune_datamodule.py), which internally converts your data into `CausalMaskedTimeseries` objects (the input format expected by Toto during fine-tuning) via GluonTS transforms.\n\n##### Option B: Custom PyTorch Dataset and DataModule\n\nFor full control over data loading, you can implement your own PyTorch `Dataset` that returns `CausalMaskedTimeseries` objects and wrap it in a custom `LightningDataModule`.\n\n**Step 1:** Create a Dataset class that returns `CausalMaskedTimeseries`:\n\n```python\nfrom torch.utils.data import Dataset\nfrom toto.data.util.dataset import CausalMaskedTimeseries\n\nclass MyCustomDataset(Dataset):\n    ...\n    def __getitem__(self, idx: int) -\u003e CausalMaskedTimeseries:\n        # Build and return a CausalMaskedTimeseries for this sample\n        # See toto/data/datasets/gluonts_dataset.py for a reference implementation\n        ...\n```\n\n**Step 2:** Create a custom `LightningDataModule`:\n\n```python\nfrom lightning import LightningDataModule\nfrom torch.utils.data import DataLoader\nfrom toto.data.util.helpers import collate_causal\n\nclass MyFinetuneDataModule(LightningDataModule):\n    def __init__(self, train_dataset: MyCustomDataset, val_dataset: MyCustomDataset, ...):\n        ...\n\n    def train_dataloader(self) -\u003e DataLoader:\n        return DataLoader(self.train_dataset, collate_fn=collate_causal, ...)  # collate_fn is required\n\n    def val_dataloader(self) -\u003e DataLoader:\n        return DataLoader(self.val_dataset, collate_fn=collate_causal, ...)\n```\n\n**Step 3:** Modify [finetune_toto.py](toto/scripts/finetune_toto.py) to use your custom DataModule:\n\n```python\n# Replace the get_datamodule() call with your custom DataModule\ndm = MyFinetuneDataModule(train_dataset, val_dataset, batch_size=16)\n_ = train(module, dm, config)\n```\n\n#### Evaluations on FEV Datasets\n\nThe [benchmark_finetuning.py](toto/scripts/benchmark_finetuning.py) script evaluates Toto on a subset of FEV datasets that are not included in Toto's pretraining corpus. These datasets contain known exogenous variables, enabling a comparison of three approaches:\n\n- **Zero-shot Toto** — No fine-tuning\n- **Fine-tuned Toto** — Fine-tuned without exogenous variables\n- **Fine-tuned Toto with Exogenous Variables** — Fine-tuned with known future covariates\n\nModels are evaluated using sliding windows on the test set (10% of each dataset), with context length and horizon configured per FEV task. Results are aggregated using the geometric mean across datasets in [aggregate_results.ipynb](toto/evaluation/fev/aggregate_results.ipynb):\n\n| Model | MAE | WQL | MASE |\n|:------|----------:|-------------------:|-----:|\n| Toto (zero-shot) | 6150.242 | 0.111 | 0.632 |\n| Toto (fine-tuned) | \u003cu\u003e5397.929\u003c/u\u003e | \u003cu\u003e0.100\u003c/u\u003e | \u003cu\u003e0.574\u003c/u\u003e |\n| Toto (fine-tuned + exogenous) | **5117.002** | **0.096** | **0.535** |\n\n### Requirements\n\n- Python 3.10+\n- PyTorch 2.5+\n- CUDA-capable device (Ampere generation or newer recommended for optimal performance)\n\n### Citation (1.0)\n\nIf you use Toto 1.0 in your research, please cite:\n\n```bibtex\n@misc{cohen2025timedifferentobservabilityperspective,\n      title={This Time is Different: An Observability Perspective on Time Series Foundation Models},\n      author={Ben Cohen and Emaad Khwaja and Youssef Doubli and Salahidine Lemaachi and Chris Lettieri and Charles Masson and Hugo Miccinilli and Elise Ramé and Qiqi Ren and Afshin Rostamizadeh and Jean Ogier du Terrail and Anna-Monica Toon and Kan Wang and Stephan Xie and Zongzhe Xu and Viktoriya Zhukova and David Asker and Ameet Talwalkar and Othmane Abou-Amal},\n      year={2025},\n      eprint={2505.14766},\n      archivePrefix={arXiv},\n      primaryClass={cs.LG},\n      url={https://arxiv.org/abs/2505.14766},\n}\n```\n\n\u003c/details\u003e\n\n## BOOM (Benchmark of Observability Metrics)\n\nBOOM is used for evaluating both Toto 1.0 and 2.0.\n\n**BOOM** (**B**enchmark **o**f **O**bservability **M**etrics) is a large-scale, real-world time series dataset designed for evaluating models on forecasting tasks in complex observability environments.\nComposed of real-world metrics data collected from Datadog, a leading observability platform, the benchmark captures the irregularity, structural complexity, and heavy-tailed statistics typical of production observability data. Unlike synthetic or curated benchmarks, BOOM reflects the full diversity and unpredictability of operational signals observed in distributed systems, covering infrastructure, networking, databases, security, and application-level metrics.\n\nNote: the metrics comprising BOOM were generated from internal monitoring of pre-production environments, and **do not** include any customer data.\n\nFor more information on the dataset, including details on its preparation and statistical properties, see the [dataset card](https://huggingface.co/datasets/Datadog/BOOM) in Hugging Face.\n\nFor example evaluations of different time series models on the BOOM dataset, see the [boom](boom) folder in this repository.\n\n## Citation\n\nIf you use Toto 2.0 in your research or work, please cite:\n\n```bibtex\n@misc{khwaja2026toto20timeseries,\n      title={Toto 2.0: Time Series Forecasting Enters the Scaling Era}, \n      author={Emaad Khwaja and Chris Lettieri and Gerald Woo and Eden Belouadah and Marc Cenac and Guillaume Jarry and Enguerrand Paquin and Xunyi Zhao and Viktoriya Zhukov and Othmane Abou-Amal and Chenghao Liu and Ameet Talwalkar and David Asker},\n      year={2026},\n      eprint={2605.20119},\n      archivePrefix={arXiv},\n      primaryClass={cs.LG},\n      url={https://arxiv.org/abs/2605.20119}, \n}\n```\n\nFor Toto 1.0, see the [Toto 1.0 citation](#citation-10).\n\n## License\nUnless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License - see [LICENSE](LICENSE) file for details.\n\nThis product includes software developed at Datadog (https://www.datadoghq.com/) Copyright 2025-2026 Datadog, Inc.\n\n## Contributing\n\nWe welcome contributions! Please check out our [contributing guidelines](CONTRIBUTING.md) to get started.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDataDog%2Ftoto","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FDataDog%2Ftoto","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDataDog%2Ftoto/lists"}