Skip to content

pr-set: pin Nemotron 3.5 Super VL and Bolt (ggml-org#30520), repin Inkling - #278

Merged
danielhanchen merged 1 commit into
masterfrom
pin-nemotron35-30520
Oct 15, 2026
Merged

danielhanchen merged 1 commit into
masterfrom
pin-nemotron35-30520

Conversation

@danielhanchen

Copy link
Copy Markdown
Member

Summary

Adds ggml-org#30520 (Nemotron 3.5 Super VL and Nemotron 3.5 Bolt 74B A9B support, by frozenblade1224) to scripts/unsloth/pr-set.json at its final head e64207bab6c2, and repins Inkling (ggml-org#25731) to 534c32182487.

Testing

Local mirror of unsloth-pin-preflight.yml:

Check Result
Pin merges, every tag from b11639 to b11645 all 18 pins merge in order. ggml-org#25731 and #70 go through additive_merge.py, the rest merge cleanly. Without the ggml-org#25731 repin, ggml-org#30520 is refused on every tag
merge_checks.py clean on every tag
pin_contract.py all 18 pins intact on every tag
Full verify, b11639 (aged) and b11658 (newest) CPU gate build, full CUDA build, test-chat pass; test-backend-ops MUL_MAT 2488/2488, MUL_MAT_ID 993/993, PAD 37/37, GET_ROWS 340/340
feature_matrix.py --only nemotron-3.5 demonstrated on CPU and on GPU (2/3 device rows decoded and matched CPU, projector registry intact over 212 assertions)

ggml-org#25731 repin checks:

  • Converter: a tiny Llama converts to a byte-identical GGUF on the old and new heads, and a stacked NVFP4 checkpoint raises the same error on both.
  • Inkling numeric gate (UD-IQ1_S, wikitext-2, 20 x 512): old head, new head and new head merged with ggml-org master all give PPL 38.371526, mean KLD 0 and 100% same top token against the old head.

ggml-org#30520 model checks on the final head, against the head first tested (8-chunk wikitext PPL, identical on both):

GGUF PPL
Bolt UD-IQ2_XXS 6.1862
Bolt UD-IQ1_M 6.1871
Bolt UD-IQ1_S 6.5160
Super-VL UD-IQ1_M (previous build) 3.9908
Super-VL UD-Q4_K_XL 3.1697
Super-VL Q8_0 3.1496

Bolt with its DSpark draft accepts 410/606 drafted tokens on both heads, and the Bolt vision projector gives byte-identical output.

Not covered

  • ROCm, Vulkan, macOS, Windows and ARM legs run only in the nightly.
  • Base tags newer than b11658 were not simulated.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 15, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-15T14:23:24.790461Z 88868b7 PR opened
🔒 Security Review ✅ Completed 2026-10-15T14:22:13.939665Z 88868b7 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@danielhanchen
danielhanchen merged commit 3966ddc into master Oct 15, 2026

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 88868b7a0c

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +69 to +71
"checks": [
{ "kind": "arch", "arch": "nemotron_h_moe" },
{ "kind": "mtmd", "projector": "nemotron_omni" }

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Add coverage for the bundled LiLiCorr path

When an aged nightly base builds this pin, ggml-org#30520 also supplies the unpinned ggml-org#30506 LiLiCorr/DSpark changes in src/models/dflash.cpp, but these checks exercise only the main nemotron_h_moe graph and the projector registry. tests/test-llama-archs.cpp explicitly skips LLM_ARCH_DFLASH, so the new speculative-decoding path is never executed and feature_matrix.py can report ggml-org#30520 demonstrated even if that bundled functionality is broken; add a positive runtime probe for the DFlash/DSpark path rather than treating the pin as fully covered.

Useful? React with 👍 / 👎.

"https://github.com/unslothai/llama.cpp/pull/264/commits/5bb68456bc34238cedb50c8683495c6d6f924177",
"https://github.com/unslothai/llama.cpp/pull/266/commits/88035b0f74d0fd076df2012a957950fee0c4615f"
"https://github.com/unslothai/llama.cpp/pull/266/commits/88035b0f74d0fd076df2012a957950fee0c4615f",
"https://github.com/ggml-org/llama.cpp/pull/30520/commits/e64207bab6c2989a4ae5aa8b9e0cbe700e135ee3"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Pin a head that does not merge newer upstream history

For every aged base predating October 15, this head follows 3cb3b3f, which merged current upstream master into the PR branch as shown in the PR commit list. The resolver checks out the aged tag and runs git merge --no-ff "$SHA" in .github/workflows/unsloth-prebuilt.yml:326-346; Git merge incorporates the named commit's history since divergence, while --no-ff only forces creation of a merge commit (Git documentation). Consequently this pin imports every unrelated upstream commit through that merged master revision, bypassing UNSLOTH_LLAMA_MIN_RELEASE_AGE_HOURS, rather than adding only ggml-org#30520/ggml-org#30506; use a pin whose ancestry forks before the aged bases or otherwise isolate the reviewed changes.

Useful? React with 👍 / 👎.

"owner": "ggml-org#30520",
"checks": [
{ "kind": "arch", "arch": "nemotron_h_moe" },
{ "kind": "mtmd", "projector": "nemotron_omni" }

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Exercise the Nemotron Omni projector in this check

When the new Nemotron Omni image/video preprocessing or projector graph regresses, this entry still passes because probe_mtmd() in scripts/unsloth/feature_matrix.py:124-134 never reads check["projector"]; it only runs the same global test_projector_registry filter for every projector and counts its assertions. That verifies registry consistency, not that nemotron_omni can preprocess media or execute its newly added graph, while pin_contract.py only verifies source-line survival; add a projector-specific positive probe so the primary multimodal functionality of ggml-org#30520 cannot remain green without being exercised.

Useful? React with 👍 / 👎.

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