E2E自動運転の実現に向けたMLOpsの取り組み
by
Masahiro Yasumoto
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
E2E⾃動運転の実現に向けた MLOpsの取り組み Turing株式会社 安本 雅啓 第11回 Data-Centric AI勉強会
Slide 2
Slide 2 text
● 安本 雅啓 ● 所属 ○ チューリング株式会社(2024/05〜) ○ E2E⾃動運転チーム SWE ● 経歴 ○ メーカー研究所、AIスタートアップ (Araya)でのML開発、SaaSのbackend 開発(atama plus, Treasure Data)を経験 ⾃⼰紹介
Slide 3
Slide 3 text
● E2E⾃動運転実現に向けたData Centric AIの実践において、これま でに直⾯してきた課題と、それに対してどう対処してきたか。 ○ 【E2E連載企画 第5回】20TB/dayのデータ処理を⽀えるデータ エンジンの全貌 ● また、時間の経過に伴い、別の問題も発⽣してきているので、そ れも紹介する。 今⽇話すこと
Slide 4
Slide 4 text
● マルチカメラの入力に対してマップ認識や 3次元物体認識などの様々なサブタスクを実施。 未来の経路を出力し自動運転を実施する。 Turingが現在取り組んでいるE2Eモデルとは 4 ニューラルネットワーク 3D物体認識 & 移動予測 マップ認識 世界を表すベクトル 経路生成 マルチカメラ画像 制 御
Slide 5
Slide 5 text
● End to Endモデルの学習には、「良い」データが必要。 E2Eモデルの学習には良いデータが必要 ● 最近のモデル(特にTransformerベース)はData hungry。 ● マルチモーダル特有の課題(センサ間の位置関係の精度) ● センサーデータ特有の課題(ノイズ、キャリブレーション) ● Imitation Learningの課題(エキスパートデータの質) ● 様々な交通条件のデータが必要(場所、天候、交通エージェン トの有無)。エッジケースのデータが重要。 量 質 多様 性
Slide 6
Slide 6 text
● ⼤量の収集データの中から、⾼品質かつ多様性に富むデータのみ を抽出してデータセットを作成。 E2Eモデルのデータパイプライン ● 品質 ● 右左折・直進の割合 ● 天候の割合 ● 走行エリアのカバレージ 収集データ データセット
Slide 7
Slide 7 text
1. ⼤容量のデータ
Slide 8
Slide 8 text
● E2Eモデルで扱うデータは⾮構造データが多い。 ● 動画情報とLiDAR(点群)情報が9割を占める。1時間200GB超。 なぜ⼤容量? カメラは8台分 点群は460,800点 LiDAR: Light Detection And Ranging CAN: Controller Area Network GNSS: Global Navigation Satellite System
Slide 9
Slide 9 text
● ストレージのコスト ○ ⽣データは仕⽅ないが、加⼯済データを持つニーズがある。 ■ 動画 → 画像→ 歪み補正済みの画像 ■ CANのエンコードされたデータ → デコード済みデータ ● アノテーションのコスト ○ 3次元物体認識のサブタスクの学習には、教師ラベルが必要だが、⼈ ⼿でのアノテーションはコストが⾼く、全てのシーンに対して付与す ることは困難。 ⼤容量データを扱う上で直⾯する課題
Slide 10
Slide 10 text
● オートラベル⽤モデルを使うことで、⼈⼿でラベル付けしていな いシーンに対しても教師データを作成することができる。 ○ しかしオートラベリングを使っても全てに付与するとコストが⾼い。 3次元物体認識のオートラベリング ⼈⼿で付与した3D物体 アノテーション結果 (6時間分) 点群データと画像を ソースに学習 学習済みモデルで 3次元ラベルを付与 (無限時間) オートラベリングモデル BEV Fusion
Slide 11
Slide 11 text
● 基本的に⽣のデータはそのままで保持。必要に応じて変換。 ○ →ただしそうすると、必要な場⾯にすぐにデータが⼿に⼊らな いという別の課題が⽣まれる。 😞 ● データ取得に時間がかかるという課題に対しては、クラウド上の 分散処理を活⽤するというパワープレイにより、リクエストが あってから短いリードタイムでデータを準備。 💪 オンデマンドに加⼯する
Slide 12
Slide 12 text
● 3次元物体認識のオートラベリングは、AWS batchを使って1000 台のT4インスタンスを同時に⽴ち上げて推論を⾏うことで、100時 間超のデータであっても、1時間程度で完了できる。 例1:オートラベリングの分散処理 lambdaで1000インスタンス 分のjobを配分し、batchを実 行
Slide 13
Slide 13 text
● 動画から画像のサンプリングは、lambdaを並列実⾏することで、 100時間超のデータであっても、1時間程度で完了できる。 例2:動画→画像サンプリングの分散処理 Step Functionsの Distributed Mapを使って 1000並列で処理を実行
Slide 14
Slide 14 text
● 最初は問題なくても、データセットのサイズが⼤きくなると、やは り計算コストや処理時間も無視できなくなってきた。 ○ 1つのデータセットを作成するのに30万円かかる、など。 ● そこで、必要性やユースケースが固まってきたデータは、あらかじ め加⼯した状態で保持するように。 ○ 例1:動画→画像の切り出しは都度⾏うとコスト⾼なので、画像に切 り出したものを事前に⽤意しておく。 ○ 例2:時間をキーに検索することが多いことが判明したデータは timestampをインデックスとしたテーブルに格納。 しかし、新たなる問題が発⽣
Slide 15
Slide 15 text
● 事前に加⼯するかどうかの判断基準として、PJ初期は加⼯せず、 PJが進むにつれ、加⼯済データを増やしていくのが良さそう。 PJが進むにつれて加⼯済データを増やす 元 データ 加工済 データA 加工済 データB 加工済 データC 加工済 データA1 加工済 データA2 ? ? 元 データ 加工済 データA 加工済 データB 加工済 データA1 加工済 データA2 加工済 データB1 PJ初期 ⼀定期間後 😀 🤔
Slide 16
Slide 16 text
● 基本的にはオンデマンドで加⼯し、⼀度加⼯したらそれをキャッ シュしておく、というのも1つの戦略。 ○ ただし、キャッシュヒット率が低いと有⽤性が低下する点に注意。 オンデマンド処理+キャッシュという戦略 元 データ 加工済 データA 画像1 画像2 Application (MLモデル) 画像1A 画像1A 画像2A 画像2A キャッシュ ヒットした場合 キャッシュヒットしない場合は 元データをオンデマンドで加工 加工したデータはキャッシュに保存
Slide 17
Slide 17 text
2. ⾼品質なデータ
Slide 18
Slide 18 text
● データの故障モードに対する知識が最初はほとんどなかった。 ○ どのデータにどのようなエラーが発⽣するかは、実際にデータ の中⾝を⾒てみないとなかなか分からない。 ● 実際に発⽣した問題: ○ センサー間の時刻同期の問題(タイムスタンプのずれ) ○ カメラ動画のコマ落ち ○ GNSS受信機の位置情報の取得失敗 ○ ファイルの破損 そもそも何が課題かが分からないのが課題
Slide 19
Slide 19 text
● 最初は、データをランダムにピックアップして、どのようなエ ラーが発⽣しているかを⾒ていった。 最初はみんなでデータを⾒る データバリデーション大会 (イメージ)
Slide 20
Slide 20 text
● ⾒つかったデータのエラーについては、今後⾃動でチェックでき るようコード化し、新規データ登録のタイミングで実⾏。 ● 検知されたエラーはSentryを介してSlackにも通知。 故障モードが分かった後はチェックを⾃動化 s3へのデータアップロードをトリガーに validation処理 を実行。Errorの数をモニタリング。
Slide 21
Slide 21 text
● 画像の質については、コードでは把握が難しい(専⽤のMLモデル を作ったりする必要有)。そこで、gpt-4o miniを使って、ノイズ の有無を判定してもらうことに。 画像の質のチェックにはgpt-4oも活⽤ gpt-4o miniによってノイズが大きいと判定されたシーン(抜粋)
Slide 22
Slide 22 text
● 残っている問題 ○ エキスパートデータとしての品質の改善 ○ 位置情報の取得に失敗しているデータの改善 ● データの品質の劣化は気づくのが難しい。結局は地道な⼈⼿作業 が重要と感じている。 ○ →この⼈⼿作業を効率化するための可視化環境を準備しておく ことは⼤切。 それでもまだ問題は⼭積み
Slide 23
Slide 23 text
⼈⼿での確認を効率化する可視化ツール Streamlitを使って作成したwebベー スの可視化ツール Rerun (embodied AI向けのオー プンソースなツール) https://rerun.io/viewer
Slide 24
Slide 24 text
3. 多様性のあるデータ
Slide 25
Slide 25 text
● (1)多様性が確保できるようデータを取得、(2)取得したデータから 多様性に富むようデータを検索‧抽出、の2側⾯あり、両⽅⼤切。 ● 場所や、右左折‧直進などの多様性は(1)で確保できるが、救急⾞ 両が出現するシーンなどは意図して取れず、むしろ(2)が重要。 ● 今回は(2)について紹介。 多様性を確保するための取り組み
Slide 26
Slide 26 text
● どのような観点で多様性を確保すべきかは、実験をしないとなか なか分からない。 ○ 天候、右折‧左折‧直進の割合、時間帯、季節 ○ ⾃⾞が先頭⾞両かどうか、周辺の交通エージェントの状況、信 号機の現⽰、など ● よって、どのようなキーでシーンを検索するかを事前に完全に把握 しておくことは難しい。 検索に使うキーは最初は分からない
Slide 27
Slide 27 text
● 様々なキーでクエリする可能性がある、基本的にデータは追記だ けで更新はほぼない、という要件から、DWHを採⽤し、ここに シーンのメタデータを格納。 ● センサデータは加⼯前の状態で保持し(必要に応じてダウンサン プリングする)、必要な特徴量はクエリ上のロジックで都度計算 するように設計。 データ検索のインフラとしてDWHを採⽤
Slide 28
Slide 28 text
データ レイク層 メタデータストア (DWH) CAN GNSS 動画 down- sampling down- sampling Object Detection ステア角 緯度・経度 フレームに映る 物体の情報 動画内に映る 平均物体数 右折有無 左折有無 急ブレーキ 有無 エリア内か(例: お台場) データマート(View) 加速度 ブレーキ
Slide 29
Slide 29 text
● Open vocabularyなモデル(YOLO World)を使い、利⽤可能性が⾼ いと予想されるラベリングを事前に⾏っておく(例: ⼈、⾞など)。 ● クラス名をカラムとするスキーマ設計により、スキーマを変更せ ずに新しいクラスの追加が可能。 Open vocabulary モデルでラベリング Pivot tableとしてのView
Slide 30
Slide 30 text
YOLO Worldによる検出例
Slide 31
Slide 31 text
● generalなモデルでは、電動キックボードや特定の標識など、レア クラスのオブジェクト検出は難しい。 ● generalなモデルでまずは検出→⼈⼿でアノテーション→specific なモデルを作る→というループを回していく必要がある。 でもレアクラスのオブジェクト検出は難しい Turing tech blog「僕の考えた最強の信号機認識モデルを作る」より
Slide 32
Slide 32 text
● 頻繁に更新され得るデータ(例:⼈間が付与するタグ情報)とJOIN したいニーズも今後出てくると想像。 ● 実現⽅法については、今後検討が必要。 ○ 頻繁に更新されるデータはRDBに⼊れてDWHにデータをsync ○ Federated queryを使う ○ そのようなデータもDWHに⼊れる 頻繁に更新するデータも⼀緒にJOINしたい
Slide 33
Slide 33 text
まとめ
Slide 34
Slide 34 text
● データの収集‧加⼯プロセスは、最初はアジリティの⾼さを⽬指 して設計した。 ● フェーズが進むと、データの使⽤⽅法が明らか‧固定化されてき たため、よりコスト効率や性能を考慮した設計が必要になった。 ● データの品質確保はある程度泥臭さが必要。仕組み化も良いが、 品質チェックを効率化するツールがまず⼤事。 まとめ
Slide 35
Slide 35 text
No content