Transcript
Hey everyone! This release brings local LLM training and inference to AMD GPUs across Windows, WSL and Linux. [Read our AMD Blog + Guide](https://unsloth.ai/docs/basics/amd)
Starting today, our AMD collaboration, custom Triton kernels, and math algorithms enables you to train and run 500+ models across AMD's Radeon, Instinct, Ryzen and data center GPUs, up to 2× faster with 70% less VRAM and no accuracy loss. Optimized ROCm builds also support GGUF & Safetensors inference.
<img width="500" height="300" alt="AMD in Unsloth" src="https://github.com/user-attachments/assets/bb8bc525-9fb8-405d-98f5-6c9c07128085" />
## Train LLMs Locally on AMD
- Train, run RL, chat with and deploy models locally on AMD GPUs.
- More reliable AMD GPU detection and installation across Windows, WSL and Linux.
- Improved ROCm compatibility for AMD MI300X and MI325X GPUs.
- Remote access Unsloth via `unsloth studio --secure` through free HTTPS via Cloudflare
## Run Larger Models on Your Hardware
- Use automatic GPU placement or choose exactly which GPUs and model layers to use.
- Move MoE expert layers into system memory to help larger models fit.
- Split models across multiple GPUs or use Tensor Parallelism.
- Save hardware settings separately for each model and quant.
## Faster Chat Restarts and More Reliable Downloads
- Resume long chats without rebuilding the full conversation after an idle model frees its VRAM.
- Stalled Hugging Face XET downloads automatically retry over standard HTTP.
- Existing GGUF files are reused instead of being downloaded again whenever a model loads.
## Better Search, Tools and Agents
- Web search can now read PDF papers, manuals and other PDF results.
- Parallel tool calls, reasoning output and tool retries work more reliably.
- A new opt-in MCP endpoint lets compatible AI clients inspect models and training history, start or stop training, load checkpoints, validate recipes and export GGUFs.
- Enable it with `UNSLOTH_STUDIO_ENABLE_MCP=1` and set the required bearer token with `UNSLOTH_STUDIO_MCP_TOKEN`.
## Training and Export Fixes
- Text-only training with multimodal models no longer truncates long examples before packing.
- Fine-tuned Qwen3.5 and Qwen3.6 MTP models now export correctly to GGUF.
- Fixed a Windows permission error that could stop GGUF exports during the final write step.
## In Case You Missed It
Our previous Studio release added Dynamic NVFP4 models, deeper personalization, seven new display languages, safer agents and Vulkan GPU acceleration.
### Dynamic NVFP4
Unsloth Dynamic NVFP4 keeps accuracy-sensitive layers in FP8 or BF16 while running the rest in W4A4. On NVIDIA Blackwell GPUs, this enables up to 2.5x faster inference, while calibrated FP8 KV caches provide up to 2x longer context.
Read the [Dynamic NVFP4 guide](https://unsloth.ai/docs/basics/nvfp4) and explore our expanded [NVFP4 collection](https://huggingface.co/collections/unsloth/nvfp4), including Qwen3.6, Qwen3.5, Inkling, GLM-4.7 Flash and Gemma 4.
### Personalize Your Studio
Choose between Standard, Classic and Minimal color palettes, each with light and dark modes. You can also customize colors, import fonts and adjust font size, contrast, reduced motion and more.
Studio also includes a Voice settings tab for dictation, custom dictionary settings and read-aloud.
### New Languages
Unsloth Studio is now available in French, German, Spanish, Hindi, Arabic, Russian and Korean, alongside Chinese (Simplified), Japanese and Portuguese (Brazil). Browser-language auto-detection is now the default.
### Safer Agents
A four-level tool-call permission selector-**Ask**, **Approve for me**, **Off** and **Full access**-provides finer control over agents. Agent workspace isolation and safer installer checks also reduce the risk of unintended changes.
## Updating Unsloth
To update Unsloth or install a fresh Unsloth, use the commands below:
**macOS, Linux, WSL:**
```bash
curl -fsSL https://unsloth.ai/install.sh | sh
```
**Windows:**
```powershell
irm https://unsloth.ai/install.ps1 | iex
```
## What's Changed in Unsloth
* Bump install.sh / install.ps1 pin to unsloth>=2026.7.3 by @danielhanchen in https://github.com/unslothai/unsloth/pull/7155
* fix(dataprep): smart_chunk_text single-chunk path leaks internal tensor type when eos_token_id is None by @chuenchen309 in https://github.com/unslothai/unsloth/pull/7151
* Fix Settings layout overflow by @shimmyshimmer in https://github.com/unslothai/unsloth/pull/7167
* Keep nested dropdown menus on screen by @shimmyshimmer in https://github.com/unslothai/unsloth/pull/7168
* Fix DeepSeek reasoning test shim by @shimmyshimmer in https://github.com/unslothai/unsloth/pull/7169
* Harden desktop release token permissions by @wasimysaid in https://github.com/unslothai/unsloth/pull/7172
* Studio: clickable sidebar settings cog, long name truncation, Canvas menu opt-in by @shimmyshimmer in https://github.com/unslothai/unsloth/pull/7171
* CI: opt tool-calling smoke tests out of the chat tool approval gate by @danielhanchen in https://github.com/unslothai/unsloth/pull/7162
* Fix Inkling reasoning-effort coercion for duck-typed engine stand-ins by @danielhanchen in https://github.com/unslothai/unsloth/pull/7158
* fix config cards clipping content at narrow window widths by @NilayYadav in https://github.com/unslothai/unsloth/pull/7146
* Studio: use one shared Hugging Face token across Settings and training by @NilayYadav in https://github.com/unslothai/unsloth/pull/7152
* Studio: don't drop parallel tool calls after an internal no-op by @oobabooga in https://github.com/unslothai/unsloth/pull/7157
* Studio: extract text from PDF web results by @oobabooga in https://github.com/unslothai/unsloth/pull/7154
* don't kill live llama-servers when a new Studio instance starts by @NilayYadav in https://github.com/unslothai/unsloth/pull/7182
* fix(save): unsloth_push_to_hub_gguf(save_method="lora") raises NameError by @chuenchen309 in https://github.com/unslothai/unsloth/pull/7193
* Feat/model picker per model config by @Sneakr in https://github.com/unslothai/unsloth/pull/6647
* fix(studio): recover stalled Hub downloads over HTTP by @rodboev in https://github.com/unslothai/unsloth/pull/6858
* fix(mlx): relax Metal context-store timeout by default by @Lyxot in https://github.com/unslothai/unsloth/pull/7141
* Studio: don't re-download updated GGUFs on load by @oobabooga in https://github.com/unslothai/unsloth/pull/7209
* Fix Studio reasoning channel rendering by @Lyxot in https://github.com/unslothai/unsloth/pull/7121
* Fix Studio safetensors tool reprompt reasoning leakage by @Lyxot in https://github.com/unslothai/unsloth/pull/7134
* Studio: don't apply nest_asyncio on plain CLI starts (breaks asyncio on Python 3.14+) by @NilayYadav in https://github.com/unslothai/unsloth/pull/7186
* Propagate fp8 block_size before the early return in get_lora_parameters_bias by @vineethsaivs in https://github.com/unslothai/unsloth/pull/7189
* feat(studio): expose an opt-in MCP control plane by @RitwijParmar in https://github.com/unslothai/unsloth/pull/7191
* fix(tokenizer): check for tokenizer.model after saving it, not before by @chuenchen309 in https://github.com/unslothai/unsloth/pull/7194
* Stabilize Studio regression tests by @shimmyshimmer in https://github.com/unslothai/unsloth/pull/7192
* fix(dataprep): skip .jsonl lines that are valid JSON but not objects by @chuenchen309 in https://github.com/unslothai/unsloth/pull/7195
* fix(studio): equal padding in the dataset source segmented control by @shimmyshimmer in https://github.com/unslothai/unsloth/pull/7230
* fix canvas staying open after starting a New Chat by @NilayYadav in https://github.com/unslothai/unsloth/pull/7229
* Allow API key for Ollama connections by @shimmyshimmer in https://github.com/unslothai/unsloth/pull/7173
* Studio: keep the Bypass permissions pill label when composer pills collapse by @shimmyshimmer in https://github.com/unslothai/unsloth/pull/7231
* fix(studio): honor MLX adapter state in compare mode by @Lyxot in https://github.com/unslothai/unsloth/pull/7196
* Refresh the fastapi C2-loop scan baseline entry for the current release by @danielhanchen in https://github.com/unslothai/unsloth/pull/7223
* Studio: enforce 60s minimum on idle auto-unload TTL (0 stays off) by @NilayYadav in https://github.com/unslothai/unsloth/pull/7185
* Replace standalone Studio wording with Unsloth by @shimmyshimmer in https://github.com/unslothai/unsloth/pull/7221
* Studio: hide the RAG embedder and llama.cpp probe from the hub cached inventory by @shimmyshimmer in https://github.com/unslothai/unsloth/pull/7018
* fix(registry): don't register deepseek models at import time by @chuenchen309 in https://github.com/unslothai/unsloth/pull/7227
* studio: show the active run's saved config in the Training Progress popover by @hakanbaysal in https://github.com/unslothai/unsloth/pull/7217
* test(version-compat): keep GRPO fake-run logits finite on CPU by @danielhanchen in https://github.com/unslothai/unsloth/pull/7247
* Studio: GPU memory configuration for GGUF models by @oobabooga in https://github.com/unslothai/unsloth/pull/6414
* Give opencode real timeout headroom in Local Agent Guides CI by @danielhanchen in https://github.com/unslothai/unsloth/pull/7235
* Installer: allow torch 2.11.x on the CUDA install path (fresh install + studio) by @danielhanchen in https://github.com/unslothai/unsloth/pull/6959
* fix(chat_templates): bind loop_messages when default_system_message is None by @chuenchen309 in https://github.com/unslothai/unsloth/pull/7199
* Installer: preserve the previous torch release across every flavor and vendor on re-runs by @danielhanchen in https://github.com/unslothai/unsloth/pull/7250
* Studio: fix stale GGUF load-marker ordering test after llama_extra_args relocation by @danielhanchen in https://github.com/unslothai/unsloth/pull/7252
* Route OpenCode yolo aliases to native auto mode by @Imagineer99 in https://github.com/unslothai/unsloth/pull/7187
* Pin the Hermes remote installer and harden consent by @Imagineer99 in https://github.com/unslothai/unsloth/pull/7179
* Translate PWD for WSL-launched Windows agents by @Imagineer99 in https://github.com/unslothai/unsloth/pull/7111
* persist llama.cpp KV cache across idle auto-unload (slot save/restore) by @NilayYadav in https://github.com/unslothai/unsloth/pull/7204
* Fix text-only VLM CPT packing truncation by @alkinun in https://github.com/unslothai/unsloth/pull/7211
* feat(studio): add UNSLOTH_LLAMA_CPP_BACKEND env var to force CPU fallback #7213 by @VectorCipher in https://github.com/unslothai/unsloth/pull/7228
* Experimental: correct varlen sample packing for hybrid linear-attention models by @danielhanchen in https://github.com/unslothai/unsloth/pull/7249
* install: let UNSLOTH_TORCH_INDEX_FAMILY / _URL override CUDA wheel detection by @danielhanchen in https://github.com/unslothai/unsloth/pull/6692
* Studio: Data settings tab, uploaded files manager, quant pinning, and chat image preview fix by @shimmyshimmer in https://github.com/unslothai/unsloth/pull/7029
* Studio: fix per-GPU VRAM reporting on Windows ROCm by @danielhanchen in https://github.com/unslothai/unsloth/pull/7238
* Studio: do not show Run for embedding-only non-GGUF models in the Model Hub by @danielhanchen in https://github.com/unslothai/unsloth/pull/7245
* Studio: make Stop and stall deadlines interrupt a wedged stream portably by @danielhanchen in https://github.com/unslothai/unsloth/pull/7236
* Studio: clarify tool permission controls by @shimmyshimmer in https://github.com/unslothai/unsloth/pull/7181
* Update README with latest features and Unsloth Start by @Imagineer99 in https://github.com/unslothai/unsloth/pull/7258
* Studio: lock the last enabled GPU switch instead of silently ignoring it by @oobabooga in https://github.com/unslothai/unsloth/pull/7259
* Fix `unsloth start` on Windows: agent install, PATH resolution, and local model selection by @danielhanchen in https://github.com/unslothai/unsloth/pull/7257
* Fix On Device model picker startup ordering by @Imagineer99 in https://github.com/unslothai/unsloth/pull/6994
* Studio: validate Hugging Face tokens before use by @oobabooga in https://github.com/unslothai/unsloth/pull/7261
* Studio (Windows): keep prompt caching on full GPU offload by @danielhanchen in https://github.com/unslothai/unsloth/pull/7260
## New Contributors
* @chuenchen309 made their first contribution in https://github.com/unslothai/unsloth/pull/7151
* @VectorCipher made their first contribution in https://github.com/unslothai/unsloth/pull/7228
**Full Changelog**: https://github.com/unslothai/unsloth/compare/v0.1.49-beta...v0.1.50-beta
## What's Changed in Unsloth-Zoo
* mlx: fixes for bnb dequant, report_to, early stopping, and NEFTune by @oobabooga in https://github.com/unslothai/unsloth-zoo/pull/851
* MLX: clear error when mlx-lm/mlx-vlm is too old for a QK-norm arch (gemma4/qwen3_5) by @danielhanchen in https://github.com/unslothai/unsloth-zoo/pull/845
* MLX: fix gemma-4-e2b (gemma4) audio-tower conv double transpose on load by @danielhanchen in https://github.com/unslothai/unsloth-zoo/pull/879
* Add Mixtral MoE experts patch for Split LoRA (fix 4bit QLoRA forward crash) by @danielhanchen in https://github.com/unslothai/unsloth-zoo/pull/881
* Forward declared tools to the DiffusionGemma visual server by @oobabooga in https://github.com/unslothai/unsloth-zoo/pull/864
* Add mixtral_moe to temporary_patches import test list by @danielhanchen in https://github.com/unslothai/unsloth-zoo/pull/884
* feat(mlx): add DDP training support by @Lyxot in https://github.com/unslothai/unsloth-zoo/pull/841
* feat(mlx): support distributed inference loading by @Lyxot in https://github.com/unslothai/unsloth-zoo/pull/854
* fix(mlx): preserve inference norm dtypes by @Lyxot in https://github.com/unslothai/unsloth-zoo/pull/844
* fix(mlx): normalize legacy tokenizer sidecars for VLM loads by @Lyxot in https://github.com/unslothai/unsloth-zoo/pull/846
* fix(mlx): support text label parity datasets by @Lyxot in https://github.com/unslothai/unsloth-zoo/pull/793
* MLX: fix gated-delta (Qwen3.5) training and add fused backward kernels by @Lyxot in https://github.com/unslothai/unsloth-zoo/pull/754
* (GRPO) Fix SAPO on version TRL > 0.27.2 and add Luspo from TRL >= 0.28.0 by @marcandrelarochelle in https://github.com/unslothai/unsloth-zoo/pull/869
* (GRPO) Add importance sampling modes (TRL >= 0.26.0), Switch to vllm_importance_sampling_clip (support for TRL >= 1.6.0) and Fix VESPO not using the importance sampling ratio by @marcandrelarochelle in https://github.com/unslothai/unsloth-zoo/pull/870
* saving: fold per-expert gpt-oss 4bit expert LoRA into merged_16bit by @danielhanchen in https://github.com/unslothai/unsloth-zoo/pull/885
* Fix gpt_oss mask factory signature introspection on transformers 5.x by @danielhanchen in https://github.com/unslothai/unsloth-zoo/pull/880
* Fix CPU test drift on transformers 5.5.0 and the MLX bitsandbytes stub by @danielhanchen in https://github.com/unslothai/unsloth-zoo/pull/886
* Guard MLX distributed eval against zero-token batches by @danielhanchen in https://github.com/unslothai/unsloth-zoo/pull/888
* Fix chat template marker auto-detection for Zephyr's context-dependent tokenization by @danielhanchen in https://github.com/unslothai/unsloth-zoo/pull/899
* Persist torch.compile artifacts across processes with Mega-cache by @danielhanchen in https://github.com/unslothai/unsloth-zoo/pull/901
* Fix ModuleNotFoundError crash in fla_vendor's is_flash_linear_attention_available probe by @amareshhebbar in https://github.com/unslothai/unsloth-zoo/pull/897
* Fix false DownloadStallError for non-standard sharded weight filenames by @olsh in https://github.com/unslothai/unsloth-zoo/pull/900
* Fix false DownloadStallError for diffusers components with non-standard sharded weight filenames by @danielhanchen in https://github.com/unslothai/unsloth-zoo/pull/902
* tokenizer_utils: match IGNORED_TOKENIZER_NAMES case-insensitively in fix_untrained_tokens by @oobabooga in https://github.com/unslothai/unsloth-zoo/pull/823
* Fix GGUF export crash for fine-tuned MTP models (Qwen3.5) by @oobabooga in https://github.com/unslothai/unsloth-zoo/pull/904
* fix: ROCm compatibility — guard SM-arch paths, FlashInfer, and mem_get_info by @zhihuidu-amd in https://github.com/unslothai/unsloth-zoo/pull/910
* Fix Windows GGUF export PermissionError [Errno 13]: anchor converter --outfile to input_folder by @LeoBorcherding in https://github.com/unslothai/unsloth-zoo/pull/907
* Fix silent expert-weight transposition in MoE preprocess_weight by @BardiaKoopah in https://github.com/unslothai/unsloth-zoo/pull/913
* Replace standalone Studio wording with Unsloth by @shimmyshimmer in https://github.com/unslothai/unsloth-zoo/pull/914
* Fix Gemma 4 audio training crash by @BardiaKoopah in https://github.com/unslothai/unsloth-zoo/pull/917
* Fix Gemma 4 MLX GGUF tensor namespace restoration by @Lyxot in https://github.com/unslothai/unsloth-zoo/pull/905