137

機械学習関連の技術記事を投稿します。137と言えば微細構造定数

【OSS開発】「Optuna V3開発スプリント #1」に参加してきました

2021/10/31に開催された、Optuna開発者主催の開発スプリントに参加してきましたので、簡単に参加報告します。

optuna.connpass.com

イベントの概要

OptunaはML/DLのモデル開発はもちろんのこと、JVMのパラメータチューニング物質の結晶構造解析 など幅広く適用できる、ハイパーパラメータ自動最適化ツールです。 現在のOptunaのバージョンはV2ですが、V3に向けたロードマップ が示されるなど開発が進められています。 今回開催された開発スプリントは、Optuna V3リリースに向けた機能開発を目的としていました。

イベント中のコミュニケーションはすべてDiscord上で進められ、テキストでやり取りしながら必要に応じてマイクやカメラをオンにしてVoiceチャットで開発に関して議論する流れになります。 私は残念ながらマイクやカメラが利用できない環境での参加となり、テキストのみのコミュニケーションになってしまい残念でした。 しかし、開発への支障はまったくなかったため、マイクやカメラが利用できないからという理由で参加を見送る必要はないでしょう。 また、実際にGitHub上でPull Requestを送るまで開発者から丁寧にフォローがあり、これまでOptunaの開発を行なったことがない人でもモチベーションさえあれば問題なく参加できると思います。

イベントのスケジュール

開発スプリントは1日開催でした。 過去に参加した scikit-learnの開発スプリント は2日〜3日の開催であったことを考えると、かなり短期間のスプリントです。 開発スプリントは次のようなスケジュールで進み、開催期間中はほぼ開発に時間が割かれました。

時間 内容
10:00 - 10:30 開発スプリント、V3に向けた開発内容の説明、自己紹介
10:30 - 17:50 開発(途中自由に休憩、ランチ用のDiscordチャンネルが開設)
17:50 - 18:00 開発者から開発スプリント内での成果共有
18:00 - オンライン懇親会(未参加)

開発内容

V3の開発タスクとして取り上げられていたのは以下のようなものでした。

  • インターフェースの整備
  • 各種機能の安定性向上
  • Deprecated機能の削除
  • チュートリアル追加

具体的なタスクは、v3というラベルがついたIssue から選ぶことになります。 タスクはどれも興味深いものでしたが、せっかく開発スプリントに参加していることもあり、過去に取り組んだドキュメントの作成タスクではなく開発系のタスクに取り組もうと思っていました。 そして選んだのが、非推奨となった機能の削除 というIssueです。 このIssueは次の3つのタスクから構成されていました。

  • Deprecated機能のリストアップと削除機能の洗い出し
  • 洗い出した削除機能の削除
  • @deprecated デコレータのリファクタリング

3つ目のタスクは、Issueでは Document @deprecated decorator と書いてありました。 最初は @deprecated デコレータドキュメント化するのかと思っていましたが、いまひとつ進め方がわからなかったので開発者に聞いてみたところ、@deprecatedリファクタリングを意味していると教えてもらいました。 不明瞭なタスクは、事前に確認しておくとスムーズに進められるよい例でした。

開発成果

ドキュメントや簡単なバグ修正などで過去にOptunaへコントリビュートしたことはありましたが、しばらく開発から離れていたこともあって開発環境の構築から始めました。 また、選んだIssueが複数のタスクから構成されていることもあり、結局このIssueを対応するだけで1日使ってしまいました。 途中でCIのエラーが取れずに悩んでしまう場面もありましたが、Optunaの開発者からフォローいただいたことで全体的にスムーズにタスクを進めることができたと思います。

作成したPull Requestは3つ(#3057#3064#3065)で、1つは開発スプリント中にマージされました。 残りの2つはこの記事執筆時点でマージされていませんが、方針はほぼほぼ決まってプロトタイプも完成したため、あとはレビューやCIを通すのとクリーンアップするのみです。

次回について

V3に向けて開発を加速化してきていることもあり、今後も今回のような開発スプリントを月1回のペースで開催するようです。 すでに次回の開催も決まっています。

optuna.connpass.com

オープンソースプロジェクトにコントリビュータとして参加できるよい機会ですので、Optunaの開発に興味のある方は参加してみるとよいかもしれません。 私も都合があうときはまた参加してみたいと思います!

最後になりますが、このような貴重な場を設けていただき、かつ開発スプリント中にフォローしていただいたOptuna開発者のみなさまに感謝いたします。