Amazon SageMaker Edge Manager 및 AWS IoT Greengrass PlatoBlockchain Data Intelligence를 사용하여 엣지에서 MLOps. 수직 검색. 일체 포함.

Amazon SageMaker Edge Manager 및 AWS IoT Greengrass를 사용한 엣지에서의 MLOps

사물 인터넷(IoT)을 통해 제조, 자동차, 에너지와 같은 다양한 산업 분야의 고객이 실제 환경을 모니터링하고 제어할 수 있습니다. 카메라, 온도 조절기 및 센서와 같은 다양한 에지 IoT 장치를 배포하여 데이터를 수집하고 클라우드로 보내고 기계 학습(ML) 모델을 구축하여 이상, 오류 등을 예측할 수 있습니다. 그러나 사용 사례에 실시간 예측이 필요한 경우 ML@Edge(에지에서 ML) 기능으로 IoT 솔루션을 강화해야 합니다. ML@엣지 ML 모델의 수명 주기를 앱 수명 주기와 분리하고 데이터 준비, 모델 구축, 모델 컴파일 및 최적화, 모델 배포(에지 장치 집합)를 포함하는 종단 간 ML 파이프라인을 실행할 수 있는 개념입니다. 모델 실행, 모델 모니터링 및 관리. 앱을 한 번 배포하고 필요한 만큼 ML 파이프라인을 실행합니다.

상상할 수 있듯이 ML@Edge 개념에서 제안한 모든 단계를 구현하는 것은 쉬운 일이 아닙니다. 개발자가 완전한 ML@Edge 솔루션을 구현하기 위해 해결해야 하는 많은 질문이 있습니다. 예를 들면 다음과 같습니다.

  • 에지에 있는 장치 집합(수백, 수천 또는 수백만)에서 ML 모델을 작동하려면 어떻게 해야 합니까?
  • 에지에서 배포 및 실행하는 동안 모델을 보호하려면 어떻게 해야 합니까?
  • 모델의 성능을 모니터링하고 필요한 경우 다시 학습시키려면 어떻게 해야 합니까?

이 게시물에서는 이러한 모든 질문에 답하고 ML@Edge 파이프라인을 자동화하기 위한 종단 간 솔루션을 구축하는 방법을 배웁니다. 사용하는 방법을 볼 수 있습니다. Amazon SageMaker Edge 관리자, 아마존 세이지 메이커 스튜디오AWS IoT 그린그래스 v2 ML 모델을 구축하고 대규모 에지 장치에 배포하는 프로세스를 자동화하는 MLOps(ML 작업) 환경을 생성합니다.

다음 섹션에서는 에지 워크로드에 중점을 둔 MLOps를 위한 완전한 솔루션을 구축하는 데 필요한 모든 구성 요소와 워크플로를 자세히 설명하는 참조 아키텍처를 제시합니다. 그런 다음 이 솔루션이 자동으로 실행하여 새 모델을 구축하고 준비하는 단계를 자세히 살펴봅니다. 또한 ML 모델 배포, 실행 및 모니터링을 시작하기 위해 에지 장치를 준비하는 방법과 장치 집합에 배포된 ML 모델을 모니터링 및 유지 관리하는 방법을 보여줍니다.

솔루션 개요

강력한 ML 모델을 생산하려면 특정 작업(MLOps)을 따르는 반자동 인프라에서 데이터 과학자, ML 엔지니어, 데이터 엔지니어 및 비즈니스 이해 관계자와 같은 여러 페르소나의 협업이 필요합니다. 또한 환경의 모듈화는 이러한 모든 페르소나에게 자신이 담당하는 구성 요소를 개발하거나 개선할 수 있는 유연성과 민첩성을 (워크플로와 별도로) 제공하는 데 중요합니다. 이러한 인프라의 예는 클라우드와 에지 장치 모두에서 ML 모델의 이러한 협업 및 생산을 가능하게 하는 여러 AWS 계정으로 구성됩니다. 다음 참조 아키텍처에서는 ML 모델을 구축하고 에지에 배포하기 위해 이 종단 간 MLOps 플랫폼을 구성하는 여러 계정과 서비스를 구성한 방법을 보여줍니다.

이 솔루션은 다음 계정으로 구성됩니다.

  • 데이터 레이크 계정 – 데이터 엔지니어는 사내 데이터베이스 및 IoT 장치를 비롯한 여러 데이터 소스에서 데이터를 수집, 저장 및 준비합니다.
  • 도구 계정 – IT 운영자는 원격 에지 장치에 대한 사전 프로덕션 및 프로덕션 계정 전반에 걸쳐 자동화된 지속적 전달 및 ML 모델 패키지 배포를 위한 CI/CD 파이프라인을 관리하고 확인합니다. CI/CD 파이프라인 실행은 다음을 사용하여 자동화됩니다. 아마존 이벤트 브리지, ML 모델 및 대상의 변경 상태 이벤트를 모니터링합니다. AWS 코드 파이프라인.
  • 실험 및 개발 계정 – 데이터 과학자는 ML을 기반으로 비즈니스 문제를 해결하기 위해 여러 모델링 기술 및 알고리즘으로 연구 및 실험을 수행하여 개념 증명 솔루션을 생성할 수 있습니다. ML 엔지니어와 데이터 과학자는 협력하여 개념 증명을 확장하고 다음을 사용하여 자동화된 워크플로를 만듭니다. Amazon SageMaker 파이프 라인 데이터를 준비하고 ML 모델을 빌드, 교육 및 패키징합니다. 파이프라인의 배포는 CI/CD 파이프라인을 통해 이루어지며 모델의 버전 제어는 Amazon SageMaker 모델 레지스트리. 데이터 과학자는 여러 모델 버전의 메트릭을 평가하고 CI/CD 파이프라인을 트리거하여 최상의 모델을 프로덕션으로 승격하도록 요청합니다.
  • 사전 제작 계정 – 모델을 프로덕션 환경으로 승격하기 전에 시뮬레이션 환경에서 견고성을 보장하기 위해 모델을 테스트해야 합니다. 따라서 사전 프로덕션 환경은 SageMaker 모델 엔드포인트가 자동으로 배포 및 테스트되는 프로덕션 환경의 시뮬레이터입니다. 테스트 방법에는 통합 테스트, 스트레스 테스트 또는 추론 결과에 대한 ML 관련 테스트가 포함될 수 있습니다. 이 경우 프로덕션 환경은 SageMaker 모델 엔드포인트가 아니라 에지 장치입니다. 사전 프로덕션에서 에지 장치를 시뮬레이션하기 위해 두 가지 접근 방식이 가능합니다. 아마존 엘라스틱 컴퓨트 클라우드 하드웨어 특성이 동일한 (Amazon EC2) 인스턴스를 사용하거나 실제 장치로 구성된 실험실 내 테스트베드를 사용합니다. 이 인프라를 통해 CI/CD 파이프라인은 해당 시뮬레이터에 모델을 배포하고 여러 테스트를 자동으로 수행합니다. 테스트가 성공적으로 실행되면 CI/CD 파이프라인에 수동 승인이 필요합니다(예: 모델을 프로덕션으로 승격하기 위해 IoT 이해 관계자로부터).
  • 생산 계정 – AWS 클라우드에서 모델을 호스팅하는 경우 CI/CD 파이프라인은 프로덕션 계정에 SageMaker 모델 엔드포인트를 배포합니다. 이 경우 프로덕션 환경은 여러 에지 장치 집합으로 구성됩니다. 따라서 CI/CD 파이프라인은 Edge Manager를 사용하여 해당 장치 집합에 모델을 배포합니다.
  • 에지 장치 – 원격 에지 장치는 에지 관리자를 사용하여 ML 모델을 실행할 수 있는 하드웨어 장치입니다. 이를 통해 해당 장치의 애플리케이션이 모델을 관리하고 모델에 대한 추론을 실행하며 데이터를 안전하게 캡처할 수 있습니다. 아마존 단순 스토리지 서비스 (아마존 S3).

SageMaker 프로젝트 이러한 각 계정 내에서 리소스를 프로비저닝하는 프로세스를 자동화하는 데 도움이 됩니다. 이 기능에 대해 자세히 설명하지는 않지만 계정 간에 ML 모델을 배포하는 SageMaker 프로젝트 템플릿을 빌드하는 방법에 대해 자세히 알아보려면 다음을 확인하세요. Amazon SageMaker Pipelines를 사용한 다중 계정 모델 배포.

사전 제작 계정: 디지털 트윈

훈련 과정이 끝나면 결과 모델을 평가해야 합니다. 사전 프로덕션 계정에는 시뮬레이션된 Edge 장치가 있습니다. 그것은 대표한다 디지털 트윈 프로덕션에서 ML 모델이 실행되는 에지 장치의 이 환경은 고전적인 테스트(예: 단위, 통합 및 연기)를 수행하고 개발 팀을 위한 놀이터가 되는 이중 목적을 가지고 있습니다. 이 장치는 ML 모델을 관리하는 데 필요한 모든 구성 요소가 배포된 EC2 인스턴스를 사용하여 시뮬레이션됩니다.

관련 서비스는 다음과 같습니다.

  • AWS IoT 코어 - 우리는 사용 AWS IoT 코어 AWS IoT 사물 객체 생성, 디바이스 플릿 생성, 클라우드와 상호 작용할 수 있도록 디바이스 플릿 등록, AWS IoT Core에 대한 엣지 디바이스 인증을 위한 X.509 인증서 생성, 역할 별칭을 생성된 AWS IoT Core와 연결 플릿이 생성하고, 자격 증명 공급자에 대한 AWS 계정별 엔드포인트를 가져오고, 공식 Amazon 루트 CA 파일을 가져오고, Amazon CA 파일을 Amazon S3에 업로드합니다.
  • 아마존 세이지메이커 네오 – 현인 네오 정확도 손실 없이 더 빠르게 실행되도록 추론을 위해 기계 학습 모델을 자동으로 최적화합니다. DarkNet, Keras, MXNet, PyTorch, TensorFlow, TensorFlow-Lite, ONNX 또는 XGBoost로 이미 구축되고 Amazon SageMaker 또는 다른 곳에서 훈련된 기계 학습 모델을 지원합니다. 그런 다음 SageMaker 호스팅 인스턴스 또는 Ambarella, Apple, ARM, Intel, MediaTek, Nvidia, NXP, Qualcomm, RockChip, Texas Instruments 또는 Xilinx의 프로세서 기반 에지 장치가 될 수 있는 대상 하드웨어 플랫폼을 선택합니다.
  • 에지 관리자 – Edge Manager를 사용하여 Sagemaker 플릿 내에서 에지 장치를 등록하고 관리합니다. 집합은 데이터를 수집하고 분석하는 데 사용할 수 있는 논리적으로 그룹화된 장치 모음입니다. 또한 Edge Manager 패키저는 최적화된 모델을 패키징하고 직접 배포할 수 있는 AWS IoT Greengrass V2 구성 요소를 생성합니다. Edge Manager를 사용하여 스마트 카메라, 스마트 스피커, 로봇 및 기타 SageMaker 장치 집합에서 ML 모델을 작동할 수 있습니다.
  • AWS IoT 그린그래스 V2 - AWS IoT 그린그래스 EC2 인스턴스를 사용하여 시뮬레이션된 장치에 구성 요소를 배포할 수 있습니다. EC2 인스턴스에서 AWS IoT Greengrass V2 에이전트를 사용하여 Edge Manager 에이전트 및 모델의 액세스, 관리 및 배포를 간소화할 수 있습니다. AWS IoT Greengrass V2가 없는 경우 Edge Manager를 사용하도록 디바이스 및 집합을 설정하려면 S3 릴리스 버킷에서 에이전트를 수동으로 복사해야 합니다. AWS IoT Greengrass V2 및 Edge Manager 통합을 통해 AWS IoT Greengrass V2 구성 요소를 사용할 수 있습니다. 구성 요소는 AWS IoT Greengrass를 통해 엣지 디바이스를 AWS 서비스 또는 타사 서비스에 연결할 수 있는 사전 구축된 소프트웨어 모듈입니다.
  • Edge Manager 에이전트 – Edge Manager 에이전트는 EC2 인스턴스에서 AWS IoT Greengrass V2를 통해 배포됩니다. 에이전트는 한 번에 여러 모델을 로드하고 에지 장치에 로드된 모델로 추론할 수 있습니다. 에이전트가 로드할 수 있는 모델의 수는 장치에서 사용 가능한 메모리에 따라 결정됩니다.
  • 아마존 S3 – S3 버킷을 사용하여 Edge Manager 에이전트의 추론 캡처 데이터를 저장합니다.

사전 프로덕션 계정을 실제 에지 장치로 이동하기 전에 ML 모델을 테스트하기 위한 디지털 트윈으로 정의할 수 있습니다. 이는 다음과 같은 이점을 제공합니다.

  • 민첩성과 유연성 – 데이터 과학자와 ML 엔지니어는 ML 모델 및 관련 스크립트(전처리 및 추론 스크립트)가 장치 에지에서 작동하는지 신속하게 검증해야 합니다. 그러나 대기업의 IoT 및 데이터 과학 부서는 다른 주체일 수 있습니다. 클라우드에서 기술 스택을 동일하게 복제함으로써 데이터 과학자와 ML 엔지니어는 배포 전에 아티팩트를 반복하고 통합할 수 있습니다.
  • 위험 평가 및 생산 시간 단축 – 에지 장치에 배포하는 것은 프로세스의 마지막 단계입니다. 격리되고 독립적인 환경에서 모든 것을 검증한 후 품질, 성능 및 통합 측면에서 에지에서 요구하는 사양을 준수하도록 보호합니다. 이는 IoT 부서의 다른 사람들이 아티팩트 버전을 수정하고 반복하는 데 더 이상 관여하지 않도록 하는 데 도움이 됩니다.
  • 향상된 팀 협업 및 향상된 품질 및 성능 – 개발 팀은 에지 하드웨어 메트릭을 분석하고 타사 도구와의 상호 작용 수준(예: I/O 속도)을 측정하여 ML 모델의 영향을 즉시 평가할 수 있습니다. 그러면 IoT 팀은 프로덕션 환경에 대한 배포만 담당하며 아티팩트가 프로덕션 환경에 대해 정확하다고 확신할 수 있습니다.
  • 테스트를 위한 통합 놀이터 – ML 모델의 대상을 감안할 때 기존 워크플로의 사전 프로덕션 환경은 클라우드 환경 외부의 에지 장치로 표현되어야 합니다. 이것은 또 다른 수준의 복잡성을 도입합니다. 메트릭과 피드백을 수집하려면 통합이 필요합니다. 대신 디지털 트윈 시뮬레이션 환경을 사용하여 상호 작용이 줄어들고 출시 시간이 단축됩니다.

프로덕션 계정 및 에지 환경

테스트가 완료되고 아티팩트 안정성이 확보되면 파이프라인을 통해 프로덕션 배포를 진행할 수 있습니다. 오퍼레이터가 아티팩트를 승인한 후 아티팩트 배포가 프로그래밍 방식으로 발생합니다. 그러나 액세스 AWS 관리 콘솔 플릿과 연결된 메타데이터를 모니터링할 수 있는 읽기 전용 모드의 운영자에게 부여되어 배포된 ML 모델의 버전 및 수명 주기와 연결된 기타 지표에 대한 통찰력을 가질 수 있습니다.

엣지 디바이스 플릿은 AWS 프로덕션 계정에 속합니다. 이 계정에는 클라우드와 에지 장치 간의 통신을 허용하는 특정 보안 및 네트워킹 구성이 있습니다. 프로덕션 계정에 배포된 주요 AWS 서비스는 모든 디바이스 플릿 관리, 데이터 수집, ML 모델 운영을 담당하는 Edge Manager와 IoT 사물 객체, 인증서, 역할 별칭 및 엔드포인트를 관리하는 AWS IoT Core입니다.

동시에 ML 모델을 관리하기 위해 서비스 및 구성 요소로 에지 장치를 구성해야 합니다. 주요 구성 요소는 다음과 같습니다.

  • AWS IoT 그린그래스 V2
  • Edge Manager 에이전트
  • AWS IoT 인증서
  • 추론 프로세스를 조정하는 역할을 하는 Application.py(에지 데이터 원본에서 정보 검색 및 Edge Manager 에이전트 및 로드된 ML 모델을 사용하여 추론 수행)
  • 추론된 데이터를 저장하기 위한 Amazon S3 또는 데이터 레이크 계정에 대한 연결

자동화된 ML 파이프라인

이제 참조 아키텍처의 구성 요소와 조직에 대해 더 많이 알게 되었으므로 개발 계정 내에서 ML 모델을 빌드, 교육 및 평가하는 데 사용하는 ML 파이프라인에 대해 더 자세히 알아볼 수 있습니다.

파이프라인(다음을 사용하여 구축됨 Amazon SageMaker 모델 구축 파이프라인)는 JSON 파이프라인 정의에 의해 정의되는 일련의 상호 연결된 단계입니다. 이 파이프라인 정의는 DAG(방향성 비순환 그래프)를 사용하여 파이프라인을 인코딩합니다. 이 DAG는 파이프라인의 각 단계에 대한 요구 사항 및 관계에 대한 정보를 제공합니다. 파이프라인의 DAG 구조는 단계 간의 데이터 종속성에 의해 결정됩니다. 이러한 데이터 종속성은 단계 출력의 속성이 다른 단계의 입력으로 전달될 때 생성됩니다.

데이터 과학 팀이 새 버전의 ML 모델 생성을 쉽게 자동화할 수 있도록 하려면 ML 모델을 지속적으로 제공하고 개선하기 위한 검증 단계 및 자동화된 데이터와 파이프라인 트리거를 활성화하기 위한 모델 모니터링 전략을 도입하는 것이 중요합니다. 다음 다이어그램은 예시 파이프라인을 보여줍니다.

Amazon SageMaker Edge Manager 및 AWS IoT Greengrass PlatoBlockchain Data Intelligence를 사용하여 엣지에서 MLOps. 수직 검색. 일체 포함.

자동화 및 MLOps 기능을 활성화하려면 여러 단계 및 ML 사용 사례에서 공유할 수 있는 재사용 가능한 코드 아티팩트를 만들기 위한 모듈식 구성 요소를 만드는 것이 중요합니다. 이를 통해 전환을 자동화하여 실험 단계에서 프로덕션 단계로 구현을 신속하게 이동할 수 있습니다.

ML 모델의 지속적인 교육 및 버전 관리를 활성화하기 위한 ML 파이프라인을 정의하는 단계는 다음과 같습니다.

  • 전처리 – ML 알고리즘 학습을 위한 데이터 정리, 피쳐 엔지니어링 및 데이터 세트 생성 프로세스
  • 트레이닝 – ML 모델 아티팩트의 새 버전을 생성하기 위해 개발된 ML 알고리즘을 교육하는 프로세스
  • 평가 – 생성된 ML 모델의 평가 프로세스, 학습 단계에서 볼 수 없는 새로운 데이터에 대한 모델 동작과 관련된 주요 메트릭 추출
  • 등록 – 추출된 메트릭을 생성된 아티팩트와 연결하여 새로 훈련된 ML 모델 아티팩트를 버전화하는 프로세스

다음에서 SageMaker 파이프라인을 구축하는 방법에 대한 자세한 내용을 볼 수 있습니다. 수첩.

EventBridge를 사용하여 CI/CD 파이프라인 트리거

모델 빌드를 마치면 배포 프로세스를 시작할 수 있습니다. 이전 섹션에서 정의된 SageMaker 파이프라인의 마지막 단계는 특정 SageMaker 모델 레지스트리 그룹에 모델의 새 버전을 등록합니다. ML 모델의 새 버전 배포는 모델 레지스트리 상태를 사용하여 관리됩니다. 이 단계에서는 ML 모델 버전을 수동으로 승인하거나 거부하여 EventBridge에서 캡처한 이벤트를 발생시킵니다. 그런 다음 이 이벤트는 AWS IoT Greengrass 구성 요소의 새 버전을 생성하기 위한 새 파이프라인(이번에는 CI/CD)을 시작한 다음 사전 프로덕션 및 프로덕션 계정에 배포할 수 있습니다. 다음 스크린샷은 정의된 EventBridge 규칙을 보여줍니다.

Amazon SageMaker Edge Manager 및 AWS IoT Greengrass PlatoBlockchain Data Intelligence를 사용하여 엣지에서 MLOps. 수직 검색. 일체 포함.

이 규칙은 상태에서 모델 패키지의 업데이트를 찾아 SageMaker 모델 패키지 그룹을 모니터링합니다. Approved or Rejected.

그런 다음 EventBridge 규칙은 다음을 사용하여 새 AWS IoT Greengrass 구성 요소를 생성하는 워크플로를 시작하는 CodePipeline을 대상으로 구성됩니다. 아마존 세이지 메이커 네오 그리고 엣지 매니저.

대상 아키텍처에 대한 ML 모델 최적화

Neo를 사용하면 에지 장치(및 클라우드)에서 추론을 수행하기 위해 ML 모델을 최적화할 수 있습니다. 대상 아키텍처를 기반으로 더 나은 성능을 위해 ML 모델을 자동으로 최적화하고 원래 프레임워크에서 모델을 분리하여 경량 런타임에서 실행할 수 있습니다.

다음을 참조하십시오 수첩 Neo를 사용하여 PyTorch Resnet18 모델을 컴파일하는 방법의 예입니다.

AWS IoT Greengrass 구성 요소를 포함하여 배포 패키지 빌드

Edge Manager를 사용하면 다양한 에지 장치에 대한 모델을 관리, 보호, 배포 및 모니터링할 수 있습니다. 다음에서 수첩, 최소한의 에지 장치 집합을 구축하고 이 기능으로 몇 가지 실험을 실행하는 방법에 대한 자세한 내용을 볼 수 있습니다.

집합을 구성하고 모델을 컴파일한 후에는 집합에 배포할 모델을 준비하는 Edge Manager 패키징 작업을 실행해야 합니다. Boto3 SDK를 사용하여 패키징 작업을 시작할 수 있습니다. 매개변수의 경우 최적화된 모델 및 모델 메타데이터를 사용합니다. 다음 매개변수를 추가하여 OutputConfig, 작업은 또한 모델을 사용하여 AWS IoT Greengrass V2 구성 요소를 준비합니다.

  • PresetDeploymentType
  • PresetDeploymentConfig

다음 코드를 참조하십시오.

import boto3
import time

SageMaker_client = boto3.client('SageMaker')

SageMaker_client.create_edge_packaging_job(
    EdgePackagingJobName="mlops-edge-packaging-{}".format(int(time.time()*1000)),
    CompilationJobName=compilation_job_name,
    ModelName="PytorchMLOpsEdgeModel",
    ModelVersion="1.0.0",
    RoleArn=role,
    OutputConfig={
        'S3OutputLocation': 's3://{}/model/'.format(bucket_name),
        "PresetDeploymentType": "GreengrassV2Component",
        "PresetDeploymentConfig": json.dumps(
            {"ComponentName": component_name, "ComponentVersion": component_version}
        ),
    }
)

에지에서 대규모로 ML 모델 배포

이제 에지 장치 집합에 모델을 배포할 차례입니다. 첫째, 우리는 우리가 필요한 AWS 자격 증명 및 액세스 관리 (나는) 권한 IoT 장치를 프로비저닝하고 여기에 구성 요소를 배포할 수 있습니다. IoT 플랫폼에 장치를 온보딩하려면 두 가지 기본 요소가 필요합니다.

  • IAM 정책 – 이 정책은 프로비저닝을 수행하는 사용자 또는 역할에 연결된 이러한 장치의 자동 프로비저닝을 허용합니다. IoT 사물 및 그룹을 생성하고 필요한 정책을 디바이스에 연결할 수 있는 IoT 쓰기 권한이 있어야 합니다. 자세한 내용은 다음을 참조하십시오. 설치 프로그램이 리소스를 프로비저닝하기 위한 최소 IAM 정책.
  • IAM 역할 – 이 역할은 우리가 생성하는 IoT 사물 및 그룹에 연결됩니다. 기본 권한으로 프로비저닝 시 이 역할을 생성할 수 있지만 Amazon S3 또는 AWS 키 관리 서비스 (AWS KMS) 나중에 필요할 수 있습니다. 이 역할을 미리 생성하고 장치를 프로비저닝할 때 재사용할 수 있습니다. 자세한 내용은 코어 디바이스가 AWS와 상호 작용할 수 있도록 승인.

AWS IoT Greengrass 설치 및 프로비저닝

IAM 정책과 역할이 준비되면 자동 리소스 프로비저닝으로 AWS IoT Greengrass Core 소프트웨어 설치. 수동 단계에 따라 IoT 리소스를 프로비저닝할 수 있지만 AWS IoT Greengrass v2 핵을 설치하는 동안 이러한 리소스를 자동으로 프로비저닝하는 편리한 절차가 있습니다. 이것은 새로운 장치를 플랫폼에 신속하게 온보딩하기 위해 선호되는 옵션입니다. 게다가 default-jdk, 다음과 같은 다른 패키지를 설치해야 합니다. curl, unzippython3.

디바이스를 프로비저닝할 때 IoT 사물 이름은 Edge Manager에 정의된 에지 디바이스와 정확히 동일해야 합니다. 그렇지 않으면 데이터가 대상 S3 버킷에 캡처되지 않습니다.

설치 프로그램은 AWS IoT Greengrass 역할 및 별칭이 없는 경우 설치 중에 생성할 수 있습니다. 그러나 최소한의 권한으로 생성되며 Amazon S3와 같은 다른 서비스와 상호 작용하기 위해 더 많은 정책을 수동으로 추가해야 합니다. 앞에서 설명한 것처럼 이러한 IAM 리소스를 미리 생성한 다음 새 장치를 계정에 온보딩할 때 재사용하는 것이 좋습니다.

모델 및 추론 구성 요소 패키징

코드가 개발되면 코드(추론용)와 ML 모델을 구성 요소로 장치에 배포할 수 있습니다.

SageMaker에서 ML 모델을 교육한 후 Sagemaker 컴파일 작업을 사용하여 Neo로 모델을 최적화할 수 있습니다. 컴파일된 결과 모델 아티팩트는 Edge Manager 패키지 도구를 사용하여 GreenGrass V2 구성 요소로 패키징할 수 있습니다. 그런 다음 사용자 정의 구성 요소로 등록할 수 있습니다. 내 구성 요소 AWS IoT Greengrass 콘솔의 섹션을 참조하십시오. 이 구성 요소에는 이미 장치에서 모델 아티팩트를 다운로드 및 압축 해제하는 데 필요한 수명 주기 명령이 포함되어 있으므로 추론 코드가 이를 통해 캡처한 이미지를 보낼 수 있도록 로드할 수 있습니다.

추론 코드와 관련하여 콘솔을 사용하여 구성 요소를 생성하거나 AWS 명령 줄 인터페이스 (AWS CLI). 먼저 소스 추론 코드와 필요한 종속성을 Amazon S3에 패키징합니다. 코드를 업로드한 후 다음 예제와 같이 .yaml 또는 JSON의 레시피를 사용하여 구성 요소를 생성할 수 있습니다.

---
RecipeFormatVersion: 2020-01-25
ComponentName: dummymodel.inference
ComponentVersion: 0.0.1
ComponentDescription: Deploys inference code to a client
ComponentPublisher: Amazon Web Services, Inc.
ComponentDependencies:
  aws.GreenGrass.TokenExchangeService:
    VersionRequirement: '>=0.0.0'
    DependencyType: HARD
  dummymodel:
    VersionRequirement: '>=0.0.0'
    DependencyType: HARD
Manifests:
  - Platform:
      os: linux
      architecture: "*"
    Lifecycle:
      install: |-
        apt-get install python3-pip
        pip3 install numpy
        pip3 install sysv_ipc
        pip3 install boto3
        pip3 install grpcio-tools
        pip3 install grpcio
        pip3 install protobuf
        pip3 install SageMaker
        tar xf {artifacts:path}/sourcedir.tar.gz
      run:
        script: |-
          sleep 5 && sudo python3 {work:path}/inference.py 
    Artifacts:
      - URI: s3://BUCKET-NAME/path/to/inference/sourcedir.tar.gz
        Permission:
          Execute: OWNER

이 예제 레시피는 구성 요소의 이름과 설명은 물론 실행 스크립트 명령 전에 필요한 전제 조건을 보여줍니다. 레시피는 장치의 작업 폴더 환경에서 아티팩트의 압축을 풀고 해당 경로를 사용하여 추론 코드를 실행합니다. 이러한 레시피를 생성하는 AWS CLI 명령은 다음과 같습니다.

aws greengrassv2 create-component-version --region $REGION 
                                          --inline-recipe fileb://path/to/recipe.yaml

이제 AWS IoT Greengrass 콘솔에서 생성된 이 구성 요소를 볼 수 있습니다.

구성 요소 버전이 중요하므로 레시피 파일에 지정해야 합니다. 동일한 버전 번호를 반복하면 오류가 반환됩니다.

모델 및 추론 코드가 구성 요소로 설정되면 배포할 준비가 된 것입니다.

AWS IoT Greengrass를 사용하여 애플리케이션 및 모델 배포

이전 섹션에서 추론 코드와 ML 모델을 패키징하는 방법을 배웠습니다. 이제 추론 코드가 에지 장치의 모델과 상호 작용하는 데 필요한 구성 요소와 구성을 모두 포함하는 여러 구성 요소로 배포를 만들 수 있습니다.

Edge Manager 에이전트는 모든 Edge Manager 기능을 활성화하기 위해 각 에지 장치에 설치해야 하는 구성 요소입니다. SageMaker 콘솔에는 연결된 S3 버킷이 있는 디바이스 집합이 정의되어 있습니다. 플릿과 연결된 모든 에지 장치는 데이터를 캡처하여 이 S3 경로에 보고합니다. 에이전트는 AWS IoT Greengrass v2의 구성 요소로 배포할 수 있으므로 에이전트가 독립 실행형 모드로 배포된 경우보다 설치 및 구성이 더 쉽습니다. 에이전트를 구성 요소로 배포할 때 구성 매개변수, 즉 장치 집합 및 S3 경로를 지정해야 합니다.

방금 만든 모델 및 코드에 대한 사용자 지정 구성 요소를 사용하여 배포 구성을 만듭니다. 이 설정은 배포 이름과 대상, 배포의 구성 요소를 나열하는 JSON 파일에 정의되어 있습니다. 플릿 이름과 버킷을 지정하는 Edge Manager 에이전트와 같이 각 구성 요소의 구성 매개변수를 추가하고 업데이트할 수 있습니다.

{
    "targetArn": "targetArn",
    "deploymentName": "dummy-deployment",
    "components": {
        "aws.GreenGrass.Nucleus": {
            "version": "2.5.3",
        },
        "aws.GreenGrass.Cli": {
            "version": "2.5.3"
        },
        "aws.GreenGrass.SageMakerEdgeManager": {
            "version": 1.1.0,
            "configurationUpdate": {
                "merge": {
                "DeviceFleetName": "FLEET-NAME",
                "BucketName": "BUCKET-NAME-URI"
                }
            }
        },
        "dummymodel.inference": {
            "version": "0.0.1"
        },
        "dummymodel": {
            "version": "0.0.1"
        }
    }
}

모델, 추론 구성 요소 및 에이전트뿐만 아니라 AWS IoT Greengrass CLI 및 핵도 구성 요소로 추가했다는 점은 주목할 가치가 있습니다. 전자는 장치에서 로컬로 특정 배포를 디버그하는 데 도움이 될 수 있습니다. 후자는 필요한 경우(예: 프록시 설정) 디바이스 자체에서 필요한 네트워크 액세스를 구성하고 AWS IoT Greengrass v2 핵의 OTA 업그레이드를 수행하려는 경우 배포에 추가됩니다. 핵은 장치에 설치되어 있기 때문에 배포되지 않으며 구성 업데이트만 적용됩니다(업그레이드가 없는 경우). 배포하려면 이전 구성에 대해 다음 명령을 실행하기만 하면 됩니다. 배포를 적용할 대상 ARN(IoT 사물 또는 IoT 그룹)을 설정해야 합니다. 콘솔에서 이러한 구성 요소를 배포할 수도 있습니다.

aws greengrassv2 create-deployment --region $REGION 
                                   --cli-input-json file://path/to/deployment.json

에지에 배포된 ML 모델 모니터링 및 관리

이제 애플리케이션이 에지 장치에서 실행되고 있으므로 플릿을 모니터링하여 거버넌스, 유지 관리 및 가시성을 개선하는 방법을 이해할 차례입니다. SageMaker 콘솔에서 다음을 선택합니다. 에지 관리자 탐색 창에서 다음을 선택합니다. 에지 장치 집합. 여기에서 함대를 선택하십시오.

Amazon SageMaker Edge Manager 및 AWS IoT Greengrass PlatoBlockchain Data Intelligence를 사용하여 엣지에서 MLOps. 수직 검색. 일체 포함.

집합의 세부 정보 페이지에서 집합의 각 디바이스에서 실행 중인 모델의 일부 메타데이터를 볼 수 있습니다. 플릿 보고서는 24시간마다 생성됩니다.

Amazon SageMaker Edge Manager 및 AWS IoT Greengrass PlatoBlockchain Data Intelligence를 사용하여 엣지에서 MLOps. 수직 검색. 일체 포함.

Edge Agent를 통해 각 디바이스에서 캡처한 데이터는 json 라인 형식(JSONL)으로 S3 버킷으로 전송됩니다. 캡처된 데이터를 보내는 프로세스는 응용 프로그램 관점에서 관리됩니다. 따라서 이 데이터를 보낼지 여부, 전송 방법 및 빈도를 자유롭게 결정할 수 있습니다.

Amazon SageMaker Edge Manager 및 AWS IoT Greengrass PlatoBlockchain Data Intelligence를 사용하여 엣지에서 MLOps. 수직 검색. 일체 포함.

이 데이터는 데이터 드리프트 및 모델 품질 모니터링, 새 데이터 세트 구축, 데이터 레이크 강화 등과 같은 다양한 작업에 사용할 수 있습니다. 이 데이터를 활용하는 방법의 간단한 예는 사용자가 애플리케이션과 상호 작용하는 방식에서 일부 데이터 드리프트를 식별하고 새 모델을 교육해야 하는 경우입니다. 그런 다음 캡처된 데이터로 새 데이터 세트를 빌드하고 개발 계정에 다시 복사합니다. 그러면 배포된 솔루션의 성능을 유지하기 위해 새 모델을 구축하고 전체 집합에 재배포하는 환경의 새로운 실행이 자동으로 시작될 수 있습니다.

결론

이 게시물에서는 AWS 서비스를 사용하여 MLOps와 ML@Edge를 결합하는 완전한 솔루션을 구축하는 방법을 배웠습니다. 이러한 솔루션을 구축하는 것은 쉬운 일이 아니지만 이 게시물에 제공된 참조 아키텍처가 비즈니스 과제에 대한 견고한 아키텍처를 구축하는 데 영감을 주고 도움이 되기를 바랍니다. 기존 MLOps 환경과 통합되는 이 아키텍처의 일부 또는 모듈만 사용할 수도 있습니다. 한 번에 하나의 단일 모듈을 프로토타이핑하고 적절한 AWS 서비스를 사용하여 이 문제의 각 부분을 해결함으로써 강력한 MLOps 환경을 구축하고 최종 아키텍처를 더욱 단순화하는 방법을 배울 수 있습니다.

다음 단계로 Sagemaker Edge Manager를 사용해 에지 수명 주기에서 ML을 관리하는 것이 좋습니다. Edge Manager 작동 방식에 대한 자세한 내용은 다음을 참조하십시오. SageMaker Edge Manager를 사용하여 에지에서 모델 배포 .


저자 소개

Amazon SageMaker Edge Manager 및 AWS IoT Greengrass PlatoBlockchain Data Intelligence를 사용하여 엣지에서 MLOps. 수직 검색. 일체 포함.브루노 피스톤 밀라노에 기반을 둔 AWS용 AI/ML 전문가 솔루션 아키텍트입니다. 그는 모든 규모의 고객과 협력하여 고객이 기술 요구 사항을 깊이 이해하고 AWS 클라우드 및 Amazon Machine Learning 스택을 최대한 활용하는 AI 및 기계 학습 솔루션을 설계할 수 있도록 지원합니다. 그의 전문 분야는 머신 러닝 엔드 투 엔드, 머신 러닝 산업화 및 MLOps입니다. 그는 친구들과 시간을 보내고 새로운 장소를 탐험하고 새로운 목적지로 여행하는 것을 즐깁니다.

Amazon SageMaker Edge Manager 및 AWS IoT Greengrass PlatoBlockchain Data Intelligence를 사용하여 엣지에서 MLOps. 수직 검색. 일체 포함.마테오 칼라브레제 AWS Professional Services 팀의 AI/ML 고객 제공 설계자입니다. 그는 AI/ML 프로젝트에서 EMEA 대기업과 협력하여 ML 프로덕션 워크로드를 제안, 설계, 제공, 확장 및 최적화하도록 돕습니다. 그의 주요 전문 지식은 ML Operation(MLOps) 및 Edge의 머신 러닝입니다. 그의 목표는 AWS 모범 사례를 제공하여 가치 창출 시간을 단축하고 비즈니스 결과를 가속화하는 것입니다. 여가 시간에는 하이킹과 여행을 즐깁니다.

Amazon SageMaker Edge Manager 및 AWS IoT Greengrass PlatoBlockchain Data Intelligence를 사용하여 엣지에서 MLOps. 수직 검색. 일체 포함.라울 디아스 가르시아 AWS Professional Services 팀의 선임 데이터 과학자입니다. 그는 EMEA 전역의 대기업 고객과 협력하여 IoT 공간에서 Computer Vision 및 Machine Learning과 관련된 솔루션을 구현하도록 돕습니다.

Amazon SageMaker Edge Manager 및 AWS IoT Greengrass PlatoBlockchain Data Intelligence를 사용하여 엣지에서 MLOps. 수직 검색. 일체 포함.소크라티스 카르타키스 Amazon Web Services의 수석 기계 학습 전문가 솔루션 설계자입니다. Sokratis는 AWS 서비스를 활용하고 운영 모델, 즉 MLOps 기반 및 모범 개발 사례를 활용하는 변환 로드맵을 형성하여 기업 고객이 기계 학습(ML) 솔루션을 산업화할 수 있도록 하는 데 중점을 둡니다. 그는 에너지, 소매, 건강, 금융/은행, 모터스포츠 등의 영역에서 혁신적인 종단 간 생산 수준 ML 및 사물 인터넷(IoT) 솔루션을 발명, 설계, 선도 및 구현하는 데 15년 이상을 보냈습니다. Sokratis는 여가 시간을 가족 및 친구와 함께 보내거나 오토바이를 타는 것을 좋아합니다.

Amazon SageMaker Edge Manager 및 AWS IoT Greengrass PlatoBlockchain Data Intelligence를 사용하여 엣지에서 MLOps. 수직 검색. 일체 포함.사미르 아라우조 AWS의 AI / ML 솔루션 설계자입니다. 그는 AWS를 사용하여 비즈니스 과제를 해결하는 AI / ML 솔루션을 만드는 고객을 지원합니다. 그는 컴퓨터 비전, 자연어 처리, 예측, 엣지에서의 ML 등과 관련된 여러 AI / ML 프로젝트를 진행하고 있습니다. 그는 자유 시간에 하드웨어 및 자동화 프로젝트를 가지고 노는 것을 좋아하며 로봇 공학에 특히 관심이 있습니다.

타임 스탬프 :

더보기 AWS 기계 학습