Kaggle Competitions Grandmasterが挑む:フルスクラッチLLM「PLaMo」を最強にする、事後学習という最重要ミッション
自己紹介をお願いします。
中鉢魁三郎です。私は 2019 年に新卒で PFN にエンジニアとして入社しました。
大学では情報科学を専攻し、アルゴリズムや機械学習の研究を行う傍ら、ICPC や AtCoder などの競技プログラミングや、Kaggle などのデータ分析系のコンペに精力的に参加していました。Kaggle への参加は PFN に入社した後も継続していて、会社の計算機資源を使わせてもらったり、優秀な同僚とチームを組む機会に恵まれたこともあって、最高 Tier の Competitions Grandmaster を獲得しています。
入社後は、インダストリー分野で機械学習を用いたソリューションを開発する部署で、石油化学プラントの自動・最適運転プロジェクトや、リモートセンシング関連のプロジェクトに携わりました。その後、大規模言語モデル (LLM) 開発を行う部署に異動し、現在は LLM の事後学習に取り組んでいます。
現在担当している主な業務内容や具体的な流れについて教えてください。
今は PFN がフルスクラッチで開発している LLM である PLaMo の事後学習を行うチームのエンジニアリングマネージャー (EM) をしています。
事後学習というのは、事前学習により訓練データの分布に従って文章が生成できるようになった LLM を、有用性・正確性・安全性といった観点からユーザーにとって好ましい文章を生成するように Fine-Tuning するプロセスです。PLaMo が広いタスク・ドメインで活躍できるように、特定のタスクに限らず幅広い下流タスク・観点での性能を向上させることがチームの目標になります。
これを達成するために、LLM の下流タスクでの能力を評価する方法を検討し、その評価結果を元にデータや学習手法を改善していくというのが主な仕事内容になります。Kaggle のようなデータ分析コンペを設計して、そのタスクを解いていく、というプロセスに似ていて、Kaggle での知見が役に立つことも多いです。
我々のチームにおける EM は、”技術的なリード” と “人のマネジメント” を行う役割なので、チームの代表として技術的な意思決定を主導したり、チームメンバーが活躍できるような環境をつくっていく仕事も行っています。リードと言っても個々の技術については他のメンバーのほうが詳しいことも多いので、適宜チーム内外のメンバーを専門家として頼りながら意思決定を行っています。意思決定や環境づくりにはチーム外の状況も重要になるので、上司や他のチームのメンバーとのやりとりも積極的に行っています。
数ある企業の中で、なぜPFNをファーストキャリアor転職先として選ばれたのですか? 入社前の期待や不安、実際に入社してみて感じたギャップや感想があれば教えてください。
インターンで実際に働いてみた経験が大きかったかなと思います。インターンに参加するまでは、競技プログラミングの伝説的なメンバーや Kaggle の Gradnmaster が複数在籍している凄そうな会社だが実際に何をやっているのかはよくわからない、くらいの解像度でした。インターンを通じて、インダストリー分野での機械学習や数理最適化の実応用を進めている側面を知り、自分のプログラムで実際にものが動いて課題解決に役立てられる、というところに魅力を感じて PFN への入社を決めました。
会社やチームの雰囲気もインターンで知ることができていたので、入社前の不安といえば、果たして実際の業務で活躍できるんだろうか... ということくらいでしたね。今採用をする側の立場になって思うのは、採用する側も “この人なら活躍できる” と思って採用を決めているので、そこは採用プロセスに関わった人を信じて楽観的に居て良いのかなと思います。
Kaggleでのコンペティションでさまざまなご実績をあげられていますが、Kaggleでのご経験が業務に活かされたエピソードがあれば教えてください。
私は新しい技術のキャッチアップを一つの目標にしてコンペに出ることが多いので、コンペでやったことが後々役に立つ、ということが多々あります。例えば、業務でSAR画像の重要領域検出を行った際には、Kaggleの画像系のコンペや、SpaceNet と呼ばれる衛星画像分析のコンペで培った知見がほぼそのまま役立ちました。ラベルノイズやラベルの偏りにより素朴な手法ではほぼ分類できないようなタスクでしたが、これらの知見を活かして定性的にも大きな改善が得られ、プロジェクトを前に進めることができました。また、LLM のコンペを通して実践的に学んだ LLM や関連ライブラリの実装に関する知識は、今の LLM 開発の部署に異動した際のキャッチアップに大いに役立ちました。
インターン向けにデータ分析コンペを企画・運営したこともあります。時系列要素のあるタスクでしたが、Kaggle で痛い目を見た経験から、train/test での分布の変化や時系列情報の leak などの典型的な落とし穴を避けた問題設定をすることができました。このコンペはインターン生の尽力も有りすばらしい成果に繋がりました。
業務では扱わないようなドメインやタスクのコンペであっても、取り組み方そのものの改善というメタな形で役に立っていると感じることも多々あります。闇雲に良いとされている手法を適用するだけでなく、エラー分析をしてどんなデータでうまくいっていないか確認し、その原因の仮説を立てる、というのは Kaggle において非常に大切なプロセスですが、広く色々な仕事で役に立つ考え方でもあると思います。また、Kaggle は締切が明確に設定されているので、限られた時間の中で、いま何に時間を割くべきかを適切に意思決定していく必要があり、そのやり方を Kaggle のような失敗しても失うものがない環境で試行錯誤できた経験は、いまの EM としての仕事の中でも役に立っているように思います。
PFNだからこそ経験できる、他社では得られないことを経験したエピソードがあれば教えてください。
PFN だからこそ挑戦できた課題というのは数多くあるように思います。例えば、入社してから数年間取り組んでいた石油化学プラントの自動・最適運転のプロジェクトは、非常に大規模かつ複雑なプラントを扱うため、本来であれば実機を動かすというのはとてもハードルの高い取り組みですが、腰を据えて研究開発に取り組み、協業してくださっている企業様との信頼関係を築きながら課題解決を積み重ねていくことで、世界に先駆けた AI 技術による大規模なプラントの自動運転を達成することができました。
今取り組んでいる LLM の事後学習も、そもそもフルスクラッチで LLM を開発するという思い切った bet をしている会社でないと行わないプロセスなので、他社では得難い経験と言えるのかなと思います。LLM 開発を研究や検証に留めず、実際に広く使われるものにしていくのはとても挑戦的な課題ですが、それを現実的な目標として掲げて研究開発していけるというのは、大きなやりがいを感じます。
.jpg)
PFNならではの社風やチームの雰囲気について、詳しく教えていただけますか?
PFN は “チップ、計算基盤、生成AI基盤モデル、ソリューション・製品まで全部やる” 会社なので、コンピュータの上から下まで色々なレイヤーの専門家がいます。応用領域についても、Manufacturing、Materials informatics、Life Sciences、Retail、Finalce など非常に多岐にわたっています。400人に満たない規模の会社で、これだけ多様な専門性を持っているというのは PFN の特徴的なところの一つだと思います。
また、その多様な専門性を支える企業文化として、継続して学んでいく、ということをとても大事するという価値観が浸透しているのも PFN の特徴的なところだと思います。Value として掲げられている “Learn or Die” という標語は、初めて見る方は Die という強い言葉にぎょっとしてしまうかもしれませんが、そういった “学び続けよう!” という気持ちを表した前向きな言葉として社内で広く受け入れられていると感じます。
今後PFNで挑戦してみたい仕事、個人的な野望などがあれば教えてください。
今はやはり、弊社が開発している LLM の PLaMo を最強にすることですね!何らかの形で、多くの人に日常的に使ってもらって、多くの価値を生んでいくようなものにしていく、というのは数年以内に達成したいと思っています。
より長期的・個人的なところでは、地方出身者として、地方に住んで豊かに暮らしていくということを持続可能にすることにはとても興味があります。我々が扱っている AI の技術がその一端を担える可能性は十分あると考えていて、防災、行政の効率化、インフラの最適化など、地方も含めた日本全体に貢献できるような技術の開発に携わっていけると嬉しいなと思っています。
最後に一言お願いします。
PFN には、皆さんのこれまでの経験や知識を活かせる多様な活躍の場があります。少しでも興味を持たれた方は、ぜひカジュアル面談や選考にご応募ください。皆さんとお会いできるのを楽しみにしています!
.jpg)

