本文へ移動

成果を出すための方程式は、KaggleとVLM開発で似ていた

この記事に登場する人
自動運転AIグループ VLAチーム
横井 慎吾 Shingo Yokoi
新卒でSIerに入社し、産業医や製薬会社向けのシステム開発に携わる。その後、日鉄ソリューションズに転職し、Deep Learningやデータ分析関連のプロジェクトを経験。同社在籍中にKaggleに取り組みGrandmasterとなる。2024年12月にチューリングに入社し、基盤AI開発に取り組む。「GENIAC」第2期の支援のもとに開発したVLM(Vision & Language Model。以下VLM )「Heron-NVILA」日本語のベンチマークにおいて優れた性能を示している。

画像と言語を統合して理解するVision-Language Model(VLM)の開発は、チューリングが目指す自動運転の実現において中核をなす技術です。

2024年11月にチューリングに入社したKaggle Grandmasterの横井さんは、経済産業省およびNEDOが推進する日本の生成AIの開発力強化に向けたプロジェクト「GENIAC」第2期の支援のもとに開発したVLM「Heron-NVILA」に携わりました。

なぜ、横井さんはチューリングに入社し、どのようにVLM開発を進めているのでしょうか。開発現場の難しさと面白さ、チューリングで働くやりがいについて話を伺いました。

深層学習、KaggleにハマったキッカケとGrandmasterへの道のり

ーーー横井さんのこれまでのキャリアについて教えてください。

横井さん: 私のキャリアは、一般的な情報系とは少し違います。大学では情報系ではなく物理系、具体的には宇宙物理を専攻していました。そこでプログラムのコードを書く必要が出て、それが情報系分野への最初の足がかりとなりました。卒業後は約6年間、システムエンジニアとして働きました。最初は日立系の産業向けシステム、その後は製薬会社の社内ツールやデータベースの整備に携わっていました。

ーーー機械学習や深層学習に関わるキッカケはなんでしたか?

今から約10年前、AIが世間で話題になり始めた頃に、偶然業務でDeep Learningに触れる機会がありました。その面白さに惹かれ、深層学習関連のプロジェクトを経験できる会社へ転職したんです。そこは日系のSIerで、私は研究部に所属し、事業部のAI活用を支援する役割を担っていました。主なドメインはコンピュータービジョンで、特に医薬分野の顕微鏡画像や細胞画像解析に多く携わりました。

この分野に深く興味を持ったのは、TensorFlowの物体検出APIに感動したことが大きいです。画像を投げると、犬などの対象に正確にバウンディングボックスが表示されるのを見た時、「これはすごい!」と心底思いました。特に、羊が群れている画像で、個々の羊を認識して箱を描画する機能には大きな衝撃を受けました。速度よりも、この「箱を描く」という難しいタスクをこなす能力に魅せられ、この領域をさらに深めたいと思いました。

ーーーシステムエンジニアからAIの世界へ、明確な感動体験がキャリアの方向性を決めたんですね。そのSIer在籍時に、Kaggleも始められたんですよね? Grandmasterになるまでの話が気になります。

横井さん: 当時、社内にKaggleに熱心なメンバーが5名ほどいて、彼らと一緒に参加するようになりました。みんな、非常に能力の高い人たちで、最終的にGrandmasterになったのは私ともう一人、他のメンバーもmasterクラスの実力者でした。

Grandmasterを目指していたわけではなく、結果的になったというのが正直なところです。最初はマスターになれれば十分だと思っていました。初めて金メダルを取ってマスターに昇格した時は、本当に自分がそこに到達できるとは思っていませんでした。その後、たまたま立て続けに3つの金メダルが取れて、「これはいけるかもしれない」と意識し始め、最後は頑張ってGrandmasterの称号を得ました。

立て続けに金メダルが取れたのは、運も大きいですが、Kaggleで勝つためのコツが徐々に分かってきたからだと思います。例えば、1カ月ほど取り組むと大体スコアが打ち止めになる感覚や、そこからブレークスルーするためのアプローチが漠然と見えてくるようになりました。また、強いチームメンバーと一緒に組むことで、彼らがどのように思考し、スコアを上げていくのかというメタ的な思考を間近で学ぶことができました。それを参考にすることで、他の人よりもわずかに高いスコアを出し、金メダルを獲得できたのではないかと感じています。

ただ、ソロコンペで金メダルを取るには、やはり一つのタスクを他の人よりも徹底的に考え抜き、手を動かし、時間を費やすことが必要です。私の周りでソロ金を取った人たちは皆、時間をかけて分析し、実験を繰り返していました。そういったスタンスを間近で見て学べたのは大きかったですね。

ーーー横井さんにとって、Kaggleや業務での問題解決の面白さはどんな点にあるのですか?

横井さん: 「パズルが解ける」という表現が一番しっくりきますね。「昨日よりも今日できるようになった」という感覚や、「こうあるべき」という理想の状態に近づけていく感覚が大きいです。あるべき枠組みにパズルがはまっていくことが気持ち良く、逆に、はまらない状態が気持ち悪いと感じるのかもしれません。数値的な目標を超えた瞬間に満足するのではなく、「超えていない状態が許せない」という感覚に近いですね。

良い精度を出すことや、正しく問題解決されている状態が当たり前、という隠れた思いが私の中にはあるのだと思います。Kaggleでスコアや精度がベンチマークとして明確に出るからこそ、それを超えることが「正しい」という設定に合致したのでしょう。

完全自動運転というインパクト、計算資源、優秀な仲間が入社の決め手に

ーーー前職が充実していた中でチューリングに応募した理由はなんですか?

横井さん: チューリングへの応募を決めたのは、より社会貢献性の高い、大きなインパクトを与える仕事に関わりたいという思いがあったからです。前職でも世の中に貢献できる仕事はしていましたが、チューリングが目指す自動運転は、そのインパクトが桁違いに大きいと感じました。創業者の山本さんや青木さんに直接声をかけていただいたことも、大きなきっかけです。創業者から声をかけてもらえる機会はなかなかないですし、このチャンスを活かしてみたいと思い、選考を受けることにしました。

ーーー体験入社や選考プロセスを通して、入社を決めた理由はなんですか?

横井さん: チューリングへの入社を決めたのは、計算資源の豊富さと、優秀な人たちの存在が決め手でした。H100のような高性能GPUを、あれほど自由に、そして大量に使える会社は他にはほとんどありません。これは非常に魅力的でした。

また、優秀な方がたくさんいる環境に身を置きたいという思いがありました。チューリングのリサーチチームは皆、優秀さのベクトルがそれぞれ違うので、刺激の受け方も多様です。チームのメンバーは的外れな質問を投げても、会話の中で驚くほど鋭い角度で本質を突いた回答を返してくる。私が何時間も考えてようやくたどり着くような結論に、彼らはわずか1〜2分で到達するんです。そういった彼らの思考のスピードと深さには、日々刺激を受けています。

高いパフォーマンスのVLMを開発するまで。そしてこれから

ーーーVLM開発では、どのようなタスクに携わってきたのでしょうか? 入社していきなりVLM開発というのは、HRの私から見ると「そんなにすぐできるものなの!?」と思ってしまうのですが。

横井さん: 正直、最初はいきなりVLMをやるのは困難だろうな、キャッチアップも大変だろうなと思っていました。実際に、論文を読み込んだり、GitHubでコードを徹底的に調査したりと、かなりの労力を費やしました。

ただ、チューリングでのVLM開発は、Kaggleでの経験とメタ的に似ている部分があります。タスクは「精度が高いVLMを作れ」と明確なんです。一般的な仕事では、やることが曖昧で、やるべきことが見えにくいことが多いですが、ここでは目標がはっきりしています。その目標に対して、どれだけ肉付けをして、どのようにアプローチするかは自分次第。この明確さが、ある意味で取り組みやすかったですね。

直近でリリースしたNVILA(※)は、まさにそのVLM開発プロジェクトの成果です。NVILA開発とKaggleの大きな違いは、データの扱いでした。Kaggleではデータがほとんどパッケージ化されて提供されます。しかし、NVILAではオープンなデータを使うか、自分たちでデータセットを作るか、という自由度が非常に高かった。そのため、データセットの準備から自分たちで行う必要があり、問題設定やデータの切り取り方といった部分が難しかったです。

※NVILA:経済産業省およびNEDOが推進する日本の生成AIの開発力強化に向けたプロジェクト「GENIAC」第2期の支援のもと開発したVLM「Heron-NVILA」です。開発に関する詳しい情報はこちらのテックブログを読んでください。https://zenn.dev/turing_motors/articles/7ac8ebe8756a3e

VLMはモデルアーキテクチャを気軽に変えるのが難しいため、ViT(Vision Transformer)に絞って開発を進めました。そして、VLMはVision EncoderとLLMを繋げた構造になっていますが、個人的にはLLMがいかにVisionの性能を上げるかが最も重要だと認識しています。だからこそ、精度の良いLLMを使うことを戦略の核に据えました。

ーーー: LLMが重要であることも実践を通しての発見だったのですね。NVILA開発では、学習ジョブを5000回以上回したと聞きましたが、これは本当ですか?

横井さん: 正確には、最初が約1500番目から始まって、最終的に6600番台まで到達したので、実に5000ジョブ以上回したことになります。このほとんど、恐らく99%は私が回したジョブです。デバッグレベルのジョブも多く含まれています。学習が最後まで流れないようなデバッグ作業を何度も繰り返すので、2〜3分で失敗するジョブも少なくありません。そういった繰り返しを永遠と続けた結果、ジョブ数が6000番台に達したというだけですね。

試行回数としては、おそらく1000回程度だったと思います。デバッグも含めればそれ以上になるでしょう。半年の開発期間、約120営業日で1000試行ということは、1日に10回程度の実験を投げていた計算になります。これが普通かどうかは分かりませんが、Kaggleでソロ金メダルを取る際も、1000回程度の実験は当たり前なので、個人的にはそこまで多いと感じていません。むしろ、デバッグが下手だから回数が増えているだけかもしれません(苦笑)。

NVILAはベンチマークで非常に高いパフォーマンスを達成し、胸を張れる成果を出せたと感じています。完成した時の感覚は「安心した」という気持ちが大きかったですね。CSIチームのメンバーは皆、それぞれ「自分はこれをやった」という成果の柱を持っていると思うので、私もようやく一つ、そういうものができたかなという安心感があります。

ーーーこの経験を活かして、横井さんとしては今後どのようなことに挑戦していきたいですか?

横井さん: NVILAで得たVLMやLLMの知識を活かして、今後はVLMの延長線上にあるVLA(Vision-Language-Action)やAction Generationといった分野に挑戦していきたいと考えています。特に、車載に特化した自動運転向けのモデル開発にリソースを集中させたいです。NVILAは汎用的なタスクに対応するモデルでしたが、今後はより自動運転に特化した形でモデルを構築していきたいですね。

自動運転に特化させる上での難しさは、やはり評価の難しさです。現在はシミュレーターでの評価が主ですが、シミュレーターでの評価も時間がかかります。そして、実機での評価となると、世の中に未完成の自動運転車を走らせて事故を起こすわけにはいきません。そのため、手元で確実に動作することが保証された「クローズドループ」での評価を厳密に行う必要があります。評価関数や評価変数を何に設定するかも非常に難しい課題です。過去のプロジェクトで、パスの予測と実際の走行の一致度を評価するといったクローズドループでの評価を行っていましたが、それに近いことを今後は内製シミュレーターでも進めていくことになるでしょう。

ーーー最後に、チューリングはどのような人に合うと思いますか?

横井さん: チューリングの環境は、まさに私が求めていたものでした。圧倒的な計算資源が自由に使えること、特にH100のような高性能GPUを気兼ねなく使い倒せる環境は、他ではなかなかありません。私がこの半年間で成果を挙げられたのは潤沢な計算資源があったからこそです。また、どんな質問を投げても問題の本質をクリティカルに突いてくる優秀なメンバーが揃っていることも、大きな刺激になっています。彼らとの会話を通して、私自身の思考力も磨かれていると感じています。

チューリングは、まさに「打席に立てば胸を張れる成果を出せるチャンスがある」場所です。競合が少ないVLMのような分野では、計算資源があれば成果を出しやすい、という側面もあるかもしれません。私もバットはたくさん振りましたが、ほとんど三振でした(笑)。

それでも、この環境ではホームランを打てる機会が確実にあります。興味があるなら、不安を乗り越えて飛び込んでみる価値は十分にあると思います。

ーーー横井さん、本日は貴重なお話をありがとうございました。VLM/VLA開発という新たな挑戦が、今後も社会に大きなインパクトを与えることを期待しています。