mrkeyoor.com_
Sat 15 Aug 13:40 UTC
AI Toolsevaluationupdated 15 Aug 2026

Soup

Soup is a Python command-line toolkit for fine-tuning, evaluating, and packaging language models from one YAML recipe. It tries to replace a pile of training scripts and infrastructure chores with a guided workflow that can run locally, including an experimental layer-streaming mode for GPUs with very little memory.

Verdict

Soup is one of the more thoughtful attempts to make small-team model training an end-to-end engineering workflow, not just a notebook that produces an adapter. Its candid measurement notes, unusually broad documentation, and fast maintenance are strong reasons to try it. Use the stable local LoRA path first, but treat low-memory streaming, MLX, multi-GPU recipes, and MCP execution as features that still require your own proof before production.

Setup4/5Friendly CLI, but real training still brings models, extras, and hardware
Docs5/5Detailed guides, recipes, caveats, measurements, and troubleshooting
Community4/5Daily commits, outside contributions, and active issue repair
Maturity3/5Core workflow is useful; several advanced paths still carry sharp edges

Who it’s for

Developers who want a guided path from training data to a LoRA adapter without assembling the Hugging Face stack by hand.
Researchers who value reproducible configs, built-in evaluation gates, and published measurement records.
Laptop GPU owners willing to test the beta layer-streaming path on their own model and sequence length.
Small teams that need training, chat, export, serving, data tools, and MCP access in one Python project.

Who it’s NOT for

Python 3.13 or newer environments: the README supports only Python 3.10 through 3.12 because the newer PyTorch stack has not been validated.
Teams that need a proven multi-GPU recipe without modification: issue #350 reports that the shipped 70B FSDP2 recipe cannot run because two required dtype settings cannot both be expressed in config.
Apple Silicon users expecting the MLX extra to be independently production-tested: issue #23 says the real training loop lacks an end-to-end Apple Silicon test, while issue #394 reports that the MLX-only install reaches missing training dependencies.
Anyone treating the 4 GB claim as a guarantee for long contexts: layer streaming is labeled beta, and issue #395 says its memory estimate under-predicts beyond roughly 4,700 tokens.
Operators who want unattended MCP-launched training across restarts today: open issues #401 and #402 document orphaned run state and a process-local execution cap, although fixes were already under review.

Setup reality

The light CLI is genuinely easy to install, but actual training is not a one-command escape from machine-learning dependencies. You need Python 3.10 through 3.12, the train extra, model access, a correctly shaped dataset, enough system RAM and storage, and usually a CUDA GPU; CPU training is described as experimental and very slow. The wizard, templates, automatic batch sizing, soup doctor, and Docker image remove real friction. Advanced paths such as layer streaming, MLX, FSDP, DeepSpeed, fast kernels, serving, and export each add their own extras and hardware assumptions, so a production setup still needs pinned versions and a representative smoke run.

More than a training wrapper

Soup packages the messy middle of language-model fine-tuning into a command-line workflow. A YAML file names the base model, dataset, task, LoRA settings, quantization, and output. From there, commands cover data inspection, training, chatting with the result, evaluation, merging, export, serving, and pushing artifacts. That is a much wider promise than a thin wrapper around a trainer. The project wants one record that follows a model from recipe to release decision.

The sensible audience is a developer who understands what fine-tuning is but does not want to hand-wire Transformers, PEFT, TRL, dataset loaders, quantization, logging, and export for every experiment. Soup supplies templates for supervised fine-tuning, preference methods, reasoning, vision, audio, embeddings, and other common shapes. Its soup ship command is particularly useful: it compares a tuned model with its base on a task evaluation and bundled regression suites, then produces a ship or do-not-ship decision. Recent work added a benign-prompt check and a measured noise floor because the earlier gate could mis-score tool calls, multiple-choice answers, and over-refusal.

The low-memory idea is compelling but conditional

Soup's distinctive feature is layer streaming. Instead of keeping a frozen base model on the GPU, it feeds decoder layers to the device while training the smaller adapter. The README reports an 8B model using 3.32 GB of peak GPU memory on an RTX 3050 Laptop, with a reproduction on an H100. Better still, the project publishes its qualification: the laptop speed number predates a correctness repair, preference training reads the layer stack more often, and the mode remains opt-in beta.

That candor matters because low-memory training is easy to oversell. Soup includes a notebook that caps memory and checks streamed output against a resident run, benchmark records, and a paper whose newer version retracts an explanation that later measurement disproved. Few young projects show their corrections this clearly. It gives a careful user material to audit instead of a single triumphant chart.

It still is not a blanket promise that any 8B job fits any 4 GB card. Sequence length, batch shape, quantization, model architecture, host RAM, storage speed, and preference loss all change the calculation. Open issue #395 reports that the preflight estimate begins under-predicting memory beyond roughly 4,700 tokens. A competent team should start with a short representative run and observe actual peak memory before committing to a long job.

Setup is friendly, training is still training

The quick start is honest at the entry point. The bare soup-cli package handles configuration and data tools without PyTorch. Installing soup-cli[train] brings the training stack, while named extras cover serving, evaluation, MLX, DeepSpeed, and other optional paths. The interactive initializer, reusable templates, automatic batch sizing, dependency checks, and soup doctor command save time. A release-tagged container offers another route for CUDA users.

Hardware and compatibility do not disappear. Python support stops at 3.12. CPU training works for tests but is described as very slow. Model weights may require credentials and significant disk space, while realistic evaluation needs a held-out dataset and enough time to run the base as well as the adapter. Teams also need to pin the exact Soup and dependency versions used for evidence, especially because releases have been frequent and scoring behavior has changed.

The advanced backends deserve separate trials. Issue #23 documents the absence of an end-to-end MLX training test on Apple Silicon. Issue #394 says the MLX extra alone can encounter missing datasets and TRL imports. For large distributed runs, issue #350 provides a harder warning: a bundled 70B FSDP2 recipe fails because its four-bit base and LoRA adapter need dtype handling that the current configuration cannot fully express. These are specific gaps, not proof that the ordinary CUDA LoRA path is broken. They do mean the recipe catalog should not be mistaken for a matrix of completed hardware certification.

Broad tooling creates a larger trust surface

Soup can serve an OpenAI-compatible API, export to several deployment formats, track experiments, build data, and expose MCP tools. The MCP server begins in read-only or planning modes, with mutating and execution capabilities behind explicit flags and confirmation tokens. That is a responsible design for software that can start costly training or export jobs.

The implementation is moving quickly. On August 15, 2026, open issues #401 and #402 described two operational faults: a server exit could leave a run marked active, and an in-memory single-run limit could be bypassed by a restart. Pull requests addressing both were already open the same day. This is healthy response speed, but it also shows why remote execution should run inside an additional job-control boundary rather than serving as the only source of truth.

Health and the buying decision

The repository was pushed on August 15, 2026, and version 0.73.2 was released that day. Its 83 open items combine issues and pull requests, and the recently updated list contains detailed reproductions, proposed fixes, and active review. Outside contributors landed data-splitting and MCP work in the latest release. The project is young, created in February 2026, but it is plainly maintained.

Documentation is the strongest part of the package. Separate guides cover commands, training methods, performance, data engineering, evaluation, serving, security, backends, supported models, and optional extras. The README states unsupported Python versions, beta status, withdrawn measurements, and hardware-gated work instead of burying them.

Try Soup if you want a coherent local path from dataset to tested adapter and you can validate the chosen backend yourself. Choose Axolotl or LLaMA-Factory when broader field experience or model coverage matters more, and consider Unsloth when raw training efficiency is the central requirement. Soup earns a trial today, but its ambitious edges should be adopted one at a time.

Alternatives

ProjectWhat it isPick it when
AxolotlA configuration-driven toolkit for fine-tuning many language-model families and training methods.pick this instead when you want a widely used training-focused project and are comfortable owning more of the configuration surface.
LLaMA-FactoryA broad fine-tuning framework with a web interface, many model families, and numerous training recipes.pick this instead when model coverage and a browser-based workflow matter more than Soup's opinionated train-to-ship path.
UnslothA training library focused on reducing memory use and increasing fine-tuning speed.pick this instead when training efficiency is the main goal and you are willing to build evaluation and release checks separately.

What people are saying

  1. [github-trending] MakazhanAlpamys/Soup
  2. [producthunt] Soup CLI

Sources

  1. Soup repository and README
  2. Soup v0.73.2 release
  3. FSDP2 four-bit recipe failure, issue 350
  4. MLX end-to-end test gap, issue 23
  5. Layer-streaming memory under-prediction, issue 395