

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

# AWS Clean Rooms ML에서 증분 훈련 사용
<a name="use-incremental-training"></a>

사전 조건: 
+ 에 액세스할 수 AWS 계정 있는 AWS Clean Rooms
+ 공동 작업의 기존 훈련된 모델 
+ 증분 훈련을 위한 새 데이터 세트 또는 업데이트된 데이터 세트 
+ 공동 작업에서 ML 모델을 생성하고 관리할 수 있는 적절한 권한
+ 기존 모델의 하이퍼파라미터 및 구성에 대한 지식 

증분 훈련을 사용하면 기존 모델의 아티팩트와 업데이트된 데이터 세트를 사용하여 새 모델을 훈련할 수 있습니다. 점진적 훈련은 시간 및 리소스를 둘 다 절약할 수 있습니다.

점진적 훈련 사용:
+ 이전 훈련에서 고려하지 않은 기본 패턴이 있는 확장된 데이터 세트를 사용하여 새 모델을 훈련합니다.
+ 다른 하이퍼파라미터를 사용하거나 다른 데이터 세트를 사용하여 모델의 여러 변형을 훈련합니다.

------
#### [ Console ]

**증분 훈련 작업을 실행하려면(콘솔)**

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/cleanrooms](https://console.aws.amazon.com/cleanrooms/home) AWS Clean Rooms 콘솔을 엽니다.

1. 왼쪽 탐색 창에서 **공동 작업**을 선택합니다.

1. **공동 작업** 페이지에서 증분 훈련에 사용할 모델 아티팩트가 있는 공동 작업을 선택합니다.

1. 공동 작업이 열리면 **ML 모델** 탭을 선택합니다.

1. **사용자 지정 ML 모델의** **훈련된 모델** 섹션에서 점진적으로 훈련하려는 훈련된 모델 옆에 있는 라디오 버튼을 선택합니다.

1. **개요** 페이지의 **버전**에서 

   1. 점진적으로 훈련하려는 훈련된 모델 옆에 있는 라디오 버튼을 선택합니다.

   1. **버전에서 훈련**을 선택합니다.

1. **버전에서 훈련된 모델 생성** 페이지의 **훈련된 모델 버전**에서 버전을 선택합니다.

   기본 모델 버전이 자동으로 선택됩니다. 다른 버전이 있는 경우이 버전을 변경할 수 있습니다.

1. **훈련된 모델 세부 정보에** 다음을 입력합니다.

   1. **이름**에 공동 작업에서 모델의 고유한 이름을 입력합니다.

   1. (선택 사항) **설명**에 훈련된 모델에 대한 설명을 입력합니다.

   1. **훈련 데이터 입력 모드에서** 다음 중 하나를 선택합니다.
      + ML 스토리지 볼륨에 맞는 더 작은 데이터 세트가 있고 훈련 스크립트에 대한 기존 파일 시스템 액세스를 선호하는 경우 **파일을** 선택합니다.
      + 대규모 데이터 세트의 경우 **파이프**를 선택하여 S3에서 직접 데이터를 스트리밍하므로 모든 것을 디스크에 다운로드할 필요가 없으므로 훈련 속도를 개선하고 스토리지 요구 사항을 줄일 수 있습니다.
      + 특히 순차적으로 데이터를 읽거나 더 적은 파일을 처리하여 시작 시간을 단축할 때 S3 스트리밍의 이점을 파일 시스템 액세스와 결합하려면 **FastFile**을 선택합니다.

   1. **증분 훈련 채널 이름**에 증분 훈련 채널의 이름을 입력합니다.
**참고**  
버전 ID 없이 **증분 훈련 채널 이름을** 지정하면 시스템은 증분 훈련에 기본 모델을 사용합니다.

1. **ML 입력 채널 세부 정보**에서 다음을 수행합니다.

   1. **ML 입력 채널**의 경우 모델 알고리즘에 데이터를 제공하는 ML 입력 채널을 지정합니다.

      다른 채널을 추가하려면 **다른 ML 입력 채널 추가**를 선택합니다. 최대 19개의 ML 입력 채널을 추가할 수 있습니다.

   1. **채널 이름**에 ML 입력 채널의 이름을 입력합니다.

   1. **Amazon S3 데이터 배포 유형**에서 다음 중 하나를 선택합니다.
      + **완전히 복제됨을** 선택하여 각 훈련 인스턴스에 데이터 세트의 전체 사본을 제공합니다. 이는 데이터 세트가 메모리에 들어갈 만큼 작거나 각 인스턴스가 모든 데이터에 액세스해야 하는 경우에 가장 적합합니다.
      + **S3 키로 샤딩을** 선택하여 S3 키를 기반으로 훈련 인스턴스 간에 데이터 세트를 분할합니다. 각 인스턴스는 총 S3 객체의 약 1/n을 수신합니다. 여기서 'n'은 인스턴스 수입니다. 이는 병렬로 처리하려는 대규모 데이터 세트에 가장 적합합니다.
**참고**  
배포 유형을 선택할 때 데이터 세트 크기와 훈련 요구 사항을 고려하세요. **완전 복제는** 완전한 데이터 액세스를 제공하지만 더 많은 스토리지가 필요한 반면, ** S3 키로 샤딩하면** 대규모 데이터 세트를 분산 처리할 수 있습니다.

1. **최대 훈련 기간**에서 모델을 훈련할 최대 시간을 선택합니다.

1. **하이퍼파라미터에서** 알고리즘별 파라미터와 해당 값을 지정합니다. 하이퍼파라미터는 훈련 중인 모델에 고유하며 모델 훈련을 미세 조정하는 데 사용됩니다.

1. **환경 변수**에서 알고리즘별 변수와 해당 값을 지정합니다. 환경 변수는 Docker 컨테이너에서 설정됩니다.

1. **암호화**에서 사용자 지정를 사용하려면 **사용자 지정 KMS 키로 보안 암호 암호화** 확인란을 AWS KMS key선택합니다.

1. **EC2 리소스 구성**에서 모델 훈련에 사용되는 컴퓨팅 리소스에 대한 정보를 지정합니다.

   1. **인스턴스 유형**에서 실행할 인스턴스 유형을 선택합니다.

   1. **인스턴스 수**에 인스턴스 수를 입력합니다.

   1. **볼륨 크기 GB에** ML 스토리지 볼륨 크기를 입력합니다.

1. **버전에서 훈련된 모델 생성을** 선택합니다.

------
#### [ API ]

증분 훈련 작업(API)을 실행하려면

특정 파라미터로 다음 코드를 실행합니다.

```
import boto3 
acr_ml_client= boto3.client('cleanroomsml')
 
acr_ml_client.create_trained_model(
    membershipIdentifier= 'membership_id',
    configuredModelAlgorithmAssociationArn = 'arn:aws:cleanrooms-ml:region:account:membership/membershipIdentifier/configured-model-algorithm-association/identifier',
    name='trained_model_name',
    resourceConfig={
        'instanceType': 'ml.m5.xlarge',
        'volumeSizeInGB': 1
    },
    incrementalTrainingDataChannels=[
        {
            'trainedModelArn': trained_model_arn,
            'channelName': 'channel_name'
        },
    ]
    dataChannels=[
        {
            'mlInputChannelArn': channel_arn_1,
            'channelName': 'channel_name'
        },
        {
            'mlInputChannelArn': channel_arn_2,
            'channelName': 'channel_name'
        }
    ]
)
```

**참고**  
제한: 최대 총 20개의 채널( `dataChannels` 및 모두 포함`incrementalTrainingDataChannels`).

------

**참고**  
훈련된 모델을 생성한 후에는 편집할 수 없습니다. 변경하려면 훈련된 모델을 삭제하고 새 모델을 생성합니다.