Kubeflow サブプロジェクトの Katib のメンテナになった

先日 Tweet したように、Kubernetes 上で MLOps 基盤を構築するための OSS である、Kubeflow で AutoML を実現するサブプロジェクトである Katib のメンテナ (Approver) になりました。

そこで今回は Kubeflow におけるメンテナとは何かなどの話をして行きたいと思います。

Kubeflow コミュニティ

Kubeflow コミュニティには取り組む分野を分類した、 Working Group (WG) があり、基本的に役職はこれらの Working Group ごとに決まっています。

  • AutoML Working Group
  • Deployment Working Group
  • Manifests Working Group
  • Notebooks Working Group
  • Pipelines Working Group
  • Serving Working Group
  • Training Working Group

Technical Leads

まず初めに Technical Leads (TL) についてです。

WG にはそれぞれ TL と呼ばれる WG を牽引する役職が存在し、その WG が持っている全てのサブプロジェクトのメンテナンスを行います。

この TL には WG の立ち上げをおこなうか、もしくは TL から直接指名されてなることができますが、サブプロジェクトメンテナより強い権限を持つため、基本的に WG の立ち上げメンバーのみで構成されています。

Reviewer

Reviewer は TL とは違いサブプロジェクトごとに存在しており、主に提出された PR のレビューを行いますが、その PR 内で完結するレビューを行うことが多いです。(例: コード内にバグがある or テストが足りない ...)

Reviewer にはこの条件 を満たすとなることができ、 条件を満たしている場合は自己推薦することも可能です。

私はメンテナになる以前、大学院生の時に TL からの推薦で Reviewer になりました。

Approver (メンテナ)

今回私が就任したのがこの役職になり、私は WG AutoML のサブプロジェクトである Katib のメンテナになりました。コミュニティ内では Approver やメンテナと呼ばれています。

メンテナも Reviwer と同様、サブプロジェクトごとに存在しますが、Reviewer との大きな違いは、PR をアップストリームにマージする権限を持っていることです。

主にそのサブプロジェクトの方向性を TL と決めることや、提出された PR をレビューし、問題がなければそれをアップストリームにマージする仕事をします。

Reviwer も PR のレビューは行いますが、メンテナのレビューはその PR 内で閉じたレビューだけではなく、 API の互換性などのそのサブプロジェクト全体や他の機能を考慮したレビューを行うことが多いです。

メンテナには この条件 を満たすとなることができますが、 Reviewer とは違い基本的に自己推薦でなることはできず、既存のメンテナや所属する WG の TL からの推薦が必要になります。

私の場合も WG AutoML の TL の人から Slack で私を推薦したいとの連絡をもらい、その後他の TL の人たちからも承認されてなることができました。

貢献したこと

まだ大学院生だった 1 年半ほど前頃から Katib への貢献をし始め、 63 件の PR 提出と、 86 件の PR レビュー を行ってきました。 大きな仕事は、

  1. MutatingWebhookConfiguration や ValidatingWebhookConfiguration のための証明書を作るためのコンポーネントの開発

  2. JSON Lines (NDJSON) 形式で出力されたログから学習結果を収集し、ハイパーパラメータ最適化用のメトリクスとして用いるための新機能開発

  3. GitHub Actions を用いた E2E テストの構築

の 3 つ行い、3 番目の E2E テストの構築ではリリースまで時間がなく、ギリギリのスケジュールで奮闘した思い出があり、とても印象深いです。

業務と OSS

私はとても恵まれた環境に身を置いており、就職後も上長と相談し、業務の一環として Katib をはじめとしたさまざまな OSS での活動ができており、Katib にも多くの業務時間を使用してきました。 社内の仕事と社外の仕事を同時に行うことができており、とても充実しております。OSS 活動は大変なこともたくさんありますが、それ以上に得るものが多いため、勤務先でそのような活動の許可が出ている場合はチャレンジしてみてはいかがでしょうか。(業務時間を使う場合、必ず上長の許可をとってください)

まとめ

本記事では、Katib のメンテナに就任した件について紹介しました。メンテナに就任して終わりではなく、今後も積極的に貢献を行っていく予定です。直近の予定としては Experiment リソースの v1beta2 API の設計を行っているところですので、興味のある方はこちらを覗いてみてください。