見出し画像

LLMで自動運転車を動かしてみた話

こんにちは、自動運転EVをつくるTuring(チューリング)株式会社で共同創業者CTOをやっている青木俊介です。
先日Turingは噂のLLM(Large Language Model:大規模言語モデル)で自動運転車を動かすプロジェクトを完遂させました。

上の動画にもあるように、今回開発したデモではユーザ(乗客)が音声で指示を出すと、LLMが裏で動き、自動運転車がユーザの指示に従って動いてくれます。LLMで実際の自動車が動いたのは世界初な気がします。

もちろんこのシステムで公道を走るわけではないのですが、我々Turingの開発思想的には非常に重要なデモでした。
この記事では「なぜTuringがLLMで自動運転車を動かしたのか」「実際どんな風にLLMで自動運転車が動いているのか」「Turingの開発体制の今後」について書いていこうと思います。

1. LLMと自動運転とTuring

「LLMで自動運転車を動かすなんて流行に乗っかっただけでしょ?」なんて言われそうですが、半分くらい真実です。実際流行には乗りたいし、いつまでもイケてる会社でありたい。
とはいえ資金調達もしているから勝たないといけない会社です。だからこそ、結構真面目に考えて、LLMで自動運転車を動かすプロジェクトを進めてきました。

ChatGPT-4がリリースされたのが2023年3月。
AI・機械学習エンジニアだけでなく社会全体を巻き込んだ大きな出来事でしたが、我々Turing社内でもかなり大きな衝撃が走りました。

そもそも完全自動運転に残された課題って、私は「人間がもたらす不確実性」だと考えてきましたし、2020年に出版した自分のPhD論文・その後書いた学術論文でも何回か言及してきました。
例えば歩行者・自転車・人間が運転する車。路上駐車の車や工事現場。
人間の行動に不確実性が無ければ、2023年現在の技術でも完全自動運転は充分可能です。
世の中の道路を自動車専用道路にした上で、人間の運転を禁止すれば、自動運転社会は結構簡単に作れるわけで、実際にAmazon/Alibabaの倉庫なんかはほとんど自動化されています。
この「人間の不確実性」に対してクソデカ基盤モデル(AIモデル)をつくって、クソデカ走行データを綺麗に取って学習すれば、人間がいる環境下でも完全自動運転できるはず…というのがTuringが証明したい大きな仮説の1つです。
話は戻ってきてChatGPT。入出力が文字(チャット)という形ではありますが、これはかなり賢いし、いろんな情報を持っています。ChatGPT、医師国家試験に合格できるほどの情報・賢さを持ってますし、「いろんな情報を持っているAI基盤モデル」という意味ではTuringがつくりたい「クソデカ基盤モデル」に限りなく近いわけです。

これはうかうかしてたら自動運転の領域ごと変わっちゃうね、ということで「コードレッド」を社内に出して、LLMをもっと使おう・ちょうど6月に工場開所ウィークをやるからデモもつくろう、となりました。


レッドコード出してLLMもっと触ろう!とCEO山本・CTO青木で話していたはずが…
「アポカリプスシナリオ」という文書に…どうして

2. LLMハッカソンとデモ構想

4月頭にはLLMが自動運転のどの部分で使えそうか、何が足りないか、と言った議論が社内で活発に起こるようになっていました。また社内slackでも #llm -toolbox が立ち上がってLLMを使ったサービス・使われ方を社内で気軽に共有する雰囲気が醸成されていました。この辺は熱量のある若手が集まるスタートアップっぽくて楽しかったです。

あとはLLMハッカソンもやってみたり。

社内ハッカソンの成果物は会社テックブログ・オープンソースにもなっています↓

  • 【テックブログ】GPT-3.5-turboの新機能を使ってCVPRの論文を良い感じに検索・推薦・要約するシステム

  • 【テックブログ】大規模言語モデルを使って自動車走行時の状況説明をさせてみる? -社内LLMハッカソン記-

「機械学習モデルを上手につくる能力」と「LLMを上手に使う能力」って多分あんまり相関無いんですよね。社内のめっちゃ強いkagglerとかMLOps得意なエンジニアが事業開発の人(非エンジニア)と同じ土俵でLLMの使い方を考える、みたいな戦いになっていてかなり不思議な、エンジニアにとっては少し悲しい光景でした。

突然ですが私はコンピュータサイエンスの神髄って階層化と抽象化だと思っています。OSがハードウェアの抽象化をしてくれるからアプリエンジニアがアプリ書ける、みたいな話。プログラミング言語で言う、バイナリ→C→Pythonみたいな話。
機械学習モデルをつくる階層とLLMを使う階層も、OSとかプログラミングの話に結構似ているなと思っています。そんなゲームチェンジが起きている中でも、機械学習エンジニアを中心にLLMハッカソンを開いて、常に勉強しているのは良い社内文化だなぁと思ったり。

3. LLM x 自動運転デモ

さて本題のLLM x 自動運転は4月の中旬にキックオフしました。

創業以来、「基盤モデルで完全自動運転を達成する」「End-to-Endで運転判断・行動決定までAIで行うシステムをつくる」という目標を常々掲げてきましたが、意外と非エンジニアに伝わらない…だったら今使える基盤モデルで、最も理想に近いものをつくろう、ということで走り始めたわけです。

Turingでは初めての車両生産拠点「Kashiwa Nova Factory」の稼働開始を6月中旬に決定していました。この稼働開始に合わせて協力関係会社・メディア等のお客さんを呼ぶ予定を既に立てていたので、だったらLLM x 自動運転デモも一緒にお披露目しよう、ということでエンジニア・事業開発一丸となって企画・開発・準備を進めたわけです。

Turingの工場:Kashiwa Nova Factory。でかい!

ちなみに工場を立ち上げたテックブログも書いています↓

  • 【テックブログ】創業2年目のスタートアップが自社工場を立ち上げた話

最終的な成果物は冒頭の動画のように「黄色のカラーコーンに進んで下さい」だとか「交通誘導員の指示を無視した行動を取ってください」と言ったことを音声で入力すると、LLMが出力として車両の制御を行うシステムになっています。また「赤色のカラーコーンに行くと1人がケガをします、黄色のカラーコーンに行くと3人がケガをします、どうすべきですか?」といったトロッコ問題に対してもLLMが出力をしてくれたり。

開発期間は2ヶ月くらいしかなかったので、ソフトウェア構成・ハードウェア構成もガツガツ決めていきました。slack見直してみると「ここ叩き台で作りました!」みたいなのがサクッと本採用されていたり、「ここの案3つあります!」みたいなのが全然違う案になっていたりして面白い。スピード感がある!

LLMで車動かすソフトウェアシステムの概略図

もともと自動運転システム・車両とのインターフェースは社内に資産(ソフトウェア概略図の左側)があったため、そこを侵害しない形でLLMを盛り込んでいます。

デモシステムとして2週間ほど運用し、沢山の方に乗ってもらいましたが、エンジニアリング目線でも大きく3つの課題が浮き彫りになりました。

1.時間的レスポンス性

LLMの推論に時間がかかるため、今回のデモでは5秒に1回の推論・行動決定を行っていますが、これは自動運転を実現する上では致命的な遅さです。この致命的な遅さを補完するためにTuringでは大規模AIモデル(Navigator)と軽量AIモデル(Driver)を掛け合わせた「Navigator-Driverモデル」を提唱し、特許出願まで行っています。またAIモデルの蒸留・圧縮にも取り組んでいます。

2.計算機資源の限界

自動運転車は人命を預かるものなので、本来その行動の最終決定権を他者(クラウド・他車両等々)に委ねることはできません。大前提として自動運転車は自車両の決定を自車両の計算機資源で決定する必要があります。今回はデモのためにクラウドを用いましたが、この計算をローカル(自車両)で実現するためには更なる研究・開発が必要です。

3.身体性

人工知能分野で「身体性」という単語は良く使われてきましたが、実際に今回のデモでもLLMが身体性を持たない点が気になりました。例えば「車両の後ろからライオンが来ています、逃げてください」と入力しても自動運転車は前に進んでくれません。ソフトウェアアーキテクチャ的にもLLMの出力を直接車両に流し込むわけではなく、制御モジュールが入力として受け取って車両を動かしています。

とはいえ過去5年のAI領域・ソフトウェア領域の進展を考えると、この辺りの課題はこれから5年で結構片付いちゃうんじゃないかと考えています。というか、Turingには強いエンジニアも来てくれているので、頑張って片付けていきます

  • 【テックブログ】基盤モデルを使ったTuringの完全自動運転戦略


4. Turingとソフトウェアの未来

今回はTuringの自動運転の思想・LLMとの関連に触れながら、開発裏話っぽいものを盛り込みました。スピード感持って全社体制で臨めたのは良かったなと思いつつ、改めて大規模モデルを開発してきたOpenAIすごいな、どうしてこれが自分に(自分たちに)出来なかったんだろう、みたいな悔しい気持ちもあったりします。

前述したようにソフトウェア・コンピュータサイエンスの良いところ・面白いところって階層化だと思っています。OSの研究・開発が盛んな時代はOSが沢山出てきてたくさん死ぬ。時代が進むと使われるOSはだいたい決まってきて開発者は上の階層に移るんだけど、でもkernelとかドライバの技術が分かると開発者として強い…。この現象が機械学習の領域でも起きていて、ここ6~7年の機械学習領域の本丸だったモデル開発が階層の1つになってしまったというのが今回のChatGPT出現・LLM出現だったんじゃないかなとか考えています。
我々、面白い時代に生きてますね!

さて、我々Turingはというと、相変わらず「We overtake Tesla」という目標、完全自動運転の実現、EV車両の量産を掲げています。創業時と変わらず、完全自動運転を達成するためのAI基盤モデルの開発に取り組んでいこうと思いますが、この工場開所・LLMデモを通して社内体制の見直しも図りました。

  • 車両生産拠点である工場の整備・開設が完了しました!

  • 2023年内の東京オフィス開設を目指しています。日本橋・東京駅エリアが有力です!

  • 完全自動運転を目指したAIリサーチチームを組成しました!チーム立ち上げメンバーを探しています。

  • 2024年-2025年に販売するプロダクトのためにUXエンジニアリングチームを組成しました!こちらも立ち上げメンバーを探しています。

AIリサーチチームでは、自動運転を実現するためのマルチモーダル基盤モデルの開発学習基盤であるGPUクラスタ環境の設計・整備に取り組む予定です。これまでも国際会議CVPR・人工知能学会や国際コンペに参加してきましたが、まだまだ研究要素のある領域です。

UXエンジニアリングチームではAndroid OSベースの車載システムの設計・開発に取り組み始めています。車載UXシステムってなかなかソフトウェアエンジニアが入りづらい領域でしたが、我々は新興でしがらみも無いので、ゲーム・Webアプリのような車載UXを作るつもりです。こちらは東京モーターショーの後継であるJapan Mobility Showにも出展する計画です。

最後に、このnoteを読んで「えっ、自動運転車つくれるかもしれないじゃん!」と思った方、Turingに興味持ってくれた方、是非会社ページを覗いてみてください。「完全自動運転EVの量産・自動車メーカーの立ち上げ」という大きな目標を持った会社だからこそ、面白い面々が集まっている会社だと思います。
普通の人が普通に自動運転を使える未来、一緒につくりたい方は是非よろしくお願いします!


この記事が参加している募集

この記事が気に入ったらサポートをしてみませんか?