Skip to content

About Soup

Soup is an open-source toolkit for LLM post-training on local hardware, built by MePlay, Inc., a Delaware corporation. Its core technique, layer streaming, fine-tunes a model on a card too small to hold its weights. How it works.

Team

Rafik Mamedov

Co-Founder & CEO

Soup on LinkedIn

Alpamys Makazhan

Founder & CTO

LinkedIn

Company

Soup is developed and maintained by MePlay, Inc., the entity behind this site, the soup-cli package on PyPI and the repository on GitHub.

Legal name
MePlay, Inc.
Incorporated
Delaware, United States, October 1, 2025
Registered address
1111b South Governors Avenue, STE 40549, Dover, DE 19904
Team based in
Astana, Kazakhstan
Product
soup-cli (v0.77.0), released under the Apache-2.0 license

How layer streaming works

Fine-tuning has a hardware floor that has little to do with the work itself: a model whose weights do not fit on your card cannot be trained on it, so the answer has always been to rent a bigger one. Layer streaming moves that floor.

The frozen base is never loaded into VRAM as a whole. It is rewritten into one shard per decoder layer, held in CPU RAM or on NVMe, and copied one layer at a time into a small pool of pre-allocated VRAM buffers on a dedicated CUDA stream, so the load of the next layer overlaps the compute of the current one. Only the LoRA adapters stay resident, which bounds peak VRAM by a single layer instead of by the whole model. Quantizing the streamed base to NF4 shrinks the store about fourfold, and that is what brings an 8B model within reach of a card that cannot hold a quarter of it.

Supervised fine-tune
Llama-3.1-8B-Instruct, NF4 base, LoRA, batch 1
4 GB RTX 3050 Laptop
Throughput
119.6 tok/s
Peak VRAM
3.32 GB
Measured on v0.72.2 at 952 MHz, before the v0.73.0 correctness repair. A post-repair row from another RTX 3050 Laptop, taken at a different clock, is in the measured numbers, and the two are not directly comparable.

Eleven architectures stream, covering Llama, Qwen, Qwen4-Exp, Mistral, Gemma, Phi and, since v0.77.0, the DeepSeek-V3 MoE family. The original nine were verified bit-exact against the same checkpoint loaded resident, under both bf16 and NF4, in the v0.72 gates; the newest additions carry weaker evidence and the docs say which. Since v0.76.0 the streamed NF4 forward follows the dispatch bitsandbytes itself uses for resident NF4, and no new bit-exact record exists for it. That check is the load-bearing one, because a streamed run that has quietly severed its autograd graph still produces a falling loss curve and looks healthy.

For a long time that check could only run on toy models, because comparing a streamed run against a resident one needs a card big enough to hold the resident one, and a 4 GB card never is. In August 2026 three borrowed days on an 8x H100 box closed that gap. The streamed forward pass proved exact against a real resident reference from 8B up to 72B, and the same exercise found a gradient defect above a certain layer size that three releases of passing tests had missed.

Layer streaming ships BETA. Every number behind it is published as a measurement record, including the ones that were measured and then discarded, and including the defects the measuring turned up.

Soup is free and stays that way. There is no paid tier and nothing held back for a commercial edition.

If you want to help, a star on GitHub costs nothing and helps most. The support page covers the rest.