It’s been almost a year since we open-sourced Pruna (time flies when you're compressing models ✨).
Since then, the community has grown in ways we couldn’t have imagined, new contributors, new ideas, and so many improvements coming from all directions.
To celebrate this milestone, we’ve started bringing more of the algorithms that previously lived in our closed-source stack into the open-source Pruna ecosystem. The goal is simple: give the community access to more of the tools we use internally so everyone can experiment, optimize, and build faster
This release is a big step in that direction, with a whole wave of new algorithms joining the repo, along with stability improvements, compatibility fixes, and some nice quality-of-life upgrades.
From all of us at Pruna: thank you for being part of this journey 💜
Let’s see what landed in v0.3.2 🔮
The juiciest bits 🧃
A whole garden of new algorithms 🌱
The optimization ecosystem keeps growing with a new set of algorithm building blocks:
feat: add distiller algorithm by @minettekaum in #479
feat: add pruner algorithm by @minettekaum in #470
feat: decoder algorithm by @minettekaum in #444
feat: add distributer algorithm by @minettekaum in #459
feat: add compilation algorithms by @minettekaum in #443
feat: add recoverer algorithms by @minettekaum in #491
feat: add enhancers algorithms by @minettekaum in #469
feat: Sage Attention Algorithm by @Marius-Graml in #455
More tutorials to help you get started 📚
Getting started with Pruna just got easier thanks to new tutorials:
docs/flux2-klein-tutorial: Flow changed in the tutorial by @minettekaum in #522
docs: moving three tutorials from Pruna Pro to Pruna by @minettekaum in #539
Algorithms are learning to play nicely together 🤝
We also improved compatibility between algorithms and model configurations:
feat: add disjoint algorithm compatibility by @gsprochette in #520
Pruning some bugs 🐞 and maintenance 👩🌾
A lot of work went into improving stability, compatibility, and developer tooling:
[CI] Use a Stable Cache Key to prevent warnings in gh-actions by @ParagEkbote in #456
fix: kernels version by @begumcig in #504
refactor: formalize artifact saving by @gsprochette in #492
ci: mark latest torchao as incompatible with latest diffusers by @gsprochette in #528
fix: filter out non reapplied algorithms in resmash by @gsprochette in #525
fix: change moe model for compatibility with earlier transformers versions by @gsprochette in #533
build: pin transformer<5.0.0 by @gsprochette in #532
ci: enforce pr title format via a github actions workflow by @SaboniAmine in #538
fix: align sage_attn default hyperparameter return type with refactor by @gsprochette in #540
fix: symmetric compatibility by @gsprochette in #555
test: extend fast cpu tests so tests default as cpu by @gsprochette in #556
build: update ty to v0.0.20 and align type-checking config by @rensortino in #535
fix: fix awq tracing fx problem by @begumcig in #551
fix: enable invalid assignment ty checks by @begumcig in #553
fix: fix ty invalid-argument-type by @begumcig in #554
fix: remove deprecated pynvml, remove torchmetrics restrictions by @begumcig in #566
docs: update links in contributing file by @sdiazlor in #541
🌱 New faces in the garden
@Marius-Graml made their first contribution in #455
@rensortino made their first contribution in #535
Full Changelog: v0.3.1...v0.3.2