텍스트 분류 - TensorFlow - 아마존 SageMaker

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

텍스트 분류 - TensorFlow

Amazon SageMaker Text 분류 - TensorFlow 알고리즘은 Hub에서 사전 학습된 여러 모델을 사용하여 전이 학습을 지원하는 지도 학습 알고리즘입니다. TensorFlow 대량의 텍스트 데이터를 사용할 수 없는 경우에도 학습 전송을 이용하여 자체 데이터 세트에서 사용 가능한 사전 훈련 모델 중 하나를 미세 조정할 수 있습니다. 텍스트 분류 알고리즘은 텍스트 문자열을 입력 및 출력으로 받아 각 클래스 레이블에 대한 확률을 출력합니다. 훈련 데이터 세트는 CSV 형식이어야 합니다.

SageMaker 텍스트 분류 사용 방법 - 알고리즘 TensorFlow

텍스트 분류 - Amazon의 SageMaker 내장 TensorFlow 알고리즘으로 사용할 수 있습니다. 다음 섹션에서는 SageMaker Python TensorFlow SDK와 함께 텍스트 분류를 사용하는 방법을 설명합니다. Amazon SageMaker Studio Classic TensorFlow UI에서 텍스트 분류를 사용하는 방법에 대한 자세한 내용은 을 참조하십시오SageMaker JumpStart.

텍스트 분류 - TensorFlow 알고리즘은 호환되는 모든 사전 학습된 TensorFlow 모델을 사용한 전이 학습을 지원합니다. 사용 가능한 모든 사전 훈련 모델의 목록은 TensorFlow 허브 모델을(를) 참조하세요. 모든 사전 훈련 모델에는 고유한 model_id이(가) 있습니다. 다음 예제에서는 BERT Base Uncased(model_id: tensorflow-tc-bert-en-uncased-L-12-H-768-A-12-2)를 사용하여 사용자 지정 데이터 세트에 대해 미세 조정을 수행합니다. 사전 학습된 모델은 모두 TensorFlow Hub에서 사전 다운로드되고 Amazon S3 버킷에 저장되므로 교육 작업을 네트워크 격리 상태에서 실행할 수 있습니다. 이러한 사전 생성된 모델 교육 아티팩트를 사용하여 Estimator를 구성하십시오. SageMaker

먼저 Docker 이미지 URI, 훈련 스크립트 URI, 사전 훈련 모델 URI를 검색하세요. 그런 다음 상황에 맞게 하이퍼파라미터를 변경하세요. hyperparameters.retrieve_default을(를) 사용하면 모든 가용 하이퍼파라미터와 해당 하이퍼파라미터의 기본값으로 구성된 Python 사전을 볼 수 있습니다. 자세한 설명은 텍스트 분류 - TensorFlow 하이퍼파라미터 섹션을 참조하세요. 이 값을 사용하여 에스티메이터를 구성하십시오. SageMaker

참고

하이퍼파라미터의 기본값은 모델마다 다릅니다. 그 예로 대형 모델일수록 기본 배치 크기가 작습니다.

이 예제에서는 긍정적인 영화 리뷰와 부정적인 영화 리뷰가 포함된 SST2 데이터 세트를 사용합니다. 데이터 세트를 사전 다운로드하여 Amazon S3로 사용할 수 있도록 했습니다. 모델을 미세 조정하려면 훈련 데이터 세트의 Amazon S3 위치를 이용하여 .fit을(를) 호출하세요. 노트북에서 사용되는 S3 버킷은 해당 버킷에 액세스하는 노트북 인스턴스와 동일한 AWS 리전에 있어야 합니다.

from sagemaker import image_uris, model_uris, script_uris, hyperparameters from sagemaker.estimator import Estimator model_id, model_version = "tensorflow-tc-bert-en-uncased-L-12-H-768-A-12-2", "*" training_instance_type = "ml.p3.2xlarge" # Retrieve the Docker image train_image_uri = image_uris.retrieve(model_id=model_id,model_version=model_version,image_scope="training",instance_type=training_instance_type,region=None,framework=None) # Retrieve the training script train_source_uri = script_uris.retrieve(model_id=model_id, model_version=model_version, script_scope="training") # Retrieve the pretrained model tarball for transfer learning train_model_uri = model_uris.retrieve(model_id=model_id, model_version=model_version, model_scope="training") # Retrieve the default hyperparameters for fine-tuning the model hyperparameters = hyperparameters.retrieve_default(model_id=model_id, model_version=model_version) # [Optional] Override default hyperparameters with custom values hyperparameters["epochs"] = "5" # Sample training data is available in this bucket training_data_bucket = f"jumpstart-cache-prod-{aws_region}" training_data_prefix = "training-datasets/SST2/" training_dataset_s3_path = f"s3://{training_data_bucket}/{training_data_prefix}" output_bucket = sess.default_bucket() output_prefix = "jumpstart-example-tc-training" s3_output_location = f"s3://{output_bucket}/{output_prefix}/output" # Create an Estimator instance tf_tc_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 training job tf_tc_estimator.fit({"training": training_dataset_s3_path}, logs=True)

SageMaker 텍스트 분류 - 사용자 지정 데이터셋의 전이 학습 TensorFlow 알고리즘을 사용하는 방법에 대한 자세한 내용은 소개 JumpStart - 텍스트 분류 노트북을 참조하십시오.

텍스트 분류를 위한 입력 및 출력 인터페이스 - 알고리즘 TensorFlow

TensorFlow Hub Models에 나열된 사전 훈련된 각 모델은 원하는 수의 클래스가 포함된 텍스트 문장으로 구성된 모든 데이터 세트에 맞게 미세 조정할 수 있습니다. 사전 훈련 모델은 분류 계층을 텍스트 임베딩 모델에 연결하고 계층 파라미터를 무작위 값으로 초기화합니다. 분류 계층의 출력 차원은 입력 데이터에서 감지된 클래스의 수에 따라 결정됩니다.

텍스트 분류 - 모델에 입력하기 위해 훈련 데이터의 형식을 지정하는 방법에 유의하세요. TensorFlow

  • 훈련 데이터 입력 형식: data.csv 파일이 포함된 디렉터리입니다. 첫 번째 열의 각 행에는 0과 클래스 개수 사이의 정수 클래스 레이블이 있어야 합니다. 두 번째 열의 각 행에는 해당하는 텍스트 데이터가 있어야 합니다.

다음 내용은 입력 CSV 파일의 예제입니다. 이 파일에는 어떤 헤더도 없어야 합니다. 이 파일은 경로가 s3://bucket_name/input_directory/와(과) 유사한 Amazon S3 버킷에 호스팅되어야 합니다. 단, /에 대한 후행은 필수입니다.

| | | |---|---| |0 |hide new secretions from the parental units| |0 |contains no wit , only labored gags| |1 |that loves its characters and communicates something rather beautiful about human nature| |...|...|

증분 훈련

이전에 학습시킨 모델의 아티팩트를 사용하여 새 모델을 훈련시킬 수 있습니다. SageMaker 증분 훈련은 동일하거나 유사한 데이터로 새 모델을 훈련하려는 경우 훈련 시간을 절감시켜 줍니다.

참고

학습된 다른 텍스트 분류 모델로는 SageMaker 텍스트 분류 ( TensorFlow 모델) 만 시드할 수 있습니다. TensorFlow SageMaker

클래스 세트가 동일하게 유지되는 한 어떤 데이터 세트라도 증분 훈련에 사용할 수 있습니다. 증분 훈련 단계는 미세 조정 단계와 비슷하지만, 사전 훈련 모델로 시작되는 대신 기존의 미세 조정 모델로 시작됩니다.

SageMaker 텍스트 분류 - TensorFlow 알고리즘을 통한 증분 훈련 사용에 대한 자세한 내용은 소개 JumpStart - 텍스트 분류 샘플 노트북을 참조하십시오.

텍스트 분류를 통한 추론 - 알고리즘 TensorFlow

추론을 위한 TensorFlow 텍스트 분류 훈련의 결과로 미세 조정된 모델을 호스팅할 수 있습니다. 추론용 원시 텍스트 형식은 application/x-text 콘텐츠 유형이어야 합니다.

추론을 실행하면 확률 값 및 모든 클래스의 클래스 레이블이 생성되고, 확률이 가장 높은 클래스 인덱스에 해당하는 예측 레이블이 JSON 형식으로 인코딩됩니다. 텍스트 분류 - TensorFlow 모델은 요청당 단일 문자열을 처리하고 한 줄만 출력합니다. 다음 내용은 JSON 형식 응답의 예제입니다.

accept: application/json;verbose {"probabilities": [prob_0, prob_1, prob_2, ...], "labels": [label_0, label_1, label_2, ...], "predicted_label": predicted_label}

accept을(를) application/json(으)로 설정하면 해당 모델이 확률만 출력합니다.

텍스트 분류를 위한 Amazon EC2 인스턴스 권장 사항 - 알고리즘 TensorFlow

텍스트 분류 - TensorFlow 알고리즘은 다음을 포함하여 학습용 모든 CPU 및 GPU 인스턴스를 지원합니다.

  • ml.p2.xlarge

  • ml.p2.16xlarge

  • ml.p3.2xlarge

  • ml.p3.16xlarge

  • ml.g4dn.xlarge

  • ml.g4dn.16.xlarge

  • ml.g5.xlarge

  • ml.g5.48xlarge

배치 크기가 큰 훈련일수록 메모리가 많은 GPU 인스턴스를 사용하는 것이 좋습니다. CPU(예: M5) 인스턴스 및 GPU(P2, P3, G4dn 또는 G5) 인스턴스 둘 다 추론에 사용할 수 있습니다. AWS지역별 SageMaker 교육 및 추론 인스턴스의 포괄적인 목록은 Amazon SageMaker Pricing을 참조하십시오.

텍스트 분류 - TensorFlow 샘플 노트북

사용자 지정 데이터세트에 대한 SageMaker 텍스트 분류 - 전이 학습 TensorFlow 알고리즘을 사용하는 방법에 대한 자세한 내용은 소개 JumpStart - 텍스트 분류 노트북을 참조하십시오.

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