Skip to content

Add format versioning to ML-selector trainer - #942

Open
kevinjzhang wants to merge 4 commits into
facebook:devfrom
kevinjzhang:export-D113974920
Open

Add format versioning to ML-selector trainer#942
kevinjzhang wants to merge 4 commits into
facebook:devfrom
kevinjzhang:export-D113974920

Conversation

@kevinjzhang

Copy link
Copy Markdown
Contributor

Summary:
Add targeting per format version to ML selector.

The successor are obtained from the ML Selector graph, so when the format version is inadequate to support them, the graph must be rewritten to exclude the unsupported graphs. Implements this functionality.

Reviewed By: terrelln

Differential Revision: D113974920

kevz8 and others added 4 commits August 6, 2026 15:59
Summary: Adds a shared training utility that filters candidate graphs by compressing caller-provided MultiInput samples at a target format version. Callers are responsible for supplying inputs that exercise the graph paths whose compatibility must be tested.

Differential Revision: D114119859
Summary:
Threads the resolved target format version through the clustering trainer:

- clusterSuccessors() now filters the clustering (concat) codecs by
  ZL_Compressor_Node_getMinVersion against the target version and throws
  FormatVersionUnsupportedError if none survive (so the orchestrator can fall
  clustering back to zstd), and builds its round-trip CCtx at the target version.
- train_cluster() resolves the version from TrainParams and passes it through
  Trainer::getTrainedClusteringConfig into CompressionUtils, whose per-sample
  benchmark CCtx now targets that version instead of ZL_MAX_FORMAT_VERSION.

FormatVersionUnsupportedError moved to train_params.h (train_common) so it is
visible to every trainer and the orchestrator without a BUCK dependency cycle.

Differential Revision: D113974921
Summary:
Adds format versioning to ACE training by filtering the list of graphs per format version.

- Since it is useful to store both the format version and the per format version/ input type list of compatible graphs, refactor the stateless API to a ACECompressorBuilder class. This contains a cache and versions.
- Additionally fix a minor bug with graph replacement

Differential Revision: D113974924
Summary:
Add targeting per format version to ML selector.

The successor are obtained from the ML Selector graph, so when the format version is inadequate to support them, the graph must be rewritten to exclude the unsupported graphs. Implements this functionality.

Reviewed By: terrelln

Differential Revision: D113974920
@meta-codesync

meta-codesync Bot commented Aug 7, 2026

Copy link
Copy Markdown

@kevinjzhang has exported this pull request. If you are a Meta employee, you can view the originating Diff in D113974920.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant