모델 훈련 및 배포를 위한 Docker 컨테이너 - Amazon SageMaker

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

모델 훈련 및 배포를 위한 Docker 컨테이너

Amazon SageMaker 은 빌드 및 런타임 작업에 Docker 컨테이너를 광범위하게 사용합니다. 는 기본 제공 알고리즘과 훈련 및 추론에 사용되는 지원되는 딥 러닝 프레임워크에 사전 구축된 Docker 이미지를 SageMaker 제공합니다. 컨테이너를 사용하면 기계 학습 알고리즘을 훈련하고 모델을 빠르고 안정적으로 모든 규모로 배포할 수 있습니다. 이 섹션의 주제들은 자체 사용 사례에 맞게 이러한 컨테이너를 배포하는 방법을 다룹니다. Amazon SageMaker Studio Classic에서 사용할 자체 컨테이너를 가져오는 방법에 대한 자세한 내용은 섹션을 참조하세요자신의 SageMaker 이미지 가져오기.

를 사용하여 스크립트 실행, 알고리즘 훈련 또는 모델 배포 시나리오 SageMaker

Amazon은 스크립트, 훈련 알고리즘 및 모델 배포를 실행할 때 SageMaker 항상 Docker 컨테이너를 사용합니다. 컨테이너의 사용 수준은 사용 사례에 따라 다릅니다.

다음 의사결정 트리는 세 가지 주요 시나리오를 보여줍니다. 에서 사전 구축된 Docker 컨테이너를 사용하는 사용 사례 SageMaker, 사전 구축된 Docker 컨테이너를 확장하는 사용 사례, 자체 컨테이너를 구축하는 사용 사례.

컨테이너 사용 사례에 대한 의사 결정 트리입니다.

에서 사전 구축된 Docker 컨테이너를 사용하는 사용 사례 SageMaker

에서 컨테이너를 사용할 때 다음 사용 사례를 고려하세요 SageMaker.

  • 사전 구축 SageMaker 된 알고리즘 - 기본 제공 알고리즘과 함께 제공되는 이미지를 사용합니다. 자세한 내용은 Amazon SageMaker 기본 제공 알고리즘 또는 사전 훈련된 모델 사용을 참조하세요.

  • 사전 구축 SageMaker된 컨테이너가 있는 사용자 지정 모델 - 사용자 지정 모델을 훈련 또는 배포하지만 TensorFlow 및 를 포함하여 사전 구축된 SageMaker 컨테이너가 있는 프레임워크를 사용하는 경우 다음 옵션 중 하나를 PyTorch선택합니다.

    • 사용자 지정 패키지가 필요하지 않고 컨테이너에 필요한 모든 패키지가 이미 포함되어 있는 경우: 프레임워크와 연결된 사전 빌드된 도커 이미지를 사용하세요. 자세한 내용은 사전 구축된 SageMaker Docker 이미지 단원을 참조하십시오.

    • 사전 빌드된 컨테이너 중 하나에 설치된 사용자 지정 패키지가 필요한 경우: 사전 빌드된 도커 이미지가 requirements.txt 파일을 허용하는지 확인하거나 다음 사용 사례에 따라 사전 빌드된 컨테이너를 확장하세요.

사전 빌드된 Docker 컨테이너를 확장하는 사용 사례

다음은 사전 빌드된 Docker 컨테이너를 확장하는 사용 사례입니다.

  • 종속성을 가져올 수 없음 - 프레임워크와 관련된 사전 빌드된 도커 이미지를 확장하세요. 자세한 내용은 사전 빌드 컨테이너 확장 섹션을 참조하세요.

  • 사전 빌드된 컨테이너의 종속성은 가져올 수 없으며 사전 빌드된 컨테이너는 requirements.txt을 지원합니다 - requirements.txt 파일의 모든 필수 모든 종속성을 추가합니다.. 다음 프레임워크는 requirements.txt 사용을 지원합니다.

자체 컨테이너 제작 사용 사례

사용자 지정 모델을 빌드하거나 훈련하고 사전 빌드된 이미지가 없는 사용자 지정 프레임워크가 필요한 경우 사용자 지정 컨테이너를 빌드하세요.

TensorFlow 모델을 훈련하고 배포하는 예제 사용 사례로서 다음 가이드는 사용 사례의 이전 섹션에서 사례에 적합한 옵션을 결정하는 방법을 보여줍니다.

TensorFlow 모델을 훈련하고 배포하기 위해 다음과 같은 요구 사항이 있다고 가정해 보겠습니다.

필요한 컨테이너 유형을 결정한 후 다음 목록은 이전에 나열된 옵션에 대한 세부 정보를 제공합니다.

  • 기본 제공 SageMaker 알고리즘 또는 프레임워크를 사용합니다. 대부분의 사용 사례에서 컨테이너에 대한 걱정 없이 내장된 알고리즘과 프레임워크를 사용할 수 있습니다. SageMaker 콘솔, AWS Command Line Interface (AWS CLI), Python 노트북 또는 Amazon SageMaker Python SDK에서 이러한 알고리즘을 훈련하고 배포할 수 있습니다. Estimator를 생성할 때 알고리즘 또는 프레임워크 버전을 지정하여 이를 수행할 수 있습니다. 사용할 수 있는 내장 알고리즘은 항목화되어 Amazon의 내장 알고리즘 및 사전 훈련된 모델 SageMaker 주제에 설명되어 있습니다. 사용 가능한 프레임워크에 대한 자세한 내용은 ML 프레임워크 및 언어 섹션을 참조하세요. SageMaker 노트북 인스턴스에서 실행되는 Jupyter 노트북을 사용하여 내장 알고리즘을 훈련하고 배포하는 방법의 예는 Amazon 설정 가이드 SageMaker 주제를 참조하세요.

  • 사전 구축된 SageMaker 컨테이너 이미지 를 사용합니다. 또는 Docker 컨테이너를 사용하여 기본 제공 알고리즘 및 프레임워크를 사용할 수 있습니다. 는 Apache MXNet, TensorFlow, PyTorch, Chainer와 같은 가장 일반적인 기계 학습 프레임워크 중 일부에 기본 제공 알고리즘 및 사전 구축된 Docker 이미지를 위한 컨테이너를 SageMaker 제공합니다. 사용 가능한 SageMaker 이미지의 전체 목록은 사용 가능한 딥 러닝 컨테이너 이미지 섹션을 참조하세요. 또한 scikit-learn 및 SparkML과 같은 기계 학습 라이브러리를 지원합니다. Amazon SageMaker Python SDK를 사용하는 경우 전체 컨테이너를 해당 SageMaker SDK Estimator 클래스에 전달하여 컨테이너URI를 배포할 수 있습니다. 현재 에서 지원하는 딥 러닝 프레임워크의 전체 목록은 섹션을 SageMaker참조하세요딥 러닝을 위한 사전 빌드된 SageMaker Docker 이미지. scikit-learn 및 SparkML 사전 빌드 컨테이너 이미지에 대한 자세한 내용은 Scikit-learn 및 Spark ML용 Docker 이미지 액세스 단원을 참조하세요. Amazon SageMaker Python SDK에서 프레임워크를 사용하는 방법에 대한 자세한 내용은 에서 해당 주제를 참조하세요기계 학습 프레임워크 및 언어.

  • 사전 구축된 SageMaker 컨테이너 이미지 를 확장합니다. 사전 구축된 SageMaker 알고리즘 또는 모델 Docker 이미지를 확장하려는 경우 필요에 맞게 SageMaker 이미지를 수정할 수 있습니다. 예제는 PyTorch 컨테이너 확장을 참조하세요.

  • 기존 컨테이너 이미지 조정 : 에서 작동하도록 기존 컨테이너 이미지를 조정하려면 Docker 컨테이너를 수정하여 SageMaker 훈련 또는 추론 툴킷을 활성화 SageMaker해야 합니다. 알고리즘을 훈련하고 호스트하기 위해 자체 컨테이너를 작성하는 방법을 보여주는 예제는 나만의 R 알고리즘 가져오기를 참조하세요.

문제 해결 Docker 컨테이너 및 배포

다음은 를 사용할 때 발생할 수 있는 일반적인 오류입니다.Docker 컨테이너. SageMaker 각 오류 다음에는 해당 오류에 대한 해결 방법이 나옵니다.

  • 오류:가 를 잃 SageMaker 었습니다.Docker 데몬.

    이 오류를 해결하려면 다음 명령을 사용하여 Docker를 다시 시작하세요.

    sudo service docker restart
  • 오류: 의 /tmp 디렉터리 Docker 컨테이너에 공간이 부족합니다.

    Docker 컨테이너는 //tmp 파티션을 사용하여 코드를 저장합니다. 로컬 모드로 대형 코드 모듈을 사용하면 이들 파티션이 쉽게 채워질 수 있습니다. Python은 SageMaker 이 문제를 방지하기 위해 로컬 모드 루트 디렉터리에 대한 사용자 지정 임시 디렉터리 지정을 SDK 지원합니다.

    Amazon Elastic Block Store 볼륨 스토리지에서 사용자 지정 임시 디렉터리를 지정하려면 다음 경로에서 파일을 생성하고 다음 구성을 ~/.sagemaker/config.yaml 추가합니다. container_root로 지정하는 디렉터리는 이미 존재했어야 합니다. Python은 SageMaker 생성하려고 SDK하지 않습니다.

    local: container_root: /home/ec2-user/SageMaker/temp

    이 구성을 사용하면 로컬 모드가 기본 /tmp 디렉터리가 아닌 /temp 디렉터리를 사용합니다.

  • SageMaker 노트북 인스턴스의 공간 부족 오류

    A Docker SageMaker 노트북 인스턴스에서 실행되는 컨테이너는 기본적으로 노트북 인스턴스의 루트 Amazon EBS 볼륨을 사용합니다. 공간 부족 오류를 해결하려면 의 EBS 볼륨 파라미터의 일부로 노트북 인스턴스에 연결된 Amazon 볼륨의 경로를 제공합니다.Docker 명령.

    docker run -v EBS-volume-path:container-path