Commit graph

1,029 commits

Author SHA1 Message Date
imagineer99
d37cea9ffd fix: scope overflow-visible to studio collapsibles 2026-03-11 11:26:43 +00:00
imagineer99
4d0a652977 fix: input focus outline clipping 2026-03-11 11:11:57 +00:00
Roland Tannous
cbef97b9f2 Merge pull request #367 from unslothai/fix/yaml-syntax
Modified to fix the yaml syntax for unsloth_Qwen3-14B-Base-unsloth-bnb-4bit
2026-03-11 13:39:48 +04:00
Roland Tannous
763ff9cac5 Merge pull request #369 from unslothai/fix/model-mappping-syntax
fixed string concatenation in model mapping
2026-03-11 12:39:13 +04:00
Samit
69c88d4971 fixed string concatenation in model mapping 2026-03-11 00:07:26 -07:00
Samit
31ee8cef33 modified to fix the yaml syntax 2026-03-10 23:58:51 -07:00
Manan Shah
e2df9a4a38 Merge pull request #365 from unslothai/fix/gguf-gemma-with-text
fixing gguf export for gemma with text
2026-03-10 17:59:22 -07:00
Manan17
780444c56b fixing gguf export for gemma with text 2026-03-11 00:58:22 +00:00
Wasim Yousef Said
6f868f08bb Merge pull request #364 from unslothai/feature/chat-seq-slider
chat seq slider
2026-03-11 01:56:48 +01:00
Shine1i
c70cb99707 chat seq slider 2026-03-11 01:41:25 +01:00
Manan Shah
b66b38998b Merge pull request #357 from unslothai/feat/embedding-models
feat: add embedding model training support
2026-03-10 14:59:20 -07:00
Manan17
20e4236526 local model's embedding nature check 2026-03-10 21:58:45 +00:00
Manan17
36bab6ee07 fix: reset isEmbeddingModel in error fallback paths to prevent stale state 2026-03-10 21:33:13 +00:00
Roland Tannous
4e0a882131 Merge pull request #363 from unslothai/feature/enable-all-modalities
Removed audio and embedding from coming soon
2026-03-11 01:32:43 +04:00
Manan17
e097ae9d1a fix: local directory dataset loading 2026-03-10 21:29:51 +00:00
imagineer99
00e0c42e8e chore: removed audio and embedding from coming soon 2026-03-10 21:29:18 +00:00
Wasim Yousef Said
4dbe27f63e Merge pull request #356 from unslothai/fix/summary-step-spacing-and-colors
Redesign summary step with consistent card layout, spacing and icons
2026-03-10 22:26:10 +01:00
Wasim Yousef Said
1669760e4d Merge pull request #362 from unslothai/feature/setup-no-llama-nuke
fix(setup): stop deleting llama.cpp in setup
2026-03-10 22:25:12 +01:00
Manan Shah
a2178dd141 Merge branch 'nightly' into feat/embedding-models 2026-03-10 14:16:05 -07:00
Roland Tannous
4ff9121a7f Merge pull request #359 from unslothai/fix/stream-manual-slice-dataset
fix: stream HF dataset when manual slice is specified
2026-03-11 01:13:51 +04:00
Manan17
f74a1e8e00 fixing embedding model search 2026-03-10 21:12:24 +00:00
Shine1i
dfab162072 fix(setup): stop nuking llama.cpp in setup 2026-03-10 22:03:01 +01:00
Wasim Yousef Said
c051ee424b Merge pull request #361 from unslothai/fix/tooltip-z-index
Increase tooltip z-index to appear above dropdowns
2026-03-10 22:01:30 +01:00
imagineer99
eed682c038 fix: increase tooltip z-index to appear above dropdowns 2026-03-10 20:57:12 +00:00
Manan17
1bede34409 fixing logging for each step 2026-03-10 20:32:40 +00:00
Roland Tannous
279afa5b0b fix: skip streaming when dataset_slice_start > dataset_slice_end
Prevents training on the wrong row range when start exceeds end by
falling back to full download where existing clamping handles it.
2026-03-10 20:21:34 +00:00
imagineer99
cfe1988f0c fix: reject negative manual dataset slices
Prevent negative Train Split Start/End values in the dataset advanced UI and sanitize payload mapping so negative slice values are never sent to the backend.

Made-with: Cursor
2026-03-10 20:13:46 +00:00
Roland Tannous
905e5a460e fix: guard against negative dataset_slice_end before streaming
Fall back to full download when dataset_slice_end is negative,
avoiding an empty stream.take(0) that would produce a broken dataset.
2026-03-10 20:12:42 +00:00
Roland Tannous
e83f7d55ce Merge pull request #354 from unslothai/fix/audio-train-completions
fix: uncheck train_on_completions for audio models
2026-03-11 00:05:51 +04:00
Roland Tannous
514a2e9671 Merge pull request #358 from unslothai/fix/sharded-gguf
fix: download all GGUF shards for split models
2026-03-11 00:05:01 +04:00
Roland Tannous
c0f0ad7baa fix: stream HF dataset when manual slice is specified
Instead of downloading the full dataset and then slicing, use
streaming mode to only fetch the rows needed (up to slice_end + 1)
when a manual dataset slice is configured.
2026-03-10 19:50:53 +00:00
Roland Tannous
2520bca631 fix: preserve zero-valued dataset slice boundaries in embedding worker
Use explicit None checks instead of falsy `or` for slice_start and
slice_end so that a valid slice_end=0 is not replaced with the full
dataset length.
2026-03-10 19:33:10 +00:00
Roland Tannous
066c0a795e fix: restrict shard siblings to exact basename and total count
startswith(prefix) could match unrelated split variants whose names
extend the selected file's prefix (e.g. model-Q8_0-v2-00001-of-...).
Now builds an exact regex from the chosen file's base prefix and shard
total so only true siblings are downloaded.
2026-03-10 19:28:26 +00:00
Shine1i
aefac3523d chore/fix(studio): add placeholder dropdowns for dataset subset and splits in disabled state 2026-03-10 20:27:11 +01:00
Roland Tannous
65e402e8db fix: pass hf_token for gated embedding models and key cache by token
- Forward hf_token to FastSentenceTransformer.from_pretrained() so
  private/gated embedding repos authenticate correctly
- Key _embedding_detection_cache by (model_name, hf_token) tuple so
  unauthenticated lookups don't shadow subsequent authenticated ones
2026-03-10 19:20:12 +00:00
Roland Tannous
670467fccc fix: use exact variant matching and shard-prefix discovery for split GGUFs
Substring matching (e.g. "Q8_0" in filename) could match superset
variants like "IQ8_0", causing wrong quantizations to be downloaded.
Now uses word-boundary regex for variant matching and discovers split
shards by shared filename prefix rather than treating all variant
matches as shards.
2026-03-10 19:13:03 +00:00
Roland Tannous
beca4aa49e fix: propagate is_embedding into worker subprocess config
start_training() cherry-picks kwargs into a config dict but was missing
is_embedding, so config.get("is_embedding", False) in worker.py always
returned False and embedding training never ran.
2026-03-10 19:05:47 +00:00
Roland Tannous
851ad7403f fix: download all GGUF shards for split models (e.g. 7B Q8_0)
LlamaCppBackend.load_model() only downloaded the first matching GGUF
file. For split models (e.g. 7B Q8_0 with 3 shards), llama-server
needs all shards present. Now collects and downloads all matching files.
2026-03-10 19:04:10 +00:00
Roland Tannous
b63bbb5731 fix: always force-uncheck trainOnCompletions for pure audio models in dataset check
Separate pure-audio from audio-VLM logic in runDatasetCheck so pure
audio models are always forced to trainOnCompletions=false regardless
of dataset type, while audio VLMs (gemma3n) only uncheck when the
dataset is audio.
2026-03-10 19:02:49 +00:00
Roland Tannous
3a2b2109d2 fix: reset isAudioModel on model config fetch failure
Clear stale isAudioModel in the fallback path when getModelConfig
fails, preventing a previously-selected audio model's flag from
leaking into the next model selection.
2026-03-10 19:00:56 +00:00
Roland Tannous
c87fdf079c feat: add embedding model training support
Add end-to-end embedding/sentence-transformer training pipeline using
FastSentenceTransformer, SentenceTransformerTrainer, and
MultipleNegativesRankingLoss with BatchSamplers.NO_DUPLICATES.

Backend:
- Add is_embedding_model() detection via HF tags + pipeline_tag
- Add /check-embedding/ API route and EmbeddingCheckResponse
- Extend derive_model_type() to return "embeddings"
- Add _run_embedding_training() in worker.py with progress callbacks,
  stop handling, LoRA (task_type=FEATURE_EXTRACTION), and model saving
- Add is_embedding field to TrainingStartRequest and ModelDetails
- Add YAML configs for 5 models: all-MiniLM-L6-v2, bge-m3,
  embeddinggemma-300m, gte-modernbert-base, Qwen3-Embedding-0.6B

Frontend:
- Wire isEmbeddingModel flag through store, API types, and mappers
- Force packing=false, train_on_completions=false, warmup_ratio=0.03
- Hide packing and train_on_completions checkboxes for embedding models
- Auto-set modelType to "embeddings" from backend model_type response
2026-03-10 18:10:09 +00:00
Roland Tannous
436821f0b6 fix: uncheck train_on_completions for audio models
Pure audio models (orpheus, sparktts, whisper, sesame-csm) now
always have trainOnCompletions auto-unchecked when selected.
Gemma3n (audio_vlm) only unchecks when the dataset is audio.

- Add is_audio to frontend ModelConfigResponse (backend already returns it)
- Add isAudioModel state to training config store
- Auto-set trainOnCompletions=false for pure audio models on model load
- Auto-set trainOnCompletions=false for audio VLMs when dataset is audio
- Respect manual user override via existing _trainOnCompletionsManuallySet flag
2026-03-10 17:39:35 +00:00
imagineer99
fd3b55df77 fix: redesign summary step with consistent card layout, icons, and compact spacing 2026-03-10 17:38:10 +00:00
Roland Tannous
afb374da07 Merge pull request #353 from unslothai/feat/dataset-shortlist-and-model-type
Curated dataset shortlists and model type plumbing
2026-03-10 21:31:16 +04:00
Roland Tannous
f919e3e654 feat: add model_type field to backend /config and /list responses
Derive a single model_type string ("text" | "vision" | "audio" | "embeddings")
from existing is_vision and audio_type detection, so the frontend doesn't have
to infer modality from scattered boolean flags.
2026-03-10 16:54:19 +00:00
imagineer99
23ac450a90 rename: tts model type to audio for broader category support 2026-03-10 13:28:49 +00:00
imagineer99
faf8351825 feat: infer tts model type from backend is_audio flag 2026-03-10 12:57:40 +00:00
imagineer99
1b34293a53 feat: curated dataset shortlists and model type plumbing 2026-03-10 12:00:09 +00:00
Roland Tannous
19ffb79e78 Merge pull request #343 from unslothai/fix/cli-changes
Fix/cli changes
2026-03-10 14:38:35 +04:00
Roland Tannous
4ea0b3cf28 Merge pull request #352 from unslothai/fix/cancel-training
Fix/cancel training
2026-03-10 14:38:30 +04:00