Commit graph

4,547 commits

Author SHA1 Message Date
Daniel Han
3e8f085474 Limit rocm711-torch291 to Linux 2026-03-13 01:40:56 -07:00
sstamenk
a54a913431 Add more ROCm/PyTorch combinations
(cherry picked from commit d02aa7f9c3)
2026-03-13 01:40:56 -07:00
sstamenk
c752c8107a Add more ROCm/PyTorch versions
(cherry picked from commit ed6877fadd)
2026-03-13 01:40:56 -07:00
Daniel Han
51bf500f57
Remove Blackwell flex attention disable workaround from studio (#4273)
The studio was disabling flex attention entirely on Blackwell+ GPUs
(sm_120 and above) by setting UNSLOTH_ENABLE_FLEX_ATTENTION=0 at
startup. This was a workaround for the flex_attention backward kernel
exceeding shared memory limits on these GPUs.

The root cause is now fixed in unsloth-zoo (PR #542) which patches the
backward kernel config selection to generate safe fallback configs that
fit within the GPU's shared memory limit. With that fix, flex attention
works correctly on Blackwell GPUs and provides a ~1.3x speedup over
the SDPA fallback.
2026-03-13 01:35:17 -07:00
Daniel Han
37b8d5e440
remove duplicate import (#4271)
(cherry picked from commit d1f4fb5d6a)

Co-authored-by: electron271 <66094410+electron271@users.noreply.github.com>
2026-03-13 00:26:38 -07:00
Daniel Han
d6e40df8fa
Fix llm_int8_skip_modules for VLM dynamic quants on transformers 5.x (#4249)
Fix `llm_int8_skip_modules` not being respected for VLMs with dynamic quantization on transformers 5.x.

Dynamic quant checkpoints (e.g. `gemma-3-4b-it-unsloth-bnb-4bit`) encode skip paths as `language_model.model.layers.*`, but the live module tree on 5.x surfaces them as `model.language_model.layers.*`. This prefix mismatch causes `should_convert_module` to miss the skip list, so 22 modules meant to stay in 16-bit get wrapped in `Linear4bit` without a `quant_state`, producing "Skipping ... no quant_state found" warnings.

Patches `should_convert_module` to expand both the module name and the skip patterns into all equivalent alias forms before matching. Guarded by `hasattr` so it is a no-op on transformers 4.x where the bug does not exist.

Closes #4208
2026-03-13 00:17:00 -07:00
Daniel Han
1ca441a3f3
[Feature] VLMs support for GRPO (#4265)
* Updated rl and rl_replacements

* Revert "Updated rl and rl_replacements"

This reverts commit 077fd5996daa73c9c58c9f213657f33f47f5d73b.

---------

Co-authored-by: Sinoué GAD <85933501+GAD-cell@users.noreply.github.com>
2026-03-12 16:09:02 -07:00
Daniel Han
74c1497f2f
[Feature] Support Sequence Classification (#4264)
* initial commit for sequence classification implementation

* Revert "initial commit for sequence classification implementation"

This reverts commit 0f3200cdf2dfb8446e5d69dcbe40d6f70bc520e7.

---------

Co-authored-by: Rabin Tiwari <84705625+rabintiwari45@users.noreply.github.com>
2026-03-12 16:08:49 -07:00
Daniel Han
96ff5c5f61
Update CODEOWNERS for studio and cli (#4266)
* Update CODEOWNERS for studio and cli

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2026-03-12 15:16:38 -07:00
Daniel Han
c26aa1a1e8 Restore non-studio files from main after history recovery 2026-03-12 21:48:45 +00:00
Daniel Han
6f0bca70f8 Merge remote-tracking branch 'studio/feature/merge-build-main' into history-recovery-candidate 2026-03-12 21:48:30 +00:00
Daniel Han
17ae3d3cba Revert "Studio (#4237)"
This reverts commit f08aef1804.
2026-03-12 21:48:23 +00:00
Roland Tannous
2b04c0da40 add build.sh 2026-03-12 20:52:42 +00:00
Roland Tannous
47654cb91c Final cleanup 2026-03-12 18:28:04 +00:00
Roland Tannous
3613166b6d Delete studio/frontend/README.md 2026-03-12 22:20:34 +04:00
Roland Tannous
8002913b7c Delete studio/frontend/AGENTS.md 2026-03-12 22:20:23 +04:00
Roland Tannous
a2baf80511 Update license headers 2026-03-12 17:23:10 +00:00
Roland Tannous
7de1c18c14 Update llm_assist.py 2026-03-12 21:06:04 +04:00
Roland Tannous
063cdc6072 Update llm_assist.py 2026-03-12 20:32:04 +04:00
Roland Tannous
5798a34606 Update run.py 2026-03-12 19:28:48 +04:00
Roland Tannous
9bb64fbd96 Update run.py 2026-03-12 18:53:19 +04:00
Roland Tannous
10bee32f3d Update run.py 2026-03-12 18:30:00 +04:00
Roland Tannous
20aeb2ef19 Update studio.py 2026-03-12 18:13:56 +04:00
Roland Tannous
7881fc253f Update install_python_stack.py 2026-03-12 18:06:37 +04:00
Roland Tannous
542a25977a Update run.py 2026-03-12 18:01:14 +04:00
Roland Tannous
f598e69f38 Update studio.py 2026-03-12 17:30:10 +04:00
Roland Tannous
874711912d Update studio.py 2026-03-12 17:28:08 +04:00
Roland Tannous
788b120114 Update setup.ps1 2026-03-12 17:11:20 +04:00
Roland Tannous
3cf27589a6 Remove AGENTS.md from frontend folder 2026-03-12 12:00:42 +00:00
Roland Tannous
a98164af50 Remove README.md from frontend folder 2026-03-12 11:59:56 +00:00
Daniel Han
36785caf80 Cache packed sequence metadata to reduce D2H syncs across layers (#4243)
* packing optimziation with cache to reduce D2H copy

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* cache per device to avoid race condition for multi-gpu

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* add cache freeing up func

---------

Co-authored-by: ruixiangw <ruixiangw@nvidia.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: ruixiang <wangruixiang07@outlook.com>
2026-03-12 03:37:49 -07:00
Daniel Han
f08aef1804 Studio (#4237)
* Rebuild Studio branch on top of main

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Fix security and code quality issues for Studio PR #4237

- Validate models_dir query param against allowed directory roots
  to prevent path traversal in /api/models/local endpoint
- Replace string startswith() with Path.is_relative_to() for
  frontend path traversal check in serve_frontend
- Sanitize SSE error messages to not leak exception details to
  clients (4 locations in inference.py)
- Bind port-discovery socket to 127.0.0.1 instead of all interfaces
  in llama_cpp backend
- Import datasets_root and resolve_output_dir in embedding training
  function to fix NameError and use managed output directory
- Remove stale .gitignore entries for package-lock.json and test
  directories so tests can be tracked in version control
- Add venv-reexecution logic to ui CLI command matching the studio
  command behavior

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Move models_dir path validation before try/except block

The HTTPException(403) was inside the try/except Exception handler,
so it would be caught and re-raised as a 500. Moving the validation
before the try block ensures the 403 is returned directly and also
makes the control flow clearer for static analysis (path is validated
before any filesystem operations).

* Use os.path.realpath + startswith for models_dir validation

CodeQL py/path-injection does not recognize Path.is_relative_to() as
a sanitizer. Switched to os.path.realpath + str.startswith which is
a recognized sanitizer pattern in CodeQL's taint analysis. The
startswith check uses root_str + os.sep to prevent prefix collisions
(e.g. /app/models_evil matching /app/models).

* Never pass user input to Path constructor in models_dir validation

CodeQL traces taint through Path(resolved) even after a startswith
barrier guard. Fix: the user-supplied models_dir is only used as a
string for comparison against allowed roots. The Path object passed
to _scan_models_dir comes from the trusted allowed_roots list, not
from user input. This fully breaks the taint chain.

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2026-03-12 03:36:19 -07:00
Roland Tannous
400b6ecede Update setup.ps1 2026-03-12 02:44:25 +04:00
Roland Tannous
220a7bb1ed Update setup.sh 2026-03-12 02:42:43 +04:00
Roland Tannous
11e74b2dc5 resolved conflicts 2026-03-11 20:58:25 +00:00
Roland Tannous
1087216cb5 Merge branch 'fix/pre-merge-cleanup' into feature/merge-build-final 2026-03-11 20:56:49 +00:00
Roland Tannous
6f77c63229 refactor: remove project_root passing, use self-resolved paths and ~/.unsloth/studio
- Workers now compute backend_path and venv_t5 locally via Path(__file__)
- Moved .venv_t5 to ~/.unsloth/studio/.venv_t5
- Added ensure_studio_directories() call on server startup
- Expanded CLI studio command into sub-app with setup subcommand
2026-03-11 20:32:18 +00:00
Manan17
fbccac8cee shifting setup & co inside studio 2026-03-11 20:19:52 +00:00
Shine1i
bbb4cd0f0b feat(studio): add auth-specific paths and integrate auth database location 2026-03-11 20:19:52 +00:00
Shine1i
7012b8396f fix(studio): update temporary directory path to use system temp dir 2026-03-11 20:19:52 +00:00
Shine1i
904e440513 feat(studio): studio storage roots path utilities 2026-03-11 20:19:52 +00:00
Roland Tannous
d6e4a0644f resolved format_conversion conflict 2026-03-11 19:53:53 +00:00
Roland Tannous
6926a8b091 fix: prefer tabular files over archives in Tier 1 dataset preview
Tier 1 check-format was picking images.zip over testmini.parquet,
causing wrong columns (image/label) and broken VLM mapping.
Also log first VLM conversion failure instead of swallowing silently.
2026-03-11 19:13:11 +00:00
Roland Tannous
a63196c93e updated on completion response markers for qwen3.5 2026-03-11 19:00:29 +00:00
Roland Tannous
e455b307be add fmpeg system support for linux and windows 2026-03-11 18:50:11 +00:00
Roland Tannous
adf919f47a Remove test_llama_cpp.ps1 2026-03-11 18:18:19 +00:00
Roland Tannous
a6aa9a0efa Remove test_llama_cpp.ps1 from tracking 2026-03-11 18:10:25 +00:00
Roland Tannous
859bfe23c4 Merge pull request #375 from unslothai/feature/llm-assist-detection
Feature/llm assist detection
2026-03-11 22:02:33 +04:00
Roland Tannous
b274e9e0c6 chore: merge nightly & update dataset preview dialog mapping text 2026-03-11 17:00:14 +00:00
Roland Tannous
0e3ac91e2a feat: target AI Assist mapping prompts for audio & embedding models 2026-03-11 16:55:43 +00:00