What's Changed
- Add deepseek_v3 and deepseek_v32 model types by @Lazarus-931 in #1517
- port LFM2 into a shared components module and fix per-layer quantization overrides by @Lazarus-931 in #1513
- Fix MRoPE decode positions in plain generate for Qwen VLMs by @Lazarus-931 in #1527
- Fix Gemma4 video processor and audio weight loading by @Blaizzy in #1523
- Bump version to v0.6.5 by @Blaizzy in #1529
- Add end-to-end APC exact-mode correctness tests for hybrid models by @weklund in #1519
- Add nemotron_h model type and remove mlx-lm from nemotron_h_nano_omni by @Lazarus-931 in #1518
- Skip norm weight shift when loading MLX-format Qwen3.5 checkpoints by @Lazarus-931 in #1528
- add qwen3 model type by @Lazarus-931 in #1531
- add llama model type by @Lazarus-931 in #1530
- add gemma3_text model type reusing gemma3 language internals by @Lazarus-931 in #1536
- add mistral model type by @Lazarus-931 in #1535
- Add structural tests for 8 untested model types by @weklund in #1539
- Fix PaddleOCR-VL sanitize double-prefixing MLX-format checkpoints by @Lazarus-931 in #1540
- Fix double-sanitize issue with Qwen3 Omni MoE by @lucasnewman in #1541
- Optimize Qwen3 Omni audio hidden-state capture by @sxy-trans-n in #1522
- fix(qwen3_5_mtp): guard norm +1.0 shift to raw-HF layout only by @Lazarus-931 in #1554
- Enable APC with KV-cache quantization (single-request) by @weklund in #1534
- feat(apc): adapter boundary for batch/SWA kv-bits (#1559) by @weklund in #1560
- docs: APC works with KV-cache quantization by @weklund in #1565
- Move Qwen3 Omni MRoPE to request-owned kwargs by @hellopahe in #1557
- sam3: implement box/geometry prompt support in the detector by @Lazarus-931 in #1563
- feat(apc): APC_TRACE + non-fatal layout self-check by @weklund in #1566
- fix: multi-row continuous batching with KV quant (#1567) by @weklund in #1568
- fix(qwen3_5): skip fully-padded rows in chunked batch prefill (#1558) by @Lazarus-931 in #1571
- Fix Gemma 4 dtype leak by @Blaizzy in #1585
- Guard Qwen3.5 norm weight shifts by @Blaizzy in #1556
- Fix AutoProcessor.register string-first calls (transformers 5.13 issue) by @Lazarus-931 in #1581
- Fix Qwen3.5 gated delta training async eval by @Blaizzy in #1586
- fix(sam3): make sanitize idempotent for pre-converted MLX conv weights by @Lazarus-931 in #1550
- Fix generation batch logits processor alignment by @Blaizzy in #1583
- minimax_m3_vl: add pack_shared_expert config override for mixed-precision quantization by @avlp12 in #1544
- Honor quantized_kv_start on the batch TurboQuant path by @Lazarus-931 in #1582
- Add 1-bit inference kernel (Python-hosted) by @Blaizzy in #1597
- vendor gated_delta kernel/ops from mlx-lm into qwen3_5 by @Lazarus-931 in #1593
- vendor quantize/dequantize_model into mlx_vlm.quant_utils by @Lazarus-931 in #1594
- Optimize 1-bit decode and fused greedy routing by @Blaizzy in #1598
- Avoid thinking budget decode synchronization by @Blaizzy in #1601
- Vendor qwen & deepseek text models by @Lazarus-931 in #1606
- trainer: load text-model LoRA adapters via mlx-vlm's own loader by @Lazarus-931 in #1605
- share MLP implementations getting refractored by @Lazarus-931 in #1607
- share the vision multi-head Attention used 6 times by @Lazarus-931 in #1608
- Preserve MLX attention masks during preprocessing by @Blaizzy in #1610
- Add Chat Completions tool choice support by @Blaizzy in #1611
- Allow transformers 5.14 and newer by @Blaizzy in #1612
- Fix blocking continuous-batch prompt prefill by @Blaizzy in #1613
New Contributors
- @weklund made their first contribution in #1519
- @sxy-trans-n made their first contribution in #1522
- @avlp12 made their first contribution in #1544
Full Changelog: v0.6.4...v0.6.5