검토 : Amazon SageMaker, 따라 잡기

2018 년 Amazon SageMaker를 검토했을 때 자체 알고리즘 11 개와 사용자가 제공하는 다른 모든 알고리즘을 지원하는 확장 성이 뛰어난 기계 학습 및 딥 러닝 서비스라는 점에 주목했습니다. 하이퍼 파라미터 최적화는 아직 미리보기로 제공되었으며 자체 ETL 및 기능 엔지니어링을 수행해야했습니다. 

그 이후로 SageMaker의 범위가 확장되어 IDE (SageMaker Studio) 및 자동화 된 기계 학습 (SageMaker Autopilot)으로 핵심 노트북을 확장하고 아래 다이어그램과 같이 전체 에코 시스템에 중요한 서비스를 추가했습니다. 이 에코 시스템은 준비부터 모델 구축, 교육, 조정, 배포 및 관리에 이르는 머신 러닝을 지원합니다.

SageMaker의 새로운 기능은 무엇입니까?

무엇이 새로운가요? SageMaker가 출시 된 직후에 마지막으로 살펴 봤다는 점을 감안할 때 목록은 다소 길지만 가장 눈에 띄는 서비스부터 시작하겠습니다.

  • JupyterLab 기반 IDE 인 SageMaker Studio
  • SageMaker Studio에서 검사 할 수있는 최대 50 개의 기능 엔지니어링 모델을 자동으로 빌드하고 훈련하는 SageMaker Autopilot
  • SageMaker Ground Truth는 교육 데이터 세트를 구축하고 관리하는 데 도움이됩니다.
  • SageMaker 노트북은 이제 탄력적 인 컴퓨팅 및 단일 클릭 공유를 제공합니다.
  • 개발자가 기계 학습 모델 반복, 훈련 매개 변수 및 결과를 시각화하고 비교하는 데 도움이되는 SageMaker 실험
  • SageMaker Debugger는 기계 학습 모델에 대한 실시간 모니터링을 제공하여 예측 정확도를 개선하고 교육 시간을 단축하며 설명 가능성을 높이는 기능을 제공합니다.
  • SageMaker Model Monitor는 개념 드리프트를 감지하여 프로덕션에서 실행중인 모델의 성능이 원래 훈련 된 모델에서 벗어나기 시작할 때 발견합니다.

다른 주목할만한 개선 사항으로는 비용을 줄이기 위해 노트북 용 스팟 인스턴스를 선택적으로 사용하는 것입니다. 8 개의 V100 GPU를 포함하는 새로운 P3dn.24xl 인스턴스 유형 여러 유형의 신경망을 훈련 할 때 선형에 가까운 확장 성을 달성하는 AWS에 최적화 된 TensorFlow 프레임 워크 추론 비용을 크게 줄일 수있는 Amazon Elastic Inference 고성능 기계 학습 추론 칩인 AWS Inferentia SageMaker에 내장되어 있고 AWS Marketplace에서 사용할 수있는 새로운 알고리즘이 있습니다. 또한 SageMaker Neo는 엣지 컴퓨팅 장치에서 실행되도록 딥 러닝 모델을 컴파일하고 SageMaker RL (다이어그램에 표시되지 않음)은 관리 형 강화 학습 서비스를 제공합니다.

SageMaker 스튜디오

JupyterLab은 Project Jupyter를위한 차세대 웹 기반 사용자 인터페이스입니다. SageMaker Studio는 협업 기능, 실험 관리, Git 통합 및 자동 모델 생성이 포함 된 통합 온라인 기계 학습 및 딥 러닝 워크 스테이션 인 IDE의 기반으로 JupyterLab을 사용합니다.

아래 스크린 샷은 터미널 탭과 Git 명령 줄을 사용하여 SageMaker 예제를 SageMaker Studio 인스턴스에 설치하는 방법을 보여줍니다. 이 작업에 대한 지침은이 예제의 README에 있습니다.이 예제는 일종의 Catch-22입니다. GitHub에서 시작하기 예제를 찾아 보거나 리포지토리를 자신의 컴퓨터에 복제하고 거기에서 읽을 수 있습니다.

Amazon의 시작하기 예제에는 고객 이탈 예측에 대한 블로그 게시물에서 수정 된 xgboost_customer_churn_studio.ipynb라는 노트북이 포함되어 있습니다. Jupyter 노트북에는 아래 스크린 샷에서 볼 수 있듯이 많은 설명이 있습니다.

이 예제는 Amazon S3에 디버깅 정보를 저장하고 세 가지 디버깅 규칙을 호출하도록 수정 된 외부 XGBoost 알고리즘으로 추가 교육을 실행합니다. 이것은 기본 제공 알고리즘이 아니라는 것을 의미하는 프레임 워크 모드 라고 하는 것입니다.

교육이 모두 완료되면 실험 탭에서 결과를 비교할 수 있습니다.

그런 다음 예제에서는 해당 deploy메서드를 사용하여 모델을 호스팅하고 해당 메서드를 사용 하여 배포 된 엔드 포인트를 테스트합니다 predict. 마지막으로 훈련 데이터 세트로 기준 작업과 제약 위반을보고하는 예약 된 모니터링 작업을 생성합니다.

그런데 XGBoost는 SageMaker에 내장 된 많은 알고리즘 중 하나 일뿐입니다. 전체 목록은 아래 표에 나와 있으며 언제든지 자신 만의 모델을 만들 수 있습니다.

SageMaker Autopilot

기능 엔지니어링을 수행하는 방법을 모르고 다양한 기계 학습 작업에 사용할 수있는 다양한 알고리즘에 익숙하지 않다고 가정합니다. SageMaker를 계속 사용할 수 있습니다. 자동 조종 장치에서 실행하기 만하면됩니다. SageMaker Autopilot은 최대 5GB의 데이터 세트를 처리 할 수 ​​있습니다.

아래 스크린 샷에서는 Amazon SageMaker Autopilot 예제를 사용하여 Direct Marketing을 실행하고 있습니다. 먼저 데이터를 다운로드하고 압축을 풀고 S3 버킷에 업로드하고 create_auto_ml_job API를 호출하여 Autopilot 작업을 시작합니다. 그런 다음 아래와 같이 데이터를 분석하고 기능 엔지니어링을 수행하고 모델 튜닝을 수행하면서 작업의 진행 상황을 추적합니다.

그런 다음이 예제에서는 최상의 모델을 선택하고이를 사용하여 엔드 포인트를 생성 및 호스팅하고 변환 작업을 실행하여 모델 예측을 테스트 데이터의 사본에 추가합니다. 마지막으로 Autopilot 작업에 의해 생성 된 두 개의 노트북을 찾습니다.

분명하지는 않지만 Autopilot 결과에 대한 사용자 인터페이스가 있습니다. automl 실험을 마우스 오른쪽 버튼으로 클릭하면 아래와 같이 목표 값이있는 모든 시행을 볼 수 있습니다.

SageMaker Ground Truth

운이 좋으면 모든 데이터에 레이블이 지정되거나 주석이 추가되고 훈련 데이터 세트로 사용할 준비가됩니다. 그렇지 않은 경우 수동으로 데이터에 주석을 달거나 (일반적인 농담은 대학원생에게 작업을 제공한다는 것입니다) 또는 인간 주석과 자동 주석을 결합하는 준지도 학습 프로세스를 사용할 수 있습니다. SageMaker Ground Truth는 그러한 라벨링 프로세스입니다.

아래 다이어그램에서 볼 수 있듯이 Ground Truth는 다양한 작업에 적용될 수 있습니다. Ground Truth를 사용하면 Amazon Mechanical Turk 또는 선택한 공급 업체 회사의 작업자 또는 기계 학습과 함께 내부 개인 인력을 사용하여 레이블이있는 데이터 세트를 생성 할 수 있습니다.

Amazon은 SageMaker Ground Truth를 사용하는 다양한 방법을 보여주는 7 가지 연습을 제공합니다.

SageMaker Neo

최근까지도 스마트 폰 및 IoT 장치와 같은 에지 장치에 훈련 된 모델을 배포하는 것은 어려웠습니다. TensorFlow 모델 용 TensorFlow Lite 및 Nvidia 장치 용 TensorRT와 같은 특정 솔루션이 있었지만 SageMaker Neo는 ARM, Intel 및 Nvidia 프로세서에 배포하기 위해 TensorFlow, Apache MXNet, PyTorch, ONNX 및 XGBoost 모델을 컴파일하고 자동으로 최적화합니다. Qualcomm, Cadence 및 Xilinx 장치로.

AWS에 따르면 Neo는 모델의 성능을 두 배로 늘리고 제한된 양의 메모리로 엣지 디바이스에서 실행할 수있을만큼 축소 할 수 있습니다.

SageMaker 추론 배포 옵션

컴퓨팅, 스토리지, 네트워크 전송 등의 측면에서 프로덕션 추론을위한 모델 배포는 종종 딥 러닝 비용의 90 %를 차지하는 반면 교육은 비용의 10 % 만 차지합니다. AWS는 추론 비용을 줄이는 다양한 방법을 제공합니다.

그중 하나가 Elastic Inference입니다. AWS는 Elastic Inference가 처리 속도를 높이고 Amazon SageMaker 호스팅 모델로 배포 된 딥 러닝 모델에서 실시간 추론을 얻는 지연 시간을 줄일 수 있다고 말합니다. Elastic Inference는 모든 Amazon SageMaker 인스턴스에 분수 GPU를 연결할 수 있도록하여 추론을 가속화합니다.

Elastic Inference는 TensorFlow, Apache MXNet 및 PyTorch의 Elastic Inference 지원 버전에서 지원됩니다. 다른 딥 러닝 프레임 워크를 사용하려면 ONNX를 사용하여 모델을 내 보낸 다음 모델을 MXNet으로 가져옵니다.

Elastic Inference에서 얻을 수있는 액셀러레이터 당 32 TFLOPS 이상이 필요한 경우 Nvidia T4 GPU가있는 EC2 G4 인스턴스 또는 AWS Inferentia 사용자 지정 액셀러레이터 칩이있는 EC2 Inf1 인스턴스를 사용할 수 있습니다. Inferentia 칩의 속도가 필요한 경우 AWS Neuron SDK를 사용하여 딥 러닝 모델을 NEFF (Neuron Executable File Format)로 컴파일 할 수 있으며, 이는 차례로 Neuron 런타임 드라이버에서로드하여 Inferentia에서 추론 입력 요청을 실행합니다. 작은 조각.

이 시점에서 Amazon SageMaker Studio 미리보기는 데이터 준비, 모델 교육, 모델 배포 및 모델 모니터링과 같은 종단 간 기계 학습 및 딥 러닝에 사용하기에 충분합니다. 사용자 경험은 더 나은 기능 검색과 같은 몇 가지 요구 사항을 여전히 남기고 있지만 Amazon SageMaker는 이제 다른 클라우드에서 사용할 수있는 기계 학습 환경과 경쟁합니다.

비용 : CPU 및 GPU 수에 따라 컴퓨팅의 경우 인스턴스 시간당 $ 0.0464 ~ $ 34.272 SSD 스토리지 : GB 당 월 $ 0.14 데이터 전송 : 들어 오거나 나가는 GB 당 $ 0.016. 

플랫폼 : Amazon Web Services에서 호스팅됩니다.