선택 사항: ML 검증을 위해 장치 구성 - AWS IoT Greengrass

AWS IoT Greengrass Version 1 는 2023년 6월 30일에 수명 연장 단계에 들어갔습니다. AWS IoT Greengrass V1 관리형 정책에 대한 자세한 정보는 섹션을 참조하세요. 이 날짜 이후에는 기능, 개선 사항, 버그 수정 또는 보안 패치를 제공하는 업데이트를 릴리스하지 AWS IoT Greengrass V1 않습니다. 에서 실행되는 디바이스는 중단 AWS IoT Greengrass V1 되지 않으며 계속 작동하고 클라우드에 연결됩니다. 로 마이그레이션 AWS IoT Greengrass Version 2하는 것이 좋으며, 이로 인해 추가 플랫폼에 대한 중요한 새로운 기능과 지원이 추가됩니다. https://docs.aws.amazon.com/greengrass/v2/developerguide/operating-system-feature-support-matrix.html

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

선택 사항: ML 검증을 위해 장치 구성

용 IDT AWS IoT Greengrass 는 기계 학습(ML) 검증 테스트를 제공하여 디바이스가 클라우드 훈련 모델을 사용하여 로컬에서 ML 추론을 수행할 수 있는지 검증합니다.

ML 검증 테스트를 실행하려면 먼저 IDT 테스트를 실행하도록 장치 구성에 설명된 대로 장치를 구성해야 합니다. 그런 다음 이 주제의 단계를 수행하여 실행할 ML 프레임워크에 대한 종속 항목을 설치합니다.

ML 검증 테스트를 실행하려면 IDT v3.1.0 이상이 필요합니다.

ML 프레임워크 종속 항목 설치

모든 ML 프레임워크 종속 항목은 /usr/local/lib/python3.x/site-packages 디렉터리 아래에 설치해야 합니다. 올바른 디렉터리에 설치되도록 하려면 종속 항목을 설치할 때 sudo 루트 권한을 사용하는 것이 좋습니다. 가상 환경은 검증 테스트에서 지원되지 않습니다.

참고

컨테이너화(Greengrass 컨테이너 모드)로 실행되는 Lambda 함수를 테스트하는 경우 /usr/local/lib/python3.x 아래에 Python 라이브러리에 대한 심볼릭 링크를 생성하는 것은 지원되지 않습니다. 오류를 방지하려면 올바른 디렉터리 아래에 종속 항목을 설치해야 합니다.

대상 프레임워크에 대한 종속 항목을 설치하는 단계를 따르세요.

 

Apache MXNet 종속 항목 설치

이 프레임워크에 대한 IDT 검증 테스트에는 다음과 같은 종속 항목이 있습니다.

  • Python 3.6 또는 Python 3.7.

    참고

    Python 3.6을 사용하고 있다면 Python 3.7에서 Python 3.6 바이너리로의 심볼 링크를 생성해야 합니다. 이렇게 하면 AWS IoT Greengrass에 대한 Python 요구 사항을 충족하도록 장치가 구성됩니다. 예시:

    sudo ln -s path-to-python-3.6/python3.6 path-to-python-3.7/python3.7
  • Apache MXNet v1.2.1 이상.

  • NumPy. 버전은 MXNet 버전과 호환되어야 합니다.

MXnet 설치

MXNet 설명서의 지침에 따라 MXNet을 설치합니다.

참고

Python 2.x와 Python 3.x가 모두 장치에 설치되어 있는 경우, 종속 항목을 설치하기 위해 실행하는 명령에서 Python 3.x를 사용합니다.

MXNet 설치 검증

다음 옵션 중 하나를 선택하여 MXNet 설치를 검증합니다.

옵션 1: 장치에 SSH 및 스크립트 실행

  1. 장치에 SSH합니다.

  2. 종속 항목이 올바르게 설치되었는지 확인하려면 다음 스크립트를 실행합니다.

    sudo python3.7 -c "import mxnet; print(mxnet.__version__)"
    sudo python3.7 -c "import numpy; print(numpy.__version__)"

    출력은 버전 번호를 인쇄하고 스크립트는 오류 없이 종료되어야 합니다.

옵션 2: IDT 종속 항목 테스트 실행

  1. device.json이 ML 검증에 대해 구성되어 있는지 확인합니다. 자세한 내용은 ML 검증을 위해 device.json 구성 단원을 참조하십시오.

  2. 프레임워크에 대한 종속 항목 테스트를 실행합니다.

    devicetester_[linux | mac | win_x86-64] run-suite --group-id mldependencies --test-id mxnet_dependency_check

    테스트 요약에 mldependencies에 대한 PASSED 결과가 표시됩니다.

 

TensorFlow 종속 항목 설치

이 프레임워크에 대한 IDT 검증 테스트에는 다음과 같은 종속 항목이 있습니다.

  • Python 3.6 또는 Python 3.7.

    참고

    Python 3.6을 사용하고 있다면 Python 3.7에서 Python 3.6 바이너리로의 심볼 링크를 생성해야 합니다. 이렇게 하면 AWS IoT Greengrass에 대한 Python 요구 사항을 충족하도록 장치가 구성됩니다. 예시:

    sudo ln -s path-to-python-3.6/python3.6 path-to-python-3.7/python3.7
  • TensorFlow 1.x.

TensorFlow 설치

TensorFlow 설명서의 지침에 따라 pip를 통해 또는 소스에서 TensorFlow 1.x를 설치합니다.

참고

Python 2.x와 Python 3.x가 모두 장치에 설치되어 있는 경우, 종속 항목을 설치하기 위해 실행하는 명령에서 Python 3.x를 사용합니다.

TensorFlow 설치 검증

다음 옵션 중 하나를 선택하여 TensorFlow 설치를 검증합니다.

옵션 1: 장치에 SSH 및 스크립트 실행

  1. 장치에 SSH합니다.

  2. 종속 항목이 올바르게 설치되었는지 확인하려면 다음 스크립트를 실행합니다.

    sudo python3.7 -c "import tensorflow; print(tensorflow.__version__)"

    출력은 버전 번호를 인쇄하고 스크립트는 오류 없이 종료되어야 합니다.

옵션 2: IDT 종속 항목 테스트 실행

  1. device.json이 ML 검증에 대해 구성되어 있는지 확인합니다. 자세한 내용은 ML 검증을 위해 device.json 구성 단원을 참조하십시오.

  2. 프레임워크에 대한 종속 항목 테스트를 실행합니다.

    devicetester_[linux | mac | win_x86-64] run-suite --group-id mldependencies --test-id tensorflow_dependency_check

    테스트 요약에 mldependencies에 대한 PASSED 결과가 표시됩니다.

 

Amazon SageMaker AI Neo Deep Learning 런타임(DLR) 종속성 설치

이 프레임워크에 대한 IDT 검증 테스트에는 다음과 같은 종속 항목이 있습니다.

  • Python 3.6 또는 Python 3.7.

    참고

    Python 3.6을 사용하고 있다면 Python 3.7에서 Python 3.6 바이너리로의 심볼 링크를 생성해야 합니다. 이렇게 하면 AWS IoT Greengrass에 대한 Python 요구 사항을 충족하도록 장치가 구성됩니다. 예시:

    sudo ln -s path-to-python-3.6/python3.6 path-to-python-3.7/python3.7
  • SageMaker AI Neo DLR.

  • numpy.

DLR 테스트 종속 항목을 설치한 후에는 모델을 컴파일해야 합니다.

DLR 설치

MXNet 설명서의 지침에 따라 Neo DLR을 설치합니다.

참고

Python 2.x와 Python 3.x가 모두 장치에 설치되어 있는 경우, 종속 항목을 설치하기 위해 실행하는 명령에서 Python 3.x를 사용합니다.

DLR 설치 검증

다음 옵션 중 하나를 선택하여 DLR 설치를 검증합니다.

옵션 1: 장치에 SSH 및 스크립트 실행

  1. 장치에 SSH합니다.

  2. 종속 항목이 올바르게 설치되었는지 확인하려면 다음 스크립트를 실행합니다.

    sudo python3.7 -c "import dlr; print(dlr.__version__)"
    sudo python3.7 -c "import numpy; print(numpy.__version__)"

    출력은 버전 번호를 인쇄하고 스크립트는 오류 없이 종료되어야 합니다.

옵션 2: IDT 종속 항목 테스트 실행

  1. device.json이 ML 검증에 대해 구성되어 있는지 확인합니다. 자세한 내용은 ML 검증을 위해 device.json 구성 단원을 참조하십시오.

  2. 프레임워크에 대한 종속 항목 테스트를 실행합니다.

    devicetester_[linux | mac | win_x86-64] run-suite --group-id mldependencies --test-id dlr_dependency_check

    테스트 요약에 mldependencies에 대한 PASSED 결과가 표시됩니다.

DLR 모델 컴파일

ML 검증 테스트에 DLR 모델을 사용하려면 먼저 DLR 모델을 컴파일해야 합니다. 단계에서 다음 옵션 중 하나를 선택합니다.

옵션 1: Amazon SageMaker AI를 사용하여 모델 컴파일

다음 단계에 따라 SageMaker AI를 사용하여 IDT에서 제공하는 ML 모델을 컴파일합니다. 이 모델은 Apache MXNet을 사용하여 사전 교육되어 있습니다.

  1. 디바이스 유형이 SageMaker AI에서 지원되는지 확인합니다. 자세한 내용은 Amazon SageMaker AI API 참조대상 디바이스 옵션을 참조하세요. 현재 SageMaker AI에서 디바이스 유형을 지원하지 않는 경우의 단계를 따릅니다옵션 2: TVM을 사용하여 DLR 모델 컴파일.

    참고

    SageMaker AI에서 컴파일한 모델로 DLR 테스트를 실행하는 데 4~5분이 걸릴 수 있습니다. 이 시간 동안 IDT를 중지하지 마시기 바랍니다.

  2. DLR용 컴파일되지 않은 사전 교육된 MXNet 모델이 포함된 tarball 파일을 다운로드합니다.

  3. tarball의 압축을 풉니다. 이 명령은 다음과 같은 디렉터리 구조를 생성합니다.

    resnet18 디렉터리에는 3개의 파일이 있습니다.
  4. resnet18 디렉터리에서 synset.txt를 이동합니다. 새 위치를 기록해 둡니다. 나중에 컴파일된 모델 디렉터리에 이 파일을 복사합니다.

  5. resnet18 디렉터리의 내용을 압축합니다.

    tar cvfz model.tar.gz resnet18v1-symbol.json resnet18v1-0000.params
  6. 압축된 파일을의 Amazon S3 버킷에 업로드 AWS 계정한 다음 모델 컴파일(콘솔)의 단계에 따라 컴파일 작업을 생성합니다.

    1. 입력 구성에 다음 값을 사용합니다.

      • 데이터 입력 구성{"data": [1, 3, 224, 224]}를 입력합니다.

      • 기계 학습 프레임워크에서 MXNet을 선택합니다.

    2. 출력 구성에 다음 값을 사용합니다.

      • S3 출력 위치에 컴파일된 모델을 저장할 Amazon S3 버킷 또는 폴더의 경로를 입력합니다.

      • 대상 장치에서 장치 유형을 선택합니다.

  7. 지정한 출력 위치에서 컴파일된 모델을 다운로드한 다음 파일의 압축을 풉니다.

  8. synset.txt를 컴파일된 모델 디렉터리에 복사합니다.

  9. 컴파일된 모델 디렉터리의 이름을 resnet18로 변경합니다.

    컴파일된 모델 디렉터리는 디렉터리 구조가 다음과 같아야 합니다.

    resnet18 컴파일된 모델 디렉터리에 4개의 파일이 포함되어 있습니다.

옵션 2: TVM을 사용하여 DLR 모델 컴파일

다음 단계에 따라 TVM을 사용하여 IDT에서 제공하는 ML 모델을 컴파일합니다. 이 모델은 Apache MXNet을 사용하여 사전 교육되어 있으므로 모델을 컴파일하는 컴퓨터나 장치에 MXNet을 설치해야 합니다. MXNet을 설치하려면 MXNet 설명서의 지침을 따르세요.

참고

대상 장치에서 모델을 컴파일하는 것이 좋습니다. 이 방법은 선택 사항이지만 호환성을 보장하고 잠재적인 문제를 완화하는 데 도움이 될 수 있습니다.

 

  1. DLR용 컴파일되지 않은 사전 교육된 MXNet 모델이 포함된 tarball 파일을 다운로드합니다.

  2. tarball의 압축을 풉니다. 이 명령은 다음과 같은 디렉터리 구조를 생성합니다.

    resnet18 디렉터리에는 3개의 파일이 있습니다.
  3. TVM 설명서의 지침에 따라 플랫폼에 대한 소스에서 TVM을 빌드하고 설치합니다.

  4. TVM이 빌드된 후 resnet18 모델에 대한 TVM 컴파일을 실행합니다. 다음 단계는 TVM 설명서의 딥 러닝 모델 컴파일을 위한 빠른 시작 자습서를 기반으로 합니다.

    1. 복제된 TVM 리포지토리에서 relay_quick_start.py 파일을 엽니다.

    2. 릴레이의 신경망을 정의하는 코드를 업데이트합니다. 다음 옵션 중 하나를 사용할 수 있습니다.

      • 옵션 1: mxnet.gluon.model_zoo.vision.get_model을 사용하여 릴레이 모듈 및 파라미터를 가져옵니다.

        from mxnet.gluon.model_zoo.vision import get_model block = get_model('resnet18_v1', pretrained=True) mod, params = relay.frontend.from_mxnet(block, {"data": data_shape})
      • 옵션 2: 1단계에서 다운로드한 컴파일되지 않은 모델에서 relay_quick_start.py 파일과 동일한 디렉터리에 다음 파일을 복사합니다. 이러한 파일에는 릴레이 모듈 및 파라미터가 포함되어 있습니다.

        • resnet18v1-symbol.json

        • resnet18v1-0000.params

    3. 다음 코드를 사용하도록 컴파일된 모듈을 저장하고 로드하는 코드를 업데이트합니다.

      from tvm.contrib import util path_lib = "deploy_lib.so" # Export the model library based on your device architecture lib.export_library("deploy_lib.so", cc="aarch64-linux-gnu-g++") with open("deploy_graph.json", "w") as fo: fo.write(graph) with open("deploy_param.params", "wb") as fo: fo.write(relay.save_param_dict(params))
    4. 모델을 빌드합니다.

      python3 tutorials/relay_quick_start.py --build-dir ./model

      이 명령은 다음과 같은 파일을 생성합니다.

      • deploy_graph.json

      • deploy_lib.so

      • deploy_param.params

  5. 생성된 모델 파일을 resnet18이라는 디렉터리에 복사합니다. 이 디렉터리는 컴파일된 모델 디렉터리입니다.

  6. 컴파일된 모델 디렉터리를 호스트 컴퓨터에 복사합니다. 그런 다음 1단계에서 다운로드한 컴파일되지 않은 모델에서 synset.txt를 컴파일된 모델 디렉터리에 복사합니다.

    컴파일된 모델 디렉터리는 디렉터리 구조가 다음과 같아야 합니다.

    resnet18 컴파일된 모델 디렉터리에 4개의 파일이 포함되어 있습니다.

그런 다음 자격 AWS 증명과 device.json 파일을 구성합니다.