FAQ

General

What models does Soup support?

Any HuggingFace-compatible model. Popular choices include Llama, Mistral, Qwen, Phi, and Gemma families. Vision models (LLaMA-3.2-Vision, Qwen2-VL) and audio models (Qwen2-Audio) are also supported.

Do I need a GPU?

A CUDA-compatible GPU is strongly recommended. Soup supports 4-bit quantization to fit larger models on smaller GPUs. A 24GB GPU (RTX 3090/4090) can fine-tune 7B-8B models comfortably.

How is Soup different from other fine-tuning tools?

Soup is CLI-first and opinionated. One command to train, one YAML to configure. It wraps best practices (Unsloth, FlashAttention, optimal hyperparameters) so you don't have to research them. 25 training methods (text / vision / audio / ASR / TTS / classifier / distill / preference / MoLE routing / online DPO), 17 quantization formats, multimodal support, full pipeline from training to deployment. Plus, you can migrate from LLaMA-Factory, Axolotl, or Unsloth in one command.

What version is current?

Soup CLI v0.71.35. The v0.71 line is two stories plus a run of capstones: v0.71.0 split the install (pip install soup-cli is now a light, PyTorch-free CLI; pip install 'soup-cli[train]' adds the training stack) and raised the floor to Python 3.10+, and v0.71.1 → v0.71.14 wired the entire schema-first roadmap live — the reward-hack / echo-trap detectors, ULD + MiniLLM distillation, mid-epoch RL checkpoints, soup iterative-dpo, RAFT span-mask training + soup ra-dit, CAA/ITI/RepE steering, ROME/MEMIT/AlphaEdit edits + GRACE, NPO/SimNPO/RMU unlearning, the SAE / sleeper / truth / harm / interference probes, the live eval / advise / tunability / diagnose runners, the soup build dbt-DAG materialiser, the Magpie generator, the soup compile / distill-prompt / compile-tools / local-rl train prompt family, VeRA/VB-LoRA multi-tenant serving, MoLE routing, FSDP shard consolidation, and serve-side KV-cache typing now all run end-to-end. Genuinely new in v0.71: ed25519 adapter/attestation signing with supply-chain merge gates, codecarbon energy/CO2 tracking, PDF Annex XI/XII docs, Soup Can v3 attestations, and a local audit log. v0.71.15 → v0.71.23 then closed the stub tail and added native Spectrum targeted training (soup spectrum scan + training.unfrozen_parameters), serve-time MoLE (soup serve --mole), soup agent eval --sandbox, soup train --cloud modal, GPT-2 + Mixtral knowledge editing, and live TTS / BitNet / MoE-quant trainers. v0.71.24 grew the recipe catalog from 116 to 133 with 17 new SFT recipes for the 2026 open-weight families (Qwen 3.5 / 3.6, DeepSeek-V4, GLM-5.1, Kimi K2.5 / K2.6, MiniMax M3, Mistral Large 3), v0.71.25 added `soup ship`, the one-command SHIP / DON'T-SHIP verdict, v0.71.26 closed the RL loop with reward-hacking auto-mitigation (the GRPO/PPO trainer self-corrects mid-run instead of only halting), plus a new qwen2.5-coder-7b-sft recipe (catalog 133 → 134). v0.71.27 "Fine-tune Doctor" added a pure-CPU pre-flight — `soup data doctor` (8 chat-template checks incl. the "never stops generating" EOS bug) and soup data lint (DPO length-bias as a Cohen's d effect size) — v0.71.28 shipped the `soup mcp serve` MCP server so any coding agent (Claude Code, Cursor, Cline, Continue) can drive Soup over stdio, v0.71.29 added `soup shrink`, one-command depth pruning with an optional distill-heal and a SHIP / DON'T-SHIP perplexity verdict, v0.71.30 let a Process Reward Model drive GRPO (PRM-guided GRPO), v0.71.31 shipped the judge-in-the-loop suite (Online DPO, best-of-N & Evol-Instruct, plus a pairwise judge win-rate for `soup ship`), v0.71.32 added ASR fine-tuning (task: asr fine-tunes Whisper on your own audio, soup infer --task asr reports WER/CER, whisper-tiny/base train on a 4 GB GPU), v0.71.33 shipped `soup draft` (train and, above all, measure a speculative-decoding draft: the measured verdict on our own validated pair was that it does not pay off, so the speedup pitch was withdrawn rather than shipped), v0.71.34 added adapter algebra (soup adapters arithmetic "coder + 0.5*math - toxic") and LISA (full fine-tune quality at LoRA-like memory), and v0.71.35 shipped the compliance pack: regulation-shaped soup init --template hipaa|soc2|eu-ai-act|sr-11-7 configs, soup card model-card autogen from a registry entry, a soup ci init PR gate (validate to expect to ship, exit 2 blocks the merge), and GGUF export validated end-to-end on Windows for the first time. 16,001 tests across 313 test files, 25 training tasks, 19 data formats, 17 quantization formats, 142 recipes, 21 built-in templates. Apache-2.0 license since v0.29.0. Check with soup version --full.

Can I migrate from LLaMA-Factory / Axolotl / Unsloth?

Yes: soup migrate --from llamafactory config.yaml converts your existing config automatically. Supports LLaMA-Factory YAML, Axolotl YAML, and Unsloth Jupyter notebooks. Use --dry-run to preview without writing.

Are there ready-made configs?

Yes. Soup ships 142 recipes spanning Llama 3.1/3.2/4 (Scout + Maverick), Qwen 2.5/3 (incl. 30B and 235B MoE), the 2026 families (Qwen 3.5/3.6, DeepSeek-V4 Flash/Pro, GLM-5.1, Kimi K2.5/K2.6, MiniMax M3, Mistral Large 3 — v0.71.24), QwQ-32B, QVQ-72B, Gemma 3, Mistral, Phi-4, DeepSeek R1/V3 + all 6 R1-Distill sizes, plus v0.51 additions (GPT-OSS 20B/120B, GLM 4.6/5, Kimi K2 / K2-Thinking, MiniMax M2, Granite 4, LFM2, Cogito v2, Mistral Small 3 / Medium 3.5, Magistral / Devstral / Ministral, Baichuan 2), vision (Pixtral, Qwen2-VL, InternVL 3.5, LLaVA-Next, MiniCPM-V, Qwen-Image, DeepSeek-OCR, Paddle-OCR-VL), audio (Qwen2-Audio, Whisper-large-v3, Voxtral, SeamlessM4T-v2), ASR fine-tuning (whisper-tiny-asr / whisper-base-asr / whisper-large-v3-asr — v0.71.32), TTS (Orpheus, Sesame-CSM, Llasa, Spark, Oute — v0.52), BitNet (Falcon-E — v0.52), edge (SmolLM2 135M-1.7B, Phi-3.5-mini, LFM2), domain specialists (BioMistral, Meditron, CodeLlama, Magicoder, Mathstral, MedGemma, EmbeddingGemma), plus v0.62 RAG (raft-llama3-8b, ra-dit-retriever, ra-dit-llama3-8b), MLX-native, and multi-GPU (llama3-70b-fsdp2, qwen3-32b-zeropp, deepseek-v3-pipeline). Run soup recipes list to browse, soup recipes search llama to filter, and soup recipes use llama3.1-8b-sft to start training instantly.

Training

How long does training take?

Depends on model size, dataset, and hardware. A 1B model with 10K samples on an RTX 4090 typically takes 15-30 minutes with SFT. With Unsloth backend, 2-5x faster.

Can I resume training from a checkpoint?

Yes: soup train --config soup.yaml --resume auto (latest checkpoint) or --resume ./output/checkpoint-500 (specific checkpoint).

Does Soup support multi-GPU?

Yes. v0.27.0 added topology-aware soup train --gpus N launch, ZeRO++ (quantized weights + grads), FSDP2 + torch.compile, pipeline parallelism (parallelism: pipeline + pipeline_stages), and the DeepSpeed-MII serving backend. See Multi-GPU Mastery.

What training methods are available?

25 methods: SFT, DPO, Online DPO (v0.71.31 — on-policy against an LLM judge or a reward model, wraps TRL OnlineDPOTrainer), GRPO, PPO, KTO, ORPO, SimPO, IPO, BCO (v0.40), Pretrain, Embedding, Reward Model, the unified preference dispatcher (v0.40 — set training.preference_loss: dpo|simpo|orpo|ipo|bco to swap loss without renaming the task), PRM (v0.50 Process Reward Model — also usable as the per-step reward inside GRPO via PRM-guided GRPO, v0.71.30), TTS (v0.52 — Orpheus / Sesame-CSM / Llasa / Spark / Oute), ASR (v0.71.32 — Whisper fine-tuning with built-in WER/CER), Classifier / Reranker / Cross-Encoder (v0.52), Distill (v0.52 — kl / forward_kl / reverse_kl / js divergences), Unlearn (v0.61 — NPO / SimNPO / RMU), and MoE LoRA Routing (v0.67 — MoLE per-token gating over 2..64 task adapters). Plus soup edit set (v0.61 — ROME / MEMIT / AlphaEdit) and soup steer train (v0.62 — CAA / ITI / RepE) as inference-time / weight-surgery surfaces.

Can I auto-push checkpoints to HuggingFace during training?

Yes — soup train --push-as user/my-model uploads every save_steps checkpoint to HF Hub as a checkpoint-<N> branch. Pair with --hf-resume to pull the latest branch and keep going after a spot-instance preemption. Set HF_ENDPOINT=https://hf.internal.example.com to target a self-hosted Hub. See HF Hub integration.

Can I train faster on large-vocab models?

Yes — v0.28.0 adds Cut Cross-Entropy (use_cut_ce: true), which avoids materialising the full [seq × vocab] logits tensor. Best on Llama 3 / Qwen 3 (vocab ≥ 128k). Install with pip install 'soup-cli[cce]'. v0.28 also ships FP8 training on Hopper+ GPUs, tiered gradient checkpointing, kernel auto-composition, cross-document attention masking, and CPU/disk activation offloading. See Training speed & memory.

Data

What data formats are supported?

19 formats: Alpaca, ShareGPT, ChatML, DPO, KTO, LLaVA, ShareGPT4V, Plaintext, Embedding, Audio, Tool-calling, Auto, PRM, Pre-tokenized, Input-output, Video, Multimodal (v0.42), RAFT (v0.62 Retrieval-Augmented Fine-Tuning — query + golden_doc + distractors + answer), and ASR (v0.71.32 Whisper fine-tuning — {"audio": path, "text": transcript}). Format is auto-detected from the first row. Local paths or remote URIs (s3 / gs / az / abfs / oci). Use soup data convert to switch between formats. v0.69 adds soup build (dbt-shaped DAG of dataset transforms with incremental materialisation), soup expect (Great Expectations suite for chat data), and soup data brain-rot (AI-slop detector — refuses to train on clickbait).

How much data do I need?

For SFT, 1K-10K high-quality samples is a good starting point. Quality matters more than quantity. Use soup data filter to check data quality.

Can I generate synthetic data?

Yes: soup data generate --prompt "Create math problems" --count 100. Supports OpenAI, Ollama, Anthropic Claude, vLLM, and custom servers. Includes domain templates (code, conversation, QA, preference, reasoning) and a full quality pipeline.

Deployment

How do I serve my model?

soup serve --model ./output --backend vllm for production. The API is OpenAI-compatible.

Can I export to llama.cpp / Ollama?

Yes: soup export --model ./output --format gguf --quant q4_k_m

What export formats are supported?

GGUF (llama.cpp/Ollama), ONNX (cross-platform), TensorRT-LLM (NVIDIA optimized), AWQ, and GPTQ (quantized deployment).

Troubleshooting

How do I see full error messages?

Use soup --verbose <command> for full tracebacks.

How do I check my environment?

Run soup doctor to check Python version, GPU availability, dependency versions, and get fix suggestions.