Commit Graph

3 Commits

Author SHA1 Message Date
Alpamys 3a549d3366 fix: resolve full-tree code-review findings (6 HIGH + MEDIUM/LOW)
Address every finding from the v0.71.32 review round. No version bump —
lands under CHANGELOG [Unreleased] for the next patch.

HIGH:
- serve: vLLM no longer forces trust_remote_code=True; resolved once for
  all backends via the v0.36.0 default-deny gate + warning panel.
- serve: multi-adapter serving actually loads + switches adapters
  (_load_named_adapters + lock-guarded _adapter_scope on both the
  non-stream and stream generation paths); was a silent no-op.
- data/loader: vision image paths are containment-checked against
  image_dir (mirrors the audio loader) — {"image": "/etc/passwd"} dropped.
- train: --dry-run skips the accelerate re-exec; also forwards
  --minillm-on-policy / --capture-activations / --capture-prompts.
- trainer/mlx_sft: build a real AdamW instead of optimizer=None.
- commands/data: escape dataset/HF-derived strings in inspect/preview/search.

ASR (v0.71.32 review): metric calls moved inside the per-row try (no
batch-crash on an oversized reference), control-strip + escape on skip
warnings, transcript-label cap to Whisper's 448 + >30s audio warning,
upfront --asr-task validation, exit 2 on all-skipped, fp16 fallback on
pre-Ampere GPUs.

MEDIUM/LOW: distill KD term causal-shift to match the CE term; constant-
time UI Bearer-token compare + locked _train_process read;
load_config_from_string raises ValueError (not TypeError) on non-mapping
YAML; soup runs escapes config-derived fields; vscode_setup + lr_finder
use the centralised atomic, symlink-rejecting writer.

Tests: +28 in tests/test_review_fixes_v07133.py; updated 4 existing tests
that encoded pre-fix behavior (2 vision, 1 distill, 1 vLLM). Full suite
15569 passed, 0 failed, 123 skipped; ruff clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-08 19:26:57 +05:00
Alpamys 3d66b41d00 v0.17.0: data quality filters, audio modality, SGLang backend, server provider
New features:
- soup data filter: quality filters with perplexity and coherence scoring
- modality: audio — Qwen2-Audio, Whisper fine-tuning with audio data format
- --backend sglang for soup serve (SGLang high-throughput inference)
- --provider server for soup data generate (local OpenAI-compatible servers)
- Audio template: soup init --template audio

Security hardening:
- Server provider SSRF validation (scheme whitelist, localhost-only HTTP)
- Audio file path traversal protection (resolved paths confined to audio_dir)
- trust_remote_code warning panels for audio models and SGLang runtime

1348 tests, 56 test files, 58.8% coverage, ruff clean.
2026-03-26 13:46:17 +05:00
Alpamys 5b7ad3c358 Add multimodal vision fine-tuning support (Phase 6) — v0.5.0
- Add `modality: vision` config option for vision-language model training
- Add LLaVA and ShareGPT4V data format detection and conversion
- Add `image_dir` field in DataConfig for resolving image paths
- Add vision model loading via AutoModelForVision2Seq + AutoProcessor in SFT trainer
- Add `soup init --template vision` with LLaMA-3.2-Vision config
- Add image statistics display in `soup data inspect` for vision datasets
- Add Pillow as optional `vision` extra dependency
- Add Pillow to `soup doctor` dependency checks
- 51 new tests (455 total), ruff clean

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 20:16:24 +05:00