A tool for making model souping ultra-simple, easy and fast!
Project description
🥣 Good Soup 👌
Stirring up SOTA models with ease! A tool for making model souping ultra-simple, fast and easy!
Model souping is like being a chef in the world of AI 🧑🍳. You take a few well-trained models (your ingredients 🥦🥩🥕), mix their weights together (stir the pot!🥣), and voilà! You often end up with a new model that performs better than any of the individual ingredients. It's a fantastic technique for pushing the boundaries and achieving State-of-the-Art (SOTA) results.
But let's be honest, sometimes the recipe can be complicated. Setting up the kitchen, getting the measurements right... it can be a hassle. That's where Good Soup comes in! We handle the messy parts so you can focus on the delicious results. 👌
🚀 Getting Started
We want Good Soup to be as easy as opening a can. The ultimate goal is a simple pip install:
# Soon! 🙏
pip install good-soup
For now, you'll need to grab it fresh from the source:
git clone https://github.com/chonkie-inc/good-soup.git
cd good-soup
pip install -e .
🧑🍳 Usage Example
Whipping up a soup is super simple:
from good_soup import Soup
# Create your soup object
soup = Soup(
# List of paths to the models you want to blend 🥣
models=[
"path/to/model_1.bin",
"path/to/model_2.bin",
# Add as many models as you like!
],
# The merging strategy (more recipes coming soon!) 📜
# 'uniform' averages the weights of all models.
method="uniform",
# Where to save your delicious new model 🍲
output_dir="path/to/output_dir",
# Optional: Specify data type (e.g., 'float16', 'bfloat16')
# dtype="float16",
# Optional: Specify device ('cpu', 'cuda')
# device="cuda",
)
# That's it! Your souped model is ready in output_dir.
print("Soup's ready! 👌")
📜 Available Recipes (Methods)
Currently, Good Soup offers one classic recipe:
uniform: This method simply averages the weights of all provided models. It's a great starting point and often yields surprisingly good results!
Keep an eye out! We're constantly experimenting in the kitchen and plan to add more sophisticated recipes like greedy merging, ties, and dare soon! 🧑🔬
🗺️ Roadmap
- Add
greedysouping method. - Add
tiesmerging method. - Add
daremerging method. - Publish to PyPI for easy
pip install. - More comprehensive documentation and examples.
- Support for different model formats (e.g., SafeTensors).
🙌 Contributing
Want to add your own spice to the soup? Contributions are welcome! Feel free to open an issue or submit a pull request. Let's cook up something great together! 🤝
🙏 Acknowledgements
CHONKIE loves soup! 🥣👌
A huge thank you to Adam Driver – a true inspiration and a connoisseur of fine soup (probably).
And thanks to the amazing open-source community for providing the quality ingredients that make this project possible!
✍️ Citation
If Good Soup helps you in your research or project, please cite it:
@misc{goodsoup2025,
author = {Chonkie Inc.},
title = {Good Soup: A tool for making model souping ultra-simple, easy and fast!},
year = {2025},
publisher = {GitHub},
journal = {GitHub repository},
url = {https://github.com/chonkie-inc/good-soup}
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file good_soup-0.0.1.tar.gz.
File metadata
- Download URL: good_soup-0.0.1.tar.gz
- Upload date:
- Size: 8.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.22
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
07eee7747a788ba312a178d777b2dff08b2317d187ad5af866c07fdd75ff5b6b
|
|
| MD5 |
6dee69d0d6792bae72f276915a59820a
|
|
| BLAKE2b-256 |
da24e8c93f17161cd71d37e58bd64f27a5f775c53809fcff20a7eb00f81ffdd0
|
File details
Details for the file good_soup-0.0.1-py3-none-any.whl.
File metadata
- Download URL: good_soup-0.0.1-py3-none-any.whl
- Upload date:
- Size: 8.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.22
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e124f353abbc7e7a62823bdb2bf0ad13f22ed247ad585f58a3932f11285b8d80
|
|
| MD5 |
ccd29c42a8e4053bff1894edb1564b16
|
|
| BLAKE2b-256 |
41662e6766dcb08643544622802f5efb888ff00eb779297fb3dd8de95e535b51
|