論理的な思考をDriver modelに統合することで未知の状況を運転できるようになる

井ノ上雄一氏:次に、後半のNavigator modelの開発を説明していこうと思います。先ほどもお話ししたとおり、運転というシチュエーションは、(スライドを示して)この左にあるようにハイコンテキストで考えなくてはいけません。

あとは、(スライドの)右に「未知のパターン」と書いてあるのは、高速道路の真ん中にバーベキューのセットが落ちているとか、ログハウスみたいなのが道に並んでいるといった、運転している中で、人生に1回あるかないかといったシーンなのですが、人間はこういったケースでもその場で考えて、なんとか事故がないように運転できると思っています。

それはなんでかというと、人間というのは、こういった状況をけっこう自然言語で考えて理解しているんじゃないかと今は思っているからです。

左は後でもうちょっと紹介しますが、Turingが開発したVision Language Modelです。Vision Language Modelというのは、最近の大規模言語モデル、LLMに画像のエンコーダーなどをつけて、画像をしゃべらせるモデルです。

先ほどの交通誘導員の方の画像を食わせて、「これはどういう状況ですか?」と聞くと、「画像は工事中で、コーンなどが置かれているので、気をつけて運転してください」と、モデルがLLMを通して答えてくれます。

右は、つい先週(※取材当時)に出たMicrosoftの「LLaVA」というモデルです。この右に映っている画像は、よくわかりませんが、駐車場の条件分岐みたいな感じで、「いつだったらいくらで、どのぐらい停められます」みたいなことが書いてあります。

こういったものを画像で食わせて、「水曜日の4時は止められますか?」と聞くと、「はい、1時間ぐらい停められます」と、いい感じに答えてくれます。

これはどういうことかというと、こういうふうに画像を自然言語を通して理解することで、LLMはけっこう論理的な考えができる。

やはり人間が運転する世界なので、「こういうふうに自然言語で考えると、複雑な状況でもうまく突破できるのではないか?」という仮説を立てて、このLLMに見られるような論理的な思考を、先ほど紹介したDriver modelにうまく統合することで、これまで難しかった状況や未知の状況を運転できるようになるのではないかと考えています。

LLMが流行っているから自動運転にとりあえずこの手法を載せようと言っているんじゃないかと思われるかもしれませんが、これは今実際にアカデミアでもけっこう流行っている分野です。イギリスにWayveという自動運転の会社があるのですが、ここはもう4年ぐらいこういったアプローチでやっています。生成AIもやっていますし、こういった状況を食わせて実際に会話ができる、という自動運転のモデルを開発しています。

本当につい最近、自動運転の走行状況にテキストをつけたデータがかなり公開されました。たぶん2024年の「CVPR」や「ICLR( International Conference on Learning Representations)」などのトップカンファレンスでもこういったモデルがたくさん出てくるのではないかなと思っています。

このようなモデルを開発するために、Turingでは、まずこの「Heron」というVision Language Modelを訓練するライブラリを開発して、2023年9月に公開しました。

これは、さまざまなVision EncoderとさまざまなLLMの間をつなぐ複数のAdopterをいろいろ変えながらモデルを訓練できるライブラリです。

日本語のデータセットも同時に公開しています。やはり日本の道を運転するためには、日本をしっかり理解していないといけないということで、日本語のVision Language Modelの開発に活用しています。

「W&B」をどう活用しているか

ここでもW&Bさんをけっこう使っています。Navigator modelの実験における可視化のところで、どういったデータがあるか、学習はうまく進んでいるのか、そして結果はどうなっているかというところで、かなり活用させてもらっています。

まず、データの可視化ですが、先ほども言ったとおり、Vision Language Modelは、やはり一般的な常識を理解した上で運転できるという点で、自動運転のデータ以外にもさまざまなデータを扱います。

なので、データセットがかなり複数になるのですが、そういったものをうまく管理するために、こういう画像とテキストと統計情報をW&Bに一緒に上げて、データセットを管理しています。そうすることで、何回もデータセットを読み出してくる必要もなくなりますし、チームでの共有もかなり簡単になりました。

次に、学習ですが、まず学習状態のモニターというところで使っています。(スライドを示して)この左側がTFLOPSというもので、どのぐらいきちんとコンピューターが使えているか、GPUが使えているかという計算の量を表しています。このように学習のTFLOPSをモニターすることで、きちんと学習のパフォーマンスが出せているか、GPUが無駄になっていないかを見ています。

これは、「A100」で回していて、最初は10TFLOPSしか出ていませんでした。インターン生に「それ、ヤバいっすよ」と怒られながら、一生懸命、このTFLOPSが出るようにチューニングして、学習をしっかり回せるようにやっています。

(スライドの)右側はオプティマイザーの状態です。やはりLLMを扱うというところで、学習がちょっと不安定になったりするので、こういったオプティマイザーの状態も見ながら学習がきちんと進むかを見ています。

あと、学習の途中の状況もモニターしています。やはりVision Language Model、Lossが下がっただけではちょっとわかりにくいものもあるので、定期的にデータをサンプルして、実際にちょっと推論させて、きちんと日本語をしゃべれているかなとか、そういったものも見ています。

最後、結果の確認ですが、学習したモデルは、Nejumi LLMリーダーボードにインスパイアされて、今はリーダーボード風に(スライドを示して)管理しています。

左に実験番号を書いて、真ん中に評価指標を並べて、右にどういったモデルかという説明をつけながら、W&Bのテーブル機能を使ってモデルの結果をアップロードしています。

簡単にレポート機能にも持ってこられるので、考察などを書いたりなど、かなりこれは重宝しています。

全体的な評価指標だけじゃなく、個別の結果もいくつか適当にサンプリングしてきて並べています。(スライドを示して)例えば上の3つは、「exp530」「730」「516」というモデルの結果になっているのですが、このモデルが実際どういうプレディクションをしているかを、こういうふうに並べています。

expでソートすると、結果をモデルごとに並べることができますし、右にある個別の評価指標を見ながら、例えばBLEUがこのぐらいの値だったらどれぐらいの予想できているのかなと見ています。

やはり自然言語はなかなか評価しにくいので、ここで評価指標でソートして、「スコアが低いものって、いったいどういうものなの?」と結果を考察しながら、実際の評価指標の値と、このプレディクションをしっかり見ながらモデルの評価を行っています。

ということで、Navigator modelはこんな感じで、かなりW&Bを活用しながら開発を行っています。

まとめ

まとめになりますが、Turingは、自動運転モデルを開発するためにさまざまな深層学習モデルを扱っています。やはりモニターしたいLoss、評価指標、学習の状態がたくさんあり、かなりW&Bを使わせてもらっています。簡単にログができ共有もできるので、すごく重宝しています。

さらに学習に限らず、データの確認や結果の共有にもかなり使えるので、本当に最初から最後までずっとW&Bを使いながらやっている感じです。

今後もW&Bを使わせてもらって、どんどんどんどん自動運転の開発を進めていこうと思っています。

今日発表した内容は、僕1人の成果ではもちろんなくて、TuringのAutonomous DrivingチームとBrain Researchチームの、この2つのチームの成果になります。

この優秀なメンバーも、こういう感じでゴリゴリ開発していますし、もし今日の発表を聞いて興味を持ってもらった方は、ぜひ声を掛けてください。

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

(会場拍手)