Skip to main content

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!

PyPI Documentation License Stars

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 greedy souping method.
  • Add ties merging method.
  • Add dare merging 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

good_soup-0.0.1.tar.gz (8.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

good_soup-0.0.1-py3-none-any.whl (8.6 kB view details)

Uploaded Python 3

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

Hashes for good_soup-0.0.1.tar.gz
Algorithm Hash digest
SHA256 07eee7747a788ba312a178d777b2dff08b2317d187ad5af866c07fdd75ff5b6b
MD5 6dee69d0d6792bae72f276915a59820a
BLAKE2b-256 da24e8c93f17161cd71d37e58bd64f27a5f775c53809fcff20a7eb00f81ffdd0

See more details on using hashes here.

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

Hashes for good_soup-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e124f353abbc7e7a62823bdb2bf0ad13f22ed247ad585f58a3932f11285b8d80
MD5 ccd29c42a8e4053bff1894edb1564b16
BLAKE2b-256 41662e6766dcb08643544622802f5efb888ff00eb779297fb3dd8de95e535b51

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page