github unslothai/unsloth v0.1.807-beta
Large Performance Improvements + Fixes

one hour ago

This is a large performance and reliability + bug fix release for Unsloth

Highlights

  • AMD uses Vulkan by default - 20% perf boost for prefill, decoding vs ROCM
  • Windows llama-server.exe is now signed, reducing false positives for SAC
  • AMD gibberish issues in Strix, iGPUs fixed in (upstream - reported to AMD)
  • Over 200+ bug fixes, 50% smaller binaries and performance improvements
  • Updated PyTorch to 2.11 from 2.10 - 2.14 will be soon. MLX improvements
  • Default to gpt-6-astra for Codex logins and improve OpenAI API processing
  • MLX fixed when self healing / updating, causing slowdowns for inf + training
  • Fix AppImage being very laggy. Fixed RAG upload issues stuck at 28% and API issues
  • New Docker image published at https://hub.docker.com/r/unsloth/unsloth for Studio and notebooks

AMD + Windows

  • Strix Halo and Strix Point now default to Vulkan for faster inference.
  • Up to 23% faster prompt processing and 8% faster generation on Strix Halo.
  • AMD iGPUs without ROCm now use Vulkan instead of CPU on Linux.
  • Windows llama.cpp binaries are now signed to reduce Smart App Control blocks.
  • Windows now clearly explains when code integrity blocks model loading.
  • Reinstalling Unsloth on Windows keeps your supported PyTorch version.

MLX + Apple Silicon

  • Gated-delta models now train up to 25% faster on Apple Silicon.
  • Quantized MLX KV caches use up to 74% less prompt memory than before.
  • Fresh Mac installs keep MLX training and exports working.
  • Fine-tune with DoRA and more DPO loss types on Apple Silicon.
  • Batched MLX generation now streams and samples each chat independently.
  • More multimodal models can be fine-tuned using text-only datasets.

Studio + API

  • RAG and document uploads are faster, show clearer progress and no longer appear stuck.
  • Studio menus, Find and Settings now open more smoothly.
  • GPT-6 Astra is available for Codex logins with Low through Max reasoning controls.
  • Improved OpenAI-compatible API streaming, audio input and model loading.
  • AppImage builds are more reliable with a pinned release toolchain.

Installs + Docker

  • PyTorch 2.11 is now the default across supported installers.
  • New NVIDIA Docker images for training and Studio, from Turing to Blackwell.
  • Native AMD64 and ARM64 images are available from Docker Hub.
  • The Unsloth Python package is now 44% smaller.

Docker: https://hub.docker.com/r/unsloth/unsloth

Download Unsloth Desktop

Unsloth Desktop is free and open source. Download it for:

  • Windows
  • macOS
  • Linux

🦥 Download Unsloth Desktop

What's Changed

  • Publish only the wheel to PyPI, not the sdist by @danielhanchen in #10202
  • Bump install.sh / install.ps1 pin to unsloth>=2026.9.2 by @danielhanchen in #10203
  • Add DeepSeek Harness to unsloth start by @NilayYadav in #10097
  • Studio: stop generating when the client goes away by @NilayYadav in #10096
  • Studio: keep what you typed with an image when a chat is shortened by @NilayYadav in #10165
  • Order the Ollama stop-token scan instead of leaving it to a set by @vineethsaivs in #10101
  • Studio: replay a web_search result the way the client sent it by @Lyxot in #10131
  • Studio: say when a chat is too long instead of showing a raw error by @NilayYadav in #10090
  • Restore the comment tails the trim cut off by @danielhanchen in #10205
  • Studio: accept subtitle, caption and the rest of the common attachment formats by @shimmyshimmer in #9738
  • Studio: count only this adapter's engines in the Windows AMD GPU utilization by @LeoBorcherding in #9317
  • Fix diffusion offload host RAM retention by @wasimysaid in #10184
  • Let audio models load into CPU RAM instead of the GPU by @shimmyshimmer in #10054
  • Stop the zoo digest pin living in two places by @danielhanchen in #10206
  • Format test_video_backend.py the way the pinned ruff wants by @danielhanchen in #10235
  • Security audit: re-approve the four torch findings that 2.14.0 opened by @danielhanchen in #10233
  • unsloth_cli tests: stop the mklink kwargs assertion breaking on an unrelated keyword by @danielhanchen in #10231
  • Pin the multi-turn determinism probe to a backend that can be deterministic by @danielhanchen in #10234
  • CI: stop grep -c || echo 0 producing a two-line count by @danielhanchen in #10232
  • Security audit: re-approve the huggingface-hub backoff loop for 1.30.0 by @danielhanchen in #10244
  • Stop the stall-window comparison being decided by one noisy sample by @danielhanchen in #10246
  • Studio: report a cut off /v1/responses turn as incomplete by @NilayYadav in #10225
  • Studio: keep a still-advancing llama.cpp prefill from timing out by @oobabooga in #10172
  • Studio: bring the Llasa top_p default inside the range the API accepts by @danielhanchen in #9194
  • CLI: pass --hf-token to the export checkpoint load by @NilayYadav in #10218
  • Pin AppImage plugin to a versioned release by @wasimysaid in #10201
  • Studio: thread hf_token through load_and_format_dataset by @KrishPatel1905 in #8924
  • Studio: stop the update banners floating off the corner by @oobabooga in #10229
  • fix(studio): stop handing a wildcard bind's public IP to LAN peers by @amanyagami in #9912
  • Studio: report free memory on Mac as what is actually free by @NilayYadav in #10224
  • Studio: match the update banner tests on classes, not on file substrings by @danielhanchen in #10267
  • Studio: size a Deep Research run to the model it actually runs on by @NilayYadav in #10220
  • Studio: fall back when a page declares a charset we do not know by @NilayYadav in #10221
  • Studio: pin which rejection site the confirm-stream tests assert by @danielhanchen in #10284
  • Studio: turn the generation prompt off on the final answer continuation by @NilayYadav in #10219
  • Studio: let the API load settings panel forget an entry by @NilayYadav in #10160
  • Windows torch release preservation and a torch 2.11 default across installers by @danielhanchen in #7256
  • Add cu128/cu126/cu130 torch 2.11.0 extras (torch2110) with xformers 0.0.35 by @danielhanchen in #6955
  • Studio: assert the write ordering, not what the write resolves to by @danielhanchen in #10289
  • Kaggle: fix the nightly, which has never once got as far as Kaggle by @danielhanchen in #10270
  • Keep probing for a usable nvidia-smi before falling back to ROCm on Windows by @danielhanchen in #4958
  • Trim comments in studio/frontend chat, model picker and media features by @danielhanchen in #10114
  • Add a dispatch-only Docker Hub credential probe by @danielhanchen in #10291
  • Fix Studio find-in-page correctness and typing by @wasimysaid in #10209
  • Studio: stop exports timing out while they are still working by @NilayYadav in #10258
  • Stop unsloth chat from reloading a model the server already has by @NilayYadav in #10257
  • Studio: stop hiding every model pulled with ollama pull by @NilayYadav in #10222
  • Anchor studio source slices on declarations, not on comment text by @danielhanchen in #10297
  • Studio: fix Restore settings breaking preset saving by @NilayYadav in #10256
  • Lazy-load Studio entry surfaces by @wasimysaid in #10236
  • Restore persisted Studio resource monitor by @wasimysaid in #10237
  • fix(frontend): render data-URI images in chat markdown by @CelesteHeartsong in #10269
  • Fix Hub GGUF fit estimates for companion files by @Imagineer99 in #10249
  • Pin the auth mount gate to its behaviour, not one spelling of the guard by @danielhanchen in #10307
  • Trim comments in tests, scripts, CI helpers and unsloth_cli by @danielhanchen in #10113
  • Add Unsloth Docker images (base + Studio) for any NVIDIA GPU host, Ampere through Blackwell by @danielhanchen in #5748
  • Restore the facts the frontend comment trim reworded away by @danielhanchen in #10292
  • Install the cublas wheel NVIDIA actually publishes for the bundle's CUDA major by @danielhanchen in #10324
  • Studio: fix whisper prebuilt pairing on linux-arm64 with a GPU llama runtime by @danielhanchen in #10278
  • Docker publish: verify the merged manifest against the arches' children by @danielhanchen in #10333
  • Docker: describe the shipped images on Docker Hub and in the README by @danielhanchen in #10334
  • Stop asserting the titlebar navigation padding from source by @danielhanchen in #10326
  • Restore facts the comment trim cut from the unsloth package by @danielhanchen in #10328
  • Restore facts the comment trim cut from the Studio backend by @danielhanchen in #10329
  • Restore facts the comment trim cut from the studiobench harness by @danielhanchen in #10331
  • fix(studio): align desktop titlebar buttons by @mahiatlinux in #10321
  • Docker publish: sync the Hub page with DOCKER_API_KEY on the namespace route by @danielhanchen in #10343
  • Revert "Studio: keep a Downloads entry when the list is empty" by @Etherll in #10298
  • Make the credential probe actually delete its throwaway tag by @danielhanchen in #10294
  • Docker: print the Studio admin password in docker logs, add UNSLOTH_STUDIO_PASSWORD by @danielhanchen in #10344
  • Docker: retry the deadsnakes PPA add so a Launchpad 504 does not fail the build by @danielhanchen in #10363
  • Docker publish: keep the tag list to core, latest, studio, releases and dated nightly pins by @danielhanchen in #10364
  • Studio: take GGML_CUDA_ENABLE_UNIFIED_MEMORY only when the weights outgrow the APU carve-out by @danielhanchen in #10351
  • Studio: prefer the self-contained MTP head so llama-server's --fit can measure it by @danielhanchen in #10342
  • Studio: measure the real size of attached documents instead of guessing by @NilayYadav in #10318
  • Bump the npm-frontend-security group across 1 directory with 5 updates by @dependabot[bot] in #10194
  • Chat: keep the payload when a provider streams arguments as a decoded object by @lonexreb in #10275
  • deps: bump setuptools build pins and raise the ip-address override to 10.3.1 by @danielhanchen in #10138
  • studio: stop find in page matching part way through a grapheme by @danielhanchen in #10200
  • Studio: unsloth chat loads the model you picked, not another GGUF in the same folder by @NilayYadav in #10357
  • Studio: keep the overlay rail honest about what it reserves by @danielhanchen in #10372
  • Kaggle T4: fail a batched row that generates nothing while its single does not by @danielhanchen in #10367
  • Docker: one command sets up the NVIDIA Container Toolkit on the host by @danielhanchen in #10366
  • Kaggle T4: describe the batched-generation expectation as a precision property, not a pending fix by @danielhanchen in #10377
  • Studio: keep an API key from borrowing the operator's Hugging Face token (#10126) by @harshaygadekar in #10142
  • Use hybrid uv cache migration for Studio installs by @wasimysaid in #10204
  • feat(chat): render on-disk sandbox images in chat markdown by @CelesteHeartsong in #10361
  • Point unsloth start openclaw memory search at the Unsloth embeddings API by @NilayYadav in #10320
  • Studio: serve /v1/embeddings from the configured embedding model when the loaded GGUF cannot by @NilayYadav in #10315
  • Studio: stop converting the model twice when exporting GGUF to the Hub by @NilayYadav in #10317
  • Studio: return an error when tools are sent to a model that cannot use them by @NilayYadav in #10314
  • Local Agent Guides CI: judge a finished turn the CLI would not exit from by @danielhanchen in #10399
  • Docker toolkit installer: stop pipefail turning a grep match into a miss by @danielhanchen in #10402
  • Fix composer send and stop icon centering across display scales by @shimmyshimmer in #10407
  • Give push_to_ollama the arguments create_ollama_modelfile takes by @vineethsaivs in #10304
  • Kaggle CI: dispatch the kernel and collect it later, instead of holding a runner by @danielhanchen in #10183
  • Studio: make the chat and sidebar menus open without freezing the page by @NilayYadav in #10262
  • Studio: unbreak the frontend suite and the icon alignment check by @danielhanchen in #10413
  • Studio smoke: report a transport failure instead of crashing on one by @danielhanchen in #10420
  • Give unsloth studio update the same uv cache the backend already uses by @danielhanchen in #10386
  • Studio installer: torch 2.11 on Linux CPU, Vulkan for AMD without ROCm, gfx1033 gate, and three install fixes by @danielhanchen in #8412
  • Studio: four load and update messages that told the user the wrong thing by @danielhanchen in #10383
  • Studio: keep the llama-server prompt cache on a shared-memory GPU by @danielhanchen in #10382
  • Studio: retry as one sequence when llama.cpp refuses a unified KV cache by @danielhanchen in #10371
  • Publish Docker on the daily schedule, and move layer cache off the Actions quota by @danielhanchen in #10429
  • Studio: report a throughput the engine could have produced by @danielhanchen in #10384
  • Stop shipping the frontend source tree and desktop crate in the wheel by @danielhanchen in #10426
  • Studio: optimize video galleries by removing per-card media pipelines by @oobabooga in #10228
  • Studio: do not crash a model load when shutdown tears the server down under it by @danielhanchen in #10369
  • Studio: route AMD integrated GPUs to the Vulkan llama.cpp prebuilt by @danielhanchen in #10381
  • Studio: give a local GGUF one variant identity, so an API load applies its saved settings by @Lyxot in #10238
  • Studio: reuse MLX vision-language prompt prefixes between turns by @Lyxot in #10239
  • Studio: share one Hub model_info read across the model-config probes by @Lyxot in #10230
  • Keep the LoRA GGUF and compressed-tensors converters off the operator's Hugging Face token by @Souravrajvi0 in #10263
  • Studio: load the speech model an audio API request asks for by @NilayYadav in #10217
  • Studio: stop rejecting provider API keys longer than 190 bytes by @Lyxot in #10421
  • Studio: dial the bound address for in-process API calls, not a loopback literal by @Lyxot in #10140
  • Studio: admit a bearer that carries no token under keyless API access by @Lyxot in #10423
  • Studio: convert pasted images when tools are turned on by @NilayYadav in #10094
  • Fix GGUF catalog snapshot selection by @Imagineer99 in #10210
  • Studio: accept the standard input_audio message part by @NilayYadav in #10255
  • Studio: use the eval dataset for TTS and codec audio training by @NilayYadav in #10259
  • studio: use the hermes and deepseek logos in the agents picker by @mahiatlinux in #10266
  • Studio: use every thinking level a local model offers by @NilayYadav in #10458
  • Bind the amp helpers on the MLX runtime too by @vineethsaivs in #9447
  • OpenAI stream: gate UI control frames behind X-Unsloth-Events opt-in by @denys-bushuliak in #10362
  • Clean up Hub runtime/config coupling by @Sneakr in #9886
  • Stop unsloth start codex and openclaw from inheriting provider API keys by @NilayYadav in #10316
  • Studio: add GPT-6 Astra to the fallback catalog and reasoning controls by @shimmyshimmer in #10475
  • Studio: let Deep Research write longer reports on saved connections by @NilayYadav in #10254
  • Fix the red Cross-platform parity run: decode PowerShell stdout as UTF-8 by @danielhanchen in #10476
  • Studio: name the llama.cpp backend in the install log, and stop labelling Windows ROCm torch as CPU by @danielhanchen in #10370
  • notebook_validator: read shell the way bash does, and state the torch/torchcodec contract by @danielhanchen in #10414
  • Docker Studio: build the labextension with @jupyter/builder so it never reaches for GitHub by @danielhanchen in #10483
  • Drop late inference responses after their request is released by @ianderse in #10388
  • Studio: stop re-fetching every llama.cpp release from the GitHub API by @NilayYadav in #10461
  • Do not self-heal MLX into a --no-torch install by @shimmyshimmer in #10409
  • Pin tokenizers with transformers so Apple Silicon keeps Train and Export by @danielhanchen in #10431
  • Make the venv-hardening decode strict, and say which codepoints differed by @danielhanchen in #10432
  • Stop unsloth train from ignoring config keys it does not know by @NilayYadav in #10452
  • Apply the load settings unsloth start dsh is given by @NilayYadav in #10451
  • Studio: keep an Ollama Modelfile SYSTEM prompt in force when the date line is on by @HughScott2002 in #10463
  • Studio: fix sending an image with no caption on Anthropic by @NilayYadav in #10455
  • Studio: keep the uploaded eval dataset for Whisper and audio VLM runs too by @danielhanchen in #10482
  • torchcodec: cover torch 2.11 in the compatibility guard and pin per torch minor by @danielhanchen in #7474
  • fix(tokenizer): enable add_bos_token for Gemma 4 base models by @Souravrajvi0 in #10312
  • Studio: make the Min P and Repetition Penalty sliders work by @NilayYadav in #10456
  • Studio: show mlx-community models as MLX in the model picker by @NilayYadav in #10457
  • Recognise Windows code integrity blocks, and require the runtime we ship by @danielhanchen in #10404
  • Assert the release publishing path uploads the wheel only by @danielhanchen in #10419
  • Studio: harden the codec-audio eval config added in #10259 by @danielhanchen in #10477
  • Scan release bundles for potentially unwanted applications too by @danielhanchen in #10478
  • Refactor setup.sh into modular functions and restructure main execution flow by @xerrni in #5408
  • fix: private dataset splits/metadata not loading in Studio UI by @Shivamjohri247 in #4965
  • Feat: add unsloth skill, fix cli by @TimPietrusky in #4443
  • bump trl version by @danielhanchen in #4248
  • Add persistent wiki-RAG pipeline with vendored Graphify, lint-driven enrichment, and debug/maintenance APIs by @zohairshafi in #5103
  • Fix Windows setup access-denied on existing llama-server ACLs by @aiSynergy37 in #4881
  • [WIP] Apple Silicon (MPS/Metal) Support by @danielhanchen in #4259
  • docs: improve documentation on exporting models from Colab by @danielhanchen in #4247
  • Add Qwen3-Omni Support with Optimized MTP Fine-Tuning by @danielhanchen in #4235
  • Studio: allow DoRA training on Apple Silicon by @Lyxot in #7508
  • Studio: ask for a password on a raw -H 0.0.0.0 bind too by @danielhanchen in #10485
  • fix(studio): refresh profile stats and mode-aware activity summary by @Souravrajvi0 in #9402
  • Studio: keep queued prompts when generation is stopped by @claxman in #10445
  • Fix the red parity gate: run_pwsh has to set the writing end of the pipe too by @danielhanchen in #10484
  • Studio: say when a file cannot be read instead of ignoring it by @NilayYadav in #10261
  • Studio: recover saved context when switching back to a snapshot path by @claxman in #10447
  • Studio: install the supported MLX stack on fresh macOS installs by @shimmyshimmer in #10403
  • Cache janitor: sweep every two hours, drop dead buildkit blobs on sight, keep one CodeQL overlay base by @danielhanchen in #10488
  • Studio: stop installing flash-linear-attention and tilelang, unsloth_zoo vendors the GDN kernels by @danielhanchen in #10487
  • Docker Hub README: xformers is amd64 only, GB10 runs through PTX, canonical docs link by @danielhanchen in #10492
  • Docker Studio: keep the base image's CUDA llama.cpp instead of the CPU prebuilt by @danielhanchen in #10495
  • Make the formatter refuse a ruff it is not pinned to, and re-format the four files that drifted by @danielhanchen in #10512
  • Tests: let the xFormers pin guards hold on both main and pip by @danielhanchen in #10514
  • Studio: fix document upload stalls, races and text decoding by @shimmyshimmer in #10496

New Contributors

Full Changelog: v0.1.806-beta...v0.1.807-beta

Don't miss a new unsloth release

NewReleases is sending notifications on new releases.