Skip to content

Releases: ml-explore/mlx-swift-lm

3.31.4

Choose a tag to compare

@davidkoski davidkoski released this 30 Jun 16:31
bd4b743

New release with the last couple months of new features and fixes.

Upcoming changes (potential instability on main):

Use this tag if you want to isolate.

What's Changed

  • Guard embedder inputs against maxPositionEmbeddings by @alankessler in #163
  • Doc corrections for v3 by @DePasqualeOrg in #216
  • add fallback links to the readme -- docs are not yet built by @davidkoski in #218
  • Fix Qwen35 VLM crash on text-only inference by @dirvine in #149
  • Add coherence integration tests by @DePasqualeOrg in #235
  • fix: flatten prompt in TokenRing.loadPrompt to handle 2D inputs by @spokvulcan in #170
  • Pass tools schema to ToolCallProcessor for type-aware parsing by @alankessler in #167
  • Forward tools and additionalContext in GlmOcr and SmolVLM2 processors by @alankessler in #174
  • fix: avoid shared CIContext in media processing by @Meapri in #268
  • feat: add ParoQuant (pairwise rotation quantization) support by @spokvulcan in #164
  • fix ropeOffset use in Gemma3NText by @davidkoski in #280
  • Handle stringified JSON tool call arguments by @kuosuko in #172
  • fix build by @davidkoski in #281
  • fix segsum dtype promotion -- 2x memory waste on hybrid SSM models by @TheTom in #229
  • Remove TokenLoopHandler Sendable requirement by @thisray in #284
  • feat: expose speculative decoding in ChatSession (#181) by @VDurocher in #193
  • Fix EmbeddingGemma init-order crash + dense head hidden size by @0xweb3r in #223
  • fix: disable CIContext intermediate caching to prevent IOSurface exha… by @Satchitananda in #226
  • fix Gemma 4 MoE router -- softmax order + fuse norm dispatches by @TheTom in #228
  • add FusedGateUpSwitchGLU -- single fused gate_up_proj for MoE models by @TheTom in #227
  • Fix UserInput init not setting self.images / self.videos (#182) by @john-rocky in #253
  • pipeline prefill chunks with asyncEval -- 10x on GDN models by @TheTom in #225
  • fix gated delta state precision -- fp32 state to match Python by @TheTom in #224
  • Fix(Docs) non-compiling README quick-start example by @programVeins in #265
  • combine docs check with build to reuse a macos runner by @davidkoski in #286
  • Remove SDK build version command from workflow by @madrob in #306
  • models should not mutate state during eval by @davidkoski in #283
  • Fix: tolerate 1D token inputs in Gemma 4 VLM forward pass by @brdcastro in #241
  • fix Idefics3 prepare() to honor windowSize -- prompt prefill is never chunked by @Adi2K in #297
  • Fix Gemma 4 vision pooler kernel derivation by @joshuaejackson in #290
  • Add LLM generation benchmark helper by @john-rocky in #248
  • Fix Gemma4 attention crash when vProj is nil (attentionKeqV) by @jfranknichols in #247
  • Adopt GemmaFunctionParser to accomodate Gemma4 tool calls. by @viktike in #183
  • Optimize Gemma 4 text decode: compile-fused RMSNorm-add and gelu-mul (+23.8%) by @john-rocky in #249
  • fix Idefics3 vision encoder dtype -- SigLIP runs in float32 instead of bf16 by @Adi2K in #296
  • Share the fused gated-delta kernel between MLXLLM and MLXVLM by @john-rocky in #257
  • Fix Qwen2-VL chat template: emit vision tokens before text by @NivDvir in #242
  • Fix consistent float32 dtype for gated delta SSM operations in Qwen3.5 models by @somegeekintn in #317
  • Fix vision-encoder attention mask being ignored in Qwen2.5-VL by @NivDvir in #238
  • LoRA: runtime toggle and PEFT adapter loader by @smdesai in #316
  • Fix Qwen35 VLM sanitize for bare 'model.*' weight keys (#143) by @john-rocky in #254
  • Fix SmolVLM2 tiles() upscaling small images, ~9x slowdown (#208) by @john-rocky in #255
  • Add structured ChatSession continuation by @aleroot in #313
  • Fix sporadic JSON tool-call detection and add parser hardening for mixed text/tool outputs by @aleroot in #205
  • Fix Gemma4Text quantized KV cache attention by @aleroot in #237
  • Fix MROPE, rope_deltas, and invFreq loading in Qwen2.5-VL by @NivDvir in #239
  • Moe refactoring -> reduces repeated small graph construction overhead by @aleroot in #324
  • Make Gemma 4 per_layer_model_projection quantizable by @davidkoski in #309
  • support for audio resources by @davidkoski in #298
  • Qwen2/2.5-VL: default to the model card's recommended image budget by @NivDvir in #243
  • Fix Gemma 4 cross-layer KV sharing in no-cache forward pass by @pavan-kkn in #333
  • Add Gemma 4 MTP speculative decoding by @angelsbrood in #308
  • fix Gemma4 prepare() to honor windowSize -- prompt prefill is never chunked by @joshuaejackson in #337
  • Align Falcon H1 with upstream MLX inference by @aleroot in #331
  • Fix LFM2-MoE sigmoid routing and expert-bias selection by @ykhrustalev in #332
  • remove references per author request by @davidkoski in #341
  • fix speculative decode tests by @davidkoski in #326
  • Improve Qwen3.5 recurrent cache handling by @aleroot in #323
  • Raise swift-syntax floor to 602.0.0 for prebuilt artifact resolution by @roryford in #340
  • Expose ModelTypeRegistry.contains(_:) for pre-load support checks by @jfranknichols in #349
  • Add Nemotron Labs Diffusion by @smdesai in #310
  • fix MLXVLM prepare(): honor windowSize for chunked prefill (FastVLM / Gemma3 / Qwen2VL / LFM2VL / Pixtral / Mistral3) by @john-rocky in #344
  • Fix speculative decoding test oracle by @aleroot in #354
  • Fix nomic-embed-text-v1.5 'Key embeddings.position_embeddings.weight not found' by @JamalK in #305
  • Add Gemma 4 12B unified by @adrgrondin in #327
  • Fix iOS build: replace homeDirectoryForCurrentUser with shared HF cache helper by @hehua2008 in #356
  • Add speculative decoding telemetry and memory gating by @aleroot in #314
  • Add Swift model conversion API by @aleroot in #318
  • Fix build on Xcode 16.3 / SDK < 26 by @pcuenca in #359
  • add kvScheme parameter for extensible KV cache compression by @TheTom in #230
  • Fix Gemma 4 QAT load: KV-shared layers carry no k_proj/v_proj/k_norm by @Flo5k5 in #342
  • Lfm2.5 bidirectional embedders by @ronaldmannak in #365
  • Fix Gemma4 QAT (E-series) load: KV-shared layers have no k_proj/v_proj/k_norm by @Flo5k5 in #330
  • Validate RoPE model configurations by @RNT56 in #371
  • Add runtime stop string handling by @RNT56 in #372
  • Falcon-H1R: correctness, cache, and preset fixes ...
Read more

3.31.3

Choose a tag to compare

@davidkoski davidkoski released this 15 Apr 14:33
1c05248

First 3.x release.

See for information on what changed and how to upgrade

What's Changed

New Contributors

Full Changelog: 2.31.3...3.31.3

2.31.3

Choose a tag to compare

@davidkoski davidkoski released this 01 Apr 20:50
25b00d4

In addition to the many changes and improvements in mlx-swift-lm, this also:

  • uses mlx-swift 0.31.3
  • switches Package.swift to use the 6.1 swift-tools-version -- this will help keep the code concurrency safe

Important

This will be the last tag for the 2.x releases. We will continue with some breaking API changes on main with 3.x

What's Changed

New Contributors

Full Changelog: 2.30.6...2.31.3

2.30.6

Choose a tag to compare

@davidkoski davidkoski released this 18 Feb 18:29
7e19e09

Switch to mlx-swift 0.30.6: https://github.com/ml-explore/mlx-swift/releases/tag/0.30.6

Important:

What's Changed

New Contributors

Full Changelog: 2.30.3...2.30.6

2.30.3

Choose a tag to compare

@davidkoski davidkoski released this 22 Jan 20:58
360c505

Picks up mlx-swift 0.30.3.

What's Changed

New Contributors

Full Changelog: 2.29.3...2.30.3

2.29.3

Choose a tag to compare

@davidkoski davidkoski released this 08 Jan 18:44
5064b8c

Many bug fixes and new models. Checkpoint commit before picking up new mlx-swift.

What's Changed

New Contributors (to mlx-swift-lm anyway)

Full Changelog: 2.29.2...2.29.3

2.29.2

Choose a tag to compare

@davidkoski davidkoski released this 11 Nov 18:34
0185297

What's Changed

  • prepare mlx-swift-lm, no functional changes

Full Changelog: 2.29.1...2.29.2

2.29.1

Choose a tag to compare

@davidkoski davidkoski released this 03 Nov 23:31

mlx-swift-lm for mlx-swift 0.29.1

Please read release notes for mlx-swift:

What's Changed

Full Changelog: 2.25.9...2.29.1