Amazon SageMaker 교육 작업 PlatoBlockchain Data Intelligence에 가장 적합한 데이터 원본을 선택하십시오. 수직 검색. 일체 포함.

Amazon SageMaker 교육 작업에 가장 적합한 데이터 원본 선택

아마존 세이지 메이커 머신 러닝(ML) 모델을 쉽게 구축, 교육 및 배포할 수 있는 관리형 서비스입니다. 데이터 과학자는 SageMaker 교육 작업을 사용하여 ML 모델을 쉽게 교육합니다. 컴퓨팅 리소스 관리에 대해 걱정할 필요가 없으며 실제 교육 시간에 대해서만 비용을 지불하면 됩니다. 데이터 수집은 모든 교육 파이프라인의 필수적인 부분이며 SageMaker 교육 작업은 광범위한 교육 워크로드에 맞게 다양한 데이터 저장 및 입력 모드를 지원합니다.

이 게시물은 SageMaker ML 교육 사용 사례에 가장 적합한 데이터 원본을 선택하는 데 도움이 됩니다. SageMaker 교육 작업이 기본적으로 지원하는 데이터 소스 옵션을 소개합니다. 각 데이터 소스 및 입력 모드에 대해 사용 용이성, 성능 특성, 비용 및 제한 사항을 간략히 설명합니다. 빠르게 시작할 수 있도록 주요 워크로드 특성을 기반으로 따를 수 있는 샘플 의사 결정 흐름이 포함된 다이어그램을 제공합니다. 마지막으로 실제 교육 시나리오에 대한 몇 가지 벤치마크를 수행하여 전체 교육 비용 및 성능에 대한 실질적인 영향을 보여줍니다.

기본 SageMaker 데이터 소스 및 입력 모드

훈련 데이터를 쉽고 유연하게 효과적인 방식으로 읽는 것은 ML 훈련에서 흔히 반복되는 문제입니다. SageMaker는 데이터 소스 및 해당 입력 모드라고 하는 효율적이고 처리량이 많은 데이터 수집 메커니즘을 선택하여 데이터 수집을 단순화합니다. 이를 통해 실제 데이터 소스에서 교육 코드를 분리하고, 파일 시스템을 자동으로 마운트하고, 고성능으로 읽고, GPU와 인스턴스 간의 데이터 분할을 쉽게 켜서 데이터 병렬 처리를 활성화하고, 각 시대가 시작될 때 데이터를 자동 섞을 수 있습니다.

SageMaker 교육 수집 메커니즘은 기본적으로 세 가지 AWS 관리형 스토리지 서비스와 통합됩니다.

  • 아마존 단순 스토리지 서비스 (Amazon S3)는 업계 최고의 확장성, 데이터 가용성, 보안 및 성능을 제공하는 객체 스토리지 서비스입니다.
  • Luster 용 Amazon FSx 널리 사용되는 Lustre 파일 시스템의 확장성과 성능을 갖춘 완전 관리형 공유 스토리지입니다. 일반적으로 기존 S3 버킷에 연결됩니다.
  • 아마존 탄성 파일 시스템 (Amazon EFS)는 다양한 가격대의 확장 가능한 고가용성 범용 공유 파일 시스템입니다. Amazon EFS는 서버리스이며 파일을 추가 및 제거할 때 자동으로 확장 및 축소됩니다.

SageMaker 교육을 통해 교육 스크립트는 POSIX 호환 파일 시스템 인터페이스를 통해 로컬 파일 시스템에서 사용할 수 있는 것처럼 Amazon S3, FSx for Lustre 또는 Amazon EFS에 저장된 데이터 세트에 액세스할 수 있습니다.

Amazon S3를 데이터 원본으로 사용하면 파일 모드, FastFile 모드 및 파이프 모드 중에서 선택할 수 있습니다.

  • 파일 모드 – SageMaker는 Amazon S3에서 연결된 ML 인스턴스 스토리지로 데이터 세트를 복사합니다. 아마존 엘라스틱 블록 스토어 훈련 스크립트가 시작되기 전에 (Amazon EBS) 볼륨 또는 NVMe SSD 볼륨.
  • FastFile 모드 – SageMaker는 Amazon S3에 있는 데이터 세트를 교육 인스턴스의 POSIX 파일 시스템으로 노출합니다. 데이터 세트 파일은 훈련 스크립트가 읽을 때 주문형 Amazon S3에서 스트리밍됩니다.
  • 파이프 모드 – SageMaker는 Amazon S3에 있는 데이터 세트를 Unix 파이프로 ML 교육 인스턴스로 스트리밍합니다. 이 파이프는 교육 스크립트가 파이프에서 데이터를 읽을 때 요청 시 Amazon S3에서 스트리밍합니다.

FSx for Lustre 또는 Amazon EFS를 데이터 원본으로 사용하는 경우 SageMaker는 교육 ​​스크립트가 시작되기 전에 파일 시스템을 탑재합니다.

교육 입력 채널

SageMaker 교육 작업을 시작할 때 최대 20개의 관리되는 교육 입력 채널. 채널을 파일 시스템 경로(예: /opt/ml/input/data/input-channel-name) ML 인스턴스에서. 선택한 교육 채널은 교육 작업의 재현성 또는 모델 거버넌스 목적과 같은 사용 사례에 대한 전체 모델 계보 추적을 가능하게 하기 위해 교육 작업 메타데이터의 일부로 캡처됩니다.

Amazon S3를 데이터 원본으로 사용하려면 다음을 정의합니다. 교육입력 다음을 지정하려면:

  • 입력 모드(파일, FastFile 또는 파이프 모드)
  • 콘텐츠 배급셔플 구성
  • An S3DataType 데이터 세트를 구성하는 Amazon S3에서 객체를 지정하는 세 가지 방법 중 하나로:

또는 FSx for Lustre 또는 Amazon EFS의 경우 다음을 정의합니다. 파일 시스템 입력.

다음 다이어그램은 각각 다른 데이터 소스와 입력 모드 조합으로 구성된 XNUMX개의 훈련 작업을 보여줍니다.

Amazon SageMaker 교육 작업 PlatoBlockchain Data Intelligence에 가장 적합한 데이터 원본을 선택하십시오. 수직 검색. 일체 포함.

데이터 소스 및 입력 모드

다음 섹션에서는 Amazon S3(파일 모드, FastFile 모드 및 파이프 모드), Lustre용 FSx, SageMaker 수집 메커니즘인 Amazon EFS 간의 차이점에 대해 자세히 설명합니다.

Amazon S3 파일 모드

파일 모드는 기본 입력 모드이며(명시적으로 지정하지 않은 경우) 사용하기가 더 쉽습니다. 이 입력 옵션을 사용하면 SageMaker는 모델 훈련을 시작하기 전에 Amazon S3에서 ML 훈련 인스턴스 스토리지(인스턴스 유형에 따라 Amazon EBS 또는 로컬 NVMe)로 데이터 세트를 다운로드하므로 훈련 스크립트가 다음에서 데이터 세트를 읽을 수 있습니다. 로컬 파일 시스템. 이 경우 인스턴스에는 전체 데이터 세트에 맞는 충분한 저장 공간이 있어야 합니다.

S3 접두사, 매니페스트 파일 또는 증강 매니페스트 파일을 제공하여 파일 모드용 데이터 세트를 구성합니다.

모든 데이터 세트 파일이 공통 S3 접두사 내에 있는 경우 S3 접두사를 사용해야 합니다(하위 폴더는 괜찮음).

매니페스트 파일은 데이터세트를 구성하는 파일을 나열합니다. 일반적으로 데이터 사전 처리 작업이 매니페스트 파일을 내보내거나 데이터 세트 파일이 여러 S3 접두사에 분산되어 있을 때 매니페스트를 사용합니다. 증강 매니페스트는 JSON 라인 파일로, 각 라인에는 Amazon S3의 파일 참조와 같은 속성 목록과 추가 속성(대부분 레이블)이 포함되어 있습니다. 사용 사례는 매니페스트의 사용 사례와 유사합니다.

파일 모드는 다음과 호환됩니다. SageMaker 로컬 모드 (SageMaker 훈련 컨테이너를 대화식으로 몇 초 만에 시작). 분산 교육의 경우 다음을 사용하여 여러 인스턴스에 걸쳐 데이터 세트를 분할할 수 있습니다 ShardedByS3Key 옵션을 선택합니다.

파일 모드 다운로드 속도는 데이터 세트 크기, 평균 파일 크기 및 파일 수에 따라 다릅니다. 예를 들어 데이터 세트가 클수록(또는 포함된 파일이 많을수록) 다운로드 단계가 길어지고 인스턴스의 컴퓨팅 리소스가 유휴 상태로 유지됩니다. 스팟 인스턴스로 훈련할 때 스팟 중단 후 작업이 재개될 때마다 데이터 세트가 다운로드됩니다. 일반적으로 데이터 다운로드는 대용량 파일(예: 200분/5GB)의 경우 약 50MB/s로 발생합니다. 이 시작 오버헤드가 허용 가능한지 여부는 주로 훈련 작업의 전체 기간에 따라 다릅니다. 훈련 단계가 길수록 다운로드 단계가 비례적으로 작아지기 때문입니다.

Amazon S3 FastFile 모드

FastFile 모드는 교육 인스턴스의 로컬 디스크에서 파일을 사용할 수 있는 것처럼 POSIX 호환 파일 시스템 인터페이스를 통해 S3 객체를 노출하고 교육 스크립트에서 데이터를 사용할 때 요청 시 해당 콘텐츠를 스트리밍합니다. 즉, 데이터세트가 더 이상 교육 인스턴스 스토리지 공간에 맞지 않아도 되며 교육을 시작하기 전에 데이터세트가 교육 인스턴스에 다운로드될 때까지 기다릴 필요가 없습니다.

이를 용이하게 하기 위해 SageMaker는 훈련 스크립트가 실행되기 전에 지정된 S3 접두사 아래에 저장된 모든 객체 메타데이터를 나열합니다. 이 메타데이터는 읽기 전용 FUSE(사용자 공간의 파일 시스템) 다음을 통해 교육 스크립트에서 사용할 수 있습니다. /opt/ml/data/training-channel-name. S3 객체 나열은 크기에 관계없이 초당 5,500개 객체만큼 빠르게 실행됩니다. 이것은 파일 모드의 경우와 같이 파일을 미리 다운로드하는 것보다 훨씬 빠릅니다. 교육 스크립트가 실행되는 동안 로컬에서 사용 가능한 것처럼 파일을 나열하거나 읽을 수 있습니다. 각 읽기 작업은 호출자에게 실제 파일 콘텐츠를 전달하기 위해 Amazon S3에 GET 요청을 프록시하는 FUSE 서비스에 위임됩니다. 로컬 파일 시스템과 마찬가지로 FastFile은 파일을 바이트로 취급하므로 파일 형식에 구애받지 않습니다. FastFile 모드는 여러 작업자를 사용하여 대용량 파일을 순차적으로 읽을 때 XNUMXGB/s 이상의 처리량에 도달할 수 있습니다. FastFile을 사용하여 작은 파일을 읽거나 임의의 바이트 범위를 검색할 수 있지만 이러한 액세스 패턴의 경우 처리량이 더 낮을 것으로 예상해야 합니다. 많은 작은 파일을 큰 파일 컨테이너로 직렬화하여 읽기 액세스 패턴을 최적화하고 순차적으로 읽을 수 있습니다.

FastFile은 현재 S3 접두사만 지원하며(매니페스트 및 증강 매니페스트는 지원하지 않음) FastFile 모드는 SageMaker 로컬 모드와 호환됩니다.

Amazon S3 파이프 모드

파이프 모드는 새롭고 사용이 간편한 FastFile 모드로 대체되는 또 다른 스트리밍 모드입니다.

파이프 모드를 사용하면 높은 동시성과 처리량으로 Amazon S3에서 데이터를 미리 가져오고 FIFO 파이프라는 Unix로 스트리밍합니다. 각 파이프는 단일 프로세스에서만 읽을 수 있습니다. 편리하게 TensorFlow에 대한 SageMaker 전용 확장 파이프 모드를 기본 TensorFlow 데이터 로더에 통합 스트리밍 텍스트, TFRecords 또는 RecordIO 파일 형식용. 파이프 모드는 관리형 샤딩 및 데이터 셔플링도 지원합니다.

광택을 위한 FSx

FSx for Lustre는 지연 시간이 짧은 파일 검색을 통해 수백 GB/s의 처리량과 수백만 IOPS로 확장할 수 있습니다.

교육 작업을 시작할 때 SageMaker는 Lustre 파일 시스템용 FSx를 교육 인스턴스 파일 시스템에 마운트한 다음 교육 스크립트를 시작합니다. 마운트 자체는 FSx for Lustre에 저장된 데이터 세트의 크기에 의존하지 않는 비교적 빠른 작업입니다.

대부분의 경우 Lustre 파일 시스템용 FSx를 생성하고 S3 버킷 및 접두사에 연결. S3 버킷에 소스로 연결하면 교육 스크립트가 파일을 읽을 때 파일이 파일 시스템에 지연 로드됩니다. 즉, 첫 번째 교육 실행의 첫 번째 에포크 직후에 전체 데이터 세트가 Amazon S3에서 Lustre 스토리지용 FSx로 복사됩니다. 광택 스토리지는 충분히 큽니다). 이를 통해 동일한 데이터 세트를 사용하는 모든 후속 에포크 및 교육 작업에 대해 지연 시간이 짧은 파일 액세스가 가능합니다.

당신은 또한 수 파일 시스템에 파일을 미리 로드 학습 작업을 시작하기 전에 지연 로딩으로 인한 콜드 스타트를 완화합니다. 또한 동일한 FSx for Lustre 파일 시스템에서 제공하는 여러 교육 작업을 병렬로 실행할 수도 있습니다. FSx for Lustre에 액세스하려면 교육 작업이 VPC에 연결되어야 합니다(참조 VPCConfig 설정), DevOps 설정 및 참여가 필요합니다. 데이터 전송 비용을 피하기 위해 파일 시스템은 단일 가용 영역을 사용하며 교육 작업을 실행할 때 이 가용 영역 ID를 지정해야 합니다. Amazon S3를 장기 데이터 스토리지로 사용하고 있기 때문에 FSx for Lustre with Scratch 2 스토리지를 높은 처리량을 위한 비용 효율적인 단기 스토리지로 배포하고 200MB/s의 기준선을 제공하는 것이 좋습니다. 프로비저닝된 스토리지의 TB당 최대 1300MB/s의 버스트.

FSx for Lustre 파일 시스템이 지속적으로 실행되면 파일 시스템이 생성될 때까지 기다리지 않고 새 교육 작업을 시작할 수 있으며 첫 번째 epoch 동안 콜드 스타트에 대해 걱정할 필요가 없습니다(파일이 여전히 캐시될 수 있기 때문에 Lustre 파일 시스템용 FSx). 이 시나리오의 단점은 파일 시스템을 계속 실행하는 것과 관련된 추가 비용입니다. 또는 각 교육 작업 전후에 파일 시스템을 만들고 삭제할 수 있지만(아마도 도움이 되도록 스크립트 자동화를 사용하여) FSx for Lustre 파일 시스템을 초기화하는 데 시간이 걸리며 이는 보관 파일 수에 비례합니다(예: 예를 들어 Amazon S2에서 약 3백만 개의 객체를 인덱싱하는 데 약 XNUMX시간이 걸립니다.

아마존 EFS

ML 교육 이외의 사용 사례로 인해 교육 데이터가 이미 Amazon EFS에 있는 경우 Amazon EFS를 사용하는 것이 좋습니다. Amazon EFS를 데이터 원본으로 사용하려면 교육 전에 데이터가 이미 Amazon EFS에 있어야 합니다. SageMaker는 지정된 Amazon EFS 파일 시스템을 교육 인스턴스에 탑재한 다음 교육 스크립트를 시작합니다. Amazon EFS 파일 시스템을 구성할 때 지연 시간에 최적화된 기본 범용 성능 모드(작은 파일에 적합)와 더 높은 수준의 집계 처리량 및 초당 작업 수(I/O 작업자가 많은 교육 작업에 더 적합). 자세한 내용은 다음을 참조하십시오. 올바른 성능 모드 사용.

또한 버스팅 처리량과 프로비저닝된 처리량이라는 두 가지 측정 처리량 옵션 중에서 선택할 수 있습니다. 1TB 파일 시스템의 버스트 처리량은 150MB/s의 기준선을 제공하는 반면 하루 300시간 동안 12MB/s로 버스트할 수 있습니다. 더 높은 기준 처리량이 필요하거나 버스트 크레딧이 너무 많이 소모되는 경우 파일 시스템 크기를 늘리거나 프로비저닝된 처리량으로 전환할 수 있습니다. 프로비저닝된 처리량에서 최대 3072MB/s 읽기까지 원하는 기준 처리량에 대해 비용을 지불합니다.

훈련 작업은 VPC에 연결해야 합니다(참조 VPCConfig 설정) Amazon EFS에 액세스합니다.

최고의 데이터 소스 선택

훈련 작업에 가장 적합한 데이터 소스는 데이터 세트 크기, 파일 형식, 평균 파일 크기, 훈련 기간, 순차 또는 무작위 데이터 로더 읽기 패턴, 모델이 훈련 데이터를 사용할 수 있는 속도와 같은 워크로드 특성에 따라 다릅니다.

다음 순서도는 시작하는 데 도움이 되는 몇 가지 지침을 제공합니다.
Amazon SageMaker 교육 작업 PlatoBlockchain Data Intelligence에 가장 적합한 데이터 원본을 선택하십시오. 수직 검색. 일체 포함.

Amazon EFS를 사용해야 하는 경우

데이터 세트가 주로 Amazon EFS에 저장되는 경우 Amazon EFS를 저장용으로 사용하는 사전 처리 또는 주석 애플리케이션이 있을 수 있습니다. Amazon EFS 파일 시스템을 가리키는 데이터 채널로 구성된 교육 작업을 쉽게 실행할 수 있습니다(자세한 내용은 Luster 및 Amazon EFS 파일 시스템 용 Amazon FSx를 사용하여 Amazon SageMaker에 대한 교육 속도 향상). 성능이 예상만큼 좋지 않으면 다음을 사용하여 최적화 옵션을 확인하십시오. Amazon EFS 성능 가이드, 또는 다른 입력 모드를 고려하십시오.

작은 데이터 세트에 파일 모드 사용

데이터 세트가 Amazon S3에 저장되고 전체 볼륨이 상대적으로 작은 경우(예: 50–100GB 미만) 파일 모드를 사용해 보십시오.. 50GB의 데이터 세트를 다운로드하는 오버헤드는 총 파일 수에 따라 다를 수 있습니다(예: 5MB 샤드로 청크하면 약 100분). 이 시작 오버헤드가 허용 가능한지 여부는 주로 훈련 작업의 전체 기간에 따라 다릅니다. 훈련 단계가 길수록 다운로드 단계가 비례적으로 작아지기 때문입니다.

많은 작은 파일을 함께 직렬화

데이터 세트 크기가 작지만(50–100GB 미만) 많은 작은 파일(50MB 미만)로 구성된 경우 파일 모드 다운로드 오버헤드가 증가합니다. 각 파일을 Amazon S3에서 개별적으로 다운로드해야 하기 때문입니다. 훈련 인스턴스 볼륨. 이 오버헤드를 줄이고 일반적으로 데이터 순회 속도를 높이려면 TF 레코드 텐서플로우의 경우, 웹데이터세트 PyTorch의 경우 또는 레코드IO MXNet용. 이러한 형식을 사용하려면 데이터 로더가 예제를 순차적으로 반복해야 합니다. 각 에포크 후에 TFRecord 파일 목록을 무작위로 재정렬하고 로컬 셔플 버퍼에서 데이터를 무작위로 샘플링하여 데이터를 셔플할 수 있습니다(다음 참조 텐서플로우 예시).

FastFile 모드를 사용하는 경우

더 큰 파일(50MB 이상)이 있는 더 큰 데이터 세트의 경우 첫 번째 옵션은 FastFile 모드를 시도하는 것입니다. 이 모드는 파일 시스템을 만들거나 VPC에 연결할 필요가 없기 때문에 FSx for Lustre보다 사용하기 더 쉽습니다. FastFile 모드는 대용량 파일 컨테이너(150MB 이상)에 이상적이며 50MB보다 큰 파일에도 적합할 수 있습니다. FastFile 모드는 POSIX 인터페이스를 제공하기 때문에 임의 읽기(비순차적 바이트 범위 읽기)를 지원합니다. 그러나 이것은 이상적인 사용 사례가 아니며 처리량이 순차 읽기보다 낮을 수 있습니다. 그러나 비교적 크고 계산 집약적인 ML 모델이 있는 경우 FastFile 모드는 여전히 훈련 파이프라인의 유효 대역폭을 포화시킬 수 있으며 I/O 병목 현상을 일으키지 않을 수 있습니다. 실험하고 확인해야 합니다. 다행히 파일 모드에서 FastFile로(그리고 다시) 전환하는 것은 추가(또는 제거)만큼 쉽습니다. input_mode='FastFile' SageMaker Python SDK를 사용하여 입력 채널을 정의하는 동안 매개변수:

sagemaker.inputs.TrainingInput(S3_INPUT_FOLDER, input_mode='FastFile') 

다른 코드나 구성을 변경할 필요가 없습니다.

Lustre용 FSx를 사용하는 경우

데이터 세트가 파일 모드에 비해 너무 크거나 작은 파일(쉽게 직렬화할 수 없음)이 많거나 임의 읽기 액세스 패턴이 있는 경우 Lustre용 FSx를 고려하는 것이 좋습니다. 파일 시스템은 수백 GB/s의 처리량과 수백만 IOPS로 확장되므로 작은 파일이 많을 때 이상적입니다. 그러나 앞에서 이미 논의한 바와 같이 지연 로딩으로 인한 콜드 스타트 ​​문제와 Lustre 파일 시스템용 FSx를 설정하고 초기화하는 오버헤드에 유의하십시오.

비용 고려 사항

대부분의 ML 교육 작업, 특히 GPU 또는 특수 제작된 ML 칩을 사용하는 작업의 경우 대부분의 교육 비용은 ML 교육 인스턴스의 청구 가능한 시간(초)입니다. 월별 스토리지 GB, API 요청 및 프로비저닝된 처리량은 사용하는 데이터 원본과 직접 연결된 추가 비용입니다.

월별 스토리지 GB

비디오, LiDAR 센서 데이터 및 AdTech 실시간 입찰 로그와 같은 대규모 데이터 세트의 경우 월별 스토리지 GB가 중요할 수 있습니다. 예를 들어, 1TB를 Amazon S3 Intelligent-Tiering 빈번한 액세스 계층 비용은 한 달에 $23입니다. Amazon S3에 FSx for Lustre 파일 시스템을 추가하면 추가 비용이 발생합니다. 예를 들어, 데이터 압축이 비활성화된 SSD 지원 Scratch 1.2 유형의 2TB 파일 시스템을 생성하려면 월 $168(TB/월 $140)의 추가 비용이 듭니다.

Amazon S3 및 Amazon EFS에서는 사용한 만큼만 비용을 지불합니다. 즉, 실제 데이터 세트 크기에 따라 요금이 부과됩니다. FSx for Lustre를 사용하면 프로비저닝된 파일 시스템 크기(최소 1.2TB)에 따라 요금이 청구됩니다. EBS 볼륨으로 ML 인스턴스를 실행할 때 Amazon EBS는 ML 인스턴스와 별도로 요금이 부과됩니다. 이는 일반적으로 인스턴스 실행 비용에 비해 훨씬 낮은 비용입니다. 예를 들어 3.2GB EBS 볼륨으로 ml.p100xlarge 인스턴스를 1시간 동안 실행하는 경우 인스턴스 비용은 $3.825, EBS 볼륨 비용은 $0.02입니다.

API 요청 및 프로비저닝된 처리량 비용

훈련 작업이 데이터 세트를 처리하는 동안 Amazon S3 API 요청을 발송하여 파일을 나열하고 가져옵니다. 예를 들어 백만 GET 요청의 가격은 0.4 USD(Intelligent-Tiering 클래스 포함)입니다. 단일 가용 영역에서 교육이 이루어지므로 Amazon S3 안팎의 대역폭에 대한 데이터 전송 비용은 없습니다.

S3 버킷에 연결된 Lustre용 FSx를 사용하는 경우 파일 시스템에 아직 캐시되지 않은 데이터 읽기에 대해 Amazon S3 API 요청 비용이 발생합니다. ). FSx for Lustre 자체에 대한 직접 요청 비용은 없습니다. FSx for Lustre 파일 시스템을 사용하는 경우 파일 시스템을 프로비저닝한 것과 동일한 가용 영역에 연결된 교육 작업을 실행하여 교차 가용 영역 데이터 전송 비용을 방지합니다. 프로비저닝된 처리량이 있는 Amazon EFS는 그 이상을 고려하는 데 추가 비용을 추가합니다. 월 GB.

성능 사례 연구

앞서 언급한 훈련 성능 고려 사항을 보여주기 위해 컴퓨터 비전 영역에서 실제 사용 사례에 대한 일련의 벤치마크를 수행했습니다. 이 섹션의 벤치마크(및 테이크아웃)는 모든 시나리오에 적용되지 않을 수 있으며 DNN과 같이 우리가 사용한 다양한 미리 결정된 요소의 영향을 받습니다. 다음의 12가지 조합에 대해 테스트를 실행했습니다.

  • 입력 모드 – Lustre용 FSx, 파일 모드, FastFile 모드
  • 데이터 세트 크기 – 더 작은 데이터 세트(1GB), 더 큰 데이터 세트(54GB)
  • 파일 크기 – 작은 파일(JPG, 약 39KB), 큰 파일(TFRecord, 약 110MB)

이 사례 연구에서는 가장 널리 사용되는 입력 모드를 선택했으므로 Amazon EFS 및 파이프 모드를 생략했습니다.

사례 연구 벤치마크는 ml.p3.2xlarge 단일 GPU 인스턴스에서 종단 간 SageMaker TensorFlow 교육 작업으로 설계되었습니다. 분류 작업을 위한 백본 모델로 유명한 ResNet-50을 선택하고 더 작은 교육 데이터 세트로 Caltech-256을 선택했습니다(더 큰 데이터 세트 버전을 만들기 위해 50번 복제). 우리는 훈련 예제를 생각한 단일 전체 스윕으로 정의되는 한 에포크에 대해 훈련을 수행했습니다.

다음 그래프는 각 벤치마크 시나리오에 대한 SageMaker 교육 작업의 총 청구 가능 시간을 보여줍니다. 총 작업 시간 자체는 다운로드, 교육 및 기타 단계(예: 컨테이너 시작 및 교육된 모델 아티팩트를 Amazon S3에 업로드)로 구성됩니다. 청구 가능 시간이 짧을수록 더 빠르고 저렴한 교육 작업으로 전환됩니다.

Amazon SageMaker 교육 작업 PlatoBlockchain Data Intelligence에 가장 적합한 데이터 원본을 선택하십시오. 수직 검색. 일체 포함.

먼저 논의하자 시나리오 A 및 시나리오 C, 데이터 세트가 많은 작은 파일로 구성된 경우 입력 모드 간의 성능 차이를 편리하게 보여줍니다.

시나리오 A (더 작은 파일, 더 작은 데이터 세트)는 FSx for Lustre 파일 시스템을 사용한 교육 작업이 청구 가능한 시간이 가장 짧음을 보여줍니다. 다운로드 단계가 가장 짧고 훈련 단계는 파일 모드만큼 빠르지만 FastFile보다 빠릅니다. Lustre용 FSx는 이 단일 에포크 테스트의 승자입니다. 그렇긴 하지만 여러 에포크가 있는 유사한 워크로드를 고려하십시오. 다운로드 단계로 인한 파일 모드의 상대적 오버헤드는 더 많은 에포크가 추가될수록 감소합니다. 이 경우 사용 편의성을 위해 파일 모드를 선호합니다. 또한 FSx for Lustre 파일 시스템에 대한 비용을 지불하고 프로비저닝하는 것보다 파일 모드를 사용하고 100초 추가 비용을 지불하는 것이 더 나은 선택임을 알 수 있습니다.

시나리오 C (더 작은 파일, 더 큰 데이터 세트) 총 청구 가능 시간이 5,000초에 불과한 가장 빠른 모드로 FSx for Lustre가 표시됩니다. 또한 FSx for Lustre 파일 시스템을 마운트하는 것이 파일 시스템의 파일 수(이 경우 1.5만 파일)에 의존하지 않기 때문에 다운로드 단계가 가장 짧습니다. FastFile의 다운로드 오버헤드도 작습니다. 지정된 S3 버킷 접두사 아래에 있는 파일의 메타데이터만 가져오는 반면 교육 단계에서 파일의 내용을 읽습니다. 파일 모드는 가장 느린 모드로 훈련을 시작하기 전에 전체 데이터 세트를 미리 다운로드하는 데 10,000초를 소비합니다. 훈련 단계를 보면 FSx for Lustre 및 File 모드가 유사한 우수한 성능을 보여줍니다. FastFile 모드의 경우 Amazon S3에서 직접 작은 파일을 스트리밍할 때 각 파일에 대한 새 GET 요청을 전달하기 위한 오버헤드는 파일 전송의 총 기간에 비해 상당히 커집니다(프리페치 버퍼가 있는 고도로 병렬 데이터 로더를 사용하더라도). 그 결과 FastFile 모드의 처리량이 전반적으로 낮아져 교육 작업에 대한 I/O 병목 현상이 발생합니다. FSx for Lustre는 이 시나리오에서 확실한 승자입니다.

시나리오 B 및 D 데이터 세트가 더 적은 수의 더 큰 파일로 구성된 경우 입력 모드 간의 성능 차이를 보여줍니다. 더 큰 파일을 사용하여 순차적으로 읽으면 효과적인 버퍼링을 허용하고 I/O 작업 수를 줄이기 때문에 일반적으로 I/O 성능이 향상됩니다.

시나리오 B (더 큰 파일, 더 작은 데이터 세트) 모든 모드에 대해 유사한 훈련 단계 시간을 보여줍니다(훈련이 I/O 바운드가 아님을 증명함). 이 시나리오에서는 다운로드 단계가 더 짧기 때문에 파일 모드보다 FastFile 모드를 선호하고 전자의 사용 용이성으로 인해 Lustre의 경우 FSx보다 FastFile 모드를 선호합니다.

시나리오 D (더 큰 파일, 더 큰 데이터 세트) 세 가지 모드 모두에 대해 상대적으로 유사한 총 청구 가능 시간을 보여줍니다. 파일 모드의 다운로드 단계는 Lustre 및 FastFile용 FSx보다 깁니다. 파일 모드는 훈련 단계를 시작하기 전에 Amazon S54에서 훈련 인스턴스로 전체 데이터 세트(3GB)를 다운로드합니다. 세 가지 모드는 모두 훈련 단계에서 비슷한 시간을 소비합니다. 모든 모드가 충분히 빠르게 데이터를 가져올 수 있고 GPU 기반이기 때문입니다. ml.p4d.24xlarge와 같은 추가 CPU 또는 GPU 리소스가 있는 ML 인스턴스를 사용하는 경우 컴퓨팅 리소스를 포화시키는 데 필요한 데이터 I/O 처리량이 증가합니다. 이러한 경우 FastFile 및 FSx for Lustre가 성공적으로 처리량을 확장할 것으로 예상할 수 있습니다(그러나 Lustre 처리량을 위한 FSx는 프로비저닝된 파일 시스템 크기에 따라 다름). 처리량을 확장하는 파일 모드의 기능은 인스턴스에 연결된 디스크 볼륨의 처리량에 따라 다릅니다. 예를 들어 Amazon EBS 지원 인스턴스(예: ml.p3.2xlarge, ml.p3.8xlarge 및 ml.p3.16xlarge)는 최대 처리량 250MB/s로 제한되는 반면 로컬 NVMe 지원 인스턴스(예: ml. g5.* 또는 ml.p4d.24xlarge)는 훨씬 더 많은 처리량을 수용할 수 있습니다.

요약하자면 FastFile은 파일 모드보다 빠르고 Lustre용 FSx만큼 빠르지만 사용이 더 간단하고 비용이 적게 들고 필요에 따라 처리량을 쉽게 확장할 수 있기 때문에 이 시나리오의 승자라고 생각합니다.

또한 훨씬 더 큰 데이터 세트(크기가 몇 TB)가 있는 경우 파일 모드는 훈련이 시작되기 전에 데이터 세트를 다운로드하는 데 많은 시간을 소비하지만 FastFile은 훨씬 더 빨리 훈련을 시작할 수 있습니다.

자체 데이터 수집 가져오기

SageMaker의 기본 데이터 소스는 모든 가능한 ML 훈련 시나리오에 적합하지 않지만 대부분의 적합합니다. 다른 데이터 수집 옵션을 찾아야 하는 상황에는 타사 스토리지 제품에서 직접 데이터를 읽거나(Amazon S3로 쉽고 시기 적절한 내보내기가 불가능하다고 가정) 동일한 교육에 대한 강력한 요구 사항이 포함될 수 있습니다. SageMaker 및 아마존 엘라스틱 컴퓨트 클라우드 (Amazon EC2) 또는 Amazon Elastic Kubernetes 서비스 (아마존 EKS). 교육 스크립트에 데이터 수집 메커니즘을 구현하여 이러한 경우를 해결할 수 있습니다. 이 메커니즘은 외부 데이터 소스에서 훈련 인스턴스로 데이터 세트를 읽어오는 역할을 합니다. 예를 들어, TFRecordDataset TensorFlow의 tf.data 라이브러리는 Amazon S3 스토리지에서 직접 읽을 수 있습니다.

데이터 수집 메커니즘이 다음과 같은 AWS 서비스를 호출해야 하는 경우 Amazon 관계형 데이터베이스 서비스 (Amazon RDS), AWS 자격 증명 및 액세스 관리 (IAM) 교육 작업의 역할에는 관련 IAM 정책이 포함됩니다. 데이터 소스가 다음 위치에 있는 경우 아마존 가상 프라이빗 클라우드 (Amazon VPC)의 경우 동일한 VPC에 연결된 교육 작업을 실행해야 합니다.

데이터 세트 수집을 직접 관리하는 경우 SageMaker 계보 추적은 훈련 중에 사용된 데이터 세트를 자동으로 기록할 수 없습니다. 따라서 교육 작업 태그 또는 하이퍼파라미터와 같은 대체 메커니즘을 고려하여 관련 메타데이터를 캡처하십시오.

결론

올바른 SageMaker 교육 데이터 소스를 선택하면 ML 모델 교육의 속도, 사용 용이성 및 비용에 큰 영향을 미칠 수 있습니다. 제공된 순서도를 사용하여 빠르게 시작하고 결과를 관찰하고 필요에 따라 추가 구성을 실험해 보십시오. 각 데이터 원본의 장단점과 이러한 데이터가 교육 작업의 개별 요구 사항에 얼마나 잘 맞는지 염두에 두십시오. 추가 정보 및 지원은 AWS 담당자에게 문의하십시오.


저자에 관하여

Amazon SageMaker 교육 작업 PlatoBlockchain Data Intelligence에 가장 적합한 데이터 원본을 선택하십시오. 수직 검색. 일체 포함.길리 나훔 EMEA Amazon Machine Learning 팀의 일원으로 일하는 수석 AI/ML 전문가 솔루션 설계자입니다. Gili는 딥 러닝 모델 교육의 도전과제와 우리가 알고 있는 머신 러닝이 세상을 어떻게 변화시키고 있는지에 대해 열정적입니다. 여가 시간에 Gili는 탁구를 즐깁니다.

Amazon SageMaker 교육 작업 PlatoBlockchain Data Intelligence에 가장 적합한 데이터 원본을 선택하십시오. 수직 검색. 일체 포함.알렉산더 아르자노프 박사 독일 프랑크푸르트에 거주하는 AI/ML 전문 솔루션 설계자입니다. 그는 AWS 고객이 EMEA 지역에서 ML 솔루션을 설계하고 배포하도록 돕습니다. AWS에 합류하기 전에 Alexander는 우리 우주에서 무거운 원소의 기원을 연구하고 있었고 대규모 과학 계산에 ML을 사용한 후 ML에 대한 열정을 갖게 되었습니다.

타임 스탬프 :

더보기 AWS 기계 학습