Skip to content

Optuna GSoC 2021

Masashi Shibata edited this page Apr 5, 2021 · 10 revisions

Optuna

Optuna is an open source hyperparameter optimization framework to automate hyperparameter search. Optuna provides eager search spaces for automated search for optimal hyperparameters using Python conditionals, loops, and syntax, state-of-the-art algorithms to efficiently search large spaces and prune unpromising trials for faster results, and easy parallelization for hyperparameter searches over multiple threads or processes without modifying code.

Optuna is participating in GSoC 2021 as a member of NumFOCUS.

Getting Started

For coding on Optuna, a solid basis in Python coding will be required. Experience working with Git and github.com will also be useful. If you're interested in applying, we recommend you take a look at the Optuna github repository and try your hand at some of the Contribution Welcome labelled issues. We will evaluate applications largely based on your contributions to Optuna and other open source projects.

To contact us, please email us at optuna@preferred.jp

Projects

Web Dashboard

Enhance the Optuna Operations

Web Dashboard

There is a lot of room for improvements in terms of UI or testing.

  • Increase multi-objective study support to keep the dashboard up to date with the latest Optuna abilities
  • Add unit tests or integration tests (with puppeteer/headless chrome) for the React.js application
  • Find graph layout issues and fix them (e.g. pass long hyperparameter names like 20 or more characters))

Mentors

@c-bata

Difficulty and Requirements

Medium

You need to know:

  • Web API development with Python and Bottle framework
  • Modern JavaScript (TypeScript, React.js, React-router, Recoil)

First steps

Check contribution-welcome GitHub issues after reading the source code of React.js application.

Why this is cool

Realtime Web Dashboard helps users to understand an optimization progress and the relationships between hyper-parameters with a slight effort. Implementing web features is an important skill that can transfer to many other projects. Build relationships with coders in a top tier startup in Japan.

Enhance the Optuna Operations

There are several areas in the standard operation of Optuna as a open source project that could be improved. For example:

  • Add performance checks into the Continuous Integration (CI) scripts using kurobako to make sure new code doesn't slow down Optuna
  • pip specifications are going to be changed from giving warnings about version inconsistencies to causing errors, which could impact Optuna in many places. Review the packages Optuna relies on to remove version inconsistency problems.
  • Make an automated check to see when the pypi version for the Optuna dependencies are updated. When updated, install the new version as an example, and run an integration test. If that is successful, create a PR for to update that new version in future Optuna tests.

Mentors

@Crissman

Difficulty and Requirements

Medium

You need know:

  • Python
  • Familiarity with CI, github actions, and testing
  • Open Source projects

First Steps

Review the existing tests and scripts for Optuna CI in .circleci/config.yml. Review the operation of CircleCI, kurobako or github actions, depending on your interests.

Why this is cool

Smoothly running testing and integration with other sources helps for integrating new code rapidly and smoothly. Development operations is critical for the smooth running of large open source projects, and the skills you can learn in improving the operations of Optuna will be applicable to many other projects. Build relationships with coders in a top tier startup in Japan.