アカデミック領域へのキャリアチェンジで見えたもの
ーリサーチエンジニアとして掴んだ手応えと描く未来ー

技術・デザイン

「同じ社内での異動なのにまるで転職したような気分だった。」
そう話すのは、AI技術の研究開発組織「AI Lab」でリサーチエンジニアとして活躍する新卒3年目の芝田。

入社後「AbemaTV」で動画配信システムの開発を行っていた芝田が、さらなる技術力を磨くべくチャレンジの場として選んだ「Al Lab」。
そして現在、唯一の社外コミッターとして「Optuna※」の開発に関わったり、国際会議「The Web Conference 2020」の論文採択に貢献するなど、次々と実績を出していく彼に、アカデミック領域への挑戦の真意や、エンジニアとしてのキャリアの築き方を聞きました。

※Preferred Networks社が提供するハイパーパラメータ自動最適化フレームワーク   目次

チャレンジの決め手は、
論文を読み知識を積み上げる技術の磨き方

芝田 将 (シバタ マサシ) GitHub: @c-bata 
2017年サイバーエージェントに新卒入社後、AbemaTV 配信チームにて動画配信システムの開発に携わる。2019年4月よりAI Lab リサーチエンジニアとして研究開発に従事。共訳書エキスパートPythonプログラミング改訂2版。go-prompt, kube-prompt開発者。Optunaコミッター。
芝田 将 (シバタ マサシ) GitHub: @c-bata
2017年サイバーエージェントに新卒入社後、AbemaTV 配信チームにて動画配信システムの開発に携わる。2019年4月よりAI Lab リサーチエンジニアとして研究開発に従事。共訳書エキスパートPythonプログラミング改訂2版。go-prompt, kube-prompt開発者。Optunaコミッター。

 ──今までの経歴や、サイバーエージェントに入社してからの仕事について教えてください。

学生の頃は、WSGIフレームワークの開発や、エキスパートPythonプログラミング改訂2版の翻訳などPythonエンジニアとして活動していました。当時からPythonのスキルセットを活かして機械学習エンジニアの道に進むことを考えたこともあったのですが、サーバーサイドのコーディングをしている時間がとにかく楽しくて、大学院には進まず2017年に新卒でサイバーエージェントに入社しました。入社の決め手は「AWA」などの音楽・動画のストリーミングサービスを運営していて、その技術的な難易度の高さに惹かれたことです。

入社後は「AbemaTV」の配信チームに加わり、主に納品映像コンテンツのトランスコーダーや、HLS (HTTP Live Streaming) / MPEG-DASHの配信サーバーを開発していました。当時は自分を入れて3人しかいない小さなチームでしたが、「AbemaTV」では配信システムの多くのコンポーネントを内製していたため、タスクの幅は広く技術レベルの高いチームだったと思います。

 ──とても貴重な経験ですね。「AI Lab」※への異動はどのようなきっかけが?
※人工知能(AI)を活用した広告配信技術の研究・開発組織

Misreading Chat」という自分が一番好きなPodcastがあるのですが、そのPodcastではGoogleに勤めるエンジニアの方が楽しく論文を紹介してくれます。技術の多くを書籍やコードから学んできた自分にとって、そこでの話はいつも新鮮ですごく面白くて、日々論文を読みながら知識を積み上げている彼らの技術の磨き方がかっこいいなと思っていました。そんな中で、AI Labのリサーチサイエンティストである同期の野村から、彼の研究内容であるハイパーパラメーター最適化をはじめとするAutoML技術の活用を進めていくために、研究を理解し品質の高いソフトウェア開発に取り組めるエンジニアを探している、と連絡がありました。正直なところ研究実績の豊富な研究者が集まるAI Labに、サーバーエンジニアの自分が必要とされるポジションがあることに驚いたのですが、話を聞いているとスキルセットも興味領域も自分にぴったりだなと思ったんです。

とはいえ、「AbemaTV」で経験している希少価値の高い配信チームのポジションを抜けるのが、自分にとってプラスなのかはやっぱり悩みましたね。動画の技術領域は本当に広く日々進歩していて、学ぶべきことはまだまだたくさんあります。しかしその一方で、論文を読み、優秀な研究者から知識を吸収できるAI Labでの仕事は願ってもない話でした。客観的に見ても学部卒のサーバーサイドエンジニアがキャリアチェンジをして研究組織で働くことは、大学院に進学して研究実績を作らない限り難しいと思っています。「AbemaTV」の配信チームの上長にも相談し、しばらく悩んだ末、AI Labでチャレンジすることに決めました。

AI Labへの異動は周りからも結構驚かれました。AI Labでの新しいチャレンジもそうですが、AbemaTV時代も貴重なポジションを経験させていただいていたと思います。エンジニアとしてのキャリアを築いていく上で、他とどう差別化するかは重要な要素の1つだと思うのですが、AbemaTV 配信システムの開発経験も、AI Labの今のチームで積み上げている機械学習の知識も、両方とも自分の強力な武器になっているように感じます。チャレンジする分野が大きく変わったので、同じ会社内なのに、まるで転職したような気分でした。

写真右が芝田。
写真右が芝田。

アカデミック領域で改めて見出す、今までの経験を生かした強み

 ──AI Labにジョインして感じたことはありますか?

AI Labに来てから求められる知識がガラリと変わりました。AbemaTV時代はサーバーサイドエンジニアとして動画ストリーミングプロトコルや動画コンテナフォーマットの仕様書を読んでいましたが、AI Labではベイズ最適化や多腕バンディットベースの早期停止アルゴリズムの論文を読んだりしています。学生時代に読んでいた線形代数や確率統計の本も読み直すようになりました。2年間数式に触れていないとこんなに頭から抜け落ちているものなのかと少しショックでしたね (笑)。まだこのタイミングでアカデミックの領域に来ることができたのは自分にとって幸いだったのかもしれません。野村の知識量には今でも圧倒されますが、彼や他の研究者から機械学習の知識を吸収できる今の環境がとてもありがたいです。

取り組む内容が大きく変わった一方で、これまでの経験や知識が役に立つこともたくさんあります。その1つは高速化のための最適化です。
機械学習は特に高速化が重要になりやすい分野で、他のチームではベースラインの手法の再現のために研究者が実装した機械学習モデルが遅すぎて実験を回せないみたいなこともありました。相談を受けた自分が入ることでCythonの最適化が効きやすくなるようにコードを修正し、解決したケースもあります。もちろんAbemaTVでも大量のトラフィックをさばくために気にしないといけないことは多くありましたが、サーバーシステムではシステム設計の観点でボトルネックを作らないことが重要になりやすかったように思います。一方で機械学習のコードでは、限られたリソースをとにかく効率的に使い切るため、コードレベルの最適化に特に目を向ける機会が多く、これまでとはまた違った面白さがありました。

 ──現在取り組んでいることを、具体的に教えてください。

担当業務の1つは、野村と二人三脚で取り組んでいるハイパーパラメーター最適化やAutoML技術の研究開発、およびそのプロダクト導入です。

ハイパーパラメーター最適化は、機械学習モデルがその性能を発揮するために重要なプロセスの1つです。AI事業本部は運用している機械学習のシステムも多く、今後もAIを主軸としたプロダクト開発に力を入れていきます。その中で機械学習システムの構築に必要なすべての工程をデータサイエンティストが行ってしまうと、あまりにも多くのコストがかかってしまい効率も落ちます。こういった機械的な作業の多くはエンジニアにとって退屈なものですが、多くの機能開発を抱えているプロダクトでは自動化したくてもなかなか手が回らず、ずるずるとそこに時間を費やしてしまうケースは珍しくありません。

画像や自然言語を扱うクリエイティブの生成系タスクにおいては、最適化するべき指標の設計が難しくまだまだ自分たちが貢献できていないプロダクトもありますが、プロダクトのデータサイエンティストがより本質的な課題にのびのびと取り組めるように積極的に多くのプロダクトと関わって改善していきたいと思っています。AutoMLやハイパーパラメーター最適化については、野村とともに「PyCon JP 2019」で登壇した際にお話させていただいたので、興味がある方はチェックしてみてください(資料等のリンクはこちら)。
 

リサーチエンジニアとしての大きな2つの実績
ーOptuna社外コミッターとしての活動、研究論文への貢献ー

 ──Preferred Networksのハイパーパラメータ自動最適化フレームワーク「Optuna」の社外コミッターもされていると聞きました。

AI Labでの業務を行う中で、既存のハイパーパラメーター最適化ライブラリのコードをいくつか読んでみました。その中でも機能面や実装品質の高さに惹かれたのは、「Optuna」と「scikit-optimize」です。特にOptunaは設計の見通しも良く、当時から実用的な機能が揃っていました。納得のいくものがなければ自分で新しくライブラリを作ってしまうつもりでしたが、あまりにも気に入ってしまいGo言語にも移植したくらいです (GitHub: c-bata/goptuna)。

そんなOptunaもすべての用途に対応できているわけはありません。例えばガウス過程をベースとしたベイズ最適化手法や以前公開したCMA-ESという進化計算手法を実装する際に、当時は設計上の問題を抱えていました。適宜フィードバックやPRを送っていましたが、Optunaの開発は非常に活発で先程の例を含む多くの課題がすでに解消されています。

最近では社外コミッターとなり、Optunaコア開発チームとより密に連携して動けるようになってきました。規模の大きい機能や設計変更は、どうしてもコア開発チームとのコミュニケーションが必要なので、こうやって開発に参加させていただいてるのはチームでの活動を踏まえるととてもありがたいです。この分野の素人だった自分が今こうしてOptunaチームと議論を重ね開発に参加できているのは、ブラックボックス最適化を叩き込んでくれた野村と、Optunaチームのサポート体制や配慮のおかげです。
論文を読みアカデミックの知識を吸収しながらOptunaの開発に参加できていることは、自分のキャリアやスキルセットの点でも大きな自信の1つになりました。

 ──他チームの研究の実装や開発にもどんどん積極的に関わっているそうですね!

AI Labに来てから、社内で難しい実装に困っている人を見かけたらとりあえず声をかけていました。
経済学チームやDynalystが中心に進めていた論文「A Feedback Shift Correction in Predicting Conversion Rates under Delayed Feedback」がWeb・データマイニング分野でのトップカンファレンスの一つであるWeb Conferenceに採択されましたが、自分の名前が共著者の1人に入っているのもこういった活動の1つです。

経済学チームが提案した手法の実現には、LIBFFMへの機能追加が必要でした。しかしC++で実装されたそのコードには、SSE(IntelのCPUに搭載されているSIMD演算のための拡張命令セット)のintrinsicsがふんだんに使われていて、低レイヤーの最適化に慣れていない研究者には読むことすらなかなか難しいコードです。プログラムを読める自分がFFM (Field-Aware Factorization Machines)の論文を読み、経済学チームと認識をすり合わせつつ機能追加を行ったことでプロジェクトの進行がスムーズに運びました。リサーチエンジニアとして研究チームとプロダクトの橋渡しができた今回の事例は、自分にとっても非常に嬉しい体験の1つです。

 ──最後に、今後のビジョンについて教えてください。

手法やアルゴリズムが重視されやすい研究組織と、実装品質やメンテナンスコストが重視されやすいプロダクトの間には、どうしても溝ができてしまうことがあるかと思います。リサーチエンジニアはAI Labの中でまだまだ珍しいポジションですが、研究者とプロダクトの開発者の間に立って双方と対話できるエンジニアの存在は、両者の溝を埋めるうえで必要不可欠だと思っています。また技術的な成長という意味でも、日々論文を読み知識を積み上げ、品質をとことん追求したソフトウェア開発に取り組めるリサーチエンジニアというポジションは、人一倍技術への興味が強い自分にぴったりでした。
今後はより多くの研究課題に関わりながら、ソフトウェアの実装を通して知識を吸収し、エンジニアとしての幅を広げていきたいです。



2021年度新卒採用 エンジニアコース本選考
2021年度新卒採用 エンジニアコース本選考の募集を受け付け中です。
特設サイトを是非ご覧ください。

この記事をシェア

新卒採用の公式SNSをフォロー

  • Facebook
  • Twitter

データ駆動開発がもたらす「ABEMA」開発現場の姿

技術・デザイン

潜在的ニーズを開拓する新しい形のレコメンド

「ABEMA」では、ユーザーとコンテンツの距離をより近づけるべく、データ活用の強化を進めてきました。快適な視聴体験を届けるために「ABEMA」の開発チームはいかにデータを駆使しているのか、またどんな構想を描いているのか、聞いてみました。

記事ランキング

Page Top