ソリューションのアイデア
この記事ではソリューションのアイデアについて説明します。 クラウド アーキテクトはこのガイダンスを使用すると、このアーキテクチャの一般的な実装の主要コンポーネントを視覚化しやすくなります。 ワークロードの特定の要件に適合する、適切に設計されたソリューションを設計するための出発点として、この記事を使用してください。
このアーキテクチャでは、自律運転ソリューションを開発するためのガイダンスと推奨事項が提供されます。
アーキテクチャ
この記事のアーキテクチャの図を含む Visio ファイルをダウンロードしてください。
データフロー
測定データは、カメラ、レーダー、超音波、ライダー、車両テレメトリなどのセンサーのデータ ストリームから取得されます。 車両内のデータ ロガーは、ロガー ストレージ デバイスに測定データを格納します。 その後、ロガー ストレージ データはランディング データ レイクにアップロードされます。 Azure Data Box や Azure Stack Edge などのサービス、または Azure ExpressRoute などの専用接続を使って、Azure にデータが取り込まれます。
測定データは、シミュレーションや他のソースからの合成データでもかまいません。 (MDF4、TDMS、rosbag は、測定値の一般的なデータ形式です)。DataOps ステージでは、取り込まれた測定値が処理されます。 チェックサムなどの検証とデータ品質チェックが実行されて、低品質のデータが削除されます。 このステージでは、テスト運転の間にテスト ドライバーによって記録された生の情報メタデータが抽出されます。 このデータは、一元化されたメタデータ カタログに格納されます。 この情報は、ダウンストリーム プロセスで特定のシーンとシーケンスを識別するのに役立ちます。
データは、Azure Data Factory の抽出、変換、読み込み (ETL) パイプラインによって処理されます。 出力は、生のバイナリ データとして Azure Data Lake に格納されます。 メタデータは、Azure Cosmos DB に格納されます。 シナリオによっては、Azure Data ExplorerまたはAzure Cognitive Searchに送られる場合があります。
精度と信頼性を向上させるため、追加情報、分析情報、コンテキストがデータに追加されます。
抽出された測定データは、Azure Data Share を介してラベル付けパートナー (人が関与) に提供されます。 サード パーティのパートナーは、別の Data Lake アカウントを使って、データの自動ラベル付け、格納、アクセスを行います。
ラベル付けされたデータセットは、主に認識とセンサーの融合モデルを作成するため、ダウンストリームの MLOps プロセスに送られます。 これらのモデルは、自律運転車がシーン (車線変更、塞がれた道路、歩行者、信号機、交通標識) を検出するために使用する機能を実行します。
ValOps ステージでは、トレーニング済みのモデルが、オープンループとクローズドループのテストによって検証されます。
取り込まれて処理されたデータは、Azure Kubernetes Service または Azure Container Instances で実行される Foxglove などのツールを使って視覚化されます。
データ コレクション
データ収集は、自律運転車運用 (AVOps) の主な課題の 1 つです。 次の図は、オフラインおよびオンラインの車両データを収集してデータ レイクに格納する方法の例を示したものです。
DataOps
データ運用 (DataOps) は、データ運用の品質、速度、信頼性を向上させるための一連のプラクティス、プロセス、ツールです。 自律運転 (AD) に関する DataOps フローの目的は、車両の制御に使われるデータが高品質で正確で信頼性が高いことを確認することです。 一貫した DataOps フローを使うことで、データ運用の速度と精度を向上させ、自律運転車を制御するためのより良い意思決定を行うことができます。
DataOps のコンポーネント
- Data Box は、収集された車両データを地域の通信事業者を介して Azure に転送するために使われます。
- ExpressRoute は、オンプレミスのネットワークをプライベート接続を介して Microsoft クラウドに拡張します。
- Azure Data Lake Storage は、生や抽出などのステージに基づいてデータを格納します。
- Azure Data Factory は、バッチ コンピューティングを使って ETL を実行し、データの移動と変換を調整するためのデータ駆動型ワークフローを作成します。
- Azure Batch は、データ ラングリング、データのフィルター処理と準備、メタデータの抽出などのタスクのための大規模なアプリケーションを実行します。
- Azure Cosmos DB は、格納された測定値などのメタデータの結果を格納します。
- Data Share は、ラベル付け会社などのパートナー組織と強化されたセキュリティを使ってデータを共有するために使われます。
- Azure Databricks には、大規模なエンタープライズ レベルのデータ ソリューションを保守するためのツール セットが用意されています。 これは、大量の車両データに対する長時間の操作に必要です。 データ エンジニアは、分析ワークベンチとして Azure Databricks を使います。
- Azure Synapse Analytics は、データ ウェアハウスやビッグ データ システム全体で分析情報を取得する時間を短縮します。
- Azure Cognitive Search は、データ カタログ検索サービスを提供します。
MLOps
機械学習の運用 (MLOps) には、次のものが含まれます。
- DataOps パイプラインの間にシーンを分類する (たとえば、シーン内に歩行者がいるかどうか) ための特徴抽出モデル (CLIP や YOLO など)。
- 取り込まれた画像とライダーおよびレーダー データにラベル付けするための自動ラベル付けモデル。
- 物体やシーンを検出するための認識モデルとコンピューター ビジョン モデル。
- センサー ストリームを結合するセンサー融合モデル。
認識モデルは、このアーキテクチャの重要なコンポーネントです。 この Azure Machine Learning モデルは、検出されて抽出されたシーンを使って物体検出モデルを生成します。
コンテナー化された機械学習モデルの、システム オン チップ (SoC) ハードウェアと検証およびシミュレーション ソフトウェアで読み取ることができる形式への転送は、MLOps パイプラインで行われます。 このステップには、SoC 製造元のサポートが必要です。
MLOps のコンポーネント
- Azure Machine Learning は、特徴抽出、自動ラベル付け、物体検出と分類、センサー融合などの機械学習アルゴリズムを開発するために使われます。
- Azure DevOps は、CI/CD、テスト、自動化などの DevOps タスクのサポートを提供します。
- GitHub for enterprises は、CI/CD、テスト、自動化などの DevOps タスクの代わりになります。
- Azure Container Registry を使うと、コンテナー イメージと成果物をプライベート レジストリでビルド、格納、管理できます。
ValOps
検証の運用 (ValOps) は、実環境で高コストのテストを実行する前に、開発されたモデルを管理されたシナリオを使ってシミュレートされた環境でテストするプロセスです。 ValOps テストは、モデルが目標のパフォーマンス標準、精度基準、安全要件を満たしていることを確認するのに役立ちます。 クラウドでの検証プロセスの目的は、自律運転車をライブ環境に展開する前に、潜在的な問題を明らかにして対処することです。 ValOps には次のものが含まれます。
- シミュレーションの検証。 クラウドベースのシミュレーション (オープンループ テストとクローズドループ テスト) 環境を使うと、自律運転車モデルを仮想的にテストできます。 このテストは大規模に実行され、実際のテストよりコストが低くなります。
- パフォーマンスの検証。 クラウドベースのインフラストラクチャでは、大規模なテストを実行して、自律運転車モデルのパフォーマンスを評価できます。 パフォーマンスの検証には、ストレス テスト、ロード テスト、ベンチマークを含めることができます。
検証に ValOps を使うと、クラウドベースのインフラストラクチャのスケーラビリティ、柔軟性、コスト効率を活用でき、自律運転車モデルの市場投入までの時間を短縮できます。
オープンループ テスト
再シミュレーション ("センサー処理") は、自動運転機能のためのオープンループ テストと検証のシステムです。 これは複雑なプロセスであり、安全性、データ プライバシー、データのバージョン管理、監査に関する規制要件が存在する可能性があります。 再シミュレーションでは、クラウド内のグラフを介してさまざまな自動車センサーから記録された生データが処理されます。 再シミュレーションによって、データ処理アルゴリズムの検証や、回帰の検出が行われます。 OEM は、現実世界の車両を表す有向非巡回グラフでセンサーを組み合わせます。
再シミュレーションは、大規模な並列コンピューティング ジョブです。 数万個のコアを使って、数十または数百 PB のデータを処理します。 30 GB/秒を超える I/O スループットが必要です。 車両が現実世界を移動したときに車載コンピューター ビジョン システムによって記録されるもののビューを表すデータセットに、複数のセンサーからのデータが結合されます。 オープンループ テストでは、リプレイとスコアリングを使って、地上検証データに対するアルゴリズムのパフォーマンスが検証されます。 出力は、後でアルゴリズム トレーニングのためにワークフローで使われます。
- データセットは、生のセンサー データ (カメラ、ライダー、レーダー、超音波データなど) を収集するテスト フリート車両から供給されます。
- データ量は、カメラの解像度と車両上のセンサーの数によって異なります。
- 生データは、デバイスの異なるソフトウェア リリースに対して再処理されます。
- 生センサー データは、センサー ソフトウェアのセンサー入力インターフェイスに送信されます。
- 出力は、以前のソフトウェア バージョンの出力と比較され、バグ修正や新しいオブジェクトの種類の検出などの新機能についてチェックされます。
- モデルとソフトウェアが更新された後、ジョブの 2 回目の再挿入が実行されます。
- 地上検証データは、結果を検証するために使われます。
- 結果はストレージに書き込まれ、視覚化のために Azure Data Explorer にオフロードされます。
クローズドループ テストとシミュレーション
自律運転車のクローズドループ テストは、環境からのリアルタイム フィードバックを取り込みながら、車両の機能をテストするプロセスです。 車両のアクションは、事前にプログラムされた動作と、遭遇する動的条件の両方に基づいており、それに応じてアクションが調整されます。 クローズドループ テストは、より複雑で現実的な環境で実行されます。 これは、予期しない状況への対応方法など、実際のシナリオを処理する車両の能力を評価するために使われます。 クローズドループ テストの目的は、車両がさまざまな条件で安全かつ効果的に動作できることを検証し、必要に応じて制御アルゴリズムと意思決定プロセスを改良することです。
ValOps パイプラインは、クローズドループ テスト、サードパーティのシミュレーション、ISV アプリケーションを統合します。
シナリオの管理
ValOps ステージの間に、実際のシナリオのカタログを使って、自律運転車の動作をシミュレートする自律運転ソリューションの能力が検証されます。 その目的は、公開されていて自由に利用できるデジタル マップから、シナリオの一部であるルート ネットワークを自動的に読み取ることによって、シナリオ カタログの作成を高速化することです。 シナリオ管理用のサードパーティ製ツール、または OpenDRIVE (xodr) 形式をサポートする CARLA などの軽量なオープンソース シミュレーターを使います。 詳しくは、「CARLA 用 ScenarioRunner」をご覧ください。
ValOps のコンポーネント
- Azure Kubernetes Service は、Resin フレームワーク内でオープンループ検証のための大規模なバッチ推論を実行します。 測定値ファイルにアクセスするには、BlobFuse2 を使うことをお勧めします。 NFS を使うこともできますが、ユース ケースでのパフォーマンスを評価する必要があります。
- Azure Batch は、Resin フレームワーク内でオープンループ検証のための大規模なバッチ推論を実行します。
- Azure Data Explorer は、測定値と KPI (つまり、再シミュレーションとジョブ実行) のための分析サービスを提供します。
AVOps の機能の一元化
AVOps アーキテクチャは複雑であり、さまざまなサード パーティ、ロール、開発ステージが含まれるため、適切なガバナンス モデルを実装することが重要です。
一元化されたチームを設けて、インフラストラクチャのプロビジョニング、コスト管理、メタデータとデータ カタログ、系列、オーケストレーションとイベントの全体的な処理などの機能を処理することをお勧めします。 これらのサービスを一元化すると、効率がよく、運用が簡略化されます。
一元化されたチームを使って、次の責任を処理することをお勧めします。
- AVOps アーキテクチャの各領域とサブ領域で使われるストレージやコンピューティングといった標準サービス用のテンプレートなど、ARM/Bicep テンプレートの提供
- AVOps データ ループのイベント駆動オーケストレーションのための、中央の Azure Service Bus および Azure Event Hubs のインスタンスの実装
- メタデータ カタログの所有権
- AVOps のすべてのコンポーネントを対象とするエンド ツー エンドの系列と追跡可能性の機能
シナリオの詳細
このアーキテクチャを使って、Azure で自動運転ソリューションを構築できます。
考えられるユース ケース
自動運転向けのソリューションを開発する自動車メーカー、レベル 1 ベンダー、ISV。
考慮事項
これらの考慮事項は、ワークロードの品質向上に使用できる一連の基本原則である Azure Well-Architected Framework の要素を組み込んでいます。 詳細については、「Microsoft Azure Well-Architected Framework」を参照してください。
セキュリティ
セキュリティは、重要なデータやシステムの意図的な攻撃や悪用に対する保証を提供します。 詳細については、「セキュリティの重要な要素の概要」を参照してください。
自動車メーカーとクラウド プロバイダーの間の責任分担を理解することが重要です。 車両では、メーカーはスタック全体を所有しますが、データがクラウドに移動すると、責任の一部はクラウド プロバイダーに移ります。 Azure PaaS (サービスとしてのプラットフォーム) では、オペレーティング システムなど、物理スタックに強化されたセキュリティが組み込まれています。 インフラストラクチャのセキュリティ コンポーネントに加えて、次の機能強化を適用できます。 これらの機能強化により、ゼロ トラスト アプローチが可能になります。
- ネットワーク セキュリティのためのプライベート エンドポイント。 詳細については、「Azure Data Explorer のプライベート エンドポイント」および「プライベート エンドポイント経由での Azure Event Hubs 名前空間へのアクセスを許可する」を参照してください。
- 保存時および転送中の暗号化。 詳細については、「Azure の暗号化の概要」を参照してください。
- Microsoft Entra ID と Microsoft Entra 条件付きアクセス ポリシーを使用する ID 管理とアクセス管理。
- Azure Data Explorer の行レベル セキュリティ (RLS)。
- Azure Policy を使用するインフラストラクチャ ガバナンス。
- Microsoft Purview を使用するデータ ガバナンス。
- 車両の接続をセキュリティで保護するための証明書管理。
- 最小特権アクセス。 Just-In-Time (JIT) と Just-Enough-Administration (JEA)、リスクベースの適応型ポリシー、データ保護で、ユーザーのアクセスを制限します。
コストの最適化
コストの最適化とは、不要な費用を削減し、運用効率を向上させることです。 詳しくは、コスト最適化の柱の概要に関する記事をご覧ください。
これらの戦略を使って、自律運転ソリューションの開発に関連するコストを削減できます。
- クラウド インフラストラクチャを最適化します。 クラウド インフラストラクチャの慎重な計画と管理は、コストの削減に役立ちます。 たとえば、コスト効率の高いインスタンスの種類を使い、変化するワークロードに対応してインフラストラクチャをスケーリングします。 Azure クラウド導入フレームワークのガイダンスに従います。
- Spot Virtual Machines を使います。 AVOps のデプロイで特定の期間内に処理を必要としないワークロードを特定し、そのようなワークロードには Spot Virtual Machines を使用できます。 Spot Virtual Machines を使うと、未使用の Azure 容量を大幅なコスト削減に利用できます。 Azure で容量が再び必要になると、スポット仮想マシンは Azure インフラストラクチャによって削除されます。
- 自動スケーリングを使います。 自動スケーリングを使うと、需要に基づいてクラウド インフラストラクチャを自動的に調整でき、手動介入の必要性が減り、コストを削減できます。 詳しくは、「スケーリングを考慮した設計」をご覧ください。
- ストレージにホット、クール、アーカイブの各層を使うことを検討します。 ストレージは自律運転ソリューションにおいて大きなコストになる可能性があるため、コールド ストレージや低アクセス頻度ストレージなど、コスト効率の高いストレージ オプションを選ぶ必要があります。 詳しくは、データ ライフサイクル管理に関する記事をご覧ください。
- コスト管理と最適化のツールを使います。 Microsoft Cost Management のツールを使うと、未使用のリソースや使用率の低いリソースなど、コスト削減の対象となる領域を特定して対処できます。
- Azure サービスの使用を検討します。 たとえば、Azure Machine Learning を使って、自律運転モデルを構築してトレーニングできます。 これらのサービスを使うと、社内でインフラストラクチャを構築して保守するより、コスト効率が高くなります。
- 共有リソースを使います。 可能であれば、共有データベースや共有コンピューティング リソースなどの共有リソースを使って、自律運転の開発に関連するコストを削減できます。 このアーキテクチャの一元化された機能では、たとえば、中央バス、イベント ハブ、メタデータ カタログを実装します。 Azure Data Share などのサービスも、この目標を実現するのに役立ちます。
共同作成者
この記事は、Microsoft によって保守されています。 当初の寄稿者は以下のとおりです。
プリンシパルの作成者:
- Ryan Matsumura | シニア プログラム マネージャー
- Jochen Schroeer | リード アーキテクト (サービス ライン モビリティ)
その他の共同作成者:
- Mick Alberts | テクニカル ライター
- David Peterson | チーフ アーキテクト
- Gabriel Sallah | HPC/AI グローバル ブラック ベルト スペシャリスト
パブリックでない LinkedIn プロファイルを表示するには、LinkedIn にサインインします。
次のステップ
関連リソース
自動運転システム用の DataOps の開発の詳細については、次を参照してください。
必要に応じて次の関連する記事も参照してください。