제조용 에지에서 엔드투엔드 컴퓨터 버전

Azure Data Factory
Azure IoT Edge
Azure IoT Hub
Azure Machine Learning
Azure Pipelines

이 예제 아키텍처에서는 제조에서 IoT(사물 인터넷) 컴퓨터 비전에 대한 엔드투엔드 방식을 보여 줍니다.

아키텍처

Diagram showing the end-to-end approach to computer vision from the edge to the cloud and back.

이 아키텍처의 Visio 파일을 다운로드합니다.

데이터 흐름

  1. IoT Edge 사용자 지정 모듈은 라이브 동영상 스트림을 캡처하고 이를 프레임으로 나누고 이미지 데이터에 대한 유추를 수행하여 인시던트가 발생했는지 확인합니다.
  2. 또한 사용자 지정 모듈은 Azure Storage SDK 메서드 또는 Blob API를 사용하여 원시 미디어 저장소 역할을 하는 Azure Storage에 원시 동영상 파일을 업로드합니다.
  3. 사용자 지정 모듈은 추론 결과와 메타데이터를 양방향 통신을 위한 중앙 메시지 허브 역할을 하는 Azure IoT Hub로 보냅니다.
  4. Azure Logic Apps는 인시던트 이벤트에 대한 메시지에 대해 IoT Hub를 모니터링합니다. Logic Apps는 추론 결과와 메타데이터를 스토리지용 Microsoft Dataverse로 라우팅합니다.
  5. 인시던트가 발생하면 Logic Apps는 사이트 엔지니어에게 SMS 및 이메일 알림을 보냅니다. 사이트 엔지니어는 Power Apps 기반 모바일 앱을 사용하여 인시던트를 확인하고 해결합니다.
  6. Power Apps는 Dataverse에서 추론 결과와 메타데이터를, Blob Storage에서 원시 비디오 파일을 가져와 인시던트에 대한 관련 정보를 표시합니다. Power Apps는 사이트 엔지니어가 제공한 인시던트 해결로 Dataverse를 업데이트합니다. 이 단계는 모델 재학습을 위해 인간 참여형 유효성 검사로 작동합니다.
  7. Azure Data Factory는 원시 미디어 저장소에서 원시 비디오 파일을 가져오고 Dataverse에서 해당 추론 결과와 메타데이터를 가져오는 데이터 오케스트레이터입니다.
  8. Data Factory는 감사 목적으로 비디오 보관 계층 역할을 하는 Azure Data Lake에 원시 비디오 파일과 메타데이터를 저장합니다.
  9. Data Factory는 원시 비디오 파일을 프레임으로 분류하고 추론 결과를 레이블로 변환하며 데이터를 ML 데이터 저장소 역할을 하는 Blob Storage에 업로드합니다.
  10. 모델 코드를 변경하면 운영자가 수동으로 트리거할 수도 있는 Azure Pipelines 모델 오케스트레이터 파이프라인이 자동으로 트리거됩니다. 또한 코드 변경 사항은 Azure Machine Learning에서 ML 모델 학습과 유효성 검사 프로세스를 시작합니다.
  11. Azure Machine Learning은 ML 데이터 스토리지의 데이터 유효성을 검사하고 필요한 데이터 세트를 Azure 프리미엄 Blob Storage에 복사하여 모델 학습을 시작합니다. 이 성능 계층은 더 빠른 모델 학습을 위한 데이터 캐시를 제공합니다.
  12. Azure Machine Learning은 프리미엄 데이터 캐시의 데이터 세트를 사용하여 모델을 학습시키고 학습된 모델의 성능에 대한 유효성을 검사하고 새로 학습된 모델에 점수를 매기며 모델을 Azure Machine Learning 레지스트리에 등록합니다.
  13. Azure Pipelines 모델 오케스트레이터는 새로 학습된 ML 모델의 성능을 검토하고 이전 모델보다 성능이 우수한지 확인합니다. 새 모델의 성능이 우수하면 파이프라인은 Azure Machine Learning에서 모델을 다운로드하고 새 버전의 ML 추론 모듈을 빌드하여 Azure Container Registry에 게시합니다.
  14. 새 ML 추론 모듈이 준비되면 Azure Pipelines는 Container Registry의 모듈 컨테이너를 IoT Hub의 IoT Edge 모듈에 배포합니다.
  15. IoT Hub는 새 ML 유추 모듈로 IoT Edge 디바이스를 업데이트합니다.

구성 요소

  • Azure IoT Edge 서비스는 디바이스 데이터를 로컬에서 분석하여 더 적은 양의 데이터를 클라우드로 전송하고, 이벤트에 빠르게 반응하고, 낮은 연결 상태에서 작동합니다. IoT Edge ML 모듈은 스트리밍 동영상 데이터에서 실행 가능한 인사이트를 추출할 수 있습니다.
  • Azure IoT Hub는 수백만의 IoT 디바이스와 클라우드 기반 백 엔드 간에서 안정적이고 안전한 양방향 통신이 가능하도록 관리되는 서비스입니다. IoT Hub는 디바이스별 인증, 메시지 라우팅, 다른 Azure 서비스와 통합 및 디바이스를 제어 및 구성하는 관리 기능을 제공합니다.
  • Azure Logic Apps는 앱, 데이터, 서비스 및 시스템을 통합하는 자동화 워크플로를 만들고 실행할 수 있는 서버리스 클라우드 서비스입니다. 개발자는 시각적 디자이너를 사용하여 일반적인 작업 워크플로를 예약하고 오케스트레이션할 수 있습니다. Logic Apps에는 가장 많은 사용되는 클라우드 서비스, 온-프레미스 제품 및 기타 SaaS(Software as a Service) 애플리케이션에 사용되는 커넥터가 있습니다. 이 솔루션에서 Logic Apps는 사이트 엔지니어에게 SMS 및 이메일 경고를 보내는 자동 알림 워크플로를 실행합니다.
  • Power Apps는 데이터 플랫폼이자 앱, 서비스 및 커넥터의 도구 모음입니다. RAD(신속한 애플리케이션 개발) 환경 역할을 수행합니다. 기본 데이터 플랫폼은 Microsoft Dataverse입니다.
  • Dataverse는 Power Apps용 클라우드 기반 스토리지 플랫폼입니다. Dataverse는 인간 참여형 알림을 지원하고 MLOps 데이터 파이프라인과 연결된 메타데이터를 저장합니다.
  • Azure Blob Storage는 비정형 데이터에 대한 확장 가능하고 안전한 개체 스토리지입니다. 보관, 데이터 레이크, 고성능 컴퓨팅, 기계 학습 및 클라우드 네이티브 워크로드에 사용할 수 있습니다. 이 솔루션에서 Blob Storage는 ML 데이터 저장소용 로컬 데이터 저장소와 ML 모델 학습을 위한 프리미엄 데이터 캐시를 제공합니다. Blob Storage의 프리미엄 계층은 이 예제의 인간 참여형 비디오 레이블 지정과 같이 빠른 응답 시간과 높은 트랜잭션 속도가 필요한 워크로드에 사용됩니다.
  • Data Lake Storage는 고성능 분석 워크로드를 위한 대규모로 확장 가능하고 안전한 스토리지 서비스입니다. 데이터는 일반적으로 다른 유형의 여러 소스에서 제공되며 구조화, 반구조화 또는 구조화되지 않을 수 있습니다. Azure Data Lake Storage Gen2는 Azure Data Lake Storage Gen1 기능을 Blob Storage와 결합하고 파일 시스템 의미 체계, 파일 수준 보안 및 규모를 제공합니다. 또한 Blob Storage의 계층화된 스토리지, 고가용성 및 재해 복구 기능을 제공합니다. 이 솔루션에서 Data Lake Storage는 원시 비디오 파일과 메타데이터를 보관하는 비디오 저장소를 제공합니다.
  • Azure Data Factory는 데이터 통합과 변환 워크플로를 위한 하이브리드 완전 관리형 서버리스 솔루션입니다. 이 솔루션에서는 코드 없는 UI와 사용하기 쉬운 모니터링 패널을 제공합니다. Azure Data Factory는 데이터 이동을 위해 파이프라인을 사용합니다. 매핑 데이터 흐름은 ETL(추출, 변환 및 로드) 및 ELT(추출, 로드 및 변환)와 같은 다양한 변환 작업을 수행합니다. 이 예제에서 Data Factory는 ETL 파이프라인의 데이터를 재학습 목적으로 저장하는 추론 데이터에 오케스트레이션합니다.
  • Azure Machine Learning은 모델을 신속하게 빌드하고 배포할 수 있는 한 엔터프라이즈급 기계 학습 서비스입니다. 이 서비스에서는 모든 기술 수준의 사용자에게 하위 코드 디자이너, 자동화된 Machine Learning 및 다양한 IDE를 지원하는 호스트된 Jupyter Notebook 환경을 제공합니다.
  • Azure DevOps 팀 기반 개발자 서비스의 일부인 Azure Pipelines는 CI(연속 통합) 및 CD(지속적인 배포) 파이프라인을 만듭니다. 이 예제에서 Azure Pipelines 모델 오케스트레이터는 ML 코드의 유효성을 검사하고 서버리스 작업 파이프라인을 트리거하고 ML 모델을 비교하며 추론 컨테이너를 빌드합니다.
  • Container Registry는 컨테이너화된 ML 모델을 포함하여 Docker 컨테이너 이미지를 빌드, 저장 및 관리하는 Docker 레지스트리를 만들고 관리합니다.
  • Azure Monitor는 Azure 리소스에서 원격 분석을 수집하므로 팀은 문제를 사전에 식별하고 성능과 안정성을 극대화할 수 있습니다.

대안

데이터 파이프라인을 사용하여 비디오 스트림을 이미지 프레임으로 분류하는 대신 Azure Blob Storage 모듈을 IoT Edge 디바이스에 배포할 수 있습니다. 그런 다음, 추론 모듈은 추론된 이미지 프레임을 에지 디바이스의 스토리지 모듈에 업로드합니다. 스토리지 모듈에서는 프레임을 직접 ML 데이터 저장소에 업로드할 시기를 결정합니다. 이 방식의 장점은 데이터 파이프라인에서 단계를 제거한다는 점입니다. 단점은 에지 디바이스가 Azure Blob Storage와 밀접하게 결합되어 있다는 점입니다.

모델 오케스트레이션에 Azure Pipelines 또는 Azure Data Factory를 사용할 수 있습니다.

  • Azure Pipelines 장점은 ML 모델 코드와의 긴밀한 관계입니다. CI/CD를 통해 코드 변경 사항으로 간편하게 학습 파이프라인을 트리거할 수 있습니다.
  • Data Factory의 이점은 각 파이프라인에서 필요한 컴퓨팅 리소스를 프로비전할 수 있다는 점입니다. Data Factory는 일반적인 CI/CD 흐름을 구성할 수 있는 ML 학습이 실행되도록 Azure Pipelines 에이전트를 유지하지 않습니다.

시나리오 정보

완전 자동화된 스마트 공장에서는 AI(인공 지능) 및 ML(기계 학습)을 사용하여 데이터를 분석하고 시스템을 실행하며 시간 경과에 따라 프로세스를 개선합니다.

이 예에서 카메라는 ML 모델을 실행하는 Azure IoT Edge 디바이스로 이미지를 보냅니다. 모델은 추론을 계산하고 추가 처리를 위해 실행 가능한 출력을 클라우드로 보냅니다. 사람의 개입은 ML 모델에서 캡처하는 인텔리전스의 일부입니다. ML 프로세스는 연속적인 ML 알고리즘 학습, 테스트, 튜닝 및 유효성 검사 주기입니다.

잠재적인 사용 사례

제조 프로세스는 안전 및 품질 보증 애플리케이션에서 IoT 컴퓨터 비전을 사용합니다. IoT 컴퓨터 비전 시스템은 다음을 수행할 수 있습니다.

  • 올바른 레이블 지정과 같은 제조 지침을 준수할 수 있게 합니다.
  • 표면 불균일과 같은 제조 결함을 식별합니다.
  • 건물 또는 구역 입구를 모니터링하여 보안을 강화합니다.
  • PPE(개인 보호 장비) 사용 및 기타 안전 사례를 감지하여 작업자의 안전을 유지합니다.

고려 사항

이러한 고려 사항은 워크로드의 품질을 향상시키는 데 사용할 수 있는 일단의 지침 원칙인 Azure Well-Architected Framework의 핵심 요소를 구현합니다. 자세한 내용은 Microsoft Azure Well-Architected Framework를 참조하세요.

가용성

ML 기반 애플리케이션에는 일반적으로 학습용 리소스 세트와 처리용 리소스 세트가 각각 하나씩 필요합니다. 일반적으로 라이브 프로덕션 요청에서 학습 리소스를 직접 사용하지 않으므로 이 리소스에 고가용성은 필요하지 않습니다. 요청을 처리하는 데 필요한 리소스에는 고가용성이 필요합니다.

작업

이 솔루션은 3가지 작업 영역으로 나뉩니다.

  • IoT 작업에서 에지 디바이스의 ML 모델은 연결된 카메라의 실시간 이미지를 사용하여 비디오 프레임을 추론합니다. 또한 에지 디바이스는 감사 및 모델 재학습에 사용할 캐시된 비디오 스트림을 클라우드 스토리지로 보냅니다. ML 재학습 후 Azure IoT Hub는 새 ML 추론 모듈을 사용하여 에지 디바이스를 업데이트합니다.

  • MLOps는 DevOps 사례를 사용하여 모델 학습, 테스트 및 배포 작업을 오케스트레이션합니다. MLOps 수명 주기 관리는 복잡한 의사 결정에 ML 모델을 사용하거나 모델을 프로덕션화하는 프로세스를 자동화합니다. MLOps의 핵심은 ML 모델을 빌드, 학습, 평가 및 배포하는 팀 간의 긴밀한 조정입니다.

  • 인간 참여형(Human-in-the-loop) 작업은 자동화의 특정 단계에 개입하도록 사용자에게 알립니다. 인간 참여형 트랜잭션에서 작업자는 기계 학습 예측 결과를 확인하고 평가합니다. 인간 개입은 ML 모델에서 캡처하는 인텔리전스의 일부가 되며 모델 유효성을 검사하는 데 도움이 됩니다.

    다음 인간 역할은 이 솔루션의 일부입니다.

    • 사이트 엔지니어는 Logic Apps에서 보내는 인시던트 알림을 받고 ML 모델의 결과나 예측의 유효성을 수동으로 검사합니다. 예를 들어 사이트 엔지니어는 모델에서 예측한 밸브가 실패한 것을 검사할 수 있습니다.

    • 데이터 레이블 지정자는 재학습에 사용되는 데이터 세트에 레이블을 지정하여 엔드투엔드 솔루션의 루프를 완료합니다. 데이터 레이블 지정 프로세스는 알고리즘을 통해 신뢰할 수 있는 모델을 학습시키는 첫 번째 단계로 이미지 데이터에 특히 중요합니다. 이 예에서 Azure Data Factory는 비디오 프레임을 긍정 및 가양성 그룹화로 구성하므로 데이터 레이블 지정자의 작업이 더욱 쉬워집니다.

    • 데이터 과학자는 레이블이 지정된 데이터 세트를 사용하여 올바른 실제 예측을 수행하는 알고리즘을 학습시킵니다. 데이터 과학자는 CI 프로세스에서 GitHub Actions 또는 Azure Pipelines와 함께 MLOps를 사용하여 모델을 자동으로 학습시키고 유효성을 검사합니다. 학습을 수동으로 또는 새 학습 스크립트나 데이터를 체크 인하여 자동으로 트리거할 수 있습니다. 데이터 과학자는 모델을 자동으로 등록, 배포 및 관리할 수 있는 Azure Machine Learning 작업 영역에서 작업합니다.

    • IoT 엔지니어는 Azure Pipelines를 사용하여 컨테이너의 IoT Edge 모듈을 Container Registry에 게시합니다. 엔지니어는 CD 파이프라인을 사용하여 요청 시 인프라를 배포하고 확장할 수 있습니다.

    • 안전 감사자는 보관된 비디오 스트림을 검토하여 이상을 감지하고 규정 준수를 평가하며 모델 예측에 대한 질문이 발생하면 결과를 확인합니다.

    이 솔루션에서 IoT Hub는 카메라에서 원격 분석을 수집하고 메트릭을 Azure Monitor로 전송하므로 사이트 엔지니어가 조사하고 문제를 해결할 수 있습니다. Azure Machine Learning은 Azure Monitor에 가시성 메트릭과 모델 원격 분석을 전송하므로 IoT 엔지니어와 데이터 과학자가 작업을 최적화할 수 있습니다.

성능

IoT 디바이스의 메모리와 처리 성능은 제한되어 있으므로 디바이스로 전송되는 모델 컨테이너의 크기를 제한하는 것이 중요합니다. 모델 추론을 수행하고 허용 가능한 시간 동안 결과를 생성할 수 있는 IoT 디바이스를 사용해야 합니다.

학습 모델의 성능을 최적화하도록 이 예제 아키텍처는 Azure Premium Blob Storage를 사용합니다. 이 성능 계층은 인간 참여형 비디오 레이블 지정 시나리오와 같이 빠른 응답 시간과 높은 트랜잭션 속도가 필요한 워크로드를 위해 설계되었습니다.

성능 고려 사항은 데이터 수집 파이프라인에도 적용됩니다. Data Factory는 성능이 뛰어나고 경제적인 솔루션을 제공하여 데이터 이동을 극대화합니다.

확장성

이 솔루션에서 사용되는 대부분의 구성 요소는 자동으로 확장되는 관리되는 서비스입니다.

IoT 애플리케이션의 확장성은 IoT Hub 할당량과 제한에 따라 달라집니다. 고려해야 할 요소는 다음과 같습니다.

  • IoT Hub에 대한 메시지의 최대 일일 할당량
  • IoT Hub 인스턴스에서 연결된 디바이스의 할당량
  • 수집 및 처리량.

ML에서 확장성은 대규모 데이터 세트에 대해 모델을 학습시키는 데 사용되는 스케일 아웃 클러스터를 나타냅니다. 또한 확장성을 사용하면 ML 모델에서 이를 사용하는 애플리케이션의 요구 사항을 충족할 수 있습니다. 이러한 요구 사항을 충족하려면 ML 클러스터가 CPU 및 GPU(그래픽 처리 장치) 지원 노드에서 스케일 아웃을 제공해야 합니다.

확장 가능한 솔루션 설계에 대한 일반적인 지침은 Azure 아키텍처 센터의 성능 효율성 검사 목록을 참조하세요.

보안

우수한 보안은 중요한 데이터 및 시스템에 대한 고의적인 공격과 악용을 방어합니다. 자세한 내용은 보안 요소의 개요를 참조하세요.

Dataverse 및 기타 Azure 서비스의 액세스 관리를 사용하면 권한 있는 사용자만 환경, 데이터 및 보고서에 액세스할 수 있습니다. 이 솔루션에서는 Azure Key Vault를 사용하여 암호와 비밀을 관리합니다. 스토리지는 고객 관리형 키를 통해 암호화됩니다.

보안 IoT 솔루션 설계에 대한 일반적인 지침은 Azure 보안 문서Azure IoT 참조 아키텍처를 참조하세요.

비용 최적화

비용 최적화는 불필요한 비용을 줄이고 운영 효율성을 높이는 방법을 찾는 것입니다. 자세한 내용은 비용 최적화 핵심 요소 개요를 참조하세요.

일반적으로 Azure 가격 계산기를 사용하여 비용을 예측합니다. 다른 고려 사항은 비용 최적화를 참조하세요.

또한 Azure Machine Learning은 추가 비용이 발생하는 Container Registry, Azure Storage 및 Azure Key Vault 서비스를 배포합니다. 자세한 내용은 Azure Machine Learning 작동 방식: 아키텍처 및 개념을 참조하세요.

Azure Machine Learning 가격 책정에는 클라우드에서 모델을 학습시키는 데 사용되는 VM(가상 머신)에 대한 요금이 포함됩니다. Azure 지역당 Azure Machine Learning 및 VM의 가용성에 대한 자세한 내용은 지역별 사용 가능한 제품을 참조하세요.

참가자

Microsoft에서 이 문서를 유지 관리합니다. 원래 다음 기여자가 작성했습니다.

보안 주체 작성자:

  • Wilson Lee | 수석 소프트웨어 엔지니어

다음 단계