Neo를 사용한 모델 성능 최적화 - 아마존 SageMaker

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

Neo를 사용한 모델 성능 최적화

Neo는 기계 학습 모델을 한 번 훈련시켜 클라우드와 엣지의 어디서나 실행할 수 있는 Amazon SageMaker의 기능입니다.

SageMaker Neo를 처음 사용하는 경우 엣지 장치 시작하기 단원을 확인하여 컴파일하고 엣지 장치에 배포하는 방법에 대한 단계별 지침을 숙지하는 것을 권장합니다.

SageMaker Neo란?

일반적으로, 여러 플랫폼에서 추론을 위한 기계 학습 모델을 최적화하는 것은 각 플랫폼의 특정 하드웨어와 소프트웨어 구성에 맞춰 모델을 수동으로 조정해야 하기 때문에 어렵습니다. 주어진 워크로드에 대해 최적의 성능을 얻으려는 경우에는 여러 요소 중에서도 하드웨어 아키텍처, 명령 세트, 메모리 액세스 패턴 및 입력 데이터 셰이프에 대해 알아야 합니다. 기존에 소프트웨어를 개발하는 경우에는 컴파일러 및 프로파일러 등과 같은 도구가 개발 프로세스를 간소화합니다. 기계 학습의 경우 대부분의 도구는 프레임워크 또는 하드웨어와 관련이 있습니다. 따라서 개발자가 신뢰할 수 없고 생산성이 떨어지는 시행착오 과정을 직접 수행할 수 밖에 없습니다.

Neo는 Ambarella, ARM, Intel, Nvidia, NXP, Qualcomm, Texas Instruments 및 Xilinx의 프로세서를 기반으로 Android, Linux 및 Windows 머신에서 추론하기 위해 Gluon, Keras, MXNet, PyTorch, TensorFlow, TensorFlow-Lite 및 ONNX 모델을 자동으로 최적화합니다. Neo는 프레임워크에서 Model Zoo에 사용할 수 있는 컴퓨터 비전 모델로 테스트합니다. SageMaker Neo는 클라우드 인스턴스(Inferentia 포함) 및 엣지 장치라는 두 가지 주요 플랫폼에 대한 컴파일 및 배포를 지원합니다.

지원되는 프레임워크 및 배포할 수 있는 클라우드 인스턴스 유형에 대한 자세한 내용은 클라우드 인스턴스를 위한 지원되는 인스턴스 유형 및 프레임워크을 참고하십시오.

엣지 장치용으로 SageMaker Neo가 테스트한 지원되는 프레임워크, 엣지지 장치, 운영 체제, 칩 아키텍처, 일반적인 기계 학습 모델에 대한 자세한 내용은 엣지 장치를 위한 지원되는 프레임워크, 디바이스, 시스템, 아키텍처을 참조하십시오.

작동 방식

Neo는 컴파일러와 런타임으로 이루어져 있습니다. 먼저, Neo 컴파일 API는 여러 프레임워크에서 내보낸 모델을 읽고, 프레임워크별 함수와 작업을 프레임워크와 무관한 중간 표시로 변환합니다. 다음에는 일련의 최적화를 수행합니다. 이 API는 최적화된 작업에 대한 바이너리 코드를 생성해 공유 객체 라이브러리에 기록하고, 모델 정의 및 파라미터를 별도 파일에 저장합니다. 또한 Neo는 컴파일된 모델을 로드 및 실행하는 각 대상 플랫폼에 런타임을 제공합니다.

SageMaker 콘솔, (AWS Command Line Interface)AWS CLI, Python 노트북 또는 SageMaker SDK에서 Neo 컴파일 작업을 생성할 수 있습니다. 모델을 컴파일하는 방법에 대한 자세한 내용은 Neo를 사용하여 모델 컴파일을 참고하십시오. 몇 가지 CLI 명령, API 호출 또는 몇 번의 클릭을 실행하면 선택한 플랫폼에 맞춰 모델을 변환할 수 있습니다. 모델을 SageMaker 엔드포인트 또는 AWS IoT Greengrass 장치에 빠르게 배포할 수 있습니다.

Neo는 FP32 또는 INT8의 파라미터 또는 FP16 비트 너비로 양자화된 파라미터를 사용하여 모델을 최적화할 수 있습니다.