Skip to content

chore(deps): bump mlx-vlm from 0.6.17 to 0.7.0 - #84

Merged
krcm0209 merged 1 commit into
mainfrom
dependabot/uv/mlx-vlm-0.7.0
Sep 13, 2026
Merged

krcm0209 merged 1 commit into
mainfrom
dependabot/uv/mlx-vlm-0.7.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Sep 12, 2026

Copy link
Copy Markdown
Contributor

Bumps mlx-vlm from 0.6.17 to 0.7.0.

Release notes

Sourced from mlx-vlm's releases.

v0.7.0

What's Changed

... (truncated)

Commits
  • e0159b6 Merge pull request #2175 from lucasnewman/version-070
  • 52a6b34 Merge pull request #2176 from Shouta0108/fix-missing-jinja2
  • 1833981 Merge pull request #2181 from Lazarus-931/fix/lora-resume-freeze
  • ce29faa lora: freeze base model when resuming via --adapter-path
  • 86ed7af fix: declare jinja2 as a runtime dependency
  • 64f44c0 fix(aya_vision): use patch_embeddings in variable-resolution branch (#2173)
  • b089b6e Bump version to 0.7.0.
  • 01882c7 Fix Unlimited-OCR prompt suffix (#2169)
  • dcc08e3 Add Z1T-0 (Extropic attention-free sparse LM) (#2166)
  • d506477 Merge pull request #2171 from eklipse2k8/feat/MoGe
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [mlx-vlm](https://github.com/Blaizzy/mlx-vlm) from 0.6.17 to 0.7.0.
- [Release notes](https://github.com/Blaizzy/mlx-vlm/releases)
- [Commits](Blaizzy/mlx-vlm@v0.6.17...v0.7.0)

---
updated-dependencies:
- dependency-name: mlx-vlm
  dependency-version: 0.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python:uv Pull requests that update python:uv code labels Sep 12, 2026
Copilot AI requested a review from krcm0209 September 12, 2026 17:18
@krcm0209 krcm0209 closed this Sep 12, 2026
@dependabot @github

dependabot Bot commented on behalf of github Sep 12, 2026

Copy link
Copy Markdown
Contributor Author

OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting @dependabot ignore this major version or @dependabot ignore this minor version. You can also ignore all major, minor, or patch releases for a dependency by adding an ignore condition with the desired update_types to your config file.

If you change your mind, just re-open this PR and I'll resolve any conflicts on it.

@dependabot
dependabot Bot deleted the dependabot/uv/mlx-vlm-0.7.0 branch September 12, 2026 17:18
@krcm0209
krcm0209 restored the dependabot/uv/mlx-vlm-0.7.0 branch September 12, 2026 17:18
@krcm0209 krcm0209 reopened this Sep 12, 2026
@krcm0209

Copy link
Copy Markdown
Owner

@copilot Read sous's README.md and CLAUDE.md files to get a base understanding. Then, check every one of the release notes bullet links for mlx-vlm 0.7.0, and find what fixes, performance gains, etc. are unlocked for sous from this upgrade.

Copilot AI commented Sep 12, 2026

Copy link
Copy Markdown

@copilot Read sous's README.md and CLAUDE.md files to get a base understanding. Then, check every one of the release notes bullet links for mlx-vlm 0.7.0, and find what fixes, perfor...

Bottom line

I read README.md and CLAUDE.md, inspected sous’s integration, and checked all 74 unique PRs linked in the 0.7.0 release notes, including their relevant implementation changes. The seven contributor bullets repeat already-covered links. I also compared relevant code in the hash-verified 0.6.17 and 0.7.0 wheels.

For sous as configured today, this is a modest verifier-performance opportunity, a useful short-prefill memory improvement, and better stopping robustness—not an automatic batching/APC upgrade or a stronger coding model.

The important baseline is sous’s VLMEngine: dense qwen3_5 (Qwen3.8-27B-4bit), a separately quantized DFlash2 drafter, an explicitly supplied sampler, and raw caches owned by sous. Sous uses its own gateway and tool parser—not mlx-vlm’s server.

Benefits that reach the current path

Change What sous gets
#2140: exact Qwen verifier optimization Pair-unrolls existing exact quantized matrix-vector kernels without changing their accumulation order. Eligible target verification operations can benefit without sous changes. Upstream’s warmed M5 Max runs improved 59.31 → 61.32 tok/s (+3.39%). This is not a measured or guaranteed sous percentage; its supplied stochastic sampler also does not use the fused greedy-argmax path.
#2119: short-prefill memory Prompts at/below the default 2,048-token prefill threshold now use the chunk path rather than materializing vocabulary logits for every input token. Relevant to worker prompts, warm suffixes, and sous’s prefill-only calls. Upstream measured the same Qwen3.8-27B-4bit model, with a 1,229-token prompt, at 17.505 → 17.013 GB peak (~492 MB saved). That was upstream greedy generation, not sous’s full cache/drafter workload.
#2112: EOS correctness Stopping criteria retain both configured and tokenizer EOS IDs. Sous benefits despite explicitly calling reset(), because that implementation changed. This prevents wasted generation/extra assistant turns on affected checkpoints. No evidence that the default checkpoint previously had the reported EOS mismatch.
#2145, using hooks from #1960 Despite the Nemotron/APC headlines, these touch shared DFlash operation: cache-capacity reservation and context-projection plumbing, including DFlash2 compatibility. The reservation reaches sous without enabling APC. No isolated sous speedup established; greedy-only and unquantized-projection optimizations do not apply to its current supplied sampler/4-bit drafter.

For plan economics, those are useful insofar as local volume output becomes faster or less memory-hungry. They do not change billing, model weights, or establish better coding/task-completion quality.

Gains not to attribute to this PR

  • The advertised MLX speculative speedup is already available. #2133 raises the minimum to MLX 0.32.2; sous already locked that version before this PR. Its upstream ~15.1% Qwen/DFlash2 gain must not be counted again. Jinja2, mlx-audio, mlx-lm and Transformers versions are likewise unchanged here.
  • Positioned top-k is not sous’s sampler path. #2029 requires a seed and no supplied sampler. Sous supplies make_sampler(...); having top_k=20 does not activate the fix. Its ordinary top-k implementation already existed.
  • “Qwen3.8-Flash-Next” is not the default dense Qwen3.8-27B. Those optimizations target qwen4_exp, not qwen3_5. The adaptive native-MTP change is also not an upgrade to DFlash2’s controller.
  • No automatic server/tool fixes. Upstream Anthropic prefix preservation, streamed prose after tools, and Pythonic nested/multiple-call parsing do not alter sous’s own response assembler or XML/JSON parser.

Useful follow-on opportunities—not unlocked by the bump alone

  • Quantized KV and packed APC: potentially valuable for sous’s large resident gateway forks. However, 4-bit weights are not 4-bit KV. Sous does not request KV quantization, and its cache-copy contract explicitly excludes nested quantized states. This needs cache integration and correctness testing.
  • Continuous batching and persistent prefix caches: useful ingredients for concurrent subagents/restart reuse, but sous remains serialized and uses its own in-memory cache manager. Upstream hybrid-cache support does not automatically make its cache contract compatible with sous’s.
  • SSD MoE offload / external Qwen4 PLE: ways to explore larger models with less resident memory, not dense-Qwen acceleration. Offload auto-detects specially repacked checkpoints; controlled sous deployment still needs expert/KV/drafter/fork budgeting. External PLE needs its manifest and supported formats, with cold-I/O and tool-quality caveats.
  • Alternative models/drafters: candidates for separate evaluation, not demonstrated replacements. Sous routes ordinary text-only configs to mlx-lm, and does not forward speculative settings to that backend. Several new mlx-vlm text-model ports therefore need routing work too. Matching drafters, sous’s forced 4-bit drafter quantization, tool syntax, cache compatibility, memory fit, and coding quality all remain gates.
Complete audit: every release-note PR, in release order

“Conditional” means another checkpoint/model or additional integration—not an automatic benefit to the shipped setup. Numerical examples above are upstream results only.

PR Change and sous applicability
2034 Gather only addressed Qwen4 n-gram/PLE shards. Conditional model switch; no PLE in the default dense model.
1986 Representation-aware quantized-KV slicing and batched trimming fix Qwen verification. Conditional KV integration; sous supplies ordinary caches.
2037 Qwen4 sparse-attention mask allocation and FP32 block scoring. Conditional model switch, not default-model memory savings.
2019 Apodex 1.1 mixed NVFP4/FP8 loading and MTP extraction. Conditional checkpoint/model support; no change to native affine-Q4 weights.
2040 Native hyper-connection MTP for Flash-Next. Conditional matching qwen4_exp target/drafter; not dense DFlash2.
2052 Keep non-leading system messages in place, converted to user messages. Unused upstream Anthropic normalization; does not fix sous’s cache.
2051 Write decoded transcription uploads as WAV rather than unsupported/original containers. Unused audio server path.
2024 Honor RF-DETR box-visibility options. Unused visual annotation path.
2025 Restore SAM3’s per-task threshold defaults. Unused detection CLI.
2029 Correct top-k in seeded positioned sampling. Not reached with sous’s supplied sampler.
2056 Flash-Next QSA-aware continuous batching. Requires different model and batching integration.
2058 Official Qwen4 FP8 expert/PLE conversion. Conditional checkpoint conversion; not native FP8 acceleration for existing Q4 weights.
2059 Persist QSA/integer/Boolean states in disk APC. Unused disk cache; its bespoke serialization is subsequently generalized by #1960.
2062 Resume streamed prose around completed tool spans, safely across chunk boundaries. Unused upstream server assembler.
2064 Parse Pythonic calls with quotes/nested literals. Unused parser, not a fix to sous’s XML/JSON calls.
2065 Materialize quantized KV for Gemma2/Phi3Small custom attention. Requires affected model plus quantized-KV integration.
2057 Nemotron-H accepts simultaneous IDs/embeddings during prefill. Conditional model/backend correctness fix.
2068 Contributor reminders. Upstream repository automation only.
1960 Capability-based dense/hybrid APC redesign and OLMoE norm default. APC itself unused; native KV reservation hook does reach DFlash via #2145.
1813 SSD-backed routed experts for repacked MoE checkpoints. Conditional deployment/budget integration; no dense-Qwen benefit.
2036 Trim ChunkedKVCache using live length, not padded allocation. Conditional Llama-4 correctness fix, not current cache layout.
2075 Initialize RecurrentGemma’s missing module bookkeeping. Conditional model fix; no established current inference gain.
2083 Set 0.7.0rc0 version. Metadata only, superseded by final version.
2046 Enable adaptive depth for native Qwen4 MTP. Not DFlash2; sous’s explicit depth pin would override that preference.
2045 Manifest-backed external Qwen4 PLE plus conversion improvements. Conditional model/storage setup, with I/O tradeoffs.
2076 Make shared HF-cache model discovery opt-in. Unused upstream server discovery, not sous’s loader.
2092 Load flattened OptiQ LFM2-VL weights. Conditional checkpoint support, including text use; tool-template compatibility remains separate.
2100 Centralize video sampling overrides/defaults. Unused video input path.
2102 Decode float-quantized compressed-tensors FP8 checkpoints into dense weights. Conditional loading support, not FP8-sized runtime residency or Q4 speedup.
2101 DiffusionGemma channel cleanup via aggregate generate(). Not applied to sous’s streamed replies, even after model selection.
2110 Raise mlx-audio floor for VoiceChat. Already satisfied packaging requirement; audio functionality unused.
2112 Union config/tokenizer EOS during reset. Direct stopping robustness; observable benefit depends on checkpoint EOS mismatch.
2115 Add LLaVA-OneVision, including text-only inference. Conditional model candidate; its new vision capability is unused and coding quality unestablished.
2113 Prevent phantom KV after ragged batched speculative rollback. No singleton DFlash2 benefit; relevant to future batching.
2097 Add DeepSeek-V4 DSpark extraction/drafting. Matching target/drafter and routing required; not a Qwen drafter upgrade.
2063 Add LongCat sparse MLA/n-gram architecture. Model/backend integration candidate; sparse attention does not make its weights small.
2118 Load flattened OptiQ Muse Glimmer weights. Conditional checkpoint support.
2120 Recognize native MTP via num_nextn_predict_layers. Conditional drafter detection; does not auto-select MTP instead of sous’s DFlash2.
2119 Chunk short prefills to avoid full-prompt logits materialization. Direct memory benefit, with actual sous acceptance/latency still to measure.
2078 GLM-5.3 target support/verification hooks. Model/backend integration candidate; no supplied sous performance evidence.
2079 GLM-5.3 native MTP sidecar/extraction. Matching GLM target/drafter and routing required.
1822 TurboQuant batch decode, speculative cache routing and attention-sink correctness. Conditional KV integration; no current prefill gain.
2122 Add OmniParser YOLO11 icon detection. Unused image pipeline, not automatic desktop-agent capability.
2123 Florence-2 legacy loading and encoder-decoder prefill compatibility. Unused model path; upstream notes remaining checkpoint-quality issues.
2104 Add Video Depth Anything. Unused depth/video workflow, not language generation.
2129 Muse Glimmer final-user-channel cleanup. Aggregate-output hook bypassed by sous’s streaming decode.
2128 Correct SAM3 RoPE, positional bias and box-head activation. Unused visual detection correctness.
2131 Add Privacy Filter classifier/redaction API. Separate possible integration, not automatic secret filtering or a privacy guarantee.
2132 Multiple Pythonic tool calls in one list. Unused parser; sous already independently supports multiple XML/JSON calls.
2133 Require MLX 0.32.2. Already locked before this bump; do not recount its benchmark gain.
2137 Add Gemma4 DSpark. Conditional model/drafter candidate; upstream recommends 8-bit and documents parity/sliding-window caveats, unlike sous’s forced 4-bit policy.
2142 Qwen video timestamps and matching RoPE temporal groups. Unused video branch, despite touching the default architecture family.
2136 Experimental DeepSeek-V4 Flash Vision and checkpoint-local DSpark. Routing/conversion/drafter integration required; flat vision metadata does not satisfy sous’s current routing predicate.
2143 Align Granite4 visual deepstack injection with prefill chunks. Unused image-feature fix, not generic text-prefill acceleration.
2146 Register native Qwen3-VL embedding processor. Separate embedding/retrieval opportunity, not a generative-model swap.
2140 Pair-unroll exact Qwen verifier kernels. Direct eligible-operation performance improvement; sous-level gain unmeasured.
2090 Keep quantized APC checkpoints packed through restore/merge. Requires quantized KV/APC integration.
1951 Normalize padding and aligned tensors at BatchGenerator.insert(). Unused batching entry point.
2145 Nemotron speculation plus shared DFlash reservation/projection changes. Shared path reaches sous; model-specific benchmark and gated fast paths do not transfer.
2151 Laguna hidden capture, rollback and missing-window metadata. Matching model/drafter plus backend integration required.
2152 Refuse upstream prefix rollback for nontrimmable hybrid state. Bypassed by sous’s own cache orchestration; does not make ArraysCache rewindable.
2150 Use absorbed MLA for suitable multi-token steps. Conditional MLA-model optimization; dense Qwen3.5 does not use MLA.
2158 Initialize missing Gemma DSpark attention attributes. Prerequisite fix for that optional drafter, not current DFlash2.
2153 Add dense K2-Horizon. Text-model/backend integration candidate, not automatically exposed by sous’s VLM router.
2125 Verify Ornith/existing Qwen MoE MTP and add native-MTP greedy argmax hook. Not a DFlash2 gain; MoE MTP construction already existed in 0.6.17.
2126 Qwen4 QSA summary reuse, sparse attention and batched parity. Different architecture/batching path, not automatic acceleration of sous’s prefix forks.
2170 GLM output cleanup and Kimi additional EOS. Conditional/partial: Kimi stop token survives sous’s reset; GLM aggregate cleanup does not reach its streamed replies.
2171 Add MoGe-3 geometry estimation. Unused image-to-geometry workflow.
2166 Add attention-free Z1T-0 with fixed-size streaming state. Routing/cache integration required; research-model support does not establish useful coding quality.
2169 Remove Unlimited-OCR’s processor-template trailing space. Unused OCR/template path; sous renders at tokenizer level.
2173 Fix Aya Vision variable-resolution embedding reference. Unused image-forward branch.
2181 Freeze base weights when loading LoRA adapters. Unused adapter/training functionality; sous supplies no adapter path.
2176 Declare Jinja2 runtime dependency. Correct dependency edge, but Jinja2 was already present via mlx-lm.
2175 Set final 0.7.0 version. Metadata only.

Validation and recommendation

  • No additional repository changes. Existing commit fe359ec changes only the lockfile; the project’s mlx-vlm>=0.6.16 requirement remains unchanged. This pins checkout resolution, rather than enforcing 0.7.0 as the minimum for every installation.
  • Current CI is green: 817 passed, 8 skipped, 27 model tests deselected, plus successful type/lint/lockfile checks. The advisory check found no known advisories for mlx-vlm 0.7.0, MLX 0.32.2 or Jinja2 3.1.6.
  • Real-model validation remains outstanding on this Linux runner. Before claiming a speedup or full runtime compatibility, run the existing model tests and a real delegation on Apple silicon with the actual default model, 4-bit DFlash2 and block size 3—not just the tiny smoke model. Exercise cold/warm/two-fork reuse, short suffixes around 2,048 tokens, streaming/tool output and session-thread exit. #2119 changes short-prompt DFlash conditioning as well as allocation, so measure acceptance, latency and peak memory together.
  • Keep the current block-size/caching/INT8 settings pending those measurements. Neither the README’s existing speculation/INT8 gains nor upstream results on other models establish this upgrade’s end-to-end benefit.

Recommendation: keep the bump focused; prioritize validating the default worker/cache path. Treat batching, quantized KV, disk APC and model changes as separate engineering work, not benefits already delivered by this lockfile update.

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

Labels

dependencies Pull requests that update a dependency file python:uv Pull requests that update python:uv code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants