솔루션 아이디어
이 문서는 솔루션 아이디어 설명입니다. 클라우드 설계자는 이 지침을 사용하여 이 아키텍처의 일반적인 구현을 위한 주요 구성 요소를 시각화할 수 있습니다. 이 문서를 시작점으로 사용하여 워크로드의 특정 요구 사항에 맞는 잘 설계된 솔루션을 디자인할 수 있습니다.
이 아키텍처는 자동화된 주행 솔루션을 개발하기 위한 지침과 권장 사항을 제공합니다.
아키텍처
이 문서의 아키텍처 다이어그램이 포함된 Visio 파일을 다운로드합니다.
데이터 흐름
측정 데이터는 카메라, 레이더, 초음파, lidar 및 차량 원격 분석과 같은 센서에 대한 데이터 스트림에서 가져옵니다. 차량의 데이터 로거는 로거 스토리지 디바이스에 측정 데이터를 저장합니다. 그런 다음 로거 스토리지 데이터가 방문 데이터 레이크에 업로드됩니다. 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(자율 주행 차량 운영)의 주요 과제 중 하나입니다. 다음 다이어그램은 오프라인 및 온라인 차량 데이터를 수집하여 데이터 레이크에 저장할 수 있는 방법의 예를 보여줍니다.
DataOps
DataOps(데이터 작업)는 데이터 작업의 품질, 속도 및 안정성을 개선하기 위한 일련의 사례, 프로세스 및 도구입니다. AD(자율 주행)를 위한 DataOps 흐름의 목표는 차량을 제어하는 데 사용되는 데이터가 고품질, 정확하고 신뢰할 수 있도록 하는 것입니다. 일관된 DataOps 흐름을 사용하면 데이터 작업의 속도와 정확도를 개선하고 자율 주행 차량을 제어하기 위한 더 나은 결정을 내릴 수 있습니다.
DataOps 구성 요소
- Data Box 는 지역 운송업체를 통해 수집된 차량 데이터를 Azure로 전송하는 데 사용됩니다.
- ExpressRoute 는 프라이빗 연결을 통해 온-프레미스 네트워크를 Microsoft 클라우드로 확장합니다.
- Azure Data Lake Storage 는 원시 또는 추출된 단계와 같은 단계에 따라 데이터를 저장합니다.
- Azure Data Factory는 일괄 처리 컴퓨팅을 통해 ETL을 수행하고 데이터 이동을 오케스트레이션하고 데이터를 변환하기 위한 데이터 기반 워크플로를 만듭니다.
- Azure Batch 는 데이터 랭글링, 데이터 필터링 및 준비, 메타데이터 추출과 같은 작업에 대해 대규모 애플리케이션을 실행합니다.
- Azure Cosmos DB 는 저장된 측정값과 같은 메타데이터 결과를 저장합니다.
- 데이터 공유 는 보안 강화를 통해 레이블 지정 회사와 같은 파트너 조직과 데이터를 공유하는 데 사용됩니다.
- Azure Databricks 는 엔터프라이즈급 데이터 솔루션을 대규모로 유지 관리하기 위한 도구 집합을 제공합니다. 대량의 차량 데이터에 대한 장기 실행 작업에 필요합니다. 데이터 엔지니어는 Azure Databricks를 분석 워크벤치로 사용합니다.
- Azure Synapse Analytics 는 데이터 웨어하우스 및 빅 데이터 시스템 전반에서 인사이트에 대한 시간을 줄입니다.
- Azure Cognitive Search 는 데이터 카탈로그 검색 서비스를 제공합니다.
MLOps
MLOps(기계 학습 작업)에는 다음이 포함됩니다.
- DataOps 파이프라인 중에 장면(예: 보행자가 장면에 있는지 여부)을 분류하기 위한 기능 추출 모델(예: CLIP 및 YOLO).
- 수집된 이미지와 lidar 및 방사형 데이터에 레이블을 지정하기 위한 자동 레이블 지정 모델입니다.
- 개체 및 장면을 감지하기 위한 인식 및 컴퓨터 비전 모델입니다.
- 센서 스트림을 결합하는 센서 융합 모델입니다.
인식 모델은 이 아키텍처의 중요한 구성 요소입니다. 이 Azure Machine Learning 모델은 검색되고 추출된 장면을 사용하여 개체 검색 모델을 생성합니다.
컨테이너화된 기계 학습 모델을 칩(SoC) 하드웨어의 시스템에서 읽을 수 있는 형식으로 전송하고 유효성 검사/시뮬레이션 소프트웨어는 MLOps 파이프라인에서 발생합니다. 이 단계에서는 SoC 제조업체의 지원이 필요합니다.
MLOps 구성 요소
- Azure Machine Learning 은 기능 추출, 자동 레이블 지정, 개체 감지 및 분류 및 센서 융합과 같은 기계 학습 알고리즘을 개발하는 데 사용됩니다.
- Azure DevOps는 CI/CD, 테스트 및 자동화와 같은 DevOps 작업을 지원합니다.
- 엔터프라이즈 용 GitHub는 CI/CD, 테스트 및 자동화와 같은 DevOps 작업에 대한 대안입니다.
- Azure Container Registry 를 사용하면 프라이빗 레지스트리에서 컨테이너 이미지 및 아티팩트를 빌드, 저장 및 관리할 수 있습니다.
ValOps
ValOps(유효성 검사 작업)는 비용이 많이 드는 실제 환경 테스트를 수행하기 전에 관리되는 시나리오를 통해 시뮬레이션된 환경에서 개발된 모델을 테스트하는 프로세스입니다. ValOps 테스트는 모델이 원하는 성능 표준, 정확도 표준 및 안전 요구 사항을 충족하는지 확인하는 데 도움이 됩니다. 클라우드의 유효성 검사 프로세스의 목표는 라이브 환경에서 자율 주행 차량을 배포하기 전에 잠재적인 문제를 식별하고 해결하는 것입니다. ValOps에는 다음이 포함됩니다.
- 시뮬레이션 유효성 검사. 클라우드 기반 시뮬레이션(오픈 루프 및 폐쇄 루프 테스트) 환경을 통해 자율 주행 차량 모델의 가상 테스트를 수행할 수 있습니다. 이 테스트는 대규모로 실행되며 실제 테스트보다 비용이 저렴합니다.
- 성능 유효성 검사. 클라우드 기반 인프라는 대규모 테스트를 실행하여 자율 주행 차량 모델의 성능을 평가할 수 있습니다. 성능 유효성 검사에는 스트레스 테스트, 부하 테스트 및 벤치마크가 포함될 수 있습니다.
유효성 검사에 ValOps를 사용하면 클라우드 기반 인프라의 확장성, 유연성 및 비용 효율성을 활용하고 자율 주행 차량 모델의 출시 시간을 줄일 수 있습니다.
오픈 루프 테스트
재시뮬레이션 또는 센서 처리는 자동 주행 기능을 위한 오픈 루프 테스트 및 유효성 검사 시스템입니다. 복잡한 프로세스이며 안전, 데이터 개인 정보 보호, 데이터 버전 관리 및 감사에 대한 규제 요구 사항이 있을 수 있습니다. 다시 시뮬레이션 프로세스는 클라우드의 그래프를 통해 다양한 자동차 센서의 원시 데이터를 기록했습니다. 다시 시뮬레이션은 데이터 처리 알고리즘의 유효성을 검사하거나 회귀를 검색합니다. OEM은 실제 차량을 나타내는 방향성 순환 그래프에 센서를 결합합니다.
재시뮬레이션은 대규모 병렬 컴퓨팅 작업입니다. 수만 개의 코어를 사용하여 수십 또는 수백 PB의 데이터를 처리합니다. 30GB/s 이상의 I/O 처리량이 필요합니다. 여러 센서의 데이터는 차량이 실제 세계를 탐색할 때 차량의 컴퓨터 비전 시스템이 기록하는 내용을 나타내는 데이터 세트로 결합됩니다. 오픈 루프 테스트는 재생 및 점수를 사용하여 지상 진리에 대한 알고리즘의 성능의 유효성을 검사합니다. 출력은 알고리즘 학습을 위해 워크플로의 뒷부분에서 사용됩니다.
- 데이터 세트는 원시 센서 데이터(예: 카메라, lidar, 레이더 및 초음파 데이터)를 수집하는 테스트 차량에서 제공됩니다.
- 데이터 볼륨은 카메라 해상도 및 차량의 센서 수에 따라 달라집니다.
- 원시 데이터는 디바이스의 여러 소프트웨어 릴리스에 대해 다시 처리됩니다.
- 원시 센서 데이터는 센서 소프트웨어의 센서 입력 인터페이스로 전송됩니다.
- 출력은 이전 소프트웨어 버전의 출력과 비교되며 새 개체 유형 검색과 같은 버그 수정 또는 새로운 기능에 대해 확인됩니다.
- 모델 및 소프트웨어가 업데이트된 후 작업의 두 번째 다시 주입이 수행됩니다.
- 기본 진리 데이터는 결과의 유효성을 검사하는 데 사용됩니다.
- 결과는 스토리지에 기록되고 시각화를 위해 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에서 자동화된 주행 솔루션을 빌드할 수 있습니다.
잠재적인 사용 사례
자동 운전 솔루션을 개발하는 자동차 OEM, 계층 1 공급업체 및 ISV.
고려 사항
이러한 고려 사항은 워크로드의 품질을 향상시키는 데 사용할 수 있는 일련의 기본 원칙인 Azure Well-Architected Framework의 핵심 요소를 구현합니다. 자세한 내용은 Microsoft Azure Well-Architected Framework를 참조하세요.
보안
우수한 보안은 중요한 데이터 및 시스템에 대한 고의적인 공격과 악용을 방어합니다. 자세한 내용은 보안 요소의 개요를 참조하세요.
자동차 OEM과 클라우드 공급자 간의 책임 분할을 이해하는 것이 중요합니다. 차량에서 OEM은 전체 스택을 소유하지만 데이터가 클라우드로 이동함에 따라 일부 책임은 클라우드 공급자에게 이전됩니다. Azure PaaS(Platform as a Service)는 운영 체제를 포함하여 물리적 스택에서 향상된 기본 제공 보안을 제공합니다. 인프라 보안 구성 요소 외에도 다음과 같은 향상된 기능을 적용할 수 있습니다. 이러한 향상된 기능을 통해 제로 트러스트 접근 방식을 사용할 수 있습니다.
- 네트워크 보안을 위한 프라이빗 엔드포인트. 자세한 내용은 Azure Data Explorer용 프라이빗 엔드포인트 및 프라이빗 엔드포인트를 통한 Azure Event Hubs 네임스페이스 액세스 허용을 참조하세요.
- 미사용 및 전송 중인 암호화. 자세한 내용은 Azure 암호화 개요를 참조하세요.
- Microsoft Entra ID 및 Microsoft Entra 조건부 액세스 정책을 사용하는 ID 및 액세스 관리입니다.
- Azure Data Explorer의 RLS(행 수준 보안).
- Azure Policy를 사용하는 인프라 거버넌스.
- Microsoft Purview를 사용하는 데이터 거버넌스.
- 차량 연결을 보호하는 데 도움이 되는 인증서 관리
- 최소 권한 액세스 JIT(Just-In-Time) 및 JEA(Just-Enough-Administration), 위험 기반 적응 정책 및 데이터 보호를 사용하여 사용자 액세스를 제한합니다.
비용 최적화
비용 최적화는 불필요한 비용을 줄이고 운영 효율성을 높이는 것입니다. 자세한 내용은 비용 최적화 핵심 요소 개요를 참조하세요.
이러한 전략을 사용하여 자율 주행 솔루션 개발과 관련된 비용을 줄일 수 있습니다.
- 클라우드 인프라를 최적화합니다. 클라우드 인프라를 신중하게 계획하고 관리하면 비용을 절감할 수 있습니다. 예를 들어 비용 효율적인 인스턴스 유형 및 크기 조정 인프라를 사용하여 변화하는 워크로드를 충족합니다. Azure 클라우드 채택 프레임워크 지침을 따릅니다.
- 스폿 가상 머신을 사용합니다. 특정 시간 프레임 내에서 처리가 필요하지 않은 AVOps 배포의 워크로드를 확인하고 이러한 워크로드에 스폿 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 | 수석 설계자
- 가브리엘 살라 | HPC/AI 글로벌 블랙 벨트 전문가
비공개 LinkedIn 프로필을 보려면 LinkedIn에 로그인합니다.
다음 단계
관련 참고 자료
자동화된 주행 시스템용 DataOps를 개발하는 방법에 대한 자세한 내용은 다음을 참조하세요.
다음 관련 문서를 참조할 수도 있습니다.