Skip to content

fix(nv_build): retire the dead models and point the default at a served one - #391

Open
Mark2Mac wants to merge 2 commits into
NVIDIA:mainfrom
Mark2Mac:fix/nv-build-default-model
Open

fix(nv_build): retire the dead models and point the default at a served one#391
Mark2Mac wants to merge 2 commits into
NVIDIA:mainfrom
Mark2Mac:fix/nv-build-default-model

Conversation

@Mark2Mac

@Mark2Mac Mark2Mac commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

The other half of #388. Depends on #390 — merge that first.

Three registry entries name models GET /v1/models does not serve:

entry status role
deepseek-ai/deepseek-v4-flash 410 Gone since 2026-08-07 DEFAULT_MODEL
deepseek-ai/deepseek-v4-pro absent from the catalogue meta_analyzer slot
z-ai/glm-5.1 absent from the catalogue

With no SKILLSPECTOR_MODEL set, the out-of-the-box path failed every call.

Why this is one change and not two. Removing the dead entries and retargeting the default cannot be separated: the suite already asserts the invariant that couples them, in test_constants.py

"nv_build's default model is in its registry — no warnings expected for that model."

Dropping the default from the registry while leaving it as the default breaks that test, and it is right to break: a default the registry does not describe gets its token budget from a guess, silently. I attempted the split and abandoned it for this reason.

The part worth arguing about. The replacement is chosen for detection, not latency:

model latency on a bait skill with disguised credential exfiltration
deepseek-v4-flash-0731 ~1.6 s/call 3/3 calls, no degradation reported, clean verdict
z-ai/glm-5.2 ~16 s/call CRITICAL

A confident false negative is the worst failure mode a security scanner has: it is the case where someone signs off. The fast model does not report uncertainty — it reports absence.

On dropping the slot override. meta_analyzer loses its override rather than gaining a new one. The aggregation pass does benefit from a stronger model, but naming a second model doubles the surface that can go stale — which is how the previous default rotted unnoticed. Happy to restore one if you'd rather.

1044 passed, ruff format and check clean, DCO signed.

The bundled registry gave z-ai/glm-5.2 a 1000000-token context window and no
output cap. model_info derives the output budget as
ctx * (1 - MAX_INPUT_TOKENS_PCT), so every request asked for 250000 output
tokens and the endpoint answered:

  400 This model configuration accepts at most 202749 combined input and output
      tokens. However, your request has 1249 input tokens and asks for 250000
      output tokens (251249 tokens total).

202749 is quoted verbatim by the endpoint in that 400. With the entry corrected
the same scan completes with 4/4 LLM calls and the meta-analyzer applied.

An over-stated context window does not degrade gracefully: it zeroes the LLM
stage, and nothing in the error points at the registry. Under-stating is safe,
over-stating is not.

Limits may vary per account, which is now noted in the YAML.

Scope is deliberately one entry. The registry also names three models the
catalogue no longer serves, but removing them is coupled to DEFAULT_MODEL by an
invariant the suite already asserts ("nv_build's default model is in its
registry"), so that change travels with the default in a separate PR.

Refs NVIDIA#388

Signed-off-by: Mark2Mac <Mark2Mac@users.noreply.github.com>
…ed one

Depends on NVIDIA#390.

Three registry entries name models GET /v1/models does not serve:
deepseek-v4-flash (410 Gone since 2026-08-07), deepseek-v4-pro, and glm-5.1.
One of them is DEFAULT_MODEL, and another is the meta_analyzer slot override,
so with no SKILLSPECTOR_MODEL set the out-of-the-box path failed every call.

Removing them and retargeting the default is ONE change, not two. The suite
already asserts the invariant that couples them, in test_constants:

  "nv_build's default model is in its registry — no warnings expected"

Dropping the default from the registry while leaving it as the default breaks
that test, and it is right to break: a default the registry does not describe
gets its token budget from a guess, silently. Splitting these two edits was
tried and abandoned for exactly this reason.

The replacement is chosen for DETECTION, not latency, and that is the part
worth arguing about. On a bait skill carrying credential exfiltration disguised
as a synchronisation step, the fast served model (deepseek-v4-flash-0731,
~1.6 s/call) completed every call, reported no degradation, and returned a
clean verdict. A confident false negative is the worst failure mode a security
scanner has: it is the case where someone signs off. z-ai/glm-5.2 costs ~16 s
per call on the same skill and returns CRITICAL.

The meta_analyzer slot loses its override rather than gaining a new one. The
aggregation pass does benefit from a stronger model, but naming a second model
doubles the surface that can go stale — which is how the previous default
rotted unnoticed. Happy to restore an override if preferred.

Refs NVIDIA#388

Signed-off-by: Mark2Mac <Mark2Mac@users.noreply.github.com>
@Mark2Mac
Mark2Mac force-pushed the fix/nv-build-default-model branch from 554a247 to 315b0c2 Compare August 18, 2026 09:21
@Mark2Mac Mark2Mac changed the title fix(nv_build): point the default at a model the catalogue serves fix(nv_build): retire the dead models and point the default at a served one Aug 18, 2026
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