TabTransformer - 아마존 SageMaker

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

TabTransformer

TabTransformer지도 학습을 위한 새로운 딥 테이블 형식 데이터 모델링 아키텍처입니다. TabTransformer 아키텍처는 트랜스포머를 기반으로 합니다. self-attention-based Transformer 계층은 범주형 기능의 임베딩을 강력한 컨텍스트 임베딩으로 변환하여 예측 정확도를 높입니다. 또한 이를 통해 학습한 컨텍스트 TabTransformer 임베딩은 누락된 데이터 특징과 잡음이 있는 데이터 기능 모두에 대해 매우 강력하며 해석성이 뛰어납니다.

사용 방법 SageMaker TabTransformer

Amazon SageMaker 내장 TabTransformer 알고리즘으로 사용할 수 있습니다. 다음 섹션에서는 SageMaker Python TabTransformer SDK와 함께 사용하는 방법을 설명합니다. Amazon SageMaker Studio 클래식 TabTransformer UI에서 사용하는 방법에 대한 자세한 내용은 을 참조하십시오SageMaker JumpStart.

  • 내장 TabTransformer 알고리즘으로 사용

    다음 코드 예제와 같이 TabTransformer 내장 알고리즘을 사용하여 TabTransformer 훈련 컨테이너를 빌드합니다. SageMakerimage_uris.retrieveAPI (또는 Amazon SageMaker Python SDK 버전 2를 사용하는 경우 get_image_uri API) 를 사용하여 TabTransformer 내장 알고리즘 이미지 URI를 자동으로 찾아낼 수 있습니다.

    TabTransformer 이미지 URI를 지정한 후 TabTransformer 컨테이너를 사용하여 SageMaker Estimator API를 사용하여 추정기를 구성하고 학습 작업을 시작할 수 있습니다. TabTransformer 내장 알고리즘은 스크립트 모드에서 실행되지만 학습 스크립트가 제공되므로 교체할 필요가 없습니다. 스크립트 모드를 사용하여 SageMaker 교육 작업을 생성한 경험이 풍부한 경우 자체 TabTransformer 교육 스크립트를 통합할 수 있습니다.

    from sagemaker import image_uris, model_uris, script_uris train_model_id, train_model_version, train_scope = "pytorch-tabtransformerclassification-model", "*", "training" training_instance_type = "ml.p3.2xlarge" # Retrieve the docker image train_image_uri = image_uris.retrieve( region=None, framework=None, model_id=train_model_id, model_version=train_model_version, image_scope=train_scope, instance_type=training_instance_type ) # Retrieve the training script train_source_uri = script_uris.retrieve( model_id=train_model_id, model_version=train_model_version, script_scope=train_scope ) train_model_uri = model_uris.retrieve( model_id=train_model_id, model_version=train_model_version, model_scope=train_scope ) # Sample training data is available in this bucket training_data_bucket = f"jumpstart-cache-prod-{aws_region}" training_data_prefix = "training-datasets/tabular_binary/" training_dataset_s3_path = f"s3://{training_data_bucket}/{training_data_prefix}/train" validation_dataset_s3_path = f"s3://{training_data_bucket}/{training_data_prefix}/validation" output_bucket = sess.default_bucket() output_prefix = "jumpstart-example-tabular-training" s3_output_location = f"s3://{output_bucket}/{output_prefix}/output" from sagemaker import hyperparameters # Retrieve the default hyperparameters for training the model hyperparameters = hyperparameters.retrieve_default( model_id=train_model_id, model_version=train_model_version ) # [Optional] Override default hyperparameters with custom values hyperparameters[ "n_epochs" ] = "50" print(hyperparameters) from sagemaker.estimator import Estimator from sagemaker.utils import name_from_base training_job_name = name_from_base(f"built-in-algo-{train_model_id}-training") # Create SageMaker Estimator instance tabular_estimator = Estimator( role=aws_role, image_uri=train_image_uri, source_dir=train_source_uri, model_uri=train_model_uri, entry_point="transfer_learning.py", instance_count=1, instance_type=training_instance_type, max_run=360000, hyperparameters=hyperparameters, output_path=s3_output_location ) # Launch a SageMaker Training job by passing the S3 path of the training data tabular_estimator.fit( { "training": training_dataset_s3_path, "validation": validation_dataset_s3_path, }, logs=True, job_name=training_job_name )

    내장 TabTransformer 알고리즘으로 설정하는 방법에 대한 자세한 내용은 다음 노트북 예제를 참조하십시오.

알고리즘의 입력 및 출력 인터페이스 TabTransformer

TabTransformer 표 형식 데이터에 대해 연산을 수행합니다. 행은 관측치를, 한 열은 대상 변수 또는 레이블을, 나머지 열은 특징을 나타냅니다.

의 SageMaker 구현은 학습 및 추론을 위한 CSV를 TabTransformer 지원합니다.

  • 학습의 ContentType 경우 유효한 입력은 텍스트/csv여야 합니다.

  • 추론의 경우 유효한 입력은 ContentType 텍스트/csv여야 합니다.

참고

CSV 훈련의 경우 알고리즘은 대상 변수가 첫 번째 열에 있고 CSV에는 헤더 레코드가 없다고 추정합니다.

CSV 추론의 경우 알고리즘은 CSV 입력에 레이블 열이 없다고 추정합니다.

훈련 데이터, 검증 데이터 및 범주형 기능의 입력 형식

모델에 입력하기 위해 훈련 데이터의 형식을 지정하는 방법을 염두에 두세요. TabTransformer 훈련 데이터 및 검증 데이터를 포함하는 Amazon S3 버킷의 경로를 제공해야 합니다. 범주형 기능 목록을 포함시킬 수도 있습니다. trainingvalidation 채널을 모두 사용하여 입력 데이터를 제공하세요 또는 training 채널만 사용해도 됩니다.

trainingvalidation 채널을 모두 사용하세요.

training 채널용과 validation 채널용 두 개의 S3 경로를 통해 입력 데이터를 제공할 수 있습니다. 각 S3 경로는 하나 이상의 CSV 파일을 가리키는 S3 접두사이거나 특정 CSV 파일 하나를 가리키는 전체 S3 경로일 수 있습니다. 대상 변수는 CSV 파일의 첫 번째 열에 있어야 합니다. 나머지 열에는 예측 변수(특징)가 표시되어야 합니다. training또는 validation 채널에 여러 CSV 파일이 제공되는 경우 TabTransformer 알고리즘이 파일을 연결합니다. 검증 데이터는 각 부스팅 반복 종료 시 검증 점수를 계산하는 데 사용됩니다. 유효성 검증 점수가 더 이상 향상되지 않으면 조기 중지가 적용됩니다.

예측 변수에 범주형 기능이 포함된 경우 훈련 데이터 파일 또는 파일이 있는 위치에 이름이 categorical_index.json인 JSON 파일을 제공할 수 있습니다. 범주형 기능을 위한 JSON 파일을 제공하는 경우 training 채널은 특정 CSV 파일이 아닌 S3 접두사를 가리켜야 합니다. 이 파일은 키가 문자열 "cat_index_list"이고 값이 고유 정수 목록인 Python 사전을 포함해야 합니다. 값 목록의 각 정수는 훈련 데이터 CSV 파일에 있는 해당 범주형 기능의 열 인덱스를 나타내야 합니다. 각 값은 양의 정수(0은 목표 값을 나타내므로 0보다 커야 함), Int32.MaxValue(2147483647) 미만, 총 열 수보다 작아야 합니다. 범주형 인덱스 JSON 파일은 하나만 있어야 합니다.

training 채널만 사용:

training 채널의 단일 S3 경로를 통해 입력 데이터를 제공할 수도 있습니다. 이 S3 경로는 하나 이상의 CSV 파일이 들어 있는 training/이라는 이름의 하위 디렉터리가 있는 디렉터리를 가리켜야 합니다. 선택적으로 validation/이라는 동일한 위치에 하나 이상의 CSV 파일이 있는 다른 하위 디렉토리를 포함할 수 있습니다. 검증 데이터가 제공되지 않는 경우 훈련 데이터의 20%가 무작위로 샘플링되어 검증 데이터로 사용됩니다. 예측 변수에 범주형 기능이 포함되어 있다면 데이터 하위 디렉터리와 같은 위치에 categorical_index.json이라는 이름의 JSON 파일을 제공할 수 있습니다.

참고

CSV 훈련 입력 모드의 경우, 알고리즘에 대해 사용 가능한 전체 메모리(인스턴스 수 * InstanceType의 가용 메모리)가 훈련 데이터 세트를 담을 수 있어야 합니다.

알고리즘에 대한 Amazon EC2 인스턴스 권장 사항 TabTransformer

SageMaker TabTransformer 단일 인스턴스 CPU 및 단일 인스턴스 GPU 교육을 지원합니다. 높은 인스턴스당 비용에도 불구하고 GPU는 더욱 빠르게 교육하여 더욱 효율적입니다. GPU 학습을 활용하려면 인스턴스 유형을 GPU 인스턴스 중 하나로 지정하십시오 (예: P3). SageMaker TabTransformer 현재 다중 GPU 훈련은 지원되지 않습니다.

TabTransformer 샘플 노트북

다음 표에는 Amazon SageMaker TabTransformer 알고리즘의 다양한 사용 사례를 다루는 다양한 샘플 노트북이 요약되어 있습니다.

노트북 제목 설명

Amazon SageMaker TabTransformer 알고리즘을 사용한 표 형식 분류

이 노트북은 Amazon SageMaker TabTransformer 알고리즘을 사용하여 표 형식 분류 모델을 훈련하고 호스팅하는 방법을 보여줍니다.

Amazon 알고리즘을 사용한 표 형식 회귀 SageMaker TabTransformer

이 노트북은 Amazon SageMaker TabTransformer 알고리즘을 사용하여 표 형식 회귀 모델을 훈련하고 호스팅하는 방법을 보여줍니다.

예제를 실행하는 데 사용할 수 있는 Jupyter 노트북 인스턴스를 만들고 액세스하는 방법에 대한 지침은 을 참조하십시오. SageMaker 아마존 SageMaker 노트북 인스턴스 Notebook 인스턴스를 만들고 연 후 SageMakerExamples 탭을 선택하면 모든 샘플 목록이 표시됩니다. SageMaker 노트북을 열려면 사용 탭을 선택한 후 사본 생성을 선택합니다.