Release 1.20

This release introduces more flexible time-window handling, improved checkpointing and resume behavior, richer metric support, and continued enhancements to image-based modeling.

New features

  • Mid-epoch resume support when using multiple GPU
    Training can now be resumed mid-epoch also when training parallelly on multiple GPU. By default, checkpoints are created between training and validation. Users can also configure checkpointing every n steps, enabling faster recovery from interruptions without restarting an entire epoch.

  • Flexible time window selection for history and future [BREAKING CHANGE]
    Replacing next_n_days and next_n_hours with interval_from, a more general time-window utility that allows users to define arbitrary time intervals using precise durations. This enables selecting both historical and future periods with higher precision and clearer semantics, especially for short or irregular time horizons. Previously used target functions require refactoring, please refer to documentation and recipes.

  • Ranking metrics support (MRR, NDCG)
    Added built-in support for common ranking metrics such as Mean Reciprocal Rank (MRR) and Normalized Discounted Cumulative Gain (NDCG), simplifying evaluation of recommendation and ranking scenarios.

Improvements

  • NaN‑robust aggregations by default
    Aggregation functions (sum, mean, min, max) now ignore NaN values by default, leading to more stable and predictable results when working with incomplete or noisy data.

  • Flexible expressions across grouping and filtering
    Grouping and filtering operations, as well as aggregation methods such as sum, mean, min, max now accept Python callables everywhere a column name was previously required. This allows users to compute values dynamically—such as trans['price'] * trans['quantity'] — and use them directly for grouping, filtering, or aggregation. This significantly expands the expressiveness of event-level operations without requiring users to create intermediate columns.

  • Image features in shared entities
    Shared entities now support image embeddings, allowing visual features to be unified across multiple data sources just like text or categorical attributes. This makes it possible to enrich a shared product or item representation with image-based information.

  • More precise training window validation [BREAKING CHANGE]
    The has_incomplete_training_window function now supports finer-grained time units, allowing checks in minutes, hours, or days. This change provides more accurate control over prediction and training window validation, especially for short-duration or high-frequency datasets. It also includes clearer input validation and more descriptive error messages, improving transparency and debugging during training setup. Previously used target functions require refactoring, please refer to documentation and recipes.

Fixes

  • Fixed an issue where timestamps could be misinterpreted when reading data from Databricks sources, ensuring correct temporal filtering and split behavior.
  • Updated third-party packages to improve performance, strengthen security, and ensure compatibility with the latest BaseModel features.