Preferred Networks

Chainer考案者が挑む:自社チップMN-Coreコンパイラの開発で新しい概念を作る

エンジニア基盤モデル/LLMプラットフォーム
得居 誠也
DSC01824 (3)

自己紹介をお願いします。

 LLM事業本部研究チームの得居です。PFN(Preferred Networks)の前身であるPreferred Infrastructure (PFI)に2012年に新卒で入社して、2014年にPFNに移りました。入社前は、修士課程で自然言語処理と機械学習を研究していました。入社してからは、分散オンライン機械学習基盤のJubatusの開発に携わり、2015年からは深層学習フレームワークChainerを考案し、開発リーダーを担当していました。2019年末にChainerの新規機能開発が終了してからは、深層学習向けアクセラレーターであるMN-Core向けのコンパイラ開発に携わっていました。2023年からはLLM事業の研究活動を少しずつはじめ、2025年からLLMの研究をメイン業務として取り組んでいます。2児の父で、プライベートは育児の割合が大きいですが、個人的な趣味としてはゲームをよくやっていて、ここ数年は『Valorant』というFPSゲームを主にやっています。

現在担当している主な業務内容や具体的な流れについて教えてください。 

LLM事業における研究チームのマネージャーとして自分でも研究活動を行いながら、短期・中期・長期と異なるタイムスパンでチームとして何を目指して研究していくのかを、メンバーと議論しながら決めるのが自分の主な仕事です。LLMは、研究と応用の距離がこれまでに接したどの分野よりも近く、研究チームのみでなく、事前学習や事後学習、推論最適化など他のチームも論文を参照して最新の手法をキャッチアップし、ときには既存研究がない新しいアプローチを試すなど、事業部全体の研究色が強いのが特徴です。その中でLLMの実務パイプラインから独立している研究チームでは、より長期的な目線を持つことが求められています。そういった背景から、長いタイムスパンで課題に取り組むことになります。週に3, 4回ほどディスカッションの時間を設け、そこで直近で取り組む方針について議論したり、読んだ論文について共有したり、実験結果を共有したりしています。自分含めチームメンバーは、それぞれ1~3ヶ月に1回のペースで直近の研究内容をドキュメントにまとめて社内ブログとして全社に共有しています(この辺りの取り組みは試行錯誤の真っ最中です)。社外での発表は、LLM研究チーム単独としては発足して日が浅いこともありまだ実績がありませんが、今後取り組んでいこうと思っています。研究フェーズによって働き方は柔軟に変わっていくだろうなと考えています。

 また、並行してMN-Coreコンパイラチームにもゆるく参加しています。具体的な開発には現在携わっていませんが、自社チップの存在は研究の方向性にも大きく影響を与えるため、最新事情をキャッチアップするためミーティングにちょこちょこ参加しています。このようにチームを横断して活動するメンバーもたくさんいます。

 数ある企業の中で、なぜPFNをファーストキャリアor転職先として選ばれたのですか? 入社前の期待や不安、実際に入社してみて感じたギャップや感想があれば教えてください。

 修士1年の夏休みに他社のインターンに参加していたときに、たまたま同じチームだったインターン同期がPFIでアルバイトをしていて、それをきっかけに興味を持ちました。当時は会社の規模が現在の1/10よりも小さかったので、今のPFNに対して入社前に抱くであろうイメージと異なるかもしれませんが、他に検討していた大企業と比べて個人が会社に与える影響が圧倒的に大きいと感じ、実際に入社してからもそれは変わりませんでした。その後会社の規模は当時と比べると大きくなりましたが、いまだに個人が任せられる範囲は広く、きちんと成果を出せれば会社に与えるインパクトは今でも大きいと感じています。

学生時代に学んだことで業務に活かされたエピソードがあれば教えてください。

自分は機械学習専攻からの新卒入社ですが、修士課程での研究経験は入社後に想像をはるかに超えて役立っています。今でこそ研究チームで働いていますが、これまでに所属したチームはもっと開発寄りのチームが多く、業務内容としてはコードをよく書いてきた方だと思います。それでもPFNは深層学習を中心的な技術の一つとして扱っていることもあり、最新の研究成果が業務に関わってくる場面が非常に多く、そういった場面で携わる分野の技術を基礎から理解していることによるアドバンテージをよく感じていました。例えば、MN-Coreコンパイラの計算対象である機械学習モデルがどうしてそういう計算をするのか、どの部分は計算をサボってもよくて、どの部分は本質的に回避できない計算なのか、といったことが理解できるかどうかで取れるアプローチの幅やデバッグにかかる時間が大きく変わってくる、といった場面を何度か見てきました。PFNは深層学習に限らずコンピュータ科学、数学、物理学、化学、生物学など専門分野の深い知識が役に立つ場面が多い会社なのではないかと思います。

PFNだからこそ経験できる、他社では得られないことを経験したエピソードがあれば教えてください。

 今の業務とは異なりますが、深層学習フレームワーク「Chainer」の開発はPFNだからできた活動だったと思います。最初は思いつきで作ったおもちゃのようなコードでしたが、その後数年にわたって携わることになったのは、基礎的な技術を自分たちで制御することの重要性が理解されていたからです。当時は深層学習フレームワークが乱立しており、どれも一長一短という時代でしたが、そういった混沌としたところにアイデアと開発力で飛び込んでいくというのはPFNで度々見られる展開で、Chainerはその一つでした。作ったものが社内だけでなく社外でも広く使われるというのは、この規模の会社ではなかなか経験できないことだったと思います。

より最近の話題としては、MN-Coreコンパイラの開発はPFNならではといえます。MN-Coreは既存のアクセラレーターと異なるアーキテクチャを持っていて、コンパイラ開発においては新しい概念を作っていくことが度々求められます。自分もTensorLayout(MN-Coreの階層的なメモリ構造に多次元配列の要素を割りつけるためのレイアウト表現)などMN-Coreのアーキテクチャをよりユーザのプログラムに近い領域で抽象的に捉えるための概念を作ったりしましたが、こういう活動は研究に近く、それがチームの枠を超えて共通言語として使われる様子を見るのは楽しいです。

PFNならではの社風やチームの雰囲気について、詳しく教えていただけますか?

PFNは、チームによって雰囲気が違うところがある印象ですが、これまで一緒に働いてきたメンバーには原理原則に立ち返ってプラクティカルな判断をしようとする人が多かったように感じます。原理原則といっても色々なレイヤーがあって、例えば自分たちが依存しているソフトウェアについてであればソースコードや仕様に立ち返る場面がよくあり、公開されている範囲ならどこまででも掘っていくという姿勢があります。開発の進め方では、一般に定石とされているようなアプローチであってもそのまま採用するよりは、どういうモチベーションが背後にあるか分解して考えた上で、チームの状況に照らし合わせて最適なアレンジをして使うことが多いです。道具や方法論に対するこうした態度は伝染するところがあると思っていて、ゆるくPFNの文化を作っているような感じがします。

今後PFNで挑戦してみたい仕事、個人的な野望などがあれば教えてください。

LLMに関する研究で一つ分野を築きたいというのが当面の野望です。PFNは技術を基礎の基礎から作っていく会社だと思っていますが、最新技術を実装していくという側面においてはかなり達成されている一方で、機械学習においてモデルやアルゴリズム自体の基礎を研究レベルから作っていくという活動はまだできていない現状があります。これを達成して、継続していけるようなチームを作っていきたいです。

最後に一言お願いします。

 PFNは幅広いレイヤーの技術やドメインを扱っている会社です。技術力で勝負するためには、その技術が好きであることが何よりも大事で、そのために躊躇なく全力を出すことができれば、そこから世界が広がっていきます。皆さんが好きなことのために躊躇なく飛び込んでいくその先にPFNがあることを願っています。

SHARE
XFacebookLinkedIn

採用に関する不明点はこちらをご確認ください