A free, open-source framework for fine-tuning and post-training large language models, configured through YAML files.
MakazhanAlpamys/Soup
CLI tool to fine-tune and post-train LLMs from a single YAML config, with options for training on low-VRAM consumer GPUs.
- Stars
- 9,388
- Forks
- 1,540
- Open issues
- 195
- Last commit
- yesterday
What is it?
Soup is a command-line tool for fine-tuning and post-training large language models. A project is described by one YAML file that sets the base model, task, dataset and training options, and the `soup train` command runs the job. Supported tasks include SFT, preference methods such as DPO, KTO, ORPO and SimPO, and reinforcement-learning variants like GRPO and PPO, with LoRA and QLoRA as the default adapter and quantization paths.
The project targets developers who want to train locally without managing cloud GPU boxes by hand. Dataset formats such as Alpaca, ShareGPT and ChatML are detected automatically from JSONL, JSON, CSV, Parquet or TXT files. Soup also covers the steps after training: chatting with a model, serving an OpenAI-compatible API, merging adapters, exporting to GGUF for Ollama or llama.cpp, and pushing to the Hugging Face Hub.
A separate opt-in layer streaming mode keeps the frozen base model in host RAM and moves one decoder layer at a time to the GPU, which the project reports as fine-tuning an 8B model on a 4 GB laptop GPU. This mode is marked beta in the project. Optional extras add a local web UI, Unsloth and MLX backends, and evaluation tools.
Key features
- 01Train from a single YAML config with `soup train`.
- 02Supports SFT, DPO, KTO, ORPO, SimPO, GRPO and PPO style tasks.
- 03Uses LoRA and QLoRA with automatic batch size and quantization settings.
- 04Auto-detects common dataset formats such as Alpaca, ShareGPT and ChatML.
- 05Exports models to GGUF, and serves them through an OpenAI-compatible API.
Use cases
- Fine-tuning a 7B to 14B model with QLoRA on a single consumer GPU.
- Running preference-tuning experiments such as DPO or ORPO without writing training loops.
- Preparing a LoRA-tuned model for local use with Ollama or llama.cpp via GGUF export.
- Training on a laptop with limited VRAM using the opt-in layer streaming mode.
Quick start
- 1
Install the training extra with pip
pip install "soup-cli[train]" - 2
Create a config from a template
soup init --template chat - 3
Train the model
soup train
Things to know
- Python 3.10–3.12 only; 3.13+ is not supported.
- Fine-tuning requires the [train] extra, and the low-VRAM layer streaming feature is still BETA and opt-in.
- Some options (e.g. awq/gptq export) are deprecated and will be removed in v0.77.
Topics
FAQ
- What is Soup?
- CLI tool to fine-tune and post-train LLMs from a single YAML config, with options for training on low-VRAM consumer GPUs. Soup is a command-line tool for fine-tuning and post-training large language models. A project is described by one YAML file that sets the base model, task, dataset and training options, and the `soup train` command runs the job. Supported tasks include SFT, preference methods such as DPO, KTO, ORPO and SimPO, and reinforcement-learning variants like GRPO and PPO, with LoRA and QLoRA as the default adapter and quantization paths.
- Is Soup free to use? What license does it have?
- Soup is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
- Is Soup still maintained?
- Actively maintained. The last commit to Soup was on Oct 19, 2026.
- What can I use Soup for?
- Fine-tuning a 7B to 14B model with QLoRA on a single consumer GPU. Running preference-tuning experiments such as DPO or ORPO without writing training loops. Preparing a LoRA-tuned model for local use with Ollama or llama.cpp via GGUF export. Training on a laptop with limited VRAM using the opt-in layer streaming mode.
- How do I install Soup?
- Install the training extra with pip: pip install "soup-cli[train]" Create a config from a template: soup init --template chat Train the model: soup train
- Where can I get Soup?
- The source code and installation instructions are on GitHub: https://github.com/MakazhanAlpamys/Soup
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Open-source desktop app and web UI for running, fine-tuning and exporting LLMs and diffusion models locally, plus a code-based training library.
Unified framework for efficiently fine-tuning 100+ LLMs and VLMs with a zero-code CLI and Web UI.
Python library that runs large language models layer by layer so 70B-class models can infer on a single 4GB GPU, without quantization.
A Rust CLI and TUI that detects your CPU, RAM and GPU, then ranks open LLMs by how well they will run on your machine.
A from-scratch PyTorch walkthrough and codebase for training a transformer LLM, covering pretraining, SFT, reward modeling, DPO/PPO/GRPO and generation.