AWS Neuron

AWS Inferentia 칩의 기계 학습 추론을 최적화하는 SDK

AWS Neuron은 AWS Inferentia 칩을 사용하여 기계 학습 추론을 실행하기 위한 소프트웨어 개발 키트(SDK)입니다. 이 SDK는 개발자가 AWS Inferentia 기반 Amazon EC2 Inf1 인스턴스를 사용하여 대기 시간이 짧은 고성능 추론을 실행할 수 있도록 지원하는 컴파일러, 런타임 및 프로파일링 도구로 구성됩니다. 개발자는 Neuron을 통해 TensorFlow, PyTorch, MXNet 등 인기 있는 프레임워크에서 기계 학습 모델을 손쉽게 훈련하고 Amazon EC2 Inf1 인스턴스에서 최적화된 상태로 실행할 수 있습니다. 지금 사용하는 동일한 기계 학습 프레임워크를 계속 사용할 수 있으며, 공급 업체별 솔루션에 종속되지 않고 최소한의 코드 변경으로 Inf1 인스턴스로 소프트웨어를 마이그레이션할 수 있습니다.

Inf1 인스턴스를 시작하는 가장 쉽고 빠른 방법은 Amazon SageMaker입니다. 이 서비스는 데이터 사이언티스트와 개발자가 신속하게 기계 학습 모델을 구축, 훈련 및 배포할 수 있는 완전관리형 서비스입니다. 자체 기계 학습 워크플로를 관리하고자 하는 개발자는 AWS Neuron을 사용하여 기존 및 향후 워크플로를 TensorFlow, PyTorch 및 MXNet과 같은 주요 프레임워크에 있는 그대로 통합할 수 있습니다. Neuron은 AWS Deep Learning AMIAWS Deep Learning Containers에 미리 설치되어 있습니다. 컨테이너식 애플리케이션을 사용하는 고객은 Amazon ECS, Amazon EKS 또는 선택한 기본 컨테이너 엔진을 사용하여 Neuron을 배포할 수 있습니다.

이점

사용 편의성

AWS Neuron SDK는 TensorFlow, PyTorch 및 MXNet과 같은 주요 프레임워크와 통합됩니다. Amazon Deep Learning AMIAmazon Deep Learning Containers에 미리 설치되어 있으므로 AWS Inferentia 칩이 탑재된 Amazon EC2 Inf1 인스턴스에서 고성능의 비용 효율적인 추론을 빠르게 시작할 수 있습니다.

성능 최적화

AWS Neuron SDK를 사용하면 런타임 시 Inferentia 칩에 액세스하여 효율적인 프로그래밍을 지원할 수 있습니다. 정확성에 최적화된 FP32(32비트 부동 소수점) 모델을 16비트 bfloat으로 자동 변환하여 처리량을 극대화하는 기능인 Auto Casting과 같은 고급 기능을 제공합니다. 모델 병렬 처리, 배치 또는 NeuronCore 그룹과 같은 Neuron 기능을 활용하면 병렬로 실행되는 동일 모델 또는 다른 모델의 데이터 병렬 처리를 통해 처리량을 극대화함으로써 성능을 추가로 개선할 수 있습니다.

유연성 및 선택권

Neuron은 일반적인 기계 학습 프레임워크와 통합되므로 최소한의 코드 변경으로 기존 모델을 EC2 Inf1 인스턴스에 배포할 수 있습니다. 따라서 공급 업체의 특정 소프트웨어 라이브러리에 종속되지 않고 하드웨어 이동성을 유지하면서 최신 기술을 자유롭게 활용할 수 있습니다. Neuron을 사용하면 이미지 인식/분류를 위한 SSD(Single Shot Detector) 및 ResNet, 자연어 처리와 번역을 위한 Transformer 및 BERT와 같이 일반적으로 사용되는 다양한 기계 학습 모델을 배포할 수 있습니다. 또한, Neuron은 HuggingFace 모델 리포지토리를 지원하므로 코드 줄 하나만 변경하여 사전 훈련된 모델은 물론, 세분화된 모델을 통해 추론을 컴파일하고 실행할 수 있습니다.

기능

스마트 파티셔닝

AWS Neuron은 신경망 컴퓨팅을 자동으로 최적화합니다. 즉, 컴퓨팅 집약적인 태스크를 Inferentia에서 실행하고 다른 태스크를 CPU에서 실행하여 전체 성능을 개선합니다. 

FP32 Autocasting

AWS Neuron은 높은 정밀도의 FP32 훈련 모델을 BF16으로 자동 캐스트하여 16비트 데이터 유형의 저렴한 비용과 높은 속도로 추론 처리량을 개선합니다. 

NeuronCore 파이프라인

NeuronCore 파이프라인을 사용하면 여러 NeuronCore에 컴퓨팅 그래프를 샤딩하고, 각 코어의 온칩 메모리에 모델 파라미터를 캐싱한 다음, 추론 요청을 파이프라인 방식으로 코어 전체로 스트리밍할 수 있습니다. 이렇게 하면 자연어 처리와 같이 대기 시간에 민감한 애플리케이션에서 높은 처리량이 요구되는 모델을 병렬 처리할 수 있습니다. 

NeuronCore 그룹

NeuronCore 그룹을 사용하면 여러 모델을 동시에 배포하고 각 그룹에서 서로 다른 모델을 실행하여 하드웨어 리소스 활용을 최적화할 수 있습니다.

배치 최적화

AWS Neuron은 소규모 배치를 최대한 활용하는 방식으로 Inferentia 칩의 워크로드를 최적화합니다. 이렇게 하면 응답 시간 요구 사항이 엄격한 애플리케이션에 고성능을 제공할 수 있습니다.

작동 방식

how-it-works-inf1

AWS Inferentia 칩

AWS Inferentia는 저렴한 비용으로 높은 성능을 제공하도록 AWS가 설계 및 구축한 기계 학습 추론 칩입니다. 각 AWS Inferentia 칩에는 4개의 NeuronCore가 있으며 FP16, BF16 및 INT8 데이터 유형을 지원합니다. AWS Inferentia 칩에는 대규모 모델을 캐싱하는 데 사용될 수 있는 고용량 온칩 메모리가 있어 잦은 메모리 액세스가 필요한 모델에 특히 유용합니다.

자세히 알아보기 »

Amazon EC2 Inf1 인스턴스

AWS Inferentia 칩에 기반한 AWS EC2 Inf1 인스턴스는 비교 가능한 최신 세대의 GPU 기반 Amazon EC2 인스턴스에 비해 추론당 최대 70% 저렴한 비용으로 최대 2.3배 더 많은 처리량을 제공합니다. Inf1 인스턴스는 최대 16개의 AWS Inferentia 칩, 최신 맞춤형 2세대 인텔® 제온® 확장형 프로세서 및 최대 100Gbps의 네트워킹을 사용하여 뛰어난 추론 처리 성능을 제공합니다.

자세히 알아보기 »

시작하기

자습서, 방법 가이드, 애플리케이션 정보 및 로드맵은 문서를 참조하세요.
추가 지원이 필요한 경우 AWS 콘솔 또는 https://forums.aws.amazon.com/forum.jspa?forumID=355를 통해 개발자 포럼을 사용할 수 있습니다.