Add model registration and qualification handoff#425
Conversation
|
Would appreciate your review on this when you have a chance. Happy to address any feedback. |
|
@Thump604 Thanks for this — the registration/qualification handoff pattern is well-structured and the frozen dataclasses are clean. A few things: Blocker1. Base branch (#417) is CLOSED This PR targets Should fix2. No
3. Missing test: No test covers 4. Missing test: qualification success path
5. Missing test:
6. Add About 10+ arguments on 7. Assert zero-valued defaults survive The test passes Consider8. The PR description says "portable registration manifest" but the embedded 9. No
10.
11. No environment metadata in qualification manifest The qualification manifest records 12. Schema evolution Both manifests include Minor
|
janhilgard
left a comment
There was a problem hiding this comment.
Blocker
- Base branch (#417) is CLOSED — this PR targets
feat/model-acquisition-workflow(PR #417), which has been closed. PR #423 appears to be the replacement. This PR has no merge path.
Should fix
- No
--no-mllmflag —args.mllmis eitherTrueorNone, neverFalse. No way to unset it. - Missing test:
register_modelwith minimal/default options - Missing test: qualification success path (
returncode=0) - Missing test:
NotADirectoryErrorpath - ~10 arguments missing
help=text _drop_nonehandling of zero-valued defaults untested
Consider
artifact_pathis absolute — limits portability despite "portable manifest" framing- No
--timeoutonqualify— hung server blocks CLI indefinitely extra_argscan silently override earlier flags- No environment metadata in qualification manifest (Python/vllm-mlx/MLX version)
See full review comment for details.
|
@janhilgard Verified all items. Here is where I landed on each: Blocker (1): Correct -- #417 is closed and #423 replaces it. I will re-port #425 onto main with #423's content included. New branch, new PR referencing this one. Should fix (2-7): All valid. Fixes:
Consider (8-11): Agreed on 8 (will document the absolute-path limitation), 9 (add Will address in the re-ported PR. |
|
@Thump604 Sounds good on all points. The Looking forward to the re-ported PR. |
f933a50 to
4053fe3
Compare
…gaps - Add --no-mllm as mutually exclusive counterpart to --mllm via argparse group, so mllm can be explicitly set to False - Add help= text to all register/qualify/convert arguments that were missing it (~10 arguments) - Add test: register_model with minimal defaults (only artifact_path) - Add test: NotADirectoryError when artifact is a file - Add test: qualification success path (returncode=0) - Add test: _drop_none preserves 0, 0.0, and False (only drops None)
4053fe3 to
293222a
Compare
|
Rebased onto current main (now that #423 is merged — base branch blocker resolved). All review feedback from the first round is addressed:
17/17 tests passing. |
janhilgard
left a comment
There was a problem hiding this comment.
Clean addition to the model workflow. Well-tested (10 new tests covering happy path, error cases, dry-run, and subprocess results). CLI UX is solid with mutually exclusive --mllm/--no-mllm and repeatable flags. Code follows established patterns from the existing model_workflow module. LGTM.
Stacked on #417. This keeps the first model artifact workflow PR reviewable, then adds the next handoff layer without mutating any local Ops registry.
Scope:
vllm-mlx model register <artifact>to write a portablevllm_mlx_registration_manifest.jsonproduction_ready=falsevllm-mlx model qualify <model-id>to create or run abench-servequalification handoff command and optional request manifestLocal validation:
CLI smokes:
Dependency note:
model qualify --workloadis intended to compose with #406's workload contract support. Without that bench-serve support, the dry-run manifest is still useful, but running the generated command with--workloaddepends on #406 or equivalent landing.