Source profileQuality 87/100Review permissions

NVIDIA-TAO/tao-skill-bank/skills/models/tao-finetune-nv-tesseract-forecasting/SKILL.md

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-enhanced forecasting", "lag horizon attribution", "interpretability", or "fine-tune forecasting", or mentions "nv-tesseract-forecasting", "moment_head_512_6hr", or "run8_best_model_cr".

Source repository stars
82
Declared platforms
0
Static risk flags
2
Last source update
2026-08-05
Source checked
2026-08-05

Decision brief

What it does—and where it fits

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…

Best for

  • Use when the user asks to "forecast with NV-Tesseract", "run forecasting inference", "use perform_forecasting", "DARR mode", "context-enhanced forecasting", "lag horizon attribution", "interpretability", or "fine-tune f…

Not for

  • Tasks that require unconfirmed production actions or broad system permissions.
  • Environments where the pinned source and install steps cannot be inspected.

Compatibility matrix

Platform support, with evidence labels

PlatformStatusEvidenceWhat to check
CodexNot declaredNo explicit evidencePortability before use
Claude CodeNot declaredNo explicit evidencePortability before use
CursorNot declaredNo explicit evidencePortability before use
Gemini CLINot declaredNo explicit evidencePortability before use
Open the compatibility checker

Installation

Inspect first. Install second.

The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

Source-detected install commandSource
npx skills add https://github.com/NVIDIA-TAO/tao-skill-bank --skill "skills/models/tao-finetune-nv-tesseract-forecasting"
Safe inspection promptEditorial

Inspect the Agent Skill "tao-finetune-nv-tesseract-forecasting" from https://github.com/NVIDIA-TAO/tao-skill-bank/blob/ae5e99c2148cf6bab95d150ee243a6da3f2c1fb1/skills/models/tao-finetune-nv-tesseract-forecasting/SKILL.md at commit ae5e99c2148cf6bab95d150ee243a6da3f2c1fb1. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

Workflow

What the source asks the agent to do

  1. 01

    Quick start

    bash git clone 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

    bash git clone 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
  2. 02

    External dependencies

    Review the “External dependencies” section in the pinned source before continuing.

    Review and apply the “External dependencies” source section.
  3. 03

    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.

    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.
  4. 04

    Standard inference (auto-downloads weights from HF on first run, no auth needed)

    uv run python sdk/quickexample.py python import sys, pandas as pd sys.path.append("/path/to/NV-Tesseract/forecasting") git clone https://github.com/NVIDIA/NV-Tesseract from sdk.forecasting import performforecasting

    uv run python sdk/quickexample.py python import sys, pandas as pd sys.path.append("/path/to/NV-Tesseract/forecasting") git clone https://github.com/NVIDIA/NV-Tesseract from sdk.forecasting import performforecastingdf = pd.readcsv("yourdata.csv") must have timestamp + numeric target columnresults = performforecasting( df=df, timestampcolumn="timestamp", parseable datetime column targetcolumn="target", primary target to forecast seqlen=512, input context length (rows consumed) forecasthorizon=72, steps ah…
  5. 05

    Inference

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

    Import and call performforecasting from sdk/forecasting.py. It auto-downloads weights, standardizes input, runs autoregressive rollout for long horizons, and returns a DataFrame with {targetcolumn}forecast rows for the…python import sys, pandas as pd sys.path.append("/path/to/NV-Tesseract/forecasting") git clone https://github.com/NVIDIA/NV-Tesseract from sdk.forecasting import performforecastingdf = pd.readcsv("yourdata.csv") must have timestamp + numeric target column

Permission review

Static risk signals and limitations

Network access

medium · line 30

The documentation includes network, browsing, or remote request actions.

git clone https://github.com/NVIDIA/NV-Tesseract

Runs scripts

medium · line 30

The documentation asks the agent to run terminal commands or scripts.

git clone https://github.com/NVIDIA/NV-Tesseract

Network access

medium · line 47

The documentation includes network, browsing, or remote request actions.

sys.path.append("/path/to/NV-Tesseract/forecasting") # git clone https://github.com/NVIDIA/NV-Tesseract

Evidence record

Why each signal appears

EvidenceSourceComputedTestedEditorial
SignalValueEvidence typeMeaning
Quality score87/100ComputedDocumentation, specificity, maintenance, and trust rules
Repository stars82SourceRepository attention, not individual Skill quality
Compatibility0 platformsSourceDeclared in the catalog source record
Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

Pinned source

Provenance and original SKILL.md

Repository
NVIDIA-TAO/tao-skill-bank
Skill path
skills/models/tao-finetune-nv-tesseract-forecasting/SKILL.md
Commit
ae5e99c2148cf6bab95d150ee243a6da3f2c1fb1
License
Apache-2.0
Collected
2026-08-05
Default branch
main
View the original SKILL.md

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 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")  # git clone https://github.com/NVIDIA/NV-Tesseract
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
--csvrequired*Single CSV split temporally into train/val
--train-csvrequired*Training CSV (mutually exclusive with --csv)
--val-csvValidation CSV when --train-csv is used
--timestamp-coltimestampDatetime column to exclude from features
--target-colsall numericComma-separated columns to forecast
--ckpt-initautoauto = published NV-Tesseract weights; none = fresh head
--seq-len512Input context length
--forecast-horizon72Steps ahead to predict
--val-ratio0.1Validation fraction when --csv is used
--epochs5Training epochs
--batch-size8Batch size
--lr1e-4AdamW learning rate (OneCycleLR scheduler)
--weight-decay0.0AdamW weight decay
--head-dropout0.1Forecasting head dropout
--max-norm5.0Gradient norm clip
--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
--seed13Random seed
--output-dirartifacts/finetuneOutput directory

*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
)

Fair comparison rule: perform_forecasting defaults to use_cross_channel=True (loads run8_best_model_cr.pt). When comparing pretrained inference against a finetuned checkpoint, both must use the same base architecture. Either:

  • Finetune with --use-cross-channel (warm-starts from run8_best_model_cr.pt) and run inference with use_cross_channel=True (default), or
  • Run inference with use_cross_channel=False and finetune without --use-cross-channel (warm-starts from moment_head_512_6hr.pt, the finetune default).

Mixing architectures — cross-channel pretrained vs standard finetuned — conflates model quality with architectural differences and makes the comparison uninterpretable.

Data requirements

PropertyRequirement
Rowsseq_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 contextseq_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 loss
├── standardizer.pkl         # normalization statistics for this dataset
├── finetune_metadata.json   # model config, channels, best epoch, all args
└── metrics.json             # per-epoch train/val loss and 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-GPUNot supportedSingle-device only

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

Alternatives

Compare before choosing