Skip to content

Releases: aws/nova-forge-sdk

Release 1.4.9

Choose a tag to compare

@amazeAmazing amazeAmazing released this 04 Jun 18:09
5d75a81

Release Notes 2026-06-04

New Features

  • Multi-Turn Reinforcement Learning (MTRL) Support on Serverless SageMaker Training Jobs (SMTJ)
    • Added support for Multi-turn RFT on SMTJ Serverless. This technique will output a Restricted Model Package (RMP), which can be used in iterative training, evaluation, and model deployment.
    • Users can now pass ARNs of their RL agents deployed on Bedrock AgentCore or bring in custom 3P lambdas, to run the multiturn RL training loop on SageMaker Serverless
  • MTRL Dataset Validation
    • Added support for MTRL dataset transformation and validation.
    • Breaking Change: platform is now a required parameter for RFT_MULTITURN_LORA and RFT_MULTITURN_FULL training methods. Callers must pass either Platform.SMTJServerless or Platform.SMHP.
  • SageMaker Inference Component Support
    • Added support for inference components, which decouple the model from the endpoint infrastructure. This provides more flexibility to deploy different model checkpoints as separate inference components on a single endpoint — each with its own resource requirements and independent lifecycle management.
  • Create step_wise_training_metrics.csv for SMHP SFT jobs
    • Added generate_training_metrics_csv method to ForgeTrainer that fetches CloudWatch logs for a completed SMHP SFT job, extracts step-level metrics, and uploads csv to S3.

Release 1.4.8

Choose a tag to compare

@cmahima cmahima released this 26 May 20:14
5bcbe21

Release Notes 2026-05-26

New Features

InspectLens Job-Based Evaluation

  • Added support for running InspectLens benchmarks as SageMaker Training Jobs via a new EvaluationTask.INSPECT_LENS evaluation type and InspectLensConfig for configuring benchmarks, inference provider, and output path.
  • A quickstart notebook (samples/inspectlens_quickstart.ipynb) is included to help you get started.
  • For a full overview of InspectLens and how it can be used for evaluation, see the InspectLens Evaluation Guide.
  • You can also learn more about InspectLens support on SageMaker Training jobs here.

Bug Fix

  • Fixed find_sagemaker_model_by_tag to return the most recently created SageMaker model when multiple models share the same escrow URI tag, rather than returning an arbitrary match.

Release 1.4.7

Choose a tag to compare

@ehsu3 ehsu3 released this 21 May 22:13
f98feab

Release Notes

2026-05-14

Enhancements

get_config() method

  • Added a method that allows users to preview overridable training parameters before launching a job

Added typed DataMixingConfig and TrainingOverrides**

  • Allows for IDE autocomplete and static validation of key/values

Bug Fixes

Path Traversal Protection

  • Added path traversal protection in SMTJ wheel extraction code

Improved get_logs() error messaging

  • Added ValueError with actionable message when get_logs() is called without a prior job

SHA-256 Checksum Verification

  • Added checksum verification for bundled wheel files before uploading

Validation

  • Added proper validation so users can provide reasoning_effort=None in training overrides to explicitly disable reasoning without errors
  • Added separate validation logic for temperature parameter to handle int/float type coercion correctly
    Set minimum version of pyarrow to 14.0.1

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Release 1.4.6

Choose a tag to compare

@cmahima cmahima released this 14 May 15:02
a4d5b3d

Release Notes

2026-05-14

New Features

Data Mixing

  • Add SMTJServerless platform support for data mixing for Supervised Fine-Tuning (SFT) on Nova Lite 2

Dataset

  • Auto-derive S3 output paths for local and HuggingFace filter chains

Enhancements

Documentation

  • Restructure docs and agent context for AI-native development — split docs/spec.md into 10 per-domain files

Training

  • Add SFT validation dataset support (validation_data_s3_path, val_check_interval) to SMTJ, SMTJServerless, and SMHP platforms

HubContent Version for Serverless Jobs and New Hyperparameters

  • Added HubContent version support for serverless jobs using base model ARNs
  • Added save_steps and fine_tuned_model as hyperparameters for SMTJ serverless jobs

Bug Fixes

Region Configuration

  • Fixed region configuration to use an explicit parameter instead of implicitly depending on DEFAULT_AWS_REGION environment variable

Release 1.4.5

Choose a tag to compare

@amazeAmazing amazeAmazing released this 05 May 21:11
d6fbed1

New Features

HuggingFace Hub Integration for Data Prep

  • Added integration for HuggingFace Hub in Data Prep pipeline, enabling users to stream HuggingFace datasets to remove manual effort to download datasets

Batch Sample Tracing for Training Data

  • Added enable_batch_sample_tracing parameter to ForgeTrainer, enabling customers to diagnose gradient spikes during CPT by identifying which training data lines were used in a specific training step

Enhancements

  • Added hub_content_version parameter to ForgeTrainer, ForgeEvaluator, ForgeInference, and NovaModelCustomizer, allowing users to pin specific versions of hub content

Release 1.4.4

Choose a tag to compare

@amazeAmazing amazeAmazing released this 04 May 20:10
00b5de0

Bug Fixes

  • Included the agi_data_curator-1.0.0-py3-none-any.whl in the PyPi distribution

Release 1.4.3

Choose a tag to compare

@amazeAmazing amazeAmazing released this 30 Apr 21:45

New Features

SageMaker Model Deployment

  • Added FP8 memory optimization support for SageMaker endpoints via KV_CACHE_DTYPE="fp8" and QUANTIZATION_DTYPE="fp8" environment variables.
  • Added 256k context length support for Nova Lite 2 on ml.p5.48xlarge with max concurrency 2.

Data Preparation

  • Added a language detection filter (FilterMethod.LANGUAGE_DETECTION) for DatasetLoader.filter(). Filters samples by detected language using FastText lid.176.bin with a required languages allowlist (ISO 639-1 codes) and optional min_score threshold. The SDK auto-downloads and stages the model to S3 on first use and runs on SageMaker Training Jobs.

Enhancements

SageMaker Model Deployment

  • Added SageMakerEndpointEnvironment Pydantic model for typed, validated endpoint configuration, replacing the raw dictionary.

  • Renamed sagemaker_environment_variables to sagemaker_environment on ForgeDeployer.deploy(), ForgeDeployer.deploy_to_sagemaker(), NovaModelCustomizer.deploy(), and NovaModelCustomizer.deploy_to_sagemaker(). Type changed from Optional[Dict[str, Any]] to Optional[SageMakerEndpointEnvironment].

  • Renamed environment_variables to sagemaker_environment on NovaModelCustomizer.deploy_to_sagemaker() with the same type change.

Data Preparation

  • Removed filter-transform ordering constraints. DatasetLoader.filter() no longer enforces ordering relative to transform(). All filter methods can now be queued in any order.

  • Changed InvalidRecordsFilterOperation to stream records through a lazy generator instead of collecting into a list, reducing peak memory for large datasets.

  • Made FilterOperationResult.filtered_count and total_count required fields. Every filter operation must now report how many records it scanned and dropped. Custom filter operations must pass both counts explicitly (defaults removed).

  • Added extra = "forbid" to RFT Pydantic models (RFTMessage, RFTDatasetSample) to reject unexpected fields, including unsupported multimodal data.

  • Removed the default system prompt from data transformation. When no system column is present, the system field is omitted from Converse output instead of being populated with a generic prompt.

  • Action required: If you relied on the auto-injected system prompt, add a system column to your source data or post-process the transformed output.

  • Removed default_system_msg class attribute from DatasetTransformer.

  • Made OperationResult.output_state a required argument (no default).

  • Removed _default_job_caching_config().

  • Action required: Use JobCachingConfig() instead and replace dict .get() access with attribute access (e.g., config.enabled).

  • Removed _get_default_validation_config().

  • Action required: Use ValidationConfig() instead and replace dict .get() access with attribute access (e.g., config.iam).

SDK Architecture

  • Replaced raw dict configs with typed Pydantic models: validation_config → ValidationConfig, job_caching_config → JobCachingConfig, reward output validation → RewardFunctionOutput/RewardMetric, RFT queue message counts → QueueMessageCounts. Provides attribute access and construction-time validation.

SMTJ Job Handling

  • Changed SMTJ to pass job_name directly as base_job_name (SageMaker appends its own timestamp suffix). Updated JOB_NAME_REGEX to match SageMaker's actual constraint, rejecting trailing hyphens.

Documentation

  • Updated README for modular service classes (ForgeTrainer, ForgeEvaluator, ForgeDeployer, ForgeInference).
  • Updated Copyright and License notice from "Copyright 2025 Amazon.com" to "Copyright Amazon.com, Inc. or its affiliates". This is now included at the top of tests python files.

Bug Fixes

  • Fixed SMTJ job name regex to match SageMaker's actual constraint ([a-zA-Z0-9]{0,62})
  • Fixed logging for internal SMTJ runtime manager.

Release 1.4.2

Choose a tag to compare

@amazeAmazing amazeAmazing released this 27 Apr 17:44

Bug Fix:

  • When extracting inference results, prevent tar archives from writing files outside the intended directory

Release 1.4.1

Choose a tag to compare

@amazeAmazing amazeAmazing released this 22 Apr 20:55

New Features

  • Add support for new SageMaker Inference environment variables to enable suffix decoding

Release 1.4.0

Choose a tag to compare

@swapneils swapneils released this 21 Apr 20:59

Hey Nova Builders! This release includes a major refactor of the Nova Forge SDK, improvements to the data preparation experience with the SDK, and better support for SMTJ Serverless jobs. We also have better local validations for your jobs, and resolved several common pain points causing slowdowns in experimentation with the SDK.

New Features

Platform support

  • Support RFT training jobs in SMTJ Serverless

Data preparation

  • Added support for loading Parquet and Arrow datasets

  • All loaders now support directories --- pass a directory path and the loader scans for matching files

  • New filters such as fuzzy deduplication(FilterMethod.FUZZY_DEDUP), exact deduplication(FilterMethod.EXACT_DEDUP), and general text filtering (FilterMethod.DEFAULT_TEXT_FILTER)

  • A new GlueRuntimeManager to enable scalable data preparation jobs for the new filters

Telemetry

  • Added telemetry for how the SDK is used to help guide our future development. To opt out, use the TELEMETRY_OPT_OUT environment variable.

Enhancements

SDK Architecture

  • Decomposed NovaModelCustomizer into ForgeTrainer, ForgeEvaluator, ForgeDeployer, and ForgeInference service classes.

    • Restructured example notebooks to use the new service classes

    • NovaModelCustomizer still works as normal for now. It is marked as deprecated, and the functions will be removed entirely in a future release.

Data preparation

  • Data validation expanded to check for reserved keywords in text and confirm that images and videos fit required training constraints (max 10 images/message, 10 MB/image, 1 video/message, 50 MB/video). ValidateMethod.SCHEMA renamed to ValidateMethod.INVALID_RECORDS to better highlight the new validation capability.

  • Added gif and webp as valid image formats for multimodal data transformation

  • Data validation can now be run as a filter instead of a validator to remove invalid samples from an otherwise valid dataset (FilterMethod.INVALID_RECORDS)

  • Support for auto-transforming datasets in OpenAI format with images to Converse format. Images are validated and auto-uploaded to S3 with valid Converse URI references.

  • Support using multimodal data to train Nova models with datamixing

Model Deployment

  • Reuse previous uploads when deploying models, reducing wasted resources and allowing users to restart interrupted deployments from the uploaded model object

CloudWatch Logs

  • Auto-resolve start times from the job when available, improving log-retrieval efficiency

Documentation

  • Migrated documentation and notebooks to the new modular service classes

  • Data preparation docs (docs/data_prep.md) rewritten with operations-at-a-glance table, runtime manager section, and before/after examples

  • Quickstart notebook overhauled with sample data upload, IAM role creation, and step-by-step commentary

Bug Fixes

  • Added validation for instance count for SMTJ training
  • Fixed a bug with resolving training manifests due to a trailing slash character

  • Fix zombie processes in kill_task for multiturn RFT on EC2

  • Eager validation in load() catches bad file paths and missing files immediately instead of failing later in the data prep pipeline

  • Fixed checkpoint resolution for SMTJ Serverless

  • Fixed bug in platform validation for SMTJ Serverless eval jobs

  • Fixed get_job_status() to raise a clear error when EKS cluster is inaccessible

  • Fixed scale_cluster() to copy all optional fields when updating RIGs