What does this mean for you? It means a smoother, less error-prone experience when working with sbi. If you use this tool to analyze complex simulations, you'll find that specifying and configuring your neural networks is now much clearer and less prone to surprises.
For those new to it, sbi is a fantastic library that helps you understand complex simulations. Imagine you have a simulation you can't describe mathematically in a straightforward way, but you want to know the best parameter values that led to certain outcomes. That's where sbi comes in. It uses neural networks (a type of AI) to learn how simulation outcomes relate to underlying parameters, helping you draw conclusions about your simulation even without knowing the likelihoods.
The problem before was how you picked and configured these neural networks. The old interfaces, whether using simple strings or 'factory functions,' allowed for settings that might be quietly ignored if the chosen network didn't support them. There wasn't a good way to ensure the settings you chose were valid and appropriate for the model you were using.
But thanks to this project, the old interfaces have been replaced with a new approach using 'typed configuration objects.' This means that each setting for a specific model is now clear and structured within its own class. If you pick a setting that isn't compatible with the model you're working on, the error pops up immediately! Instead of the library silently discarding it or you finding out too late during training.
The goal of this change is to make the building process safer and more transparent. Care was also taken to ensure your existing code doesn't suddenly break; it continues to work via a deprecation path, giving you time to update. This improvement not only simplifies things but also adds layers of safety and validation, making sbi more enjoyable and efficient to use. The participating organizations were NumFOCUS and sbi-dev/sbi, with support from mentors Jan Teusen and Nicholas Junge.