「いもす法」発案者が挑むLLM最前線:競技プログラミングの思考法を活かす技術開発
自己紹介をお願いします。
今城健太郎です。インターネット上では「いもす」という名前で活動しています。学生時代には国際情報オリンピックやICPC(International Collegiate Programming Contest:国際大学対抗プログラミングコンテスト)に参加するなど競技プログラミングをたしなみ、大学院生時代にはAtCoderを創業するなどしました。私を知らない人も「いもす法」という名前で知っている人もいたりします。卒業後はGoogleに就職し、2018年にPFNに転職しました。
現在担当している主な業務内容や具体的な流れについて教えてください。
PFNでの仕事はその時々で変わることが多いですが、現在は主に金融関連のプロジェクトやLLM関連のプロジェクトを行っています。
金融プロジェクトでは時系列予測関連を中心に研究開発を行っています。金融時系列は基本的には予測不能であり、予測タスクの中でも最も難しいと言っても良いと思います。時系列予測でやってはいけないことを少しでもやると、すぐに儲かるように見えるため間違いに気づきやすく、とても勉強になります。一方で、時系列予測でやってはいけないことを回避した上で、なお予測可能性が安定して存在するのであれば、それがとても小さなものでも、利益につなげることができるので、色々な気づきが性能改善・利益につながる面白いタスクです。
LLMプロジェクトではトークナイザーの開発や翻訳モデルの開発などを行っています。現在のLLM開発の多くはチャットモデルを中心に開発が進んでいますが、自動化の仕組みに適切に組み込まれてこそ技術革新の要素になりえると考えています。そこで、ツール(あるいは特化モデル)として効率的に使うにはどのようにすれば良いのかというのを中心に試行錯誤しています。
数ある企業の中で、なぜPFNをファーストキャリアor転職先として選ばれたのですか? 入社前の期待や不安、実際に入社してみて感じたギャップや感想があれば教えてください。
長らくWeb系の仕事を行っていましたが、Web系の仕事はインフラからフロントエンドまで一通り触ってしまうと、それ以降はあまり代わり映えがしないと感じていました。転職当時にPFNはロボットを中心とした研究開発を行っており、現実世界を変えるような面白いことができるのではないかと思い転職を決めました。
PFNの研究開発対象は当時から変化はしていますが、今でもさまざまな企業の研究開発で困っているところを機械学習で解決することを行っており、その活動を通じて現実世界を変えるという転職当時の目標は変わらず進められていると考えています。
前職でのご経験でPFNでの業務に活かされたエピソードがあれば教えてください。
PFNの業務はドメイン知識、機械学習の知識、ソフトウェアエンジニアリングの経験など、広い範囲の知識を要求することが多いです。当然のことながらこれらすべてをできる人は限られているため、適材適所で動く必要があります。この際に、前職ではソフトウェア開発の典型パターンのようなものを多く学んでいたので、ソフトウェアの寿命を考えたソフトウェア設計の仕方や、チームの運営方法などさまざまな部分で活かせていると感じています。
競技プログラミング経験も活きる部分はあり、最近ですとAho-Corasickを改造したアルゴリズムを実装してトークナイザの高速化と省メモリ化を行いました。また、PFNに限りませんが、ソフトウェアエンジニアリングではところどころで計算量などを気をつけなければならないところがあり、これらの要素がソフトウェアの寿命を左右することがあるので、価値を感じています。
PFNだからこそ経験できる、他社では得られないことを経験したエピソードがあれば教えてください。
PFNの業務はさまざまな形があるので、学ぶ覚悟さえあれば未経験であっても新たなことができます。これは PFN Value のひとつである「 Learn or Die」 を体現しているひとつの例だと思います。例えば大きな仕事をしたいといっている人がいれば、入って間もないメンバーでもチャレンジできる体制にあると思います。社内で業務として通訳を始めたメンバーもいますし、自分自身も入った当時は未経験の金融関係のプロジェクトや翻訳関係のプロジェクトに参加しています。大手のIT企業と比べて人数が少ないため、オーナーシップが取りやすく、技術を最初から最後まで見届けられるというのも面白いなと感じます。トークナイザは一人で開発したため、細やかな実験的要素も含めて実装できましたし、翻訳モデルはソフトウェア開発からビジネス開発まで広い範囲で取り組んでいます。
.jpg)
PFNならではの社風やチームの雰囲気について、詳しく教えていただけますか?
技術が好きなメンバーがとても多いなという風に感じます。様々な専門分野の人がいるので、自分の知らない分野でも聞けば誰かが答えてくれますし、自身の分野でマニアックな話であっても盛り上がれる人がいることはとても良いなと感じます。
オフィスには至るところにホワイトボードが設置されており、アイデアを思いついたその場で書き出し、議論を始める光景が日常です。技術的な課題はもちろん、趣味の話題でホワイトボードを囲み、熱く語り合うことも珍しくありません。一見仕事と関係のない話から、思わぬ発見や新たな発想が生まれることもあります。
このような環境は、個々の技術力の向上はもちろん、アイデアの創出にも繋がっています。多様なバックグラウンドを持つメンバーがお互いを尊重し、自由に意見を交わし、知識を共有し合う。これこそが、PFNの成長を支える上で欠かせない、最大の魅力だと感じています。
今後PFNで挑戦してみたい仕事、個人的な野望などがあれば教えてください。
「Factorio」という、工場の建設を通してあらゆるものを自動化し、ロケットの打ち上げを目指すゲームがあります。このゲームは終盤に行くにしたがって、最初では考えられなかったようなすごい技術がどんどん使えるようになり、そこに大きな楽しみがあります。現在の世界はこのゲームの後半に似ていると感じる部分があります。PFNは、この進歩に必要な技術を持つ会社と研究開発を進めており、さらには現在この推進力となっている大規模言語モデルを開発している国内では数少ない会社です。日本には世界で戦えるさまざまな技術があるので、このゲームを「プレイヤーに近い場所で技術を加速させる役」として楽しめないかと考えています。
最後に一言お願いします。
一緒に技術開発を加速するメンバーを募集しています。
PFNは、「現実世界を計算可能にし、共に未来を創り出す」をミッションとし、日々真摯に向き合っている会社です。技術への飽くなき探究心を持つメンバーが集まり、困難な課題にも楽しみながら挑戦しています。
この挑戦を私たちと一緒に楽しみ、技術開発を加速して世界を動かすプレイヤーになりたいという方を心からお待ちしています。
.jpg)

