Commit graph

4,672 commits

Author SHA1 Message Date
Roland Tannous
0dbce96700 untrack package-lock.json and add to gitignore 2026-02-12 15:41:20 +00:00
Roland Tannous
dd71b0f18a return raw preview samples on format detection failure for manual column mapping 2026-02-12 15:39:56 +00:00
Roland Tannous
e0623cae6c Merge pull request #31 from unslothai/feature/datasets-endpoint-return-top-10
Optimize `/check-format` to return preview samples
2026-02-12 15:26:13 +04:00
Roland Tannous
4c791bd5aa feat(datasets): check-format to return preview samples 2026-02-12 11:25:47 +00:00
Daniel Han
08bb85fcda Create CODEOWNERS (#4039) 2026-02-12 02:56:13 -08:00
Shine1i
e145a72adb feat: add builders and components for LLM configuration in Recipe Studio and refactor for readability, preparing for draft 2026-02-12 04:25:15 +01:00
sshah229
ee703dd6c6 added router in main 2026-02-11 18:51:53 -07:00
sshah229
40bfe42974 added the pydantic models and routes for export 2026-02-11 18:34:12 -07:00
Shine1i
30cc509197 feat: implement Data Recipes page feature subfolders for workflow management and saving logic 2026-02-12 02:07:53 +01:00
Shine1i
390e9ed9d2 feat: add Recipe Studio utilities and components for configuring synthetic data pipelines 2026-02-12 01:03:47 +01:00
Shine1i
93f45ffd07 chore: rename Canvas Lab components and utilities 2026-02-12 00:39:08 +01:00
Shine1i
0ed6c141b0 feat: add interactive viewport controls and refactor floating button styles
- Introduced `ViewportControls` for zoom, fit view, and interactive toggle in canvas lab.
- Extracted and reused `CANVAS_FLOATING_ICON_BUTTON_CLASS` for consistent button styling.
- Updated API base paths and server proxy settings.
- Enabled dynamic interaction states for nodes and connections in canvas lab.
2026-02-12 00:18:56 +01:00
shine1i
e39d03c21e Merge remote-tracking branch 'origin/nightly' into feature/canvas-lab
# Conflicts:
#	.gitignore
#	studio/frontend/.gitignore
#	studio/frontend/bun.lock
#	studio/frontend/src/app/router.tsx
2026-02-11 22:36:34 +01:00
Roland Tannous
a8b8da96d1 Merge pull request #28 from unslothai/refactor/centralize-device-selection-and-gpu-cache
[MLX] - Centralize Device Selection & GPU Cache Management
2026-02-11 20:59:23 +04:00
Roland Tannous
da1cde971c use get_device() for device selection and clear_gpu_cache() for GPU memory cleanup in inference, trainer, and export 2026-02-11 16:56:52 +00:00
Roland Tannous
f7529d1503 Merge pull request #27 from unslothai/feature/implement-silicon-utils-compatibility
[MLX] Add Hardware Detection Module & Apple Silicon (MLX) Compatibility
2026-02-11 20:21:08 +04:00
Roland Tannous
1a6bfe51b6 added @needs_torch to test_cuda_oom 2026-02-11 16:12:37 +00:00
Roland Tannous
95038d6129 add @needs_mlx decorator on tests 2026-02-11 16:10:22 +00:00
Roland Tannous
63c583c54f replace torch MPS with MLX 2026-02-11 16:04:35 +00:00
Roland Tannous
7db31723b9 reset DEVICE type on fastapi lifespan exit 2026-02-11 15:58:13 +00:00
Roland Tannous
e7c3e7b48d fixed tests to be hardware specific 2026-02-11 15:40:00 +00:00
Roland Tannous
85fc481afe fixed tests to be hardware specific 2026-02-11 15:37:34 +00:00
Roland Tannous
59d5f24eb5 integrate global hardware detection at lifespan entrypoint 2026-02-11 15:34:26 +00:00
Roland Tannous
107bd2be4c feat: add Apple Silicon (MPS) compatibility to backend utils + tests 2026-02-11 14:00:39 +00:00
Wasim Yousef Said
eddb2d5405 Merge pull request #23 from unslothai/feature/auth-ui
auth setup for the client and auth guard checks
2026-02-11 05:05:07 -08:00
shine1i
8c85fef59f drop docs file 2026-02-11 14:03:45 +01:00
shine1i
77f8316546 feat: auth guard on routes 2026-02-11 14:01:30 +01:00
Roland Tannous
fde1fea5a9 Merge pull request #26 from unslothai/fix/fix-existing-routes-models
Fix: Move Inline Pydantic Models & Add Response Models for Routes
2026-02-11 16:42:25 +04:00
shine1i
cdf7ead71b feat: new auth and refresh token on unauthorized 2026-02-11 13:40:33 +01:00
Roland Tannous
7ee4381936 move inline pydantic models - fix existing models routes integration 2026-02-11 12:39:58 +00:00
Roland Tannous
1e51f0b791 Merge pull request #25 from unslothai/feature/remove-unsloth-compiled-cache-lifespan-exit
Remove `unsloth_compiled_cache` on FastAPI Lifespan Exit
2026-02-11 16:31:57 +04:00
Roland Tannous
28c7df5925 remove unsloth_compiled_cache folder on fastapi lifespan exit 2026-02-11 12:30:05 +00:00
shine1i
3d0b90a862 Merge remote-tracking branch 'origin/nightly' into feature/auth-ui 2026-02-11 13:29:11 +01:00
Roland Tannous
fd3e0e5f09 chore: untrack auth.db (already in .gitignore) 2026-02-11 12:21:54 +00:00
Roland Tannous
e66280119d Merge pull request #24 from unslothai/feature/refactor-authentication-mechanism
Feature/refactor authentication mechanism
2026-02-11 16:13:44 +04:00
Roland Tannous
01fcb4f713 authentication refactor - added setup token and token refresh mechanism 2026-02-11 12:09:47 +00:00
Lei Zhenyuan
cdc9dc1fb1 fix for tma (#4023) 2026-02-10 17:50:33 -08:00
shine1i
de0c142a1c ignore claude, test folder and docs for arch of canvas-lab 2026-02-10 17:39:41 +01:00
Datta Nimmaturi
6804c05130 Misc fixes (#4018)
* convert print to logger

* Print but cleaner

* Hide model on multiple devices

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

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

* fix typo

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

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

* Fix typo transfomers -> transformers, revert MoE message change

* Update MoE detection message to show num_experts and target_modules

* Fix llama-cli path in save info message

* target_parameters warning for moe

* fix should_convert_module for llm_int8_skip_modules

* fix should_convert_module for llm_int8_skip_modules

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

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

* Logging filters

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

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

* negation

* remove should_convert_module patch

* [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>
Co-authored-by: Daniel Hanchen <danielhanchen@users.noreply.github.com>
2026-02-10 06:31:34 -08:00
Daniel Han
10338dbaa4 Fix warmup_ratio deprecation for transformers >= 5.0 (#4019)
* Fix warmup_ratio deprecation warning for transformers >= 5.0

In transformers 5.0, warmup_ratio is deprecated in favor of
warmup_steps which now accepts float values (< 1 = ratio,
>= 1 = absolute steps).

The compiler now conditionally sets warmup_steps=0.1 on
transformers >= 5.0 (same semantics as warmup_ratio=0.1) and
keeps warmup_ratio=0.1 on older versions where warmup_steps
only accepts int.

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

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

---------

Co-authored-by: Daniel Hanchen <danielhanchen@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2026-02-10 06:17:47 -08:00
Daniel Han
f106eec5e9 Fix Gemma3 4B training on transformers 5.x (token_type_ids) (#4017)
* Inject token_type_ids for Gemma3 multimodal training on transformers 5.x

In transformers 5.x, create_causal_mask_mapping() raises ValueError when
is_training=True and token_type_ids is None. When doing text-only SFT on
Gemma3 4B (a multimodal model), the dataset_utils detection for
_needs_token_type_ids can miss because:
- The model is wrapped in PeftModel, so type(model).__module__ points to
  peft.peft_model instead of transformers
- The processing_class is a tokenizer (not Gemma3Processor), so the
  fallback MRO check resolves to a module without create_causal_mask_mapping

This adds a fallback in _unsloth_pre_compute_loss that injects
token_type_ids=zeros when:
1. token_type_ids is not already in inputs
2. The inner model config has model_type "gemma3"
3. The model's module has create_causal_mask_mapping (transformers 5.x)
4. The model is in training mode

On transformers 4.x, create_causal_mask_mapping does not exist so this
check is inert.

Depends on: unslothai/unsloth-zoo#488

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

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

---------

Co-authored-by: Daniel Hanchen <danielhanchen@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2026-02-10 05:14:36 -08:00
andrewor14
cd24ea0e50 FP8: Load model on-the-fly in vLLM (#3717)
* FP8: Load model on-the-fly in vLLM

**Summary:** Existing support for `load_in_fp8=True` performs
an offline quantization when loading the initial model.
This is no longer necessary as of vllm==0.12.0 (after
https://github.com/vllm-project/vllm/pull/23014), where we
can quantize the model on-the-fly when we load it:

```
llm = LLM(
  ...
  hf_overrides={
    "quantization_config_dict_str": json.dumps(torchao_config),
  },
)
```

**Note:** Needs https://github.com/unslothai/unsloth-zoo/pull/380

**Test Plan:**
https://gist.github.com/andrewor14/5b85119fae46845d07b608d420907423

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

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

* Fix on-the-fly FP8: always check mapper first, fallback to on-the-fly

The original implementation bypasses the FP8 mapper entirely for
vllm >= 0.12.0, meaning models like Llama-3.2-1B-Instruct and Qwen3-8B
that have pre-quantized FP8-Block/FP8 checkpoints would never use them.

This fixes the priority order:
1. Mapper has a pre-quantized model -> use it (always)
2. Mapper has no match + vllm >= 0.12.0 -> on-the-fly FP8 via torchao
3. Mapper has no match + vllm < 0.12.0 -> offline quantization

Changes:
- loader_utils.py: Move vllm >= 0.12.0 check after mapper lookups
- loader.py: Set load_in_fp8=False when mapper resolves to a
  pre-quantized model to prevent double quantization

Tested on B200 with Llama-3.2-1B-Instruct and Qwen3-8B. Corrected code
produces results matching baseline (pre-quantized path preserved).

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Daniel Hanchen <danielhanchen@users.noreply.github.com>
2026-02-10 05:10:13 -08:00
Datta Nimmaturi
3df65308f3 [Misc] Fixes (#4015)
* convert print to logger

* Print but cleaner

* Hide model on multiple devices

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

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

* fix typo

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

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

* Fix typo transfomers -> transformers, revert MoE message change

* Update MoE detection message to show num_experts and target_modules

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Daniel Hanchen <danielhanchen@users.noreply.github.com>
2026-02-10 02:08:55 -08:00
Roland Tannous
fe5a7d11b6 add llama.cpp prefix to gguf conversion help messages (#4016) 2026-02-10 01:59:05 -08:00
Fizza Mukhtar
a353fad514 Fix #3397: Prevent trainer tokenization hang with safe num_proc (#4013)
* Fix #3397: Prevent trainer tokenization hang with safe num_proc

* Fix #3397: Add missing import sys for Windows-safe tokenization

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

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

* Consolidate with existing num_proc guard in dataset_utils.py

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Daniel Hanchen <danielhanchen@users.noreply.github.com>
2026-02-10 01:53:46 -08:00
Daniel Han
acfe670357 Fix EmbeddingGemma float16 NaN via FORCE_FLOAT32 for gemma3_text (#4014)
* Fix EmbeddingGemma float16 NaN by adding gemma3_text to FORCE_FLOAT32 and SDPA lists

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

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

---------

Co-authored-by: Daniel Hanchen <danielhanchen@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2026-02-10 01:40:13 -08:00
Daniel Han
a2f4f04ea5 Inject model reference for dynamic token_type_ids detection in SFTTrainer (#4012)
* Inject model reference for dynamic token_type_ids detection in SFTTrainer

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

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

---------

Co-authored-by: Daniel Hanchen <danielhanchen@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2026-02-10 00:37:07 -08:00
Daniel Han
a35e866625 Suppress vLLM v1 executor sleep/wake log messages (#4011)
* Suppress vLLM v1 executor sleep/wake log messages

Add HideLoggingMessage filters for vllm.v1.executor.abstract logger to
suppress repetitive sleep/wake INFO and WARNING messages that spam training
output when UNSLOTH_VLLM_STANDBY is enabled. The existing filter at line 275
handles the legacy vllm.executor.executor_base path; this adds coverage for
the v1 engine path used by vllm 0.11+.

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

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

---------

Co-authored-by: Daniel Hanchen <danielhanchen@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2026-02-09 23:51:58 -08:00
pre-commit-ci[bot]
293b431e77 [pre-commit.ci] pre-commit autoupdate (#4009)
updates:
- [github.com/astral-sh/ruff-pre-commit: v0.14.14 → v0.15.0](https://github.com/astral-sh/ruff-pre-commit/compare/v0.14.14...v0.15.0)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2026-02-09 17:32:18 -08:00
shine1i
aab37f8dc2 refactor: consolidate AvailableVariables component and enhance variable display logic across dialogs
- Moved `AvailableVariables` to shared directory.
- Updated dialogs to use shared `AvailableVariables` component.
- Enhanced inline expressions and processors dialog with better variable display.
2026-02-09 20:07:41 +01:00