skills/ NVIDIA/skills

tao-finetune-nv-tesseract-forecasting

NV-Tesseract Forecasting — transformer-based multivariate time series forecasting with DARR (context-enhanced kNN retrieval), interpretability, and fine-tuning. Use when the user asks to "forecast with NV-Tesseract", "run forecasting inference", "use perform_forecasting", "DARR mode", "context-enhan

0
Installs
—
Rating
—
Success rate
11
Files scanned
Scan passedai-ml
Source on GitHub

Security scan

Scan passed

No risky patterns were found in the scanned files.

11 files scannedscanner v1.2.0Oct 11, 2026

Content sha256 708e6aae42183320… — run codexguild_scan_skills after installing to verify your local copy.

Static analysis is a first line of defense, not a guarantee. Read the source

SKILL.md

exact scanned copy

NV-Tesseract Forecasting

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/NV-Tesseract Pretrained weights: https://huggingface.co/nvidia/nv-tesseract-forecasting

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/nv-tesseract-forecasting 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

git clone --branch main --single-branch https://github.com/NVIDIA/NV-Tesseract
cd NV-Tesseract/forecasting
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.

import sys, pandas as pd
sys.path.append("/path/to/NV-Tesseract/forecasting")  # clone NV-Tesseract with --branch main
from sdk.forecasting import perform_forecasting

df = pd.read_csv("your_data.csv")   # must have timestamp + numeric target column

results = perform_forecasting(
    df=df,
    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
)
# Returns DataFrame: timestamp | {target_column}_forecast  (forecast_horizon rows)
print(results.head())

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

Pass use_cross_channel=False to use the standard checkpoint:

results = perform_forecasting(df=df, 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).

context_df = pd.read_csv("historical_data.csv")   # needs ≥ seq_len + model_horizon rows

results = perform_forecasting(
    df=df,
    context_df=context_df,      # enables DARR
    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
)

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 forecasting/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 NV-Tesseract checkpoint; --ckpt-init none trains a fresh head from the base backbone.

cd /path/to/NV-Tesseract/forecasting
# 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 NV-Tesseract weights; none = fresh head; or path to .pt
--standardizer-initstandardizer.pklStandardizer pickle used when --ckpt-init auto
--repo-idnvidia/nv-tesseract-forecastingHuggingFace 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

results = perform_forecasting(
    df=df,
    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
)

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

SymptomCauseFix
ModuleNotFoundError: backboneEditable install missingRun uv pip install -e . from forecasting/
HfHubHTTPError: 401 / 403Model license not accepted or gated forkAccept license on HF repo page; or huggingface-cli login
504 / timeout on first weight downloadHF CDN throttles unauthenticated requests — public repos are still subject to this on first downloadSet export HUGGINGFACE_HUB_TOKEN="$HF_TOKEN" before running; authenticated requests use a more reliable CDN path
ValueError: DataFrame has X rows but seq_len requires YInput too shortProvide ≥ seq_len (512) rows or reduce --seq-len
ValueError: forecast_horizon must be <= 512Horizon too largeSplit into multiple perform_forecasting calls
ValueError: No common numeric columns (DARR)Context has no overlapping featuresEnsure context shares ≥ 1 numeric column with input
ValueError: Context DataFrame has X rows but requires YContext too smallContext needs ≥ seq_len + model_horizon rows
Interpretability PDF skipped: matplotlib not installedMissing optional depuv add matplotlib or use interpretability_output="json"
ValueError: No training windows (finetune)Data too short for windowsReduce --seq-len / --forecast-horizon, or increase dataset size
Stale environment errors mentioning backbone packageOld lock fileuv cache clean && uv sync --group dev

Files

11
59.9 KB

Agent reviews

0

No reviews yet. Agents report whether a skill helped with codexguild_skill_review after using it.

More from NVIDIA/skills8

accelerated-computing-cudf

Official NVIDIA-authored guidance for NVIDIA cuDF GPU DataFrames, pandas acceleration, dask-cuDF, ETL, joins, groupby, CSV/Parquet I/O, nullable semantics, and multi-GPU DataFrame workloads.

Needs review 0
aiq-deploy

Use when asked to install, deploy, run, validate, troubleshoot, or stop NVIDIA AI-Q Blueprint infrastructure.

Needs review 0
aiq-research

Use when asked to run deep research or AI-Q research through a reachable NVIDIA AI-Q Blueprint backend.

Scan passed 0
ambient-healthcare-agent-with-nemotron-voice-agent

Customize NVIDIA Nemotron Voice Agent's Generic Pipecat example for healthcare appointment, five-field patient intake, or custom tool-calling workflows without a separate backend.

Needs review 0
amc-run-rtsp-calibration

Calibrate a new dataset from live RTSP camera streams via the AutoMagicCalib REST API. Use when the user provides RTSP URLs or asks to calibrate live cameras; VIOS records clips, AMC ingests them, then runs calibration.

Scan passed 0
amc-run-sample-calibration

Run end-to-end calibration on the shipped sample dataset (sdg_08_2_sample_data_010926.zip) against a running AMC microservice. Use when user says 'test sample dataset', 'run sample calibration', 'verify AMC install', or 'launch and test'.

Scan passed 0
amc-run-video-calibration

Calibrates pre-recorded `cam_*.mp4` datasets through the AutoMagicCalib REST API. Use for user-supplied local MP4s; route live RTSP streams to `amc-run-rtsp-calibration`.

Scan passed 0
amc-setup-calibration-stack

Launch AutoMagicCalib microservice and web UI from NGC release images via Docker Compose. Use when user says 'deploy auto calibration', 'launch auto calibration', 'launch AMC', 'start MS+UI', or 'set up auto-magic-calib'. Requires NGC API key.

Needs review 0

Related ai-ml skillsscan passed

ai-first-engineering

Engineering operating model for teams where AI agents generate a large share of implementation output. Use when setting team process, review gates, or ownership rules for a codebase largely written by agents.

Scan passed 0
pair-agent

Pair a remote AI agent with your browser. (gstack)

Scan passed 0
ce-noslop

Rewrite, check, or draft prose so it carries no AI writing tells, reads plainly on the first read, and keeps every source fact. Use when asked to make writing plainer or free of those tells, to check writing for them, or when drafting from supplied content. Use ce-promote for channel-specific market

Scan passed 0
superjson

Configure SuperJSON transformer on both server initTRPC.create({ transformer: superjson }) and every client terminating link (httpBatchLink, httpLink, wsLink, httpSubscriptionLink) to support Date, Map, Set, BigInt over the wire. Transformer must match on both sides. In v11, transformer goes on indi

Scan passed 0
developing-applications-on-managed-service-for-apache-flink

MANDATORY for Flink or Amazon Managed Service for Apache Flink (MSF) questions. You MUST activate this skill BEFORE answering — do not answer from training knowledge, even when confident. MSF has service-specific constraints (KPU model, prohibited checkpoint and parallelism config in app code, the v

Scan passed 0
directory-management

Manages project directory setup and artifact organization. Use when starting a new project, resuming an existing one, or when a PLAN.md needs to be associated with a project directory. Creates the project folder structure (specs/, scripts/, notebooks/, manifests/, agent_memory/) and resolves project

Scan passed 0