nvidia-tao/tao-skill-bank/tao-finetune-kumo-forecast

Claude Code and agent skill by nvidia-tao/tao-skill-bank

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Kumo-Forecast — transformer-based multivariate time series forecasting with DARR (context-enhanced kNN retrieval), interpretability, and fine-tuning. Use when the user asks to "forecast with Kumo-Forecast", "run forecasting inference", "use perform_forecasting", "DARR mode", "context-enhanced forecasting", "lag horizon attribution", "interpretability", "fine-tune forecasting", "fine-tune forecasting with automl", "hyper-parameter optimization with forecasting", or mentions "kumo-forecast", "moment_head_512_6hr", or "run8_best_model_cr".

Install

npx vskill@latest install nvidia-tao/tao-skill-bank/tao-finetune-kumo-forecast

SKILL.md

The same SKILL.md was published earlier as nvidia/skills/tao-finetune-kumo-forecast.

Kumo-Forecast

Transformer-based multivariate time series forecasting using self-supervised pretraining on diverse temporal data. Three inference modes: standard (direct forecast), DARR (context-enhanced kNN retrieval blending), and interpretability (latent trajectory extraction, semantic flow, lag×horizon attribution, trajectory stability, and diagnostic ratios — full explanation bundle with PDF report). Fine-tuning adapts the forecasting head — and optionally the cross-channel layer — to your domain.

Source code: https://github.com/NVIDIA/Kumo-TS Pretrained weights: https://huggingface.co/nvidia/Kumo-Forecast

External dependencies

DependencyPurposeInstall
Python 3.10+Runtimehttps://www.python.org/downloads/
uvPackage + environment managerpip install uv
CUDA toolkit (optional)GPU accelerationhttps://developer.nvidia.com/cuda-downloads
matplotlib (optional)Interpretability PDF report, heatmap PNG, flow + stability chartsuv add matplotlib

Credentials

nvidia/Kumo-Forecast is a public repo — no token required for downloading weights. If you hit a 401/403 (gated access or license not accepted) or a 504 on first download, see the Known pitfalls section.

Quick start

bash
git clone --branch main --single-branch https://github.com/NVIDIA/Kumo-TS Kumo-TS
cd Kumo-TS/Kumo-Forecast
uv sync --group dev
uv pip install -e . # editable install — required for clean sdk.* imports
# Standard inference (auto-downloads weights from HF on first run, no auth needed)
uv run python sdk/quick_example.py

Inference

Import and call perform_forecasting from sdk/forecasting.py. It auto-downloads weights, standardizes input, runs autoregressive rollout for long horizons, and returns a DataFrame with {target_column}_forecast rows for the requested horizon.

python
import sys, pandas as pd
sys.path.append("/path/to/Kumo-TS/Kumo-Forecast") # clone Kumo-TS with --branch main
from sdk.forecasting import ForecastingConfig, perform_forecasting
df = pd.read_csv("your_data.csv") # must have timestamp + numeric target column
config = ForecastingConfig(
timestamp_column="timestamp", # parseable datetime column
target_column="target", # primary target to forecast
seq_len=512, # input context length (rows consumed)
forecast_horizon=72, # steps ahead to predict (max 512)
model_horizon=72, # native model horizon; change when using custom weights
standardizer_pkl="standardizer.pkl", # auto-downloaded from HF if missing
ckpt="run8_best_model_cr.pt", # auto-downloaded; see Checkpoints table
)
results = perform_forecasting(df=df, config=config)
# Returns DataFrame: timestamp | {target_column}_forecast (forecast_horizon rows)
print(results.head())

For regular inference, put forecasting arguments in YAML and pass the file as config. Start from the fully commented template in sdk/forecasting_inference_config.yaml.

yaml
inference:
# Number of historical rows consumed for the input context window.
seq_len: 512
# Number of future rows to predict.
forecast_horizon: 72
# Native horizon used when training the checkpoint.
model_horizon: 72
# Enable cross-channel attention for multivariate forecasting.
use_cross_channel: true
python
results = perform_forecasting(df=df, config="sdk/forecasting_inference_config.yaml")

The YAML can be flat or use a top-level inference: section inside a larger TAO/AutoML spec. Unknown keys raise ValueError.

Checkpoints
FileModeDownloaded when
run8_best_model_cr.ptDefault (cross-channel on)use_cross_channel=True (default)
moment_head_512_6hr.ptStandard (no cross-channel)use_cross_channel=False
standardizer.pklBothAlways

Set use_cross_channel=False in ForecastingConfig or YAML to use the standard checkpoint:

python
results = perform_forecasting(df=df, config=ForecastingConfig(use_cross_channel=False))

DARR mode (context-enhanced forecasting)

Supply context_df to enable DARR: the SDK builds a kNN memory from historical windows and blends direct predictions with retrieved neighbors (alpha * direct + (1 - alpha) * kNN).

python
context_df = pd.read_csv("historical_data.csv") # needs ≥ seq_len + model_horizon rows
config = ForecastingConfig(
forecast_horizon=72,
alpha=0.2, # 0.2 = 20% direct, 80% kNN (default: 0.01)
k=64, # number of nearest neighbors
temperature=0.05, # kNN softmax temperature
)
results = perform_forecasting(df=df, config=config, context_df=context_df)

Context and input datasets do not need identical columns — the SDK aligns to common features and warns when columns differ. Both must share timestamp_column and target_column.

Interpretability

Set interpretability=True to activate the Model-Agnostic Interpretability Framework. It produces localized, horizon-specific, time-aware explanations — including lag×horizon attribution, semantic flow, trajectory stability, diagnostic ratios, and (for multivariate inputs) channel-axis attribution and coupling analysis.

For the full parameter reference, output bundle, and component descriptions, see
[`Kumo-Forecast/README.md`](https://github.com/NVIDIA/Kumo-TS/blob/main/Kumo-Forecast/README.md).

Fine-tuning

Fine-tune the forecasting head (encoder/embedder frozen by default) on your own time series. --ckpt-init auto warm-starts from the published Kumo-Forecast checkpoint; --ckpt-init none trains a fresh head from the base backbone.

bash
cd /path/to/Kumo-TS/Kumo-Forecast
# Without cross-channel (uses moment_head_512_6hr.pt)
uv run python examples/finetune_example.py \
--csv /path/to/timeseries.csv \
--timestamp-col timestamp \
--target-cols target \
--seq-len 512 --forecast-horizon 72 \
--epochs 5 --batch-size 8 --lr 1e-4 \
--output-dir artifacts/finetune_my_data
# With cross-channel layer (uses run8_best_model_cr.pt)
uv run python examples/finetune_example.py \
--csv /path/to/timeseries.csv \
--timestamp-col timestamp \
--target-cols sensor_1,sensor_2,sensor_3 \
--use-cross-channel --cross-channel-heads 8 \
--epochs 5 \
--output-dir artifacts/finetune_cross_channel
Fine-tuning arguments
ArgumentDefaultDescription
--run-config—YAML config from AutoMLRunner ({config_path}). CLI flags override file values.
--csvrequired*Single CSV split temporally into train/val
--train-csvrequired*Training CSV (mutually exclusive with --csv)
--val-csv—Validation CSV when --train-csv is used
--timestamp-coltimestampDatetime column to exclude from features
--target-colsall numericComma-separated columns to forecast
--model-nameAutonLab/MOMENT-1-largeBackbone model identifier
--ckpt-initautoauto = published Kumo-Forecast weights; none = fresh head; or path to .pt
--standardizer-initstandardizer.pklStandardizer pickle used when --ckpt-init auto
--repo-idnvidia/Kumo-ForecastHuggingFace repo for auto-download
--seq-len512Input context length
--forecast-horizon72Steps ahead to predict
--strideforecast_horizonSliding window stride (None → horizon)
--val-ratio0.1Validation fraction when --csv is used
--test-ratio0.0Test holdout fraction when --csv is used
--no-standardizefalseDisable per-dataset standardization
--epochs5Training epochs
--batch-size8Per-GPU batch size
--lr1e-4AdamW learning rate (OneCycleLR scheduler)
--weight-decay0.0AdamW weight decay
--head-dropout0.1Forecasting head dropout
--max-norm5.0Gradient norm clip
--num-workers0DataLoader workers
--seed13Random seed
--output-dirartifacts/finetuneOutput directory
--local-files-onlyfalseDo not download backbone weights from HuggingFace
--unfreeze-encoderfalseTrain the transformer encoder too
--unfreeze-embedderfalseTrain the patch embedder too
--use-cross-channelfalseAdd cross-channel attention layer
--cross-channel-heads8Attention heads in cross-channel layer
--cross-channel-dropout0.1Dropout in the cross-channel layer
--num-gpusall availableNumber of GPUs for DDP fine-tuning; set 1 to force single-GPU

*One of --csv or --train-csv is required.

Inference with fine-tuned checkpoint
python
config = ForecastingConfig(
timestamp_column="timestamp",
target_column="target",
seq_len=512,
forecast_horizon=72,
model_horizon=72,
standardizer_pkl="artifacts/finetune_my_data/standardizer.pkl",
ckpt="artifacts/finetune_my_data/best_model.pt",
use_cross_channel=False, # set True if trained with --use-cross-channel
)
results = perform_forecasting(df=df, config=config)

Data requirements

PropertyRequirement
Rows≥ seq_len (default 512) for inference; validation split must also have ≥ seq_len + forecast_horizon rows
Columnstimestamp + one or more numeric columns; NULLs filled with zeros automatically
TimestampParseable by pandas; no NULLs; uniform frequency inferred from mode of diffs
TargetMust be numeric; NULLs filled with zeros
forecast_horizonMax 512 steps; beyond model's native 72 triggers autoregressive rollout
DARR context≥ seq_len + model_horizon rows; must share timestamp + target columns with input

Output structure

Inference (standard / DARR):

DataFrame: timestamp | {target_column}_forecast (forecast_horizon rows)

Fine-tuning (--output-dir artifacts/finetune_my_data):

artifacts/finetune_my_data/
├── best_model.pt # checkpoint with lowest validation MSE
├── standardizer.pkl # normalization statistics for this dataset
├── finetune_metadata.json # model config, channels, best epoch, all args
├── metrics.json # scalar summary: {"val_mse": float, "val_mae": float} — consumed by AutoML runner
└── epoch_metrics.json # per-epoch list: [{epoch, train_mse, val_mse, val_mae}, ...]

Hardware

TierSetupNotes
Minimum1× CPUFunctional; slow for long horizons
Recommended1× NVIDIA GPU (≥8 GB VRAM)Strongly recommended for fine-tuning
Apple SiliconMPSAuto-detected; on par with CPU for this workload
Multi-GPU fine-tuning2+× NVIDIA GPUsAuto DDP via --num-gpus (defaults to all visible GPUs)

AutoML (HPO: hyperparameter optimization)

This skill is AutoML-enabled for both fine-tuning and DARR inference. When an HPO request arrives, route it through tao-skill-bank:tao-run-automl with this model's skill_dir.

Read references/automl.md when the user asks for AutoML/HPO setup, tunable parameters, runner examples, inference trial scripts, DARR HPO, or AutoML result handoff details.

Known pitfalls

This is the start of the file. Read the full SKILL.md on GitHub.

Security

  • Security scanPassed, 90 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

7-day trend score
0

Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/nvidia-tao/tao-skill-bank/tao-finetune-kumo-forecast/badge)](https://verified-skill.com/skills/nvidia-tao/tao-skill-bank/tao-finetune-kumo-forecast)

Something wrong with this skill or its page? Tell us.