KumoAnomaly#

Release Date

Parameter Count

Code License

Weights License

2026-06-29

2.44M

Apache-2.0

Apache-2.0

class sdm.models.KumoAnomaly(pretrained: bool = True, device: device | str | None = None)#

Bases: Model

The time series anomaly detection foundation model from the “NV-Tesseract-AD: Curriculum-Enhanced Conditional Diffusion for Multivariate Time-Series Anomaly Detection” paper.

../../_images/kumo_anomaly_light.png

KumoAnomaly reconstructs multivariate time series with conditional diffusion and uses reconstruction errors to score anomalies. It combines sinusoidal time embeddings and learned feature embeddings with diffusion-step and masking-strategy embeddings. Its denoiser alternates attention over time and features with gated residuals and aggregated skip connections that predict noise at each time step and feature.

At inference, two complementary masks hide alternating temporal blocks. Reverse diffusion reconstructs each hidden block from the visible context, and the sample median combines repeated reconstructions. Mean absolute reconstruction error across features gives a score per time step; larger scores indicate less accurately reconstructed observations.

Parameters:
  • pretrained (bool) – Whether to load the pretrained checkpoint.

  • device (torch.device | str | None) – The device.

forward(x: Tensor | TableTensor, *, recipe: Recipe | None = None, num_samples: int = 30, num_steps: int = 20, callbacks: Sequence[Callback] | None = None, generator: Generator | None = None) → TableTensor#

The forward pass.

Parameters:
  • x (Tensor | TableTensor) – The feature tensor with shape [..., R, D] with R rows and D columns.

  • recipe (Recipe | None) – The custom recipe for pre- and post-processing.

  • num_samples (int) – The number of reconstruction samples per complementary masking strategy. Reconstructions are combined using the sample median.

  • num_steps (int) – The number of denoiser evaluations per sample and masking strategy.

  • callbacks (Sequence[Callback] | None) – Callbacks applied in sequence to this model call.

  • generator (Generator | None) – Pseudorandom number generator used for sampling during pre-processing and model execution.

Returns:

A table with shape [..., R, 3] containing numerical mae reconstruction scores and categorical boolean scs and macs anomaly labels at each time step. SCS (Segmented Confidence Sequences) segments the preprocessed series and thresholds scores using expanding bounds within each segment. MACS (Multi-Scale Adaptive Confidence Segments) uses variance-weighted expanding score bounds.

Return type:

TableTensor

Capabilities#

Supported Input Semantic Types

numerical

Model Details#

Output

Reconstruction scores named "mae" and boolean anomaly labels named "scs" and "macs" per time step

Missing Values

Mean imputation in the default recipe

Pretraining Scope

Up to 40 columns

Default Recipe#

Recipe(
  features=StypeDispatch(
    numerical=Sequential(
      ImputeMean(),
      PCA(num_components=40),
      MinMaxScale(),
    ),
  ),
  target=Identity(),
  output=Identity(),
)