기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
텍스트 분류 - TensorFlow
Amazon SageMaker Text 분류 - TensorFlow 알고리즘은 Hub에서 사전 학습된 여러 모델을 사용하여 전이 학습을 지원하는 지도 학습 알고리즘입니다. TensorFlow
주제
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
.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://
와(과) 유사한 Amazon S3 버킷에 호스팅되어야 합니다. 단, bucket_name
/input_directory
//
에 대한 후행은 필수입니다.
| | | |---|---| |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 노트북을 열려면 사용 탭을 선택한 후 사본 생성을 선택합니다.