This is an early release preview. You may encounter bugs.
Soup logo
Unclaimed

Tool training

Soup

Fine-tuning a small model on a few hundred rows costs a fraction of sending the same task through an API.

A 89/100 GitHub score ? This grade is derived from GitHub signals, not user votes. Open for the full breakdown.
Discussion

01 / Summary

About Soup.

Soup is a command-line tool for fine-tuning open LLMs from a single YAML config. The config names a base model, a task, a dataset, and training settings, and Soup handles LoRA setup, quantization, batch size, and GPU detection. It trains locally with QLoRA on a single GPU, on Apple Silicon through an MLX backend, or on CPU for testing, and it also covers what comes after training: chat with the result, batch inference, evaluation, merging adapters, export, and serving.

An opt-in layer-streaming mode (in beta) keeps the frozen base model out of GPU memory and feeds it to the GPU one decoder layer at a time. Measured on an RTX 3050 Laptop with 4 GB of VRAM, Llama-3.1-8B-Instruct with NF4 trained at 119.6 tokens per second with a 3.32 GB peak, bit-exact against a normal resident run, and an H100 reproduced the same 3.32 GB footprint. The method is described in a preprint.

Training tasks span supervised fine-tuning, preference and reinforcement methods (DPO, GRPO, PPO, KTO, ORPO, SimPO, IPO, BCO), tool calling, pre-training, distillation, embedding, vision, and audio. It works with any text-generation model on the Hugging Face Hub that loads as a causal LM, and 100+ ready-made recipes cover families such as Llama, Qwen, Gemma, Mistral, Mixtral, DeepSeek, and Phi-4.

VRAM Max model (QLoRA 4-bit) Example
8 GB ~7B Llama-3.1-8B, Mistral-7B
16 GB ~14B Phi-4-14B, Qwen2.5-14B
24 GB ~34B CodeLlama-34B, Yi-1.5-34B
48 GB ~70B Llama-3.3-70B
80 GB+ 70B+ (full) or MoE Mixtral-8x22B, DeepSeek-V3
  • One config: a YAML file defines base model, task, data, LoRA, and quantization, with unknown keys rejected at load
  • Layer streaming: trains an 8B model on a 4 GB laptop GPU by streaming the frozen base one decoder layer at a time (beta)
  • Training methods: SFT, DPO, GRPO, PPO, KTO, ORPO, SimPO, IPO, BCO, pre-training, distillation, embedding, vision, and audio
  • PEFT options: LoRA, DoRA, LoRA+, rsLoRA, VeRA, PiSSA, GaLore, and long-context methods such as YaRN and LongLoRA
  • Backends: transformers, Unsloth, and MLX for Apple Silicon, plus DeepSpeed and FSDP for multi-GPU
  • Data formats: Alpaca, ShareGPT, ChatML, preference pairs, vision, audio, and plaintext, auto-detected from JSONL, JSON, CSV, Parquet, or TXT
  • Templates and recipes: templates for chat, code, tool calling, reasoning, and more, plus 100+ model recipes
  • Evaluation: benchmarks, eval-gated training, an Elo arena, calibration, and post-train probes
  • Export: GGUF for Ollama and llama.cpp, plus ONNX, TensorRT, AWQ, GPTQ, and BitNet
  • Serving: an OpenAI-compatible server, an Anthropic Messages endpoint, and batch inference
  • Web UI: a local dashboard for experiments, training setup, live metrics, dataset exploration, and model chat
  • Governance: model registry, adapter management, signing, BOM, attestations, audit log, and air-gap mode

02 / Discussion CREDIBILITY-GATED

Discussion

Reading is open to everyone. Posting and voting need a verified identity or a GitHub grade of B or higher.

  • No discussions yet.

04 / Build

Build with Soup.

Browse the catalog for frameworks, tools, and harnesses, each scored on real GitHub credibility.

Get Soup →

Browse the catalog