Skip to content

Introducing AMD support

Latest

Choose a tag to compare

@Etherll Etherll released this 20 Jul 14:06

Hey everyone! This release brings local LLM training and inference to AMD GPUs across Windows, WSL and Linux. Read our AMD Blog + Guide

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.

AMD in Unsloth

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 and explore our expanded NVFP4 collection, 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:

curl -fsSL https://unsloth.ai/install.sh | sh

Windows:

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 #7155
  • fix(dataprep): smart_chunk_text single-chunk path leaks internal tensor type when eos_token_id is None by @chuenchen309 in #7151
  • Fix Settings layout overflow by @shimmyshimmer in #7167
  • Keep nested dropdown menus on screen by @shimmyshimmer in #7168
  • Fix DeepSeek reasoning test shim by @shimmyshimmer in #7169
  • Harden desktop release token permissions by @wasimysaid in #7172
  • Studio: clickable sidebar settings cog, long name truncation, Canvas menu opt-in by @shimmyshimmer in #7171
  • CI: opt tool-calling smoke tests out of the chat tool approval gate by @danielhanchen in #7162
  • Fix Inkling reasoning-effort coercion for duck-typed engine stand-ins by @danielhanchen in #7158
  • fix config cards clipping content at narrow window widths by @NilayYadav in #7146
  • Studio: use one shared Hugging Face token across Settings and training by @NilayYadav in #7152
  • Studio: don't drop parallel tool calls after an internal no-op by @oobabooga in #7157
  • Studio: extract text from PDF web results by @oobabooga in #7154
  • don't kill live llama-servers when a new Studio instance starts by @NilayYadav in #7182
  • fix(save): unsloth_push_to_hub_gguf(save_method="lora") raises NameError by @chuenchen309 in #7193
  • Feat/model picker per model config by @Sneakr in #6647
  • fix(studio): recover stalled Hub downloads over HTTP by @rodboev in #6858
  • fix(mlx): relax Metal context-store timeout by default by @Lyxot in #7141
  • Studio: don't re-download updated GGUFs on load by @oobabooga in #7209
  • Fix Studio reasoning channel rendering by @Lyxot in #7121
  • Fix Studio safetensors tool reprompt reasoning leakage by @Lyxot in #7134
  • Studio: don't apply nest_asyncio on plain CLI starts (breaks asyncio on Python 3.14+) by @NilayYadav in #7186
  • Propagate fp8 block_size before the early return in get_lora_parameters_bias by @vineethsaivs in #7189
  • feat(studio): expose an opt-in MCP control plane by @RitwijParmar in #7191
  • fix(tokenizer): check for tokenizer.model after saving it, not before by @chuenchen309 in #7194
  • Stabilize Studio regression tests by @shimmyshimmer in #7192
  • fix(dataprep): skip .jsonl lines that are valid JSON but not objects by @chuenchen309 in #7195
  • fix(studio): equal padding in the dataset source segmented control by @shimmyshimmer in #7230
  • fix canvas staying open after starting a New Chat by @NilayYadav in #7229
  • Allow API key for Ollama connections by @shimmyshimmer in #7173
  • Studio: keep the Bypass permissions pill label when composer pills collapse by @shimmyshimmer in #7231
  • fix(studio): honor MLX adapter state in compare mode by @Lyxot in #7196
  • Refresh the fastapi C2-loop scan baseline entry for the current release by @danielhanchen in #7223
  • Studio: enforce 60s minimum on idle auto-unload TTL (0 stays off) by @NilayYadav in #7185
  • Replace standalone Studio wording with Unsloth by @shimmyshimmer in #7221
  • Studio: hide the RAG embedder and llama.cpp probe from the hub cached inventory by @shimmyshimmer in #7018
  • fix(registry): don't register deepseek models at import time by @chuenchen309 in #7227
  • studio: show the active run's saved config in the Training Progress popover by @hakanbaysal in #7217
  • test(version-compat): keep GRPO fake-run logits finite on CPU by @danielhanchen in #7247
  • Studio: GPU memory configuration for GGUF models by @oobabooga in #6414
  • Give opencode real timeout headroom in Local Agent Guides CI by @danielhanchen in #7235
  • Installer: allow torch 2.11.x on the CUDA install path (fresh install + studio) by @danielhanchen in #6959
  • fix(chat_templates): bind loop_messages when default_system_message is None by @chuenchen309 in #7199
  • Installer: preserve the previous torch release across every flavor and vendor on re-runs by @danielhanchen in #7250
  • Studio: fix stale GGUF load-marker ordering test after llama_extra_args relocation by @danielhanchen in #7252
  • Route OpenCode yolo aliases to native auto mode by @Imagineer99 in #7187
  • Pin the Hermes remote installer and harden consent by @Imagineer99 in #7179
  • Translate PWD for WSL-launched Windows agents by @Imagineer99 in #7111
  • persist llama.cpp KV cache across idle auto-unload (slot save/restore) by @NilayYadav in #7204
  • Fix text-only VLM CPT packing truncation by @alkinun in #7211
  • feat(studio): add UNSLOTH_LLAMA_CPP_BACKEND env var to force CPU fallback #7213 by @VectorCipher in #7228
  • Experimental: correct varlen sample packing for hybrid linear-attention models by @danielhanchen in #7249
  • install: let UNSLOTH_TORCH_INDEX_FAMILY / _URL override CUDA wheel detection by @danielhanchen in #6692
  • Studio: Data settings tab, uploaded files manager, quant pinning, and chat image preview fix by @shimmyshimmer in #7029
  • Studio: fix per-GPU VRAM reporting on Windows ROCm by @danielhanchen in #7238
  • Studio: do not show Run for embedding-only non-GGUF models in the Model Hub by @danielhanchen in #7245
  • Studio: make Stop and stall deadlines interrupt a wedged stream portably by @danielhanchen in #7236
  • Studio: clarify tool permission controls by @shimmyshimmer in #7181
  • Update README with latest features and Unsloth Start by @Imagineer99 in #7258
  • Studio: lock the last enabled GPU switch instead of silently ignoring it by @oobabooga in #7259
  • Fix unsloth start on Windows: agent install, PATH resolution, and local model selection by @danielhanchen in #7257
  • Fix On Device model picker startup ordering by @Imagineer99 in #6994
  • Studio: validate Hugging Face tokens before use by @oobabooga in #7261
  • Studio (Windows): keep prompt caching on full GPU offload by @danielhanchen in #7260

New Contributors

Full Changelog: v0.1.49-beta...v0.1.50-beta

What's Changed in Unsloth-Zoo