SageMaker 훈련 및 추론 툴킷 사용 - 아마존 SageMaker

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

SageMaker 훈련 및 추론 툴킷 사용

SageMaker 훈련SageMaker 추론 툴킷은 SageMaker에서 스크립트를 실행하고, 알고리즘을 훈련하고, 모델을 배포하도록 컨테이너를 조정하는 데 필요한 기능을 구현합니다. 설치된 라이브러리는 사용자에 대해 다음을 정의합니다.

  • 코드 및 기타 리소스를 저장하기위한 위치.

  • 컨테이너가 시작될 때 실행할 코드가 포함된 진입점. Dockerfile은 SageMaker와 호환되는 컨테이너에서 예상되는 위치로 실행해야 하는 코드를 복사해야 합니다.

  • 또한 라이브러리는 컨테이너가 훈련 및 추론을 위해 배포를 관리하는 데 필요한 기타 정보.

SageMaker 툴킷 컨테이너 구조

SageMaker가 모델을 훈련할 때는 컨테이너의 /opt/ml 디렉터리에 다음과 같은 파일 폴더 구조를 생성합니다.

/opt/ml ├── input │ ├── config │ │ ├── hyperparameters.json │ │ └── resourceConfig.json │ └── data │ └── <channel_name> │ └── <input data> ├── model │ ├── code │ ├── output │ └── failure

모델 훈련 작업을 실행할 때 SageMaker 컨테이너는 분산형 훈련에 사용되는 알고리즘 및 네트워크 레이아웃의 하이퍼파라미터를 구성하는 JSON 파일이 포함된 /opt/ml/input/ 디렉터리를 사용합니다. 또한, /opt/ml/input/ 디렉터리에는 SageMaker가 Amazon Simple Storage Service(Amazon S3)에 저장된 데이터에 액세스하는 데 사용되는 채널을 지정하는 파일이 포함되어 있습니다. SageMaker 컨테이너 라이브러리는 컨테이너가 실행할 스크립트를 /opt/ml/code/ 디렉터리에 배치합니다. 스크립트는 알고리즘에서 생성된 모델을 /opt/ml/model/ 디렉터리에 기록해야 합니다. 자세한 내용은 자체 학습 알고리즘 사용 섹션을 참조하세요.

SageMaker에서 훈련된 모델을 호스팅하여 추론하는 경우 모델을 HTTP 엔드포인트에 배포합니다. 이 모델은 추론 요청에 대한 응답으로 실시간 예측을 수행합니다. 컨테이너는 이러한 요청을 처리하기 위해 검색 스택을 포함해야 합니다.

호스팅 또는 배치 변환 컨테이너에서 모델 파일은 훈련 중에 기록된 폴더와 동일한 폴더에 위치합니다.

/opt/ml/model │ └── <model files>

자세한 내용은 자체 추론 코드 사용 섹션을 참조하세요.

단일 컨테이너 대 다중 컨테이너

훈련 알고리즘 및 추론 코드에 대해 별도의 도커 이미지를 제공할 수 있습니다. 또는, 양쪽 모두에 단일 도커 이미지를 사용할 수 있습니다. SageMaker에 사용할 Docker 이미지를 생성할 때는 다음 사항을 고려하십시오.

  • 2개의 도커 이미지를 제공하면 스토리지 요건 및 비용이 증가합니다. 일반 라이브러리가 중복될 수 있기 때문입니다.

  • 일반적으로 컨테이너가 작을수록 훈련 및 호스팅에 대해 빠르게 시작합니다. 모델 훈련이 더 빠르고 호스팅 서비스는 빠르게 자동으로 크기를 조정하여 트래픽 증가에 대응합니다.

  • 훈련 컨테이너보다 훨씬 작은 추론 컨테이너를 작성할 수 있습니다. 이는 특히 훈련에 대해 GPU를 사용할 경우 일반적이지만 추론 코드는 CPU에 대해 최적화됩니다.

  • SageMaker의 경우 Docker 컨테이너가 권한 있는 액세스 없이 실행되어야 합니다.

  • 빌드한 Docker 컨테이너와 SageMaker에서 제공하는 Docker 컨테이너 모두 StdoutStderr 파일에 메시지를 전송할 수 있습니다. SageMaker는 이러한 메시지를 사용자 AWS 계정의 Amazon CloudWatch 로그로 보냅니다.

SageMaker 컨테이너를 만드는 방법과 컨테이너 내에서 스크립트가 실행되는 방법에 대한 자세한 내용은 GitHub의 SageMaker 훈련 툴킷SageMaker 추론 툴킷 리포지토리를 참고하십시오. 또한, 중요한 환경 변수와 SageMaker 컨테이너가 제공하는 환경 변수의 목록도 제공합니다.