기계 학습 모델 훈련 - 아마존 SageMaker

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

기계 학습 모델 훈련

전체 기계 학습(ML) 수명 주기의 훈련 스테이지는 훈련 데이터 세트 액세스부터 최종 모델 생성, 배포할 최고 성능 모델 선택까지 다양합니다. 다음 섹션에서는 사용 가능한 SageMaker 교육 기능 및 리소스에 대한 개요와 각 기능에 대한 심층적인 기술 정보를 제공합니다.

SageMaker 교육의 기본 아키텍처

처음 사용하는 SageMaker 경우 데이터세트에서 모델을 학습시킬 수 있는 빠른 ML 솔루션을 찾고 싶다면 SageMaker Canvas, JumpStart SageMaker Studio Classic 또는 Autopilot과 같이 코드가 필요 없거나 코드가 적은 솔루션을 사용해 보세요. SageMaker

중급 코딩 경험을 원한다면 SageMaker Studio Classic 노트북 또는 노트북 인스턴스를 사용해 보세요. SageMaker 시작하려면 시작 안내서의 지침을 따르십시오. 4단계: 모델 훈련 SageMaker ML 프레임워크를 사용하여 자체 모델 및 훈련 스크립트를 생성하는 사용 사례에 적용할 것을 권장합니다.

SageMaker 작업의 핵심은 ML 워크로드의 컨테이너화와 컴퓨팅 리소스 관리 기능입니다. SageMaker 교육 플랫폼은 ML 교육 워크로드를 위한 인프라 설정 및 관리와 관련된 번거로운 작업을 처리합니다. SageMaker 교육을 통해 모델을 개발, 교육 및 미세 조정하는 데 집중할 수 있습니다.

다음 아키텍처 다이어그램은 ML 교육 작업을 SageMaker 관리하고 사용자를 대신하여 Amazon EC2 인스턴스를 프로비저닝하는 방법을 보여줍니다. SageMaker SageMaker 사용자는 자신의 교육 데이터 세트를 가져와 Amazon S3에 저장할 수 있습니다. 사용 가능한 SageMaker 내장 알고리즘 중에서 ML 모델 교육을 선택하거나 인기 있는 기계 학습 프레임워크로 구축된 모델을 사용하여 자체 교육 스크립트를 가져올 수 있습니다.

사용자가 데이터를 제공하고 알고리즘을 선택하고 컴퓨팅 인프라를 SageMaker 프로비저닝하는 방법을 보여주는 다이어그램입니다.

SageMaker 교육 워크플로 및 기능 전체 보기

ML 훈련의 전 여정에는 데이터 수집을 넘어 ML 모델, 컴퓨팅 인스턴스에 대한 모델 훈련, 모델 아티팩트 및 출력 획득에 이르는 작업이 포함됩니다. 훈련 전, 중, 후 모든 단계를 평가하여 목표 정확도에 맞게 모델이 잘 훈련되었는지 확인해야 합니다.

다음 순서도는 ML 라이프사이클의 교육 단계 전반에 걸친 작업 (파란색 상자) 및 사용 가능한 SageMaker 교육 기능 (밝은 파란색 상자) 에 대한 개괄적인 개요를 보여줍니다.

ML 교육 워크플로의 각 단계에 사용할 권장 단계 및 기능의 순서도입니다.

다음 섹션에서는 이전 순서도에 설명된 각 교육 단계와 ML 교육의 세 가지 하위 SageMaker 단계에서 제공하는 유용한 기능을 안내합니다.

훈련 전

훈련 전에는 여러 가지 데이터 리소스 및 액세스 설정 시나리오를 고려해야 합니다. 다음 다이어그램과 훈련 전 각 단계의 세부 정보를 참조하여 어떤 결정을 내려야 하는지 살펴보세요.

학습 전 작업 및 관련 기능을 보여주는 순서도입니다. SageMaker
  • 데이터 준비: 교육 전에 데이터 준비 단계에서 데이터 정리 및 기능 엔지니어링을 완료해야 합니다. SageMaker 에는 도움이 되는 몇 가지 라벨링 및 기능 엔지니어링 도구가 있습니다. 데이터 레이블 지정, 데이터 세트 준비 및 분석, 데이터 처리, 특성 생성, 저장 및 공유에서 자세한 내용을 확인하세요.

  • 알고리즘 또는 프레임워크 선택: 필요한 사용자 지정 정도에 따라 알고리즘 및 프레임워크에 대한 다양한 옵션이 있습니다.

    • 사전 빌드된 알고리즘을 로우 코드로 구현하고 싶다면 에서 제공하는 내장 알고리즘 중 하나를 사용하세요. SageMaker 자세한 내용은 알고리즘 선택에서 확인하세요.

    • 모델을 더 유연하게 사용자 정의하려면 내에서 선호하는 프레임워크와 툴킷을 사용하여 학습 스크립트를 실행하세요. SageMaker 자세한 내용은 ML 프레임워크 및 툴킷에서 확인하세요.

    • 사전 빌드된 SageMaker Docker 이미지를 자체 컨테이너의 기본 이미지로 확장하려면 사전 빌드된 Docker 이미지 사용을 참조하십시오. SageMaker

    • 사용자 지정 Docker 컨테이너를 가져오려면 SageMaker 자체 Docker 컨테이너를 작업에 맞게 조정하기를 참조하세요. SageMaker 를 컨테이너에 sagemaker-training-toolkit설치해야 합니다.

  • 데이터 스토리지 관리: 데이터 스토리지 (예: Amazon S3, Amazon EFS 또는 Amazon FSx) 와 Amazon EC2 컴퓨팅 인스턴스에서 실행되는 교육 컨테이너 간의 매핑을 이해하십시오. SageMaker 교육 컨테이너의 스토리지 경로와 로컬 경로를 매핑하는 데 도움이 됩니다. 수동 지정도 가능합니다. 매핑을 완료한 후에는 데이터 전송 모드 중 하나인 파일, 파이프, FastFile 모드를 사용해 보십시오. 저장소 경로를 SageMaker 매핑하는 방법을 알아보려면 교육 저장소 폴더를 참조하십시오.

  • 교육 데이터에 대한 액세스 설정: Amazon SageMaker 도메인, 도메인 사용자 프로필, IAM, Amazon VPC를 사용하여 가장 보안에 민감한 조직의 요구 사항을 충족하십시오. AWS KMS

  • 입력 데이터 스트리밍: 파일, 파이프FastFile의 세 가지 데이터 입력 모드를 SageMaker 제공합니다. 기본 입력 모드인 파일 모드에서는 훈련 작업 초기화 중에 전체 데이터 세트를 로드합니다. 데이터 스토리지에서 훈련 컨테이너로 데이터를 스트리밍하는 일반적인 모범 사례는 훈련 데이터 액세스에서 알아보세요.

    파이프 모드에서는 증강 매니페스트 파일을 사용하여 Amazon Simple Storage Service(S3)에서 직접 데이터를 스트리밍하고 모델을 훈련시킬 수 있습니다. Amazon Elastic Block Store에서는 전체 훈련 데이터 세트를 저장하는 대신 최종 모델 아티팩트만 저장하면 되므로 파이프 모드를 사용하면 디스크 공간이 줄어듭니다. 자세한 내용은 증강 매니페스트 파일을 사용하여 훈련 작업에 데이터 세트 메타데이터 제공하기에서 확인하세요.

  • 데이터 편향 분석: 훈련 전에 데이터셋과 모델을 분석하여 불리한 그룹에 대한 편향이 있는지 확인할 수 있습니다. 그러면 Clarify를 사용하여 모델이 편향되지 않은 데이터셋을 학습하는지 확인할 수 있습니다. SageMaker

  • 사용할 SageMaker SDK 선택: 학습 작업을 시작하는 방법에는 상위 수준 SageMaker Python SDK를 사용하는 방법과 Python용 SDK (Boto3) 또는 의 하위 수준 SageMaker API를 사용하는 두 가지 방법이 있습니다. SageMaker AWS CLI SageMaker Python SDK는 저수준 SageMaker API를 추상화하여 편리한 도구를 제공합니다. 앞서 언급한 것처럼 SageMaker 캔버스 SageMaker 교육의 기본 아키텍처, Studio Classic 또는 Autopilot을 사용하여 코딩이 필요 없는 옵션이나 최소 코드 옵션을 선택할 수도 있습니다. JumpStart SageMaker SageMaker

훈련 중

훈련 중에는 훈련 안정성, 훈련 속도, 훈련 효율성을 지속적으로 개선하는 동시에 컴퓨팅 리소스, 비용 최적화, 그리고 가장 중요한 모델 성능을 확장해야 합니다. 교육 단계 중 및 관련 교육 기능에 대한 자세한 내용은 계속 읽어보세요. SageMaker

교육 중 작업 및 관련 기능을 보여주는 순서도입니다. SageMaker
  • 인프라 설정: 사용 사례에 적합한 인스턴스 유형과 인프라 관리 도구를 선택합니다. 소규모 인스턴스에서 시작하여 워크로드에 따라 확장할 수 있습니다. 테이블 형식 데이터 세트를 기반으로 모델을 훈련시키려면 C4 또는 C5 인스턴스 패밀리 중 가장 작은 CPU 인스턴스부터 시작합니다. 컴퓨터 비전 또는 자연어 처리를 위한 대형 모델을 훈련시키려면 P2, P3, G4dn 또는 G5 인스턴스 패밀리 중 가장 작은 GPU 인스턴스부터 시작합니다. 에서 제공하는 다음 인스턴스 관리 도구를 사용하여 클러스터에 여러 인스턴스 유형을 혼합하거나 웜 풀에 인스턴스를 유지할 수도 SageMaker 있습니다. 또한 영구 캐시를 사용하여 웜 풀에서만 지연 시간을 줄여 반복적인 훈련 작업의 지연 시간과 청구 가능 시간을 줄일 수 있습니다. 자세한 내용은 다음 주제를 참조하세요.

    훈련 작업을 실행하려면 할당량이 충분해야 합니다. 할당량이 충분하지 않은 인스턴스에서 훈련 작업을 실행하면 ResourceLimitExceeded 오류가 발생합니다. 사용자 계정에서 현재 사용 가능한 할당량은 Service Quotas Console에서 확인하세요. 할당량 증가 요청 방법은 지원되는 리전 및 할당량에서 알아보세요. 또한 가격 정보와 이에 따라 사용 가능한 인스턴스 유형을 찾으려면 Amazon SageMaker Pricing 페이지에서 표를 찾아보십시오. AWS 리전

  • 로컬 코드에서 교육 작업 실행: Amazon SageMaker Studio Classic, Amazon SageMaker 노트북 또는 로컬 통합 개발 환경에서 원격 데코레이터로 로컬 코드에 주석을 달아 코드를 SageMaker 교육 작업으로 실행할 수 있습니다. 자세한 정보는 로컬 코드를 SageMaker 교육 작업으로 실행을 참조하세요.

  • 교육 작업 추적: SageMaker Experiments, SageMaker Debugger 또는 CloudWatch Amazon을 사용하여 교육 작업을 모니터링하고 추적할 수 있습니다. 실험을 사용하여 SageMaker 정확도와 수렴 측면에서 모델 성능을 관찰하고 여러 훈련 작업 간의 메트릭을 비교 분석할 수 있습니다. SageMaker Debugger의 프로파일링 도구 또는 Amazon을 사용하여 컴퓨팅 리소스 사용률을 확인할 수 있습니다. CloudWatch 자세한 내용은 다음 주제를 참조하세요.

    또한 딥 러닝 작업의 경우 Amazon SageMaker Debugger 모델 디버깅 도구와 내장된 규칙을 사용하여 모델 통합 및 가중치 업데이트 프로세스에서 더 복잡한 문제를 식별할 수 있습니다.

  • 분산 교육: 교육 인프라의 잘못된 구성이나 out-of-memory 문제로 인해 중단되지 않고 교육 작업이 안정적인 단계로 넘어가고 있다면 며칠, 심지어 몇 달 동안 연장된 기간 동안 작업을 확장하여 실행할 수 있는 더 많은 옵션을 찾는 것이 좋습니다. 규모를 확장할 준비가 되면 분산 교육을 고려해 보세요. SageMaker 가벼운 ML 워크로드부터 대량의 딥 러닝 워크로드까지 분산 계산을 위한 다양한 옵션을 제공합니다.

    매우 큰 데이터세트에서 대규모 모델을 학습시키는 딥러닝 작업의 경우 SageMaker 분산 학습 전략 중 하나를 사용하여 규모를 확장하여 데이터 병렬성, 모델 병렬성 또는 이 둘의 조합을 달성하는 것이 좋습니다. 또한 SageMaker Training Compiler를 사용하여 GPU 인스턴스의 모델 그래프를 컴파일하고 최적화할 수 있습니다. 이러한 SageMaker 기능은 PyTorch, TensorFlow, Hugging Face Transformer와 같은 딥 러닝 프레임워크를 지원합니다.

  • 모델 하이퍼파라미터 조정: 자동 모델 튜닝을 사용하여 모델 하이퍼파라미터를 조정합니다. SageMaker SageMaker 그리드 검색 및 베이지안 검색과 같은 하이퍼파라미터 튜닝 방법을 제공하여 개선되지 않는 하이퍼파라미터 튜닝 작업에 대해 조기 중지 기능을 갖춘 Parallel 하이퍼파라미터 튜닝 작업을 실행합니다.

  • 스팟 인스턴스를 통한 체크포인트 및 비용 절감: 훈련 시간이 큰 문제가 되지 않는 경우, 관리형 스팟 인스턴스로 모델 훈련 비용을 최적화하는 안을 고려할 수 있습니다. 스팟 인스턴스 대체로 인한 간헐적 일시 중지 상태를 복원하려면 스팟 훈련용 체크포인트를 활성화해야 함에 유의하세요. 또한 예기치 않은 훈련 작업 종료의 경우 체크포인트 기능을 사용하여 모델을 백업할 수 있습니다. 자세한 내용은 다음 주제를 참조하세요.

훈련 후

훈련 후에는 모델 배포 및 추론 시 사용할 최종 모델 아티팩트를 확보합니다. 다음 다이어그램과 같이 훈련 후 단계에는 추가 작업이 포함됩니다.

학습 후의 작업 및 관련 기능을 보여주는 순서도입니다. SageMaker
  • 기준 모델 확보: 모델 아티팩트 확보 후 기준 모델로 설정할 수 있습니다. 모델 배포를 프로덕션 단계로 넘어가기 전에 다음과 같은 교육 후 작업과 SageMaker 기능 사용을 고려해 보세요.

  • 모델 성능 검사 및 편향 확인: Amazon CloudWatch Metrics 및 Clarify를 사용하여 학습 후 편향에 대한 Amazon Metrics와 SageMaker Clarify를 사용하여 시간 경과에 따른 수신 데이터 및 모델의 편향을 탐지하고 기준선을 기준으로 모델링하십시오. 새 데이터와 모델 예측을 새 데이터 기준으로 정기적으로 또는 실시간으로 평가해야 합니다. 이러한 기능을 사용하면 데이터와 모델의 급격한 변화 또는 이상은 물론 점진적인 변화 또는 드리프트에 대한 알림을 받을 수 있습니다.

  • 증분 훈련 기능을 사용하여 확장된 SageMaker 데이터셋으로 모델을 로드 및 업데이트 (또는 미세 조정) 할 수도 있습니다.

  • 모델 학습을 SageMaker파이프라인의 한 단계로 등록하거나 에서 제공하는 다른 Workflow 기능의 일부로 등록하여 SageMaker 전체 ML 라이프사이클을 조정할 수 있습니다.