> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/sdgm/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/sdgm/_mcp/server.

# Product Updates

> New updates and improvements for KumoRFM and the Fine-Tuning Platform

#### Fine-Tuning Platform

## v2.21 (May 2026) LTS (Long Term Support version)

Kumo version 2.21 is a Long-Term Support (LTS) release and will remain supported until the next major release, Kumo 3.0. This version includes numerous performance, security, and stability improvements to provide a faster, safer, and more reliable experience.

## v2.20 (02/21/2026)

**Overview**

#### Overview

* **Version 2.20**: focuses on clearer, more actionable error surfacing across ingestion, training, and workflow execution—plus usability improvements across Jobs, Evaluation, and authentication pages.

**Functionality**

#### Functionality

* **Target-table weighting in Training Table generation**: Configure row weighting directly via the training table generation plan (weight\_col), producing a canonical WEIGHT column without requiring a custom weighted train table.
* **Holdout set downloads (UI)**: Holdout value set download is available again from the Evaluation experience, including baseline-enabled flows.

**Optimization**

#### Optimization

* **Databricks/Serverless reliability for JSON serialization**: Fixed JSON serialization for nested pydantic dataclasses (e.g., PlanMetrics) to prevent “not JSON serializable” failures in distributed execution environments.

**Enhancement**

#### Enhancement

**# Ingestion & Connectors**

* **Spark schema errors surfaced during ingestion/training**: Schema/type mismatches now show actionable Spark errors (rather than being masked by generic “empty table” outcomes), including proper propagation from remote execution.
* **Better error handling across connectors and backends**: Improved summarization for Spark errors and standardized connector/backend error types to produce clearer user-facing messages.

**# Training & Evaluation**

* **Training warnings now propagate on batch-size reduction**: When training auto-reduces batch size due to OOM, warnings are now surfaced to users even if the job succeeds.
* **Simplified training failure messages**: Training-related errors are now shorter, clearer, and more actionable across key training paths.
* **Retry + timeout failures now show the root cause**: When an activity retries and then times out, the original failure is surfaced (not just a generic timeout).
* **Correct CANCELLED status propagation**: Parent jobs now show CANCELLED (not FAILED) when a decoupled child workflow is canceled.
* **PublicException migration for consistent workflow error handling**: Remaining training and prediction workflows now use PublicException patterns for more consistent user-facing errors and retry semantics.
* **Improved fallback workflow failure messages**: When a workflow fails without a PublicException, the UI now shows cleaner, more helpful fallback messaging (less internal jargon, better readability).
* **PQuery error propagation improvements**: Validation and backend failures propagate more cleanly so users receive more actionable PQuery failure context. \[#25175]

**# UI/UX polish**

* **Jobs table + filter experience refresh**: Reordered job list tables, refined filters, updated tooltips/status pills/hover styling, improved tags rendering, and made graph snapshot interactions more discoverable.
* **Safari fatal error fixed**: Safari no longer hits a blocking “Something went wrong” error; the UI loads (with the expected “Safari not officially supported” banner).
* **Evaluation table stability on holdout download**: Clicking the holdout download icon no longer changes the selected Evaluation dropdown option.
* **Histogram label typo fix**: Corrected “Occurrances” → “Occurrences” in the histogram chart label.
* **Auth page branding update**: Updated the logo and favicon on the auth page to match current branding.

## v2.19 (02/02/2026)

**Overview**

#### Overview

* **Version 2.19**: delivers reliability and UX improvements across Snowflake execution, model planning/validation, job diagnostics, and data quality visibility—making failures easier to understand and data issues harder to miss.

**Functionality**

#### Functionality

* **Snowflake app-schema execution for training table generation**: Snowflake operations now prefer SNOWFLAKE\_APP\_SCHEMA over customer-controlled schemas, avoiding permission-related parquet read failures during training table generation.

**Optimization**

#### Optimization

* **More stable sample-row polling**: Improved sample row fetch logic to avoid dependency-related re-fetch loops and reduce redundant polling calls, improving stability when editing tables/columns.

**Enhancement**

#### Enhancement

**# Training & Evaluation**

* **Full timestamp visibility in Train Table stats**: Training Data Statistics now shows complete timestamp values (with consistent formatting), improving clarity around time windows and boundaries.
* **Baseline metrics no longer render empty on revisit**: Evaluation baseline metrics now display reliably across navigations and when using Macro avg.
* **Correct multiclass F1 labeling**: Removed the misleading “@0.5” threshold label from multiclass F1 metric display.
* **Clearer GPU OOM failures**: Training and prediction jobs now surface user-friendly GPU out-of-memory messages instead of raw CUDA/FAISS errors, with actionable guidance.
* **Better ModelPlan / model planner validation**: Invalid model plan YAML and hop syntax now produce clearer, more actionable errors across UI + SDK (fail fast, more specific messages).
* **Consolidated validation warnings**: Validation messages are cleaner, better titled, and de-duplicated/aggregated (reducing noisy repeated warnings).
* **Reliable failure surfacing for Train Table + BP Table jobs**: get\_errors now checks multiple sources (DB + files + failure\_info/log detail) so errors show even when S3 validation files aren’t written (early exceptions/cancellations).

**# Batch Prediction**

* **SDK run prediction + custom pred table failure handling in UI**: Batch Prediction details now correctly shows failure state and error messaging (instead of getting stuck loading) when a custom prediction table is used.

**# UI/UX**

* **Job warnings & errors UX refresh**: Warnings are surfaced consistently across Training/Prediction job pages (de-duplicated and aggregated from multiple sources), with improved error visual treatment.
* **Jobs page spacing alignment**: Updated Jobs pages spacing to match new design standards for better readability and consistency.
* **Typography design tokens adoption**: Jobs-related pages now use standardized typography tokens for consistent text hierarchy and styling.
* **Table sample tooltip usability**: Table sample tooltips now have a max height with scrolling so long values don’t obscure the UI.
* **No stale table details after deletion**: Deleting a table no longer leaves the UI showing persisted details for a non-existent table.
* **Clearer Tags helper text**: Tags helper text now clarifies that multiple tags can be added by pressing Enter (plus a related Prediction Details column fix).
* **Data quality warnings made obvious**: Column Statistics and Graph Link Health now highlight high missing/invalid percentages (≥10%), add explanatory tooltips, and improve clarity around dropped rows and linkage issues.

## v2.18 (01/09/2026)

**Overview**

#### Overview

* **Version 2.18**: delivers reliability upgrades across SPCS job execution and storage, plus UI improvements that make query editing, timestamps, and explanation visualizations more consistent and trustworthy.

**Functionality**

#### Functionality

* **Holdout Set Downloads**: To streamline the web interface, the option to download holdout sets has been removed from the UI. Users can continue to access and download these datasets via the SDK (see documentation)

**Optimization**

#### Optimization

* **SPCS job status reliability**: Jobs that have not started provisioning yet are now treated as pending instead of incorrectly failing during early polling.
* **SPCS retry robustness (vol3 cleanup)**: Added job-specific folder isolation for graphengine block storage and cleanup on retries to prevent corrupted/stale data from breaking re-runs.

**Enhancement**

#### Enhancement

**# Training & Evaluation**

* **Holdout location now displays correctly with refit interval enabled**: Fixed holdout path handling so Evaluation pages reliably show the holdout location (instead of failing due to an incorrect path).

**# UI**

* **New UI for Models and Prediction details pages**: (clearer, more consistent timestamps and explanations visibility).
* **Consistent timestamp formatting**: Standardized timestamp display across the UI, with full UTC timestamps available on hover tooltips.
* **PQ Editor input stability**: Fixed broken typing/edit/delete behavior in the Predictive Query editor to behave like a normal text editor.
* **Query Editor reliability + debug console improvements**: Prevented placeholder text from being inserted via Cmd+Z and improved debug console metadata visibility (e.g., version/customer id when available).
* **Correct subgraph explanation rendering**: Local subgraph explanations now respect the model’s hop limit so visualizations don’t show “extra hop” nodes.

#### KumoRFM

<h1>
  KumoRFM-2 (04/14/2026)
</h1>

Highlights

KumoRFM-2 improves predictive quality, expands large-scale data connectivity, and adds new controls for temporal and developer workflows.

{"•"}

Improved performance over KumoRFM-1 across benchmark groups, with gains measured directly against the previous release.

{"•"}

More robust predictions in real-world data settings, including sparse features, missing links, and noisy columns.

{"•"}

SQL-based execution for large relational datasets, with Snowflake and SQLite supported today.

{"•"}

New SDK controls for lagged features, embedding outputs, and customizable inference behavior.

{"•"}

No backward-incompatible interface changes.

Performance

Improved

Higher accuracy across relational benchmarks

KumoRFM-2 delivers improved predictive performance across a wide range of relational tasks, especially classification and regression.
The most important change from the previous release is the gain over KumoRFM-1: benchmark evaluations show consistent improvements across RelBench and SALT when measured directly against the previous release.

+2.89

AUROC points vs RFM-1<br />RelBenchV1 classification

9.5%

lower normalized error vs RFM-1<br />RelBenchV1 regression

+3.74

AUROC points vs RFM-1<br />RelBenchV2 classification

15.6%

lower normalized error vs RFM-1<br />RelBenchV2 regression

Improved

More resilient to messy, incomplete data

KumoRFM-2 is designed for real-world relational data, where information is often sparse, incomplete, or noisy.
In robustness evaluations, the model maintains strong performance under:

<ul>
  <li>
    <strong>Feature scarcity:</strong>

     limited or missing feature coverage
  </li>

  <li>
    <strong>Link scarcity:</strong>

     incomplete relational connections
  </li>

  <li>
    <strong>Noisy columns:</strong>

     added irrelevant or uninformative columns
  </li>
</ul>

Scalability & Data Connectivity

New

Run KumoRFM-2 directly on your data warehouse

KumoRFM-2 supports SQL-backed graph construction and execution for larger relational datasets. Snowflake-backed execution enables warehouse-native workflows, while SQLite support is available for local or lightweight SQL-backed development.

<table>
  <thead>
    <tr>
      <th>
        System
      </th>

      <th>
        Status
      </th>

      <th>
        Details
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        Snowflake
      </td>

      <td>
        Supported
      </td>

      <td>
        Supported when running inside Snowflake. 

        <a href="https://kumo.ai/docs/rfm/connectors/snowflake/">Connector guide</a>
      </td>
    </tr>

    <tr>
      <td>
        SQLite
      </td>

      <td>
        Supported
      </td>

      <td>
        Available for local or lightweight SQL-backed workflows. 

        <a href="https://kumo.ai/docs/rfm/connectors/sqlite/">Connector guide</a>
      </td>
    </tr>
  </tbody>
</table>

<pre>
  {`# Example: connect to a Snowflake-backed dataset
  from kumoai import rfm

  graph = rfm.Graph.from_snowflake(
      database="MY_DATABASE",
      schema="MY_SCHEMA",
  )`}
</pre>

New Features

New

Temporal predictions with lagged features

KumoRFM-2 can include recent historical target values as lagged features during prediction. This is useful for time-dependent tasks such as churn prediction and demand modeling, where a user's or entity's recent behavior is often predictive of the next outcome. The <code>lag\_timesteps</code> option controls how many previous time steps are made available to the model as additional context during <code>predict()</code>.

<pre>
  {`# Example: use the last 10 time steps as lagged feature context
  result = model.predict(
      query,
      indices=[0, 1, 2],
      lag_timesteps=10,
  )`}
</pre>

Tips: Use larger values when longer historical context is useful, and smaller values when only the most recent behavior should influence the prediction.

New

Embeddings added as an optional prediction output

KumoRFM-2 can return embeddings alongside prediction results, enabling downstream use cases such as search, clustering, similarity analysis, and custom ML workflows.

<pre>
  {`# Example: return embeddings with predictions
  result = model.predict(
      query,
      indices=[0, 1, 2],
      return_embeddings=True,
  )`}
</pre>

New

Customizable inference behavior

KumoRFM-2 adds <code>inference\_config</code> to the <code>predict()</code> API for controlling inference-time behavior, including ensembling. Defaults are selected automatically based on the task type, while advanced users can tune inference settings such as <code>run\_mode</code> and <code>inference\_config</code> to optimize stability, latency, and predictive performance once a query is production-ready.

<ul>
  <li>
    <strong>num_estimators:</strong>

     number of inference passes to ensemble for more stable predictions
  </li>

  <li>
    <strong>column_shuffle:</strong>

     vary column order across inference passes
  </li>

  <li>
    <strong>category_shuffle:</strong>

     vary categorical value ordering across inference passes
  </li>

  <li>
    <strong>hop_shuffle:</strong>

     vary subgraph depth across inference passes
  </li>

  <li>
    <strong>class_shuffle:</strong>

     vary class ordering across inference passes for classification tasks
  </li>

  <li>
    <strong>Regression and forecasting options:</strong>

     configure target transforms and output summarization
  </li>
</ul>

<pre>
  {`# Example: configure inference behavior
  result = model.predict(
      query,
      indices=[0, 1, 2],
      inference_config=dict(
          num_estimators=4,
          column_shuffle=True,
          hop_shuffle=True,
          class_shuffle=True,
      ),
  )`}
</pre>

No backward-incompatible interface changes. Existing workflows continue to work as before. For more details, see the <a href="https://kumo.ai/docs/rfm//configuration#inference-configuration">SDK inference configuration docs</a>.

Preview

Natural language to predictive query

Users can generate predictive queries from natural language input, helping teams move from a business question to a structured predictive query faster.
This is a beta feature currently available in playground only.

Availability

Available

Deployment models

<ul>
  <li>
    <strong>Enterprise SaaS:</strong>

     available by request. Contact 

    <a href="mailto:kumorfm-support@kumo.ai">[kumorfm-support@kumo.ai](mailto:kumorfm-support@kumo.ai)</a>

    .
  </li>

  <li>
    <strong>Snowflake Native App:</strong>

     available via private listing. Contact 

    <a href="mailto:kumorfm-support@kumo.ai">[kumorfm-support@kumo.ai](mailto:kumorfm-support@kumo.ai)</a>

    .
  </li>

  <li>
    <strong>VPC deployment:</strong>

     available on AWS, GCP, and Azure. Contact 

    <a href="mailto:kumorfm-support@kumo.ai">[kumorfm-support@kumo.ai](mailto:kumorfm-support@kumo.ai)</a>

    .
  </li>
</ul>

Try it

Get started with KumoRFM-2

<a href="https://kumorfm.ai/login">
  Playground
</a>

<a href="https://kumo.ai/docs/rfm/introduction/">
  Python SDK
</a>

<a href="https://github.com/kumo-ai/kumo-rfm-mcp">
  Kumo MCP
</a>

<a href="https://github.com/kumo-ai/kumo-coding-agent">
  Kumo Coding Agent
</a>