【感想まとめ】株式会社オプティムさんのインターンに参加してきました。

はじめに

こんにちは、がんがんです。
9/9〜9/20の2週間で株式会社オプティムさんのサマーインターンに参加させて頂きました。
前回同様に参加時の感想などを忘れないように備忘録としてまとめておきます。

オプティムさんの採用情報については以下にリンクを掲載しておきますのでそちらをご確認ください。
www.optim.co.jp

また、オプティムさんはTechブログにてRustDeep Learningなどの興味深い記事も多いですのでそちらも掲載しておきます。
tech-blog.optim.co.jp

参加した経緯

5月の中頃に理系の就活サイトLabBaseさんにて人事の方より面談のお誘いがありました。ちょうど研究室に訪問されるタイミングだったこともあり、訪問の前にお時間をいただき面談を行いました。

私が趣味・研究含めて勉強している分野とオプティムさんが事業として行われている分野がきれいにかぶったこともあり、面談の時間は非常に有意義なものでした。また、面談後の会社紹介(研究室へ向けて)も非常に興味深かったです。

この面談の次の日が初めての逆求人フェスティバルのイベントでした。
gangannikki.hatenadiary.jp

緊張しながら会場につき最初に出会った方が前日に面談したオプティムさんの人事の方でした。イベントでもエンジニアの方と面談させていただき、非常に縁深いなと感じました。

この2日間の面談を経て

  • 実際に機械学習やIoTで働かれている現場をみてみたい
  • 実際に現場に行ってレベルアップしたい

と思いました。そのため、今回インターンシップに応募しました。

インターンでやったこと

インターンは9/9〜9/20の日程で2week参加してきました。コースはR&Dコースです。内容としては、ターゲット論文(Res2Net)の比較・検証を行っていくものでした。作業を大まかに分けると以下の通りです。

  • 検証としてPyTorchが動作する環境構築
  • Res2NetのGitをcloneして使用するための環境構築
  • 対象の動作検証・モデルの学習
  • PyTorchの学習

最近の論文ではPyTorchで実装されていることが多々あり、今回のターゲットもPyTorch環境にて実装されておりました。そのため、まずは対象が動作する環境を構築する必要がありました。Res2Netの概要については以下を参照ください。
Res2Net: A New Multi-scale Backbone Architecture – 南开大学媒体计算实验室


基本的には2週間ずっと環境の構築を行っていました。ひたすらトライ&エラーでエラーをつぶしていき、現環境にてターゲットが動作するような環境の構築を行いました。

1週目と2週目の終わりには進捗報告を兼ねた発表会&懇親会がありました。発表会では他のインターン生の発表も聞くことができ、とても面白かったです。

懇親会では社員さんとDLモデルや技術に関する話をたくさんすることができ非常に有意義な時間でした。非常に名残惜しかったです。正直、また来週から出勤するのでは?ってモチベーションで会社を後にしました。

インターン全体を通しての感想

今回のインターンは一人で黙々と作業を行い、自身のタスク・スケジュール管理を行っていくというものでした。メンターの方からも詳細な指示は初回のみでした。当初は指示がないことに不安もありましたが、目的がハッキリしていることもあり日々トライ&エラー、進捗報告を繰り返していきました。


今回のインターンを通じて得た経験は以下の通りです。

  • 環境構築は意外とやれる(怖くない)
  • Trace backは偉大
  • git cloneして動くものは神
  • READMEが正しいとは限らない

研究室ではある程度用意された(先輩が構築済みだった)環境で作業しており、自身のPC環境も複数バージョンがあまり必要とせずに作業していたこともあり、がっつりと環境構築からやったのは今回が初めてでした。
来る日も来る日も壊しては創造しを繰り返した結果、エラーが起きても直せばいいやというメンタルを獲得することが出来ました。今まで環境復元はブラックボックス的なイメージがあり、なかなか破壊へ踏み出すのには勇気が必要でした。しかし、今回のインターンを通じて1つずつクリアしていけばよいことを体感的に感じることが出来てよかったです。


また、エラーを1つ解決したら1つ生まれ、また1つ解決しては1つ生まれを繰り返していくうちにTrace Backは偉大であるということをしみじみ感じました。エラーを解読する力は言わずもがなですが、きちんとエラーを吐かせるコードを書くことがなによりも大事だという風に感じました。

インターン中のご飯のはなし

インターン中は今回のインターン生や前回のインターン生とご飯に行きました。ほとんどの夜ご飯は誰かと一緒にご飯に行っていました。
写真を取っているものだけ載せておきます。ハッカーズバー行ったり、ラーメン行ったりと充実した食生活でした。
大学生活に戻ったら節約につとめます(笑)。

f:id:gangannikki:20191010155847j:plainf:id:gangannikki:20191010155856j:plainf:id:gangannikki:20191010191637j:plainf:id:gangannikki:20191010155830j:plain
ごはんたち

f:id:gangannikki:20191010155838j:plainf:id:gangannikki:20191010155817j:plain
ハッカーズバーのドリンク(また行きたい)

f:id:gangannikki:20191010155841j:plain
帰りの雲(すごくきれいでした)

おまけ

2週間という長い期間だったため、余裕があれば開発したいなと思ってラズパイ+周辺機器セットをホテルに持ち込みました。
開発現場はこんな感じです。

毎日出社前の時間や就寝前の時間でちょこちょこと開発して遊んでました。
個人開発とインターンが明確に分かれていたため、上手くメリハリがついてモチベーションを維持できたのかなと改めて思います。

また、BIT VALLEYというイベントにも参加することが出来てよかったです。イベントの感想は以下に書いてます。
gangannikki.hatenadiary.jp

おわりに

今回のインターンでも多くの知識や経験を得ることが出来ました。最近掲載している記事はインターンで得た知識を用いたもの、引き続き調査したものがほとんどです。
インターンに行って自分の知識不足や足りない部分についても見つけることができたのでこれからもどんどん技術を吸収していこうと思います。