MLエンジニア

役割
自動運転のためのモデル開発に加えて、その開発を取り巻く様々な課題解決に取り組むことです。具体的には、モデルアーキテクチャの改善だけでなく、データの品質や量、データパイプラインの改善、データキャリブレーションなど、モデル開発の効率と精度を最大化するための幅広いミッションを担います。データセントリックAIのアプローチに基づき、自動運転という現実世界で動作する高性能なMLモデルを開発します。
業務内容
- End-to-End の自動運転モデルの実装
- データ収集の方針・計画立案
- データセットの作成・改善
- オートラベリングモデルの実装・改善
- カメラ・センサーキャリブレーション
- モデル学習のアルゴリズム実装
- モデル学習コードの高速化
- 実車でのモデル評価・実験管理
- 先端論文の調査・再現・実装
チューリングでMLエンジニアとして働くメリット
開発したMLモデルが実世界、具体的には公道で動作するという貴重な経験ができる点です。自らが作成したモデルの実験に公道で参加し、そのMLモデルが搭載された車両に乗るという、他では得難い体験を通じて、技術が現実世界に影響を与える瞬間を肌で感じることができます。
また、大規模なML開発環境が整っていることも大きな魅力です。モデル学習には4桁オーダーに近いGPUの台数を持つ大規模なGPUクラスターを利用でき、大規模な計算学習を回すことが可能です。これにより、最先端の技術を駆使したチャレンジングな開発に取り組めます。
さらに、Kaggle Grandmasterやメガベンチャーでシニア/スタッフと呼ばれるレベルの優秀なエンジニアと密接に連携し、共に働くことができる環境です。自動運転というさまざまな技術レイヤーが関わる開発において、このような強力なカウンターパートと協力し、「人類のグランドチャレンジ」という壮大な目標に挑戦できることは、自身の成長とやりがいに直結します。大規模なML開発を通じて、人類の大きな課題解決に貢献できる点も、このチームで働く大きなメリットと言えるでしょう。
この職種にマッチする人材
本職種では、単にモデルの学習や評価を行うだけでなく、機械学習の一連のプロセスを一通り経験し、サービスへのデプロイまで幅広く携わった人材を求めています。データ収集からモデル学習、アーキテクチャ選定、評価、ユニットテスト、そしてサービスへのサービングまで、一気通貫で対応できる能力が必要です。具体的には、Web企業などでディープラーニングをベースとしたモデルを開発し、それを実際にプロダクトにサービングした経験を持つ方。
またはロボットや自動運転といったプロダクション環境でMLモデルを搭載し、エッジの計算機という限られた環境下でモデルを動かした経験を持つ方がマッチします。
- 機械学習の一連のプロセスを経験し、サービスインまで携わった人。
- Web企業などで大規模サービスにおけるモデル開発・デプロイ経験を持つ人
- ロボットや自動運転といったプロダクション環境でMLモデルを動作させた経験を持つ人
- エッジの計算機という限られた環境でのモデル実行に携わった経験を持つ人
- モデルの学習コード高速化に貢献した経験を持つ人
- 学習パイプライン全体の最適化・高速化に寄与できる人
- データキャリブレーションやカメラセンサーキャリブレーションの知見に長けた人
- モデルのアーキテクチャ設計や評価だけでなく、データの品質・量の改善にも取り組める人
他職種連携の魅力とやりがい
ソフトウェアエンジニア(MLOps)
データセットの作成、キュレーションの仕組み改善、データセット作成プロセス(変換・転送)の高速化、ユニットテストの改善といった業務を共同で行います。大規模化するデータを迅速に処理し、モデルの実験評価までのイテレーションを高速化するためのパイプライン改善が中心トピックです。
非構造化データを高速で処理するという非常に難易度の高い技術的課題に取り組めます。大規模なデータ環境下で、データ収集から実験評価までのイテレーションを高速に回す仕組みを構築することは、MLエンジニアの施策試行回数増加を可能にし、開発効率を圧倒的に向上させるという大きなやりがいにつながります。
ソフトウェアエンジニア(自動運転システム)
現実世界から取得する多様なセンサーデータの特性理解と処理・変換、および自動運転システム上でのモデルのパフォーマンス最適化や、モデルが出力した信号を他のシステムに高速に伝える工夫などを行います。システムの性能を確保しながら、MLモデルの機能を最大限に引き出すための連携が不可欠です。
現実世界から取得したデータをいかにモデル学習に活かしきるかという本質的な課題に挑戦できます。また、システムの高速化やパフォーマンス最適化は、技術的に深く追求する面白さがあり、自身のモデルが実システム上でスムーズに動作するための工夫が、完全自動運転の実現を支えるという貢献実感が得られます。
インフラエンジニア(GPUクラスタ)
学習ジョブの実行状況確認、エラー原因の特定、モデル学習の高速化などについて連携します。大規模なGPUクラスタを効率的に利用し、ML開発のイテレーションを早めるための基盤づくりを共に行います。
ハイパフォーマンスコンピューティング(HPC)の領域に近い大規模なMLモデル学習の高速化を追求します。限られたリソースを有効活用するインフラの運営知見やスキルを間近に感じ、自身の学習イテレーションの高速化という形で、その成果を享受できる点が面白さです。
強化学習エンジニア
自動運転のためのシミュレーターの開発・改善、およびシミュレーターを用いたモデルの評価を行います。公道に出る前のモデルの妥当性評価や、稀な事象(エッジケース)のデータをシミュレーターで作り出し、学習に活用するための取り組みが主な業務となります。
MLと強化学習という近い領域で切磋琢磨できる環境です。特にシミュレーターを介して公道では遭遇しにくいエッジケースのシナリオを作り出し、より堅牢でハッカ性の高い自動運転モデルの開発に貢献できることは、完全自動運転に近づくという点で非常にエキサイティングな挑戦となります。
自動運転開発ドライバー
主に、開発したモデルを搭載した車の制御方法やモデルの学習元となる走行データの収集を行います。ドライバーからMLエンジニアにモデルの挙動やフィードバックすることで、MLエンジニアのモデル開発の改善サイクルに貢献しています。自動運転AI開発においてドライバーは必要不可欠です。
Join us :
完全自動運転という難易度の高い課題を、
様々なバックグラウンドを持つメンバーと
取り組みませんか?