What's New
soup profile — Know Before You Train
Estimate GPU memory, training speed, and get hardware recommendations before starting a training run:
soup profile --config soup.yaml
soup profile --config soup.yaml --gpu a100
soup profile --config soup.yaml --jsonMulti-Adapter Serving
Serve a base model with multiple LoRA adapters and switch between them per-request:
soup serve --model ./base --adapters chat=./chat-adapter code=./code-adapter
curl localhost:8000/v1/chat/completions -d '{"messages": [...], "adapter": "code"}'
curl localhost:8000/v1/adapters # list loaded adapterssoup data sample — Intelligent Dataset Sampling
Sample subsets using random, diverse (TF-IDF + K-means clustering), or hard (longest examples) strategies:
soup data sample data.jsonl --n 1000
soup data sample data.jsonl --n 1000 --strategy diverse
soup data sample data.jsonl --pct 10 --strategy hardsoup adapters — Adapter Management
Scan, inspect, and compare LoRA adapters:
soup adapters list ./output/
soup adapters info ./output/checkpoint-500/
soup adapters compare adapter1/ adapter2/Security
- Multi-adapter: path traversal protection, name validation, no path disclosure
- Data sample: output path confinement
- Adapter selection: unknown adapter → 404 (no name leakage)
Install / Upgrade
pip install --upgrade soup-cliStats
- 1890 tests, 66 test files, 65.5% coverage
- Full CI: ruff lint + pytest on Python 3.9/3.11/3.12 × ubuntu/windows/macos