Hyperparameter optimisation framework Optuna has seen some API stabilisation work and performance improvements making the now available version 1.0 ready for production.
Optuna is an MIT-licensed open source project that was written by a team from Japanese app development company Preferred Networks in 2018. It first received some public interest in July 2019, when its creators submitted a research paper detailing the framework to the committee of the ACM SIGKDD conference on knowledge discovery and data mining. The work was presented at said event later that year.
In the context of machine learning, where the project can be located, hyperparameters are parameters that don’t stem from the training of a model but are fixed beforehand. Since this can be a bit of a hit and miss exercise, finding ways to pick the right ones has been a heavily investigated discipline in the last years. Optuna is meant to facilitate the process by offering automation for hyperparameter configuration.
It isn’t the first project to promise something like that; alternative solutions for example include Google’s Vizier, AWS Gluon, open source Python library Hyperopt, and the Autotune optimisation framework. According to the Optuna team, however, those projects don’t bode well for environments with limited resources and lack support during setup and search space construction.
Consequently the team focused on these aspects, which is why the project page now advertises features such as Optuna’s lightweight architecture, and its parallel and distributed optimisation approach. The framework also gets rid of unpromising trials in order to make the most of resource restricted systems when trying to find the best set of hyperparameter values for a given problem.
The project is written in Python and integrates with libraries such as Keras, TensorFlow, PyTorch Ignite, FastAI and Chainer. It can be accessed via the Python Package Index or on the Anaconda Cloud.
Prior to the current release, Optuna learned to use Joblib in the optimisation process which allows for a choice of backends for different tasks, and return Plotly graph objects amongst other things. It also saw some under the hood improvements meant to increase speed and stability.
In the coming months the team plans to work through the community’s feedback to decide what to improve upon next. Other than that there are still implementations of new algorithms in the works. Devs interested in the project can take it for a spin over at Google Colab.