大学院修了


はじめに

今年度で工学修士を取得し、大学院を修了するため、学部時代と合わせて 6 年間を振り返ります。 技術的な話は次の記事で紹介する予定なので、技術的な話のみ読みたい方は 次の記事 に飛んでください。

学部時代

情報系学部での 4 年間の生活をまとめます。

1 ~ 2 年

浪人したのにも関わらず、希望の大学に入学することができなかったため入学後も何もやる気になれず、ソシャゲとネトゲとバイトしかやらない生活を送っていました。 どれくらいゲームをやり込んでいたかというと、ネトゲでは全てのボスを瞬殺できるくらい強くなり、とあるソシャゲではゲーム内でランキング 1 位になるほどの所属ギルドでメインヒーラをやっていました。

プレイしていたゲームでは、連携するためにボイスチャットやテキストチャットを行うことが多く、今になって思うのは、ここでコミュニケーション能力やタイピングスキルが身についたのだと思います。 またゲームの上位層は大人ばかりなこともあり、同世代以外とのコミュニケーションの仕方も覚えていたのだと思います。

しかし、ゲームで強くなるためにはそれ相応の課金を必要とするため、時給が良い家庭教師のバイトを週 5 でやっており、何故か?どの親御さんにも生徒さんにも頼りにされており、どの生徒さんの勉学も捗っていたので仕事に困ることなく、かなり稼いでいたと思います。(自分の大学での勉学は捗っていませんが)

家庭教師をわざわざ頼む親御さんの多くは、子供にたくさん勉強をさせて、子供の成績を上げたいと考えておられますが、勉強大好きで勉強したくてたまらない生徒さんは稀です。そこで、親御さんの要望と生徒さんの要望をバランスよく取り入れ、成績向上という最終ゴールに向かって進むということがとても大変だったのを覚えています。結局家庭教師のバイトは 4 年間続けたため案外自分にあっていたのかもしれません。

このようなゲームとバイトばかりの生活を送っていると当然?授業はあまり出席できず、単位を大量に落としていました。

3 年

必修の授業や実習をたくさん落としていたため、このままでは本当に留年するという状況で 3 年に進級したのですが、さすがに留年はヤバいと思い、やっていたゲームを全てやめました。この時ゲームを全てやめた自分を本当に褒めたいと思います。

元々幼少期からコンピュータがある家庭で育ち、ずっとコンピュータを触り続けてきたのもあり、真面目に授業に参加したところゼミの友人の助けもあり、普通に優や秀の成績をとることができました。家庭教師のバイトで数学などをずっと続けていたことも大きかったのかもしれません。

また通っていた大学では、3 年の後期に研究室配属があるため前期に希望調査があったのですが、元々アニメ録画とそのエンコードの趣味があり、画像処理に興味があったためコンピュータビジョンを扱う研究室を選びました。

この頃、3 年になっても家庭教師のバイトは続けており、ゲームをやめたことでお金に余裕があったので、 30 万円くらいかけて PC を自作し、時々環境を壊しつつも遊んでいました。(PC でゲームはやっていませんでした。)この時にストレージの魅力に目覚め、沼にハマって行くことになります。

その後、3 年で無事に落としていた単位などもほとんど取り返したため、留年することなく 4 年に進級することができました。

4 年

4 年になると本格的に研究室活動がはじまるのですが、自分は最初から院進するつもりだったので就職活動はせずに、 2 月から研究を始めました。 当時は画像処理の研究が楽しくて仕方がなく、卒研だけでなくさまざまな画像処理タスクに取り組みました。 6 月には卒検の内容がほとんどできていたので査読なしの支部大会に出したところ、賞をもらえたときは、とても嬉しかったことを覚えています。

秋に某社で学生向けに実際のデータセンタ(DC)を見学できるイベントが開かれることを知り、元々コンピュータが好きだったため参加しました。DC 見学はとにかく楽しかったの たのですが、これが後の学生生活に大きく影響を及ぼすことになりました。

DC 見学会の後半で社員の方との座談会があり、そこで仮想化についての話があったのですが、私は仮想化についてほとんど知らなかった(VMVirtualBox を知ってる程度で、コンテナや Docker は存在も知らない)ため座談会の会話の中ででてくる、OpenStack や Docker や Kubernetes (K8s) の話はとても刺激的で知的好奇心を刺激されました。

座談会で聞いた仮想化の話の中でも、コンテナ型仮想化の話がとてもおもしろかったので、研究環境をまず Docker に移行してみました。私は研究で DeepLearning などの機械学習手法を用いていたのですが、機械学習とコンテナ型仮想化技術はとても相性が良いことに気づき、研究室で放置されていたサーバを使ってこれまで本ブログでとりあげてきたように K8s Cluster を構築しました。

最初は物理サーバ 1 台をベアメタルではじめたのですが、研究室の先生(専門はコンピュータビジョン)の理解もあって徐々に物理サーバの台数を増やし、最終的には 7 台を運用するまでなりました。

また当時、手袋をつけた女性に並々ならぬ拘りがある、ネットワークエンジニアのりかたろう氏(@s56cm)との出会いにより、情報インフラに関わる仕事がしたいと本格的に思うようになりました。(りかたろう氏との交流内容は割愛します。)

その後、某社の参加型ワークショップに参加した際、肉をご馳走になり、宿のない私を自宅に泊めていただいて、色々相談にのっていただいた宇田氏(@syuheiuda)との交流により、インフラに関わる仕事をしたいとより強く思うようになりました。

大学院時代

M1

大学院に進学後も同じ研究室に所属し、本業?であるコンピュータビジョンの研究そっちのけで研究室の機械学習計算基盤(ML 基盤)の開発にのめり込んでいました。 前期の最初は、大学院の授業課題と学会の締め切りとサーバのお守りとインターンの課題で死にかけていたのですが、少し落ち着いた頃に、当時からストレージ好きを公言しており、ML 基盤でも Rook を使っていたため、こば氏(@tzkb)から Japan Rook Meetup #3 で登壇してみないかと連絡をいただき、ML 基盤での Rook 活用について話をしたのですが、コミュニティで登壇したことがなかったため非常に緊張したことを覚えたいます。こば氏には貴重な経験をいただいたことにとても感謝しています。

夏から秋にかけてはさまざまな会社のインターンシップに行きましたが、そのうちの 1 社で sat 氏 (@satoru_takeuchi) から OSS 活動のイロハを教えていただいたことから、OSS 活動に積極的に参加するようになりました。

この頃 M2 の先輩が自分の研究室と、別大学の研究室 (以下 O 研) を掛け持ちしていたのですが、O 研で行っていた研究で、深層学習におけるブラックボックスの最適化に取り組んでいたので、私の研究でもハイパパラメータ最適化 (HPO) を行ったほうがいいのではという話にもなり、どうせなら K8s を使ってうまくやりたかったこともあって、Katib に出会いました。 実際に使ったところ、目に見えて結果がよくなったため、Katib だけでなく Kubeflow 自体に興味を寄せるようになりました。

M2

M1 の冬で就活を終えていたため、M2 前期はひたすら ML 基盤の開発を行っていました。しかし、弊学は修士認定のための対外発表を 2 回行わなければならなかったため、隙間時間で学会発表の準備をしていました。

前期が終了すると、以前から気になっていた Katib の実装に本格的に向き合うようになったのですが、利用者が多いにも関わらず、 Contribution してくれる人があまりおらず、ほとんど 1 人で管理しているような状態だったため、私も Katib の開発に携わるようになりました。

Contribution を続けていると、9月末頃、メンテナから Kubeflow の Organization Member に招待され、とても嬉しかった記憶があります。以下は Twitter で報告している様子です。卒業後も積極的に Katib へは Contribution を続けていこうと考えています。

2021 年 12 月から 2022 年 1 月いっぱいは修論執筆に集中し、無事修論審査会をやり遂げて、工学修士の認定をもらいました。

(2022/02/19 追記) kubeflow/katib の reviewer になりました。

まとめ

本記事では 6 年間の学生生活を簡単にまとめましたが、6 年間通してとても周りの人に恵まれていたと感じております。次回の記事では、ML 基盤が今どうなっているかを技術的な話を中心にまとめるつもりなので、読んでいただけると幸いです。