Skip to content

[Model] Keep the MoVA FP8 load guard after a native restore - #54

Open
mvillmow wants to merge 2 commits into
codex/k2-dense-compressed-fp8from
codex/k2-mova-presharded-lifecycle
Open

mvillmow wants to merge 2 commits into
codex/k2-dense-compressed-fp8from
codex/k2-mova-presharded-lifecycle

Conversation

@mvillmow

@mvillmow mvillmow commented Sep 18, 2026 •

Copy link
Copy Markdown
Collaborator

Motivation

A native MoVA FP8 model must reject a second source load after a successful presharded restore. The restore path previously left its initial-load flag unset. A later load could read input tensors before it failed.

Related issue: #50. Its wider acceptance criteria stay open.

Modifications

  • Record MoVA load completion in the existing mark_load_complete() method. The presharded loader calls this method after it restores tensors and verifies the checksum.
  • Add one CPU case with real cache files, the actual restore path, checksum verification, and byte comparisons. Verify that the next load raises the fresh-model error before it reads the input iterator.
  • Keep the existing post-load tensor transforms unchanged.

Public model reference: IFM/K2-Horizon-MoVA-FP8.

The positive test uses synthetic tensors and explicit synthetic router provenance. It does not supply the missing router provenance for the public checkpoint.

Head: adabb14a39ab514277e9714cb8e4d7c726bd3982. This change depends on PR #52 at 3d6db36e46f5f15643a642e92f97ef2fb750a56a. The comparison has 143 additions, no deletions, and two files.

Accuracy Tests

Validation Source Result
Affected case before the correction 2f4fc5b02e3be5cfc59fec8499434b11093ad78b One expected failure: the model raised the missing-tensor error instead of the fresh-model error after a successful restore.
Affected case after the correction adabb14a39ab514277e9714cb8e4d7c726bd3982 One collected and passed. No failures, errors, or skips. The input iterator was not accessed.

Ordinary Lint passed at the current head. The PR test gate failed because the required run-ci label is missing. Ordinary PR checks are not all successful.

No local tests were run. These CPU results do not establish full-checkpoint accuracy or GPU qualification.

Speed Tests and Profiling

No speed benchmark was run. Full-checkpoint and H200 qualification stay in the linked issue.

Checklist

  • Add and register the affected CPU case.
  • Review the implementation and its native restore caller.
  • Obtain a passing CI result for the new case.
  • Obtain successful ordinary Lint for the current head.
  • Obtain successful ordinary PR checks.
  • Publish full-checkpoint accuracy and speed results.

Signed-off-by: Micah Villmow <4211002+mvillmow@users.noreply.github.com>
Signed-off-by: Micah Villmow <4211002+mvillmow@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant