Skip to content

Migrate modernbert to the semantic Task SDK #1482

Open

Description

@yifeif-nv

Parent epic: #1430

Status: Not started — comment here before beginning work.

Family: families/modernbert/
Current declared task mode(s): embedding, encoding, reranking
Target semantic Task(s): Identify the existing semantic Task contract(s) that preserve every current capability; record the exact IDs in the PR.

Related family CLI work: #1377. It is a separate change and does not complete this Task migration.

Work

  • Inventory this family's primary and secondary behavior, including batch, streaming, raw outputs and stateful operations where supported. Record the current defaults, profiles, checkpoint cases, and reference criteria.
  • Implement and bind the matching semantic Task interface(s) in this family's runtime. Preserve its graph, preprocessing, inference, postprocessing, configuration and complete owned results.
  • Align family-owned support, build metadata and manifests with the primary Task. Advertise only interfaces implemented by the loaded bundle; document whether existing bundles need rebuilding.
  • Add family-owned CPU contracts and public C/C++ SDK consumers. Cover invalid inputs, configuration handling, result lifetime and every relevant lifecycle.
  • Run a selected real checkpoint E2E with the existing oracle and thresholds, then check the remaining declared capabilities and public CLI, example and benchmark paths. Preserve meaningful passing criteria.

PR evidence

Link the migration PR here. Report the tested revision, exact commands and results, selected checkpoint cases, original reference checks, current-head CI, and any untested configurations. Keep a normal migration within families/modernbert/**; raise a separate linked prerequisite issue if a shared contract is genuinely missing. Do not weaken an acceptance criterion to pass CI.

References: #1226 · family validation guide.

Activity

  1. JiaxinD commented on Oct 9, 2026

    @JiaxinD
    Contributor

    I will implement the family-local ModernBERT Task SDK migration, preserving the current encoder, embedding and reranking paths with C/C++ consumer coverage. The separate checkpoint-root fix is #1621.

  2. JiaxinD commented on Oct 17, 2026

    @JiaxinD
    Contributor

    Updated #1629 at 6a559bd: the legacy relevance path had no scoring head and returned a hidden-state coordinate, so the migration now rejects it instead of preserving a false score.
    CLS pooled features and mean/L2 embeddings retain their contracts; current CPU/native tests and both C/C++ consumers pass, while new-head GPU parity remains pending.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions