Getting Started

Installation

As of v0.71.0 the install is split. pip install soup-cli is a light, PyTorch-free CLI + data-tools install — soup init, soup data …, and the inspection commands all work on it. To fine-tune, add the [train] extra:

bash
# Light core: CLI + config + data tools, no PyTorch
pip install soup-cli

# Add the training stack (torch, transformers, peft, trl, datasets, …)
pip install 'soup-cli[train]'

# Everything (train + serve + ui + data) in one shot
pip install 'soup-cli[all]'

# Or from GitHub (latest dev)
pip install git+https://github.com/MakazhanAlpamys/Soup.git

Upgrading from ≤ v0.70? pip install soup-cli no longer pulls PyTorch. If you train, reinstall with pip install 'soup-cli[train]' — a missing heavy dependency now surfaces a friendly *"Training needs the [train] extra"* message instead of an ImportError.

Requirements

  • Python 3.10 or higher (raised from 3.9 in v0.71.0)
  • CUDA-compatible GPU (recommended); Apple Silicon (MPS) or CPU (experimental) also work
  • 8 GB+ VRAM for 7B models with QLoRA

Optional Extras

bash
pip install 'soup-cli[train]'      # Training stack: torch, transformers, peft, trl, …
pip install 'soup-cli[fast]'       # Unsloth 2-5x training speedup
pip install 'soup-cli[mlx]'        # Apple Silicon backend (M1–M4)
pip install 'soup-cli[serve]'      # FastAPI inference server
pip install 'soup-cli[serve-fast]' # vLLM backend
pip install 'soup-cli[sglang]'     # SGLang backend
pip install 'soup-cli[eval]'       # lm-evaluation-harness
pip install 'soup-cli[data]'       # MinHash deduplication
pip install 'soup-cli[data-pro]'   # langdetect + Presidio PII
pip install 'soup-cli[vision]'     # Pillow for vision fine-tuning
pip install 'soup-cli[audio]'      # librosa + soundfile
pip install 'soup-cli[qat]'        # Quantization-aware training
pip install 'soup-cli[liger]'      # Liger Kernel fused ops
pip install 'soup-cli[onnx]'       # ONNX export
pip install 'soup-cli[tensorrt]'   # TensorRT-LLM export
pip install 'soup-cli[awq]'        # AWQ / GPTQ quantized export
pip install 'soup-cli[ui]'         # Web UI dashboard
pip install 'soup-cli[tui]'        # Full-screen Textual dashboard
pip install 'soup-cli[trackers]'   # MLflow / SwanLab / Trackio logging
pip install 'soup-cli[deepspeed]'  # ZeRO distributed training
pip install 'soup-cli[ring-attn]'  # Ring FlashAttention
pip install 'soup-cli[remote]'     # Remote datasets (s3 / gs / az / oci)
pip install 'soup-cli[sign]'       # ed25519 adapter / attestation signing
pip install 'soup-cli[compile]'    # DSPy / GEPA / TextGrad prompt compiler
pip install 'soup-cli[carbon]'     # codecarbon energy / CO2 tracking
pip install 'soup-cli[modal]'      # Serverless cloud GPU (soup train --cloud modal)
pip install 'soup-cli[mcp]'        # MCP server (soup mcp serve) for coding agents

Quick Start

1. Create a config

bash
# Interactive wizard
soup init

# Or use a template
soup init --template chat

2. Train

bash
soup train --config soup.yaml

Soup automatically detects your GPU, sets optimal batch size, configures LoRA, and begins training.

3. Chat with your model

bash
soup chat --model ./output

4. Push to HuggingFace

bash
soup push --model ./output --repo your-username/my-model

5. Export and serve

bash
# Export to GGUF for Ollama / llama.cpp
soup export --model ./output --format gguf --quant q4_k_m

# Start OpenAI-compatible server
soup serve --model ./output --port 8000

Health Check

Check your environment for compatibility issues:

bash
soup doctor

Shows Python version, GPU availability, all dependency versions, and fix suggestions.

Quick Demo

Run a complete demo in one command:

bash
soup quickstart          # Creates sample data + config + trains TinyLlama
soup quickstart --dry-run # Just create files without training