What's New
The recipe library doubled — 46 → 80 validated recipes, every popular open-weight model family covered.
- Recipe library doubled (46 → 80) —
soup recipes search <model>to find yours. - Vision expansion — Pixtral-12B, Qwen2-VL (7B + 72B), InternVL 2.5, MiniCPM-V 2.6, plus Llama-3.2-Vision 90B. SFT and GRPO/DPO variants.
- Audio fine-tuning — Qwen2-Audio (audio-language), SeamlessM4T v2 (translation), Whisper-large-v3 (ASR).
- Reasoning models — full DeepSeek-R1-Distill set (1.5B/7B/14B/32B Qwen + 8B/70B Llama), Qwen3-Coder 30B, Qwen3-30B-A3B reasoning, Phi-4 reasoning.
- Edge / on-device — SmolLM2 (135M / 360M / 1.7B), Qwen2.5 (0.5B / 1.5B / 3B), Gemma 2 2B, Phi-3.5-mini.
- Domain specialists — BioMistral, Meditron, CodeLlama (13B / 70B), Magicoder, Mathstral, Nemotron-4 340B, Llama-2-13b-finance.
- Recipe-validation CI — every PR that touches recipe / config / data code re-validates the full catalog so upstream HF model renames break the build instead of shipping a broken recipe.
Install / Upgrade
pip install --upgrade soup-cli
# or
docker pull ghcr.io/makazhanalpamys/soup:v0.31.0Try a recipe:
soup recipes search "vision"
soup recipes show pixtral-12b-sft
soup recipes use r1-distill-qwen-7b-grpoSecurity
No new security fixes in v0.31.0 (data-only release). All v0.30.0 hardening carries forward. The new test suite (tests/test_recipes_v031.py, 750 tests) enforces catalog-wide invariants on every CI run:
- Model IDs reject
..,://, null bytes, and backslashes. - Default training data paths are non-empty and relative (no absolute / drive-letter leakage).
lora.target_modulesisautoor a non-empty list (silent no-op LoRA caught at config-load).max_lengthwithin schema bounds [64, 1M].- GRPO recipes wire
reward_fnandnum_generations >= 2— no silent stub trainer launches. - Vision recipes set
image_dir; audio recipes setaudio_dir.
Known Limitations
- 100-step live smoke train per recipe is deferred to v0.31.1. The v0.31.0 CI tier validates every recipe's config + meta-vs-yaml consistency on CPU; running a real 100-step training pass against each upstream HF model needs a self-hosted GPU runner. Tracked as a follow-up.
llama2-13b-finance-sftis a starter recipe — it trains on top of the vanillameta-llama/Llama-2-13b-hfbase, not the FinGPT adapter. The recipe gives you a finance-domain SFT scaffold; reproducing FinGPT-specific results requires pointingbase:at the FinGPT checkpoint of your choice.- License migration (MIT → Apache-2.0) applied earlier on main: downstream redistributors must retain the
NOTICEfile per Apache-2.0 §4(d).