v0.1.49-beta
Breaking Changes📦 unslothView on GitHub →
⚠ 2 breaking✨ 44 features🐛 14 fixes🔧 20 symbols
Summary
Unsloth introduces extensive customization for its Studio, including new color palettes, custom fonts, and seven new display languages. Agents are now safer with enhanced tool-call permissions and workspace isolation, while Intel GPUs gain GPU-accelerated inference via Vulkan `llama.cpp` support.
⚠️ Breaking Changes
- Removed `AGENTS.md` / `CLAUDE.md` from install artifacts and tightened instruction-file cleanup. Users may need to manually re-add or manage these files if they were relying on them being present in the installation.
- Stopped silent full-sequence training: 'Train on completions' used a hardcoded template table and silently disabled masking on a miss. This change means DeepSeek and most LFM models trained on prompts too while the toggle said otherwise. Markers are now auto-detected from the tokenizer's chat template, and manual response-template markers that never matched their rendered templates have been fixed. This might affect training behavior if relying on the previous silent masking.
Migration Steps
- If relying on `AGENTS.md` or `CLAUDE.md` being present in install artifacts, manually re-add or manage these files.
- Users training models may need to review their training configurations due to changes in how markers are auto-detected from tokenizer chat templates and fixes to manual response-template markers.
✨ New Features
- Added three new color palettes (Standard, Classic, Minimal) for Studio appearance customization, each with light and dark schemes.
- Introduced custom accent, background, and foreground colors via an in-app color picker (hue/saturation, hex, eyedropper).
- Added custom UI, heading, chat, and code fonts with font import (woff2/woff/ttf/otf) and device/folder font detection.
- Added controls for font-size, contrast, pointer-cursor, reduced-motion, and font-smoothing.
- Restyled core controls (inputs, dropdowns, buttons) and settings search.
- Added seven new display languages: French, German, Spanish, Hindi, Arabic, Russian, and Korean.
- Made Auto-detect (from browser language) the default for display languages.
- Introduced a new Voice settings tab for dictation, dictionary, and read-aloud.
- Added a four-level tool-call permission selector for agents: Ask, Approve for me, Off, and Full access.
- Implemented agent workspace isolation.
- Added Vulkan `llama.cpp` support for GPU-accelerated inference on Intel GPUs.
- Introduced Inkling, a new 975B parameter (41B active) open model with up to a 1M context window, supporting text, images, and audio input.
- Added Dynamic NVFP4 support for various models including Qwen, Inkling, GLM-4.7 Flash, and Gemma.
- Enabled AMD users to opt into Vulkan with `UNSLOTH_FORCE_VULKAN=1`.
- Improved prebuilt resolution via the release-assets CDN to avoid GitHub API rate limits.
- Added eager attention and trainable FP8 grouped experts for DeepSeek-V4.
- Auto-detects markers from the tokenizer's chat template for training.
- Restored the process-global `torch.compile` config on torch 2.12 for gradient-checkpointing backward.
- Keeps native RoPE scaling when extending context, carrying `rope_theta` for linear scaling.
- Routes new architectures automatically, including `lfm2_moe` to transformers 5.3.0 and models by `CONFIG_MAPPING_NAMES`.
- Offers the latest transformers release for brand-new architectures.
- Fixed KV-cache-aware context buffer sizing for Inkling (TML) support with multi-GPU B200s.
- Added tool-call healing for Inkling's typed `<|content_invoke_tool_json|>` markers.
- Added a download-worker `HF_TOKEN` fallback for Inkling.
- Added numeric reasoning-effort mapping for Inkling.
- Fixed fast inference on compressed-tensors FP8 models.
- Restored dropped FP8 `weight_scale_inv` tensors on load.
- Guarded FP8 Triton launches with tensor device context.
- Implemented single-pass GGUF export for directly convertible outtypes in `save.py`.
- Added concise NVFP4 inference errors.
- Probed xformers support on `sm_120` instead of disabling it by version.
- Hardened OpenAI-compatible GGUF streaming.
- Queued local GGUF requests before `llama-server`.
- The `/v1/messages` endpoint now accepts thinking and null/unknown content blocks, fixing resumed Claude Code / Anthropic sessions.
- The 'No model loaded' 400 error now hints at Model auto-switch.
- Studio now auto-loads the last used local model, including GGUF variant.
- Rendered image content returned by MCP tools.
- Persistent stdio MCP sessions keep server state across tool calls.
- Added the `UNSLOTH_SKIP_AUTOSTART` installer flag.
- The installer now returns proper failure exit codes.
- Detects Windows Intel GPUs via the registry before WMI.
- Exposed Windows drive roots in the folder browser.
- Fixed Studio auto-titles for reasoning models.
- Fixed user-message overflow for long unb...
🐛 Bug Fixes
- Fixed the permanent GGUF 'update available' on no-symlink caches.
- Model state resyncs after a `llama.cpp` update unloads it.
- Stop now interrupts a `llama.cpp` generation stalled mid-stream.
- Honor the 'none' gradient-checkpointing option instead of silently forcing 'unsloth'.
- Force-terminated a stuck training stop after a grace period.
- Fixed Inkling (TML) support fixes for multi-GPU B200s.
- Fixed `SyntheticDataKit.chunk_data` emitting chunks over `max_tokens`.
- Guarded `smart_chunk_text` against `stride >= chunk_size`.
- Fixed `FastSentenceTransformer` Qwen embedding preprocessing.
- Switched recipes to a writable artifact path.
- Fixed the Windows installer torch index override.
- Installed a torchao Windows ROCm stub in the inference worker.
- Fixed Studio auto-titles for reasoning models.
- Fixed user-message overflow for long unb...