トヨタ自動運転エンジニア面接体験記:知覚・計画・制御のフルチェーン評価
自動運転2年経験、トヨタの3回の技術面接を詳細に振り返り。CV知覚、物体検出、計画アルゴリズム、決定木、システム設計などの核心的な評価ポイントをカバー
背景紹介
まず私の状況から話させてください。国内トップ大学の修士課程を卒業後、自動運転のスタートアップで2年間働き、主に知覚アルゴリズムに従事していました。日常は点群と画像を扱う仕事でした。今年の初めに転職活動を始め、トヨタはずっと私のターゲットリストに入っていました——やはり自動運転のパイオニアとして、技術路線に独自の考えがあり、彼らの自動運転システムは本当に素晴らしいものがあります。
履歴書は元同僚のリファラルで提出し、3日後にHRから面接日程の連絡がありました。全プロセスは約3週間で、3回の技術面接と1回のHR面接、スケジュールはかなりタイトでした。以下、各ラウンドを詳しく振り返ります。
面接プロセスの振り返り
一次面接:CV知覚+物体検出(約1.5時間)
一次面接の面接官は若く見える方で、後で知覚チームのテックリードだと分かりました。簡単な自己紹介の後、すぐに技術的な質問に入りました。
現在のプロジェクトで使用している検出アルゴリズムについて聞かれ、BEVベースの3D物体検出でBEVFormerを使用していると説明しました。BEVFormerのコアアプローチについて深掘りされ、spatial attentionメカニズムから、2D特徴量を3D BEV空間にリフトする方法、temporal fusionの仕組みまで説明しました。頷いた後、鋭い質問が来ました:BEVFormerは遠距離ターゲットの検出精度が大幅に低下しますが、何か改善を行いましたか?
この問題は実際に経験がありました。マルチスケール特徴融合で遠距離特徴の疎性を緩和し、distance-aware損失重みを追加していました。これらの詳細を説明すると、面接官の関心が明らかに高まり、損失設計の具体的な数式についてさらに質問されました。
次はコーディングセクションです。問題:2Dバウンディングボックスと対応するカメラの外部/内部パラメータ行列が与えられた場合、frustumベースの疑似3D検出を実装する。この問題はそれほど難しくありませんが、特に座標変換の部分で間違いやすい細かい点が多くあります。25分ほどで完成させ、面接官は論理的に問題ないと言いましたが、エッジケース——ボックスが画像境界を超える場合など——を考慮するよう求められました。
最後の15分間はプロジェクトの詳細について話し、主にデータアノテーションパイプラインとモデルデプロイについて議論しました。一次面接は全体的に良好で、面接官は専門的で、質問も的確でした。
二次面接:計画アルゴリズム+決定木(約1.5時間)
二次面接はシニアエンジニアで、すぐにシナリオを描きました:高速道路で、自車は中央車線。前方100mに遅い車、左車線から車線変更してくる車、右車線は空いている。計画モジュールはどう処理するか?
これはクラシックなシナリオです。シーン理解から分析を始め、周囲の車両の軌跡予測についてのビヘイビア予測、決定メイキング層で決定木やPOMDPを使って決定を行う方法、そしてモーションプランニングで具体的な軌跡を生成する方法まで説明しました。面接官は追跡しました:左の車が突然加速して車線変更を完了した場合、決定木はこの動的変化をどう処理するか?
各プランニングサイクルで再評価が必要であり、決定木の葉ノードは時系列変化を考慮する必要があり、ローリングホライズンアプローチが使えると説明しました。さらに聞かれました:ローリングホライズンのホライズン長はどう決めるか?短すぎる場合と長すぎる場合の問題は?これについては以前考えたことがあり、短すぎると近視眼的な計画になり、長すぎると計算量が増え予測が不正確になるため、一般的に3-5秒が適切だと答えました。
コーディング問題は:開始点と終了点が与えられた場合、候補軌跡集合を生成しコスト関数でソートするシンプルなラティスプランナーを実装する。以前似たものを実装したことがあったので、比較的速く書けました。しかし、コスト関数の設計について詳しく説明するよう求められ、快適性、安全性、効率性の各重みの調整方法について長く議論しました。
二次面接は一次より深く、面接官は答えられなくなるまで掘り下げていきましたが、意地悪な感じはなく、一緒に技術的な議論をしているようでした。
三次面接:プロジェクト深掘り+システム設計(約2時間)
三次面接は部門ディレクターでした。存在感は強いが話し方は穏やかでした。まず過去のプロジェクトを一つ完全に説明するよう求められ、マルチモーダル融合知覚プロジェクトを選びました。説明中、何度も割り込んで質問されました:
融合戦略はアーリーフュージョンかレイトフュージョンか?なぜその選択をしたか?
LiDARとカメラ間の時間同期はどうしているか?誤差レベルは?
センサーが突然故障した場合、システムはどうグレースフルデグラデーションするか?
これらの質問は次第に深くなり、特にセンサー故障については、以前はシンプルなフォールバック戦略しか考えていませんでしたが、システムアーキテクチャの観点から再考するよう促されました。センサーヘルスモニタリングの実装方法や、知覚レベルでの不確実性推定を使って下流の意思決定をガイドする方法などについて考えさせられました。
システム設計問題は:都市NOAの知覚-計画-制御フルチェーンシステムを設計する。どのモジュールが必要か?モジュール間の通信方法は?レイテンシ要件は?
これは大きな問題でした。システムアーキテクチャ図から描き始め、知覚モジュールの出力形式と頻度、計画モジュールの入出力、制御モジュールの実行頻度、そしてその間のメッセージパッシングメカニズムについて説明しました。彼は特にレイテンシに注目していました——知覚から制御までのエンドツーエンドレイテンシ要件は?どうやって保証するか?知覚は約50ms、計画30ms、制御10ms、合計約90msで、パイプライン並列処理とGPUアクセラレーションで保証していると答えました。
三次面接の後、完全に疲れ果てましたが、同時に多くの収穫がありました。面接官の質問は、以前深く考えていなかった多くの点を再考させるものでした。
面接問題まとめ
1. BEVFormerのコアアプローチは?spatial attentionはどう実装されているか?
2. 遠距離ターゲットの検出精度低下の原因と改善策は?
3. 2D bboxとカメラパラメータが与えられた場合、frustumベースの疑似3D検出を実装する
4. 高速シナリオで計画モジュールは周囲の車両の動的変化をどう処理するか?
5. ローリングホライズンのホライズン長はどう決定するか?
6. ラティスプランナーを実装し、コスト関数を設計する
7. アーリーフュージョンとレイトフュージョンの長所と短所は?
8. マルチセンサー時間同期のアプローチは?
9. センサー故障時のグレースフルデグラデーション戦略は?
10. 都市NOAフルチェーンシステム設計:モジュール分割、通信メカニズム、レイテンシ要件
心得とアドバイス
第一に、基礎をしっかり固めること。面接で奇策を問うことはありませんが、基礎概念は真に理解している必要があります。例えばBEVのspatial attentionについて、数学的原理からエンジニアリング実装まで、途切れることなく説明できなければなりません。
第二に、プロジェクト経験を深く語れること。面接官は、モデルを動かしたことがあるだけでなく、プロジェクトを真に理解しているかを重視します。技術選択の理由、遭遇した問題、行った改善について明確に説明できる必要があります。
第三に、システム思考が重要。特に三次面接では、面接官は個々のモジュールではなくシステム全体の理解に注目していました。自動運転はシステム工学であり、知覚、計画、制御は密接に結合しています。全局的な視点から問題を見る必要があります。
第四に、コーディング力を落とさないこと。純粋なアルゴリズム面接ほどの難易度ではありませんが、ビジネスドメインと密接に関連しており、コードを書きながら思考を説明することが求められます。日々の練習が不可欠です。
第五に、冷静で誠実であること。分からないことは分からないと言いましょう。面接官は正解よりも思考プロセスを重視します。いくつかの質問に完璧に答えられませんでしたが、推論と推測を共有し、ポジティブなフィードバックをもらいました。
FAQ
Q:自動運転チームの労働強度は?
A:面接で聞いたところ、残業は日常的で、特にプロジェクトの追い込み時期は顕著です。しかし、一部スタートアップに比べればペースは管理可能で、週末は基本的に休めます。
Q:面接の言語は中国語か英語か?
A:全編中国語です。技術用語は英語で問題ありません。英語面接は不要です。
Q:学歴要件は?
A:知覚アルゴリズム職は修士以上が基本です。計画制御職は学士でもチャンスがありますが、確固たるプロジェクト経験が必要です。
Q:面接結果はどのくらいで出るか?
A:私の場合、一次面接後3日で二次面接、二次面接後5日で三次面接、三次面接後1週間で結果が出ました。全体で約3週間でした。
Q:給与水準は?
A:2年経験の場合、総パッケージは約50-70万元の範囲で、面接のパフォーマンスと等級によります。株式報酬の割合は大きいですが、ベスト期間は長めです。