쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

Amazon SageMaker AI가 훈련 정보를 제공하는 방법

포커스 모드
Amazon SageMaker AI가 훈련 정보를 제공하는 방법 - Amazon SageMaker AI

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

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

이 섹션에서는 SageMaker AI가 Docker 컨테이너에서 사용할 수 있는 훈련 데이터, 하이퍼파라미터 및 기타 구성 정보와 같은 훈련 정보를 만드는 방법을 설명합니다.

모델 훈련을 시작하기 위해 SageMaker AI에 CreateTrainingJob 요청을 보낼 때 훈련 알고리즘이 포함된 Docker 이미지의 Amazon Elastic Container Registry(Amazon ECR) 경로를 지정합니다. 또한 훈련 데이터가 저장된 Amazon Simple Storage Service(S3)의 위치와 알고리즘에 해당되는 파라미터도 지정합니다. SageMaker AI는 훈련 알고리즘이 사용할 수 있도록이 정보를 Docker 컨테이너에 제공합니다. 이 섹션은 Docker 컨테이너에서 이 정보를 사용 가능하도록 하는 방법을 설명합니다. 훈련 작업 생성에 대한 자세한 정보는 CreateTrainingJob 섹션을 참조하세요. SageMaker AI 컨테이너가 정보를 구성하는 방법에 대한 자세한 내용은 섹션을 참조하세요SageMaker 훈련 및 추론 툴킷.

하이퍼파라미터

SageMaker AI는 CreateTrainingJob 요청의 하이퍼파라미터를 /opt/ml/input/config/hyperparameters.json 파일의 Docker 컨테이너에서 사용할 수 있도록 합니다.

다음은 hyperparameters.json의 하이퍼파라미터 구성의 예로서 XGBoost를 위한 CreateTrainingJob작업에서 num_roundeta 하이퍼파라미터를 지정합니다.

{ "num_round": "128", "eta": "0.001" }

SageMaker AI 내장 XGBoost 알고리즘에 사용할 수 있는 하이퍼파라미터의 전체 목록은 XGBoost 하이퍼파라미터를 참조하세요.

조정할 수 있는 하이퍼파라미터는 훈련 중인 알고리즘에 따라 달라집니다. SageMaker AI 내장 알고리즘에 사용할 수 있는 하이퍼파라미터 목록은 Amazon SageMaker AI 내장 알고리즘 사용 또는 사전 훈련된 모델의 알고리즘 링크에서 하이퍼파라미터에 나열되어 있습니다. Amazon SageMaker

환경 변수

SageMaker AI는 컨테이너에서 다음 환경 변수를 설정합니다.

  • TRAINING_JOB_NAME - CreateTrainingJob 요청의 TrainingJobName 파라미터에 지정됩니다.

  • TRAINING_JOB_ARN - CreateTrainingJob 응답에서 TrainingJobArn로서 반환되는 훈련 작업의 Amazon 리소스 이름(ARN).

  • CreateTrainingJob 요청의 환경 파라미터에 지정된 모든 환경 변수.

입력 데이터 구성

SageMaker AI는 CreateTrainingJob 요청의 InputDataConfig 파라미터에 있는 데이터 채널 정보를 Docker 컨테이너의 /opt/ml/input/config/inputdataconfig.json 파일에서 사용할 수 있도록 합니다.

예를 들어 요청에서 3개의 데이터 채널(train, evaluationvalidation)을 지정한다고 가정합니다. SageMaker AI는 다음 JSON을 제공합니다.

{ "train" : {"ContentType": "trainingContentType", "TrainingInputMode": "File", "S3DistributionType": "FullyReplicated", "RecordWrapperType": "None"}, "evaluation" : {"ContentType": "evalContentType", "TrainingInputMode": "File", "S3DistributionType": "FullyReplicated", "RecordWrapperType": "None"}, "validation" : {"TrainingInputMode": "File", "S3DistributionType": "FullyReplicated", "RecordWrapperType": "None"} }
참고

SageMaker AI는 이전 예제와 같이 각 데이터 채널(예: 채널 이름 및 콘텐츠 유형)에 대한 관련 정보만 컨테이너에 제공합니다. S3DistributionType는 EFS 또는 FSxLustre를 입력 데이터 소스로 지정하는 FullyReplicated 것처럼 설정됩니다.

훈련 데이터

CreateTrainingJob 요청의 AlgorithmSpecification에 있는 TrainingInputMode 파라미터는 컨테이너에서 훈련 데이터세트를 사용하는 방법을 지정합니다. 다음의 입력 모드를 이용할 수 있습니다.

  • FileMode(모드)

    File 모드로 TrainingInputMode 값을 사용하는 경우 SageMaker AI는 컨테이너에 다음 파라미터를 설정합니다.

    • TrainingInputMode 파라미터는 inputdataconfig.json에 “파일”로서 기록됩니다.

    • 데이터 채널 디렉터리는 /opt/ml/input/data/channel_name에 기록됩니다.

    File 모드를 사용하는 경우 SageMaker AI는 각 채널에 대한 디렉터리를 생성합니다. 예를 들어 , training validation및 라는 세 개의 채널이 있는 경우 testing SageMaker AI는 Docker 컨테이너에 다음과 같은 세 개의 디렉터리를 만듭니다.

    • /opt/ml/input/data/training

    • /opt/ml/input/data/validation

    • /opt/ml/input/data/testing

    File 모드는 또한 다음의 데이터 소스를 지원합니다.

    • Amazon Simple Storage Service(S3)

    • Amazon Elastic File System(Amazon EFS)

    • Amazon FSx for Lustre

    참고

    Amazon EFS 및 Amazon FSx와 같은 파일 시스템 데이터 소스를 사용하는 채널은 File 모드를 사용해야 합니다. 이 경우 채널에 제공된 디렉터리 경로가 /opt/ml/input/data/channel_name에 마운트됩니다.

  • FastFileMode(모드)

    FastFile 모드를 로 사용하는 경우 TrainingInputNodeParameter SageMaker AI는 컨테이너에 다음 파라미터를 설정합니다.

    • File 모드와 마찬가지로 FastFile 모드에서 TrainingInputMode 파라미터는 inputdataconfig.json에 “파일”로 기록됩니다.

    • 데이터 채널 디렉터리는 /opt/ml/input/data/channel_name에 기록됩니다.

    FastFile 모드는 다음의 데이터 소스를 지원합니다.

    • Amazon S3

    FastFile 모드를 사용하면 채널 디렉터리가 읽기 전용 권한으로 마운트됩니다.

    과거에는 File 모드가 FastFile 모드보다 우선했습니다. 이전 버전과의 호환성을 보장하기 위해 File 모드를 지원하는 알고리즘은 TrainingInputMode 파라미터가 inputdataconfig.json.에서 File로 설정되어 있는 한 FastFile 모드와 원활하게 작동할 수 있습니다.

    참고

    FastFile 모드를 사용하는 채널은 “S3Prefix”의 S3DataType을 사용해야 합니다.

    FastFile 모드는 Amazon S3 객체를 폴더로 그룹화하기 위한 구분 기호로 슬래시(/) 를 사용하는 폴더 보기를 제공합니다. S3Uri 접두사는 폴더 이름의 일부와 일치하지 않아야 합니다. 예를 들어, Amazon S3 데이터세트에 s3://amzn-s3-demo-bucket/train-01/data.csv가/이 포함되어 있는 경우, s3://amzn-s3-demo-bucket/trains3://amzn-s3-demo-bucket/train-01 중 어느 것도 S3Uri 접두사로 사용할 수 없습니다.

    폴더에 해당하는 채널을 정의하려면 뒤에 슬래시를 사용하는 것이 좋습니다. train-01 폴더의 s3://amzn-s3-demo-bucket/train-01/ 채널을 예로 들 수 있습니다. 뒤따르는 슬래시가 없으면 다른 s3://amzn-s3-demo-bucket/train-011/ 폴더나 s3://amzn-s3-demo-bucket/train-01.txt/ 파일이 있는 경우 채널이 모호해집니다.

  • PipeMode(모드)

    • inputdataconfig.json에 기록된 TrainingInputMode 파라미터: “Pipe”

    • Docker 컨테이너의 데이터 채널 디렉터리: /opt/ml/input/data/channel_name_epoch_number

    • 지원되는 데이터 소스: Amazon S3

    각 채널에 대해 별도의 파이프에서 읽어야 합니다. 예를 들어 3개의 채널 training, validationtesting이 있는 경우 다음 파이프로부터 읽어야 합니다.

    • /opt/ml/input/data/training_0, /opt/ml/input/data/training_1, ...

    • /opt/ml/input/data/validation_0, /opt/ml/input/data/validation_1, ...

    • /opt/ml/input/data/testing_0, /opt/ml/input/data/testing_1, ...

    파이프를 순차적으로 읽습니다. 예를 들어 이름이 training인 채널이 있는 경우 이 순서에 따라 파이프를 읽습니다.

    1. /opt/ml/input/data/training_0을 읽기 모드로 열고 파일 끝(EOF)으로 읽거나 첫 번째 epoch을 완료한 경우 파이프 파일을 일찍 닫으세요.

    2. 첫 번째 파이프 파일을 닫은 후 /opt/ml/input/data/training_1을 찾고 두 번째 epoch 등을 완료할 때까지 읽습니다.

    해당 epoch에 대한 파일이 아직 존재하지 않는 경우 파이프가 생성되기 전까지 코드를 재시도할 수도 있습니다. 채널 유형 간 순서 제한은 없습니다. 예를 들어 training 채널에 대해 여러 개의 epoch을 읽을 수 있고, 준비된 경우 validation 채널 읽기만을 시작할 수 있습니다. 또는 알고리즘이 필요로 하는 경우 이를 동시에 읽을 수 있습니다.

    자체 컨테이너를 가져올 때 파이프 모드를 사용하는 방법을 보여주는 Jupyter 노트북의 예는 Amazon SageMaker AI에 자체 파이프 모드 알고리즘 가져오기를 참조하세요.

SageMaker AI 모델 훈련은 고성능 S3 Express One Zone 디렉터리 버킷을 파일 모드, 빠른 파일 모드 및 파이프 모드의 데이터 입력 위치로 지원합니다. S3 Express One Zone을 사용하려면 Amazon S3 범용 버킷 대신 S3 Express One Zone 디렉터리 버킷의 위치를 입력합니다. 필요한 액세스 제어 및 권한 정책을 IAM 역할에 대한 ARN에 제공합니다. 자세한 내용은 AmazonSageMakerFullAccesspolicy를 참조하세요. Amazon S3 관리형 키(SSE-S3)를 사용한 서버 측 암호화를 통해서만 디렉터리 버킷에서 SageMaker AI 출력 데이터를 암호화할 수 있습니다. AWS KMS 키(SSE-KMS)를 사용한 서버 측 암호화는 현재 디렉터리 버킷에 SageMaker AI 출력 데이터를 저장하는 데 지원되지 않습니다. 자세한 내용은 S3 Express One Zone을 참조하세요.

분산 훈련 구성

여러 컨테이너로 분산 훈련을 수행하는 경우 SageMaker AI는 /opt/ml/input/config/resourceconfig.json 파일에서 사용할 수 있는 모든 컨테이너에 대한 정보를 제공합니다.

컨테이너 간 통신을 활성화하기 위해 이 JSON 파일에는 모든 컨테이너에 대한 정보가 들어 있습니다. SageMaker AI를 사용하면 FilePipe 모드 알고리즘 모두에서이 파일을 사용할 수 있습니다. 파일은 다음 정보를 제공합니다.

  • current_host - 컨테이너 네트워크에 있는 현재 컨테이너의 이름. 예: algo-1. 호스트 값은 언제든 변경할 수 있습니다. 이 변수에 대한 특정 값으로 코드를 작성하지 마세요.

  • hosts - 컨테이너 네트워크에 있는 모든 컨테이너 이름의 목록으로, 문자순으로 정렬됩니다. 예를 들어 ["algo-1", "algo-2", "algo-3"]은 3개 노드 클러스터를 나타냅니다. 컨테이너는 이러한 이름을 사용하여 컨테이너 네트워크에 있는 다른 컨테이너를 부를 수 있습니다. 호스트 값은 언제든 변경할 수 있습니다. 이 변수에 대한 특정 값으로 코드를 작성하지 마세요.

  • network_interface_name - 컨테이너에 표시되는 네트워크 인터페이스의 이름입니다. 예를 들어 MPI(Message Passing Interface)를 실행하는 컨테이너는 이 정보를 사용하여 네트워크 인터페이스 이름을 설정할 수 있습니다.

  • /etc/hostname 또는 /etc/hosts에 있는 정보를 사용하지 마세요. 부정확할 수 있습니다.

  • 호스트 이름 정보는 알고리즘 컨테이너에서 바로 사용하지 못할 수 있습니다. 클러스터에서 호스트 이름 확인 작업에 대한 재시도 정책을 노드로 추가하도록 설정하는 것이 좋습니다.

다음은 3개 노드 클러스터에 있는 노드 1의 예제 파일입니다.

{ "current_host": "algo-1", "hosts": ["algo-1","algo-2","algo-3"], "network_interface_name":"eth1" }
프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.