pyhaya’s diary

プログラミング、特にPythonについての記事を書きます。Djangoや機械学習などホットな話題をわかりやすく説明していきたいと思います。

Wantedlyでエンジニアインターンした話

この夏、初めてエンジニアとして就業型のインターンに参加したので感想を書いてみます。

Who am I ?

まずはお前誰?という感じだと思うのでざっくりと

  • 都内の理系大学院生(非情報系学科)
  • Python3 チョットできる
  • エンジニア未経験
  • AtCoder

こんな人です。見ての通り、エンジニアとしてはほぼ素人みたいな感じです。

なぜWantedlyでエンジニアインターンをしたのか

f:id:pyhaya:20190831163308j:plain
wantedlyのホームページより引用

最初、Wantedly Visitというサービスを使ってインターン先を探していたところ、当のWantedlyさんから一度話をしてみないかと誘われたのがきっかけです。

www.wantedly.com

(情報系でもないし、企業での開発経験もないのになぜ連絡が来たのかわかりませんでしたが、聞いてみたら「プロフィール見て面白そうな人だと思ったから」と言われました、、、(?))

正式にインターンが決まるまで

声がかかってから、Wantedlyのエンジニアの方と何回かあって話をしました。最初にあったときには、(さすがに私の経験がなかったので)何か作るか勉強した結果を見せてくれと言われました。そこで、私はMLチームを希望していたため、ML系を色々つまみ食いしました。

  • GCP使うといっていたのでCourseraでGoogle CloudのSpecializationを受けた。全部で5コースあって、1ヶ月ですべて修了した(Certificateが有料で、それが月額制だったから)。

www.coursera.org

  • Tensorflowを勉強するために論文を読んで実装して試すということをしていた。

github.com
このリポジトリは今でも結構いじっていて、画像系のモデルを色々実装してるので良かったら見てください。

これらを見せたらなんとかOKが出ました!!

インターン本番

課題

私がインターンで取り組んだ課題は、「ユーザーマッチの改善」です。Wantedly Peopleというアプリを使ったことがある人はわかるかも知れませんが、このアプリでは誰かの名刺を撮影したときに、その相手がWantedlyユーザーであればつながりを作るという機能があります。ただ、現状では本当はマッチすべきなのに読み取りミスなどによってマッチできないという例がいくつか存在していました。

私はこれを「ルールベース」、「画像ベース」の2つの方向から改善しようということに取り組みました。

ルールベースの改善

まず、これまではユーザーマッチシステムの定量的な評価をするためのまとまったデータがなかったので、BigQueryを叩いて必要なデータを集めてデータセットを作るということから始めました。そしてその自作データセットを使いながらシステムの性能、改善点を丁寧に評価していきました。次に、得られた改善点をもとにシステムロジックの変更に取り組みました。ユーザーマッチのシステムはGoで書かれており、私にGoの経験がなかったので、1日はコードとにらめっこしてGoの知識を得るということに費やしましたが、Goがシンプルな言語だったことが幸いして、次の日には少しずつ実装を始めることができました。

画像ベースの改善

これは全く新しい取り組みだったので、モデルの構築からサーバーを書くところまでやりました。これまではモデルを作って訓練して、性能を見て、で満足していたのですが、ここではレイテンシやサーバーが持つデータの容量も非常に重要で、モデルを書き換えたり、インフラチームと議論したりと大変でしたが楽しんで取り組めました。

訓練時にはGPUインスタンスを使って訓練するのですが、自分が個人開発で訓練しているときとは違い、条件を変えて何個も同時に訓練させたり出来たのは快感(?)でした。

日常生活

ランチ

Wantedlyは会社が白金にあるので、ランチが高いです(泣)。店構えからしてすごい、、、。

よく行ってた店
www.chisou-koujiya.com


最初はビビりながら行っていたのですが、日給が1.5万出ていたのでなんとかなりました(昔は日給が8000円だったと聞いて震え)。ランチは色んな人と行きましたが、みんなランチでも技術の話をしていて、ほんとに技術が好きなんだなとか思って聞いてました(レベル高くて入れない)。

話を聞いていて影響を受けることも多々あって、話に出てきた論文を探して読んでみたり、Rustを勉強し始めてみたり、知識の幅が一気に広がった気がします。

ML輪講

毎週水曜の18:00から機械学習系の論文を読む会があり、それに参加していました。

github.com

外部からの参加もWelcomeで、たまに他の企業から人が来て、自分の会社で何をやっているのかとか話を聞けて面白かったです。インターン後半に私のメンターをしてくださっている方が毎回この会で3本くらい論文紹介してて、この人(良い意味で)ヤバイなと思ってましたw。

就業時間

コアタイムはありましたが(忘れた)、みんな好きな時間に来て、好きな時間に帰るという感じだったように思います。9:00くらいから人が来始めて、10:30くらいに大体全員来る。18:30くらいから人が帰り始める、といった感じでした。

感想

初めてのエンジニアインターンだったため比較対象がないためなんとも言えませんが、私的にはWantedlyはすごくいい会社だと思いました。会社全体が自由な雰囲気に溢れていて、組織がフラットなので(誰が偉い人なのか最初2週間位全くわからなかった。。。)、誰かが何かを思いつくと色んな人がすぐに集まって議論が始まるというのは、スピード感もあってすごく魅力的に感じました。