第23回 「世界最速で最高を目指す」リサーチエンジニアの仕事とは?

「世界最速で最高を目指す」リサーチエンジニアの仕事とは?
Seattle IT Japanese Professionals

この方にインタビュー:
鈴江豊さん
日本の大学で数学科を卒業した後、日本マイクロソフトで Windows を開発。1993年に渡米し 、Microsoft 本社にて引き続き Windows に携わる。2007年に Microsoft Research に異動し、リサーチエンジニアとしてさまざまなプロジェクトに取り組んでいる。

Microsoft のミッションは、「世界中の人々や組織の可能性を引き出すこと」。この哲学を一番よく体現しているのは、毎年のように革新的なアイデアを発表する同社の研究部門 Microsoft Research ではないでしょうか?そのアイデアの中には、プロダクトとなって世界中の人々に届けられるものもあります。今回は、そんな革新の中心地で働くリサーチエンジニア、鈴江豊さんにお話を伺いました。

インパクトがあって面白いことをやる。

Microsoft Research でのこれまでの仕事について教えてください。

10年前に Microsoft Research に来た当時は Distributed system の研究をしていました。たくさんのマシンを使ってウェブをクロールしたり、データマイニングしたり。リアルタイムでウェブサイトをインデックスするサーチエンジンの研究もしました。Tech transfer と呼ばれますが、研究したものの中には実際にプロダクトに使われたものもあります。

Distributed system にしばらく取り組み、ネットワークやデータセンターで経験を積んだ約5年前、Sort Benchmark に取り組みました。1分間にどれだけのデータをソートできるかというコンペティションです。ある研究者が持っていたアルゴリズムのアイデアと、私が蓄積した知識とあわせて挑戦しました。当時は Yahoo が500GB の記録を持っていましたが、私たちが 1,401GB で世界記録を更新しました。マイクロソフトにいると、単に研究をして Tech transfer をして、というだけでなく世界を相手に競える機会があるので面白いです。

また、もともとキーボードなどのインプットデバイスが好きで、スワイプキーボードにも取り組みました。当時主流だった Hidden Markov modelGaussian mixture model といった手法から外れて、Dynamic time warping を使ったらどうかというアイデアがありました。手書き入力は時系列データですから面白いと思って、バーッとコードを書いてみたら案外速くて最終的にギネス記録まで取ることができました

Microsoft Research では今すぐに役に立つかどうかはっきりしなくても、確実にインパクトがあって面白いアイデアであれば、チャンスをもらえることがあります。まだ始めたばかりですが、今はロボットのプロジェクトに携わっています。

「世界最速で最高を目指す」リサーチエンジニアの仕事とは?

アルバイトからソフトウェアの本場、アメリカへ。

数学科出身とのことですが、ソフトウェアに携わるようになったきっかけを教えてください。

純粋数学をやってみたくて数学科に進みましたが、アルバイトでプログラムを書いていました。いざ就職という段になって、日本マイクロソフトを求人誌で見かけ応募しました。今思うと当時はコンピュータのことを全然理解していませんでした。ただ、 Windows のチームに入ったので、どうやってブートして、バーチャルモードに入って、GUI が初期化されて、ということをソースを読んですべて理解できたことが面白かったです。こういうものがあるのかと。

何をきっかけに Microsoft 本社に移られたのですか?

Windows95です。日本の開発はみんな引き上げて、アメリカに行って作ってこいと言われて。その頃の Microsoft はまだまだ小さい会社でしたが、本場の連中と一緒に仕事をすることにワクワクしました。

いきなり渡米されて言語の壁は大変ではありませんでしたか?

伝えなきゃいけないときは四苦八苦してでも伝えます。英語は今でも苦手ですが、英語の学習よりもマシンラーニングやロボティクスに集中したいです。誰もやったことのないことをやろうとしているわけで、私にとってはそちらの方が本質的な問題です。アメリカに2年もいたらペラペラになるじゃないかと思っていましたが、大嘘でした(笑)。

最速で最高の Accuracy を出す。

最近ロボットに取り組み始めたということですが、次はロボットの時代が来ると思いますか?

それも期待しています。でも、純粋に面白そうじゃないですか。ドラえもんやアトムに憧れていましたし。産業用ロボットはすごく発展していて実用化もされていますが、ドラえもんのような自律ロボットは見かけません。もっと周りにいるようになってもいいんじゃないかなと思います。その瞬間に立ち会いたいですね。

生きている間にできそうですよね。

やっている本人はみんなできると思ってやっています。ロボットに限らず、研究者はみんな「絶対できる、今できていないだけ」と信じて疑いません。私もそうです。

ロボットの前はニューラルネットワークに携わっていました。ニューラルネットワークも始めた時は半信半疑でしたが、実際に動かしてみるとうまく機能する。Google が「人工知能が猫の顔を認識した」という成果を発表したのを皮切りに、ディープラーニングの研究が本格化しましたが、私も Distributed system で ImageNet 専用の巨大なニューラルネットワークをスクラッチから書きました

当時は毎週のように記録が更新されて面白かったですよね。傍から見ていて面白かったです。

面白かったですよね。やってる方は必死でしたけど(笑)。目標よりもいい Accuracy を出した時は痛快でした。あの頃 GPU がいいとか CPU がいいとか、いろいろ議論がありましたが、私たちは理由があって CPU にしました。

22000クラスの巨大なデータをロードし、何10億というニューロンのような巨大なモデルを計算させるとなると、複数のマシンをネットワークで繋がなきゃいけない。そうすると CPU で直接計算する方が GPU のメモリからロードするオーバーヘッドをまかなえると考えました。では、どうやって CPU を最適化するか。アセンブラで書いちゃう。Cで書くといちいちスタックフレームを作るのでメモリアクセスする分だけ遅れます。

わずかな差ですが、ループの中で何億回とアクセスすると違いが出てきます。「最速で最高の Accuracy を出す」というゴールがはっきりしていたので手段は選びませんでした。結果がすべてで、どうやったかなんて誰も気にしません。公道では使いづらいけど、サーキットでは速い F1を作るのと似ているかもしれませんね。

アイデアが湧いてこないときは、どのように対処しますか?

湧くまで考えます。ずっと考える。たいていの場合は無駄な時間になりますよね。それでも一日中考えています。すみません、これでは質問の答えになっていないですね。でも、いいアイデアが出るのは年に数回程度の話ですから、しようがありません。

もうひとつの方法は、考えるのをやめるということ。昔、コンピュータの広告で 『Think Different』 というのがありましたが、そんなの無理ですよ。むしろ、Think later。とりあえずやってみる。動かないのがわかっていて、とりあえず書いてみる。そうするとやっぱり動かないのですが、アイデアが湧くこともあります。とにかくやってみる。問題の方をずっと向いていればいいんじゃないでしょうか。私も夜中の2時とかにパッと目が覚めてひらめくことがあります。すぐ会社に行くこともありました。こんな生活ができるのも、幸せなことだと思います。

やりたいことを明確に。

Microsoft Research で働きたい場合、どのようなキャリアパスが一般的ですか。

リサーチャーになりたかったら、Ph.D を修了し、インターンシップで来て、気に入ったらインタビューを受けるというのが一番多いと思います。Microsoft に毎年来てもいいし、Google や Yahoo などあちこち行って戻ってくる人もいます。

エンジニアになるのも基本的には同じです。経験を積んで、スキルを磨いてインターンシップを受ける。何かのエキスパートになりたいという人もいれば、最先端の技術の間近にいて、世の中に出していきたいという人もいます。何をやるにしても、これだけの下地があるから、最先端の仕事に関わりたいと言って自分を売り込みます。

実際に入社する人でも「Microsoft Research に入りたい」と言って来る人は多くありません。たいていの人はやりたいことやアイデアを持っていて、それを実現できる場所がここだったという感じです。もちろん、いろいろな人がいるので、一概には言えませんけど。

空いたポジションは Microsoft も社内外から同様に募集されますか?

すべて一般公募で、careers.microsoft.com からまったく同じものがすべて見られます。ですから世界中から優秀な人が来ます。とてもいい環境ですよ。私も以前はプロダクトチームにいましたが、途中でリサーチに応募して移りました。

リサーチエンジニアを目指している学生にアドバイスをお願いします。

Microsoft Research に入ってくるような人たちにアドバイスなんていらないでしょう。いきなり本題のディスカッションをします。偉そうなことを言える立場ではありませんが、やりたいことを明確に。そういう人たちが来ています。彼らにアドバイスする必要なんてないし、向こうからも私なんかには求めて来ません。年月だけでいったら私の方が経験があるかもしれませんが、皆さん最先端のコンピュータ・サイエンスを大学でみっちり勉強してきたわけでしょう?十分真剣にやってきたわけですから、今さら人にアドバイスなんか聞くか、っていう感じでいいんじゃないでしょうか(笑)。

ありがとうございました。

取材を終えて:
わたし自身が研究者志望ということもあり、共感すること、勉強になること、憧れること、などなど盛り沢山のインタビューでした。特に、世界最速最高を目指して技工を凝らすという職人魂にはしびれます。これから Microsoft Research 発のロボティクスの研究成果には要注目です!鈴江さん、この度はお忙しいところ、世界最先端の研究の世界を垣間見せていただき、本当にありがとうございました。

取材・執筆:有賀康祐
Seattle IT Japanese Professionals 学生部テック担当。ワシントン大学にてコンピュータ・サイエンスを専攻し、AI やロボティクスを研究中。

掲載:2017年3月

この記事は、参考情報の提供のみを目的としており、法的その他の専門的助言を提供するものではありません。この記事に記載する情報に基づくいかなる行為およびその結果について、筆者および SIJP は一切責任を負いません。また、掲載内容は対談者個人の見解であり、所属する企業を代表するものではありません。

コメント

この記事にコメントする

※コメントは承認制です。公開までに時間がかかることがあります。
※弊社へのご連絡にはお問い合わせフォームをご利用ください。コメント欄はご使用になれません。
※内容によって掲載をお断りする場合もありますので、あらかじめご了承ください。

「ひと」の新着コメント

このカテゴリーのコメントはありません。