Amazon SageMaker PlatoBlockchain Data Intelligence에서 Hugging Face를 사용하여 언어 다양성을 위해 변환기 언어 모델을 미세 조정하십시오. 수직 검색. 일체 포함.

Amazon SageMaker의 Hugging Face를 사용하여 언어 다양성을 위한 변환기 언어 모델 미세 조정

오늘날 약 7,000개의 언어가 사용됩니다. 19세기 후반에 볼라퓌크(Volapük)나 에스페란토(Esperanto)와 같은 구성어를 발명하려는 시도에도 불구하고 통일의 조짐은 보이지 않습니다. 사람들은 여전히 ​​새로운 언어를 선택합니다(클링온어, 도트라키어 또는 엘프어를 구사하는 좋아하는 영화 캐릭터를 생각해 보십시오).

오늘날 자연어 처리(NLP) 예제는 영어가 지배하고 있으며, 인구의 5%만이 모국어를 사용하고 17%만 사용합니다.

XNUMXD덴탈의 정보 격차 디지털 기술에 접근할 수 있는 사람들과 접근할 수 없는 사람들 사이의 격차로 정의됩니다. 언어 장벽으로 인한 지식 또는 교육에 대한 접근 부족은 영어를 못하는 사람들 사이에서뿐만 아니라 영어가 아닌 콘텐츠에 접근할 수 없는 영어를 사용하는 사람들 사이의 정보격차에 기여합니다. 생각과 지식의 다양성을 줄인다. 서로 배울게 너무 많아요.

이 게시물에서는 리소스가 적은 언어의 문제를 요약하고 Amazon SageMaker에서 Hugging Face 변환기를 사용하여 100개 이상의 언어를 다루는 다양한 솔루션 접근 방식을 실험합니다.

질문 및 답변 작업을 위해 사전 훈련된 다양한 변환기 기반 언어 모델을 미세 조정합니다. 이 예에서는 터키어를 사용하지만 지원되는 다른 언어에 이 접근 방식을 적용할 수 있습니다. 우리의 초점은 BERT [1] 변종에 있습니다., BERT의 가장 큰 특징은 다양한 작업에 걸친 통합 아키텍처이기 때문입니다.

우리는 Hugging Face 변압기를 사용할 때의 몇 가지 이점을 보여줍니다. 아마존 세이지 메이커, 교육 및 대규모 실험과 같은, 생산성 및 비용 효율성 증가.

NLP 개요

2017년 이후로 NLP에는 몇 가지 주요 발전이 있었습니다. 변환기[2]와 같은 딥 러닝 아키텍처의 출현, 초대형 데이터 세트에서 이러한 모델을 훈련하는 비지도 학습 기술, 전이 학습은 상태를 크게 개선했습니다. 자연어 이해의 예술. 사전 훈련된 모델 허브의 등장으로 NLP 커뮤니티의 집합적 지식에 대한 액세스가 더욱 민주화되어 처음부터 시작할 필요가 없습니다.

언어 모델은 시퀀스의 다음 단어(또는 마스킹된 단어)를 예측하는 방법을 학습하는 NLP 모델입니다. 출발점으로서의 언어 모델의 진정한 아름다움은 세 가지입니다. 첫째, 연구에 따르면 대규모 텍스트 코퍼스 데이터로 훈련된 언어 모델은 이전 방법보다 단어의 더 복잡한 의미를 학습합니다. 예를 들어, 문장에서 다음 단어를 예측할 수 있으려면 언어 모델이 컨텍스트, 의미 및 문법을 잘 이해해야 합니다. 둘째, 언어 모델을 훈련하기 위해 사전 훈련 중에 희귀하고 비용이 많이 드는 레이블이 지정된 데이터가 필요하지 않습니다. 레이블이 지정되지 않은 엄청난 양의 텍스트 데이터가 웹에서 여러 언어로 공개적으로 사용 가능하기 때문에 이는 중요합니다. 셋째, 언어 모델이 주어진 문장의 다음 단어를 예측할 수 있을 만큼 충분히 똑똑하면 재사용을 미세 조정하기 때문에 레이블이 지정된 데이터가 매우 적기 때문에 감정 분석이나 질문 답변과 같은 다른 NLP 작업을 수행하는 것이 상대적으로 쉽다는 것이 입증되었습니다. 사전 훈련된 언어 모델의 표현 [3].

완전 관리형 NLP 서비스도 NLP 채택을 가속화했습니다. 아마존 이해 텍스트 분석이 문서 콘텐츠에서 통찰력을 추출할 수 있도록 하는 완전 관리형 서비스이며 다양한 언어를 지원합니다. Amazon Comprehend는 사용자 지정 분류 및 사용자 지정 엔터티 인식을 지원하며 ML 전문 지식 없이도 요구 사항에 맞는 사용자 지정 NLP 모델을 구축할 수 있습니다.

자원이 부족한 언어에 대한 과제 및 솔루션

많은 언어의 주요 과제는 훈련에 사용할 수 있는 데이터가 상대적으로 적다는 것입니다. 이들은 자원이 부족한 언어. m-BERT 논문[4]과 XLM-R 논문[7]은 우르두어와 스와힐리어를 저자원 언어로 언급하고 있습니다.

다음 그림은 80개 이상의 언어의 ISO 코드와 두 가지 주요 사전 훈련 사이의 크기 차이(log-scale)를 지정합니다[7]. Wikipedia(주황색)에는 18만 개 이상의 기사가 있는 1개 언어와 52개 이상의 기사가 있는 1,000개 언어가 있지만 164개 언어에는 1-10,000개 이상의 기사가 있습니다[9]. CommonCrawl 말뭉치(파란색)는 자원이 적은 언어에 대한 데이터의 양을 XNUMX배 증가시킵니다. 그럼에도 불구하고 영어, 러시아어 또는 독일어와 같은 자원이 풍부한 언어에 비해 여전히 상대적으로 작습니다.

Amazon SageMaker PlatoBlockchain Data Intelligence에서 Hugging Face를 사용하여 언어 다양성을 위해 변환기 언어 모델을 미세 조정하십시오. 수직 검색. 일체 포함.

Wikipedia 기사 번호 측면에서 터키어는 Urdu(100,000위)와 함께 28개 이상의 기사(54위)로 구성된 같은 그룹의 또 다른 언어입니다. 우르두어와 비교할 때 터키어는 중간 자원 언어로 간주됩니다. 터키어에는 언어학 및 토큰화에서 특정 문제를 만들어 언어 모델을 더욱 강력하게 만들 수 있는 몇 가지 흥미로운 특성이 있습니다. 교착어입니다. 그것은 매우 자유로운 어순, 복잡한 형태 또는 영어에 상응하는 시제가 없는 시제를 가지고 있습니다. 영어와 같은 언어에서 여러 단어로 구성된 구는 다음 예와 같이 하나의 단어 형태로 표현할 수 있습니다.

터키의 영어
고양이 고양이
고양이보다 좋은 고양이s
고양이보다 좋은 가족 고양이
고양이과 에 속하는 고양이 가족
고양이Leştirebileclerimizdenmişçesineyken 그것이 우리가 만들 수 있는 것 중 하나인 것 같을 때 방법

두 가지 주요 솔루션 접근 방식은 언어별 모델 또는 다국어 모델(언어 간 감독 포함 또는 미포함)입니다.

  • 단일 언어 모델 – 첫 번째 접근 방식은 BERT 변형을 특정 대상 언어에 적용하는 것입니다. 훈련 데이터가 많을수록 모델 성능이 향상됩니다.
  • 다국어 마스크 언어 모델 – 다른 접근 방식은 많은 언어로 대형 변환기 모델을 사전 훈련하는 것입니다. 다국어 언어 모델링은 한 언어에서 학습한 NLP 작업을 다른 언어로 전송할 수 있도록 많은 언어에 대한 사전 교육을 통해 자원이 부족한 언어에 대한 데이터 부족 문제를 해결하는 것을 목표로 합니다. 다국어 마스크 언어 모델(MLM)은 교차 언어 이해 작업에 대한 최첨단 기술을 제공합니다. 두 가지 예는 다음과 같습니다.
    • 다국어 BERT – 다국어 BERT 모델은 Wikipedia 말뭉치를 사용하여 104개 언어로 학습되었습니다. 그러나 유사한 언어 구조 및 유형학적 특징(예: 유사한 단어 순서를 가진 언어)에 대해서만 일반화되는 것으로 나타났습니다. 특히 어순이 다른 언어(예: 주어/목적어/동사)의 경우 다국어가 감소합니다[4].
    • XLM-R – 교차 언어 모델(XLM)은 병렬 데이터 세트(두 개의 다른 언어로 된 동일한 텍스트)를 사용하여 교차 언어 목표로 훈련되거나 단일 언어 데이터 세트를 사용하여 교차 언어 목표 없이 훈련됩니다[6]. 연구에 따르면 자원이 적은 언어는 더 많은 언어로 확장할 수 있습니다. XLM-RoBERTa는 RoBERTa[5]에서 영감을 받은 변압기 기반 모델이며, 그 출발점은 다국어 BERT 및 XLM이 과소 조정되었다는 주장입니다. Wikipedia와 CommonCrawl 코퍼스를 모두 사용하여 100개 언어로 훈련되었으므로 저자원 언어에 대한 훈련 데이터의 양은 m-BERT에 비해 약 7배 정도 더 큽니다[XNUMX].

자원이 부족한 언어에 대한 다국어 언어 모델의 또 다른 과제는 어휘 크기와 토큰화입니다. 모든 언어가 다국어 언어 모델에서 동일한 공유 어휘를 사용하기 때문에 어휘 크기 증가(계산 요구 사항 증가)와 감소(어휘에 없는 단어는 알 수 없음으로 표시되거나 문자 사용) 사이에는 절충점이 있습니다. 토큰으로 단어 대신 모든 구조를 무시함). 단어 조각 토큰화 알고리즘은 두 접근 방식의 이점을 결합합니다. 예를 들어, 단어가 어휘에 나타날 때까지 또는 개별 문자에 도달할 때까지 단어를 하위 단어로 분할하여 어휘 외의 단어를 효과적으로 처리합니다. 문자 기반 토큰화는 중국어와 같은 특정 언어를 제외하고는 그다지 유용하지 않습니다. 특정 배포판으로 샘플링하는 것과 같이 자원이 부족한 언어에 대한 문제를 해결하기 위한 기술이 존재합니다[6].

다음 표는 "kedileri"("고양이"를 의미)라는 단어에 대해 세 가지 다른 토크나이저가 어떻게 작동하는지 보여줍니다. 특정 언어 및 NLP 작업의 경우 차이가 있습니다. 예를 들어, 질문 응답 작업의 경우 모델은 시작 토큰 인덱스와 끝 토큰 인덱스의 범위를 반환합니다. "kediler"("cats") 또는 "kedileri"("its cats")를 반환하면 일부 컨텍스트가 손실되고 특정 측정항목에 대해 다른 평가 결과가 나타납니다.

사전 훈련된 모델 어휘 크기 "Kedileri"*에 대한 토큰화
dbmdz/bert-base-터키어-uncased 32,000 토큰 [CLS] 고양이들 ##나 [XNUMX월]
입력 ID 2 23714 1023 3
bert-base-다국어-uncased 105,879 토큰 [CLS] 케드 ##일러 ##나 [XNUMX월]
입력 ID 101 30210 33719 10116 102
딥셋/xlm-roberta-base-squad2 250,002 토큰 di 레리
입력 ID 0 1345 428 1341 .
*영어: (그것의) 고양이

따라서 자원이 부족한 언어는 다국어 언어 모델의 이점을 얻을 수 있지만 공유 어휘에서 토큰화를 수행하면 특정 언어의 일부 언어 기능을 무시할 수 있습니다.

다음 섹션에서는 BERTurk[8], 다국어 BERT[4], XLM-R[7]과 같은 터키어 QA 데이터 세트를 사용하여 질문 응답 작업에 대해 세 가지 접근 방식을 미세 조정하여 비교합니다.

솔루션 개요

워크플로는 다음과 같습니다.

  1. 데이터 세트 준비 아마존 세이지 메이커 스튜디오 노트북 환경에 업로드 아마존 단순 스토리지 서비스 (아마존 S3).
  2. 미세 조정 스크립트를 제공하여 SageMaker 교육 딥 러닝 컨테이너에서 병렬 교육 작업을 시작합니다.
  3. 각 실험에서 메타데이터를 수집합니다.
  4. 결과를 비교하고 가장 적합한 모델을 식별합니다.

다음 다이어그램은 솔루션 아키텍처를 보여줍니다.

Amazon SageMaker PlatoBlockchain Data Intelligence에서 Hugging Face를 사용하여 언어 다양성을 위해 변환기 언어 모델을 미세 조정하십시오. 수직 검색. 일체 포함.

Studio 노트북에 대한 자세한 내용은 Amazon SageMaker Studio 노트북 아키텍처 자세히 알아보기. Hugging Face가 SageMaker와 통합되는 방법에 대한 자세한 내용은 다음을 참조하십시오. AWS와 Hugging Face가 협력하여 자연어 처리 모델 채택을 단순화하고 가속화.

데이터세트 준비

Hugging Face Datasets 라이브러리는 딥 러닝 모델에서 훈련할 데이터 세트를 신속하게 준비할 수 있는 강력한 데이터 처리 방법을 제공합니다. 다음 코드는 터키어 QA 데이터 세트를 로드하고 내부를 탐색합니다.

data_files = {}
data_files["train"] = 'data/train.json'
data_files["validation"] = 'data/val.json' ds = load_dataset("json", data_files=data_files) print("Number of features in dataset: n Train = {}, n Validation = {}".format(len(ds['train']), len(ds['validation'])))

약 9,000개의 샘플이 있습니다.

Amazon SageMaker PlatoBlockchain Data Intelligence에서 Hugging Face를 사용하여 언어 다양성을 위해 변환기 언어 모델을 미세 조정하십시오. 수직 검색. 일체 포함.

입력 데이터 세트는 사전 훈련된 모델에서 예상하는 형식으로 약간 변환되며 다음 열을 포함합니다.

df = pd.DataFrame(ds['train'])
df.sample(1)

Amazon SageMaker PlatoBlockchain Data Intelligence에서 Hugging Face를 사용하여 언어 다양성을 위해 변환기 언어 모델을 미세 조정하십시오. 수직 검색. 일체 포함.
출력의 영어 번역은 다음과 같습니다.

  • 문맥 – Resit Emre Kongar (b. 13년 1941월 XNUMX일, 이스탄불), 터키 사회학자, 교수.
  • 문제 – Emre Kongar의 학명은 무엇입니까?
  • 답변 - 교수

미세 조정 스크립트

Hugging Face Transformers 라이브러리는 run_qa.py. 다음 코드는 트레이너를 초기화합니다.

 # Initialize our Trainer trainer = QuestionAnsweringTrainer( model=model, args=training_args, train_dataset=train_dataset, eval_dataset=eval_dataset, eval_examples=eval_examples, tokenizer=tokenizer, data_collator=data_collator, post_process_function=post_processing_function, compute_metrics=compute_metrics, )

높은 수준에서 빌딩 블록을 검토해 보겠습니다.

토크 나이저

스크립트는 다음을 사용하여 토크나이저를 로드합니다. AutoTokenizer 수업. 그만큼 AutoTokenizer 클래스는 모델에 해당하는 올바른 토크나이저를 반환합니다.

tokenizer = AutoTokenizer.from_pretrained( model_args.model_name_or_path, cache_dir=model_args.cache_dir, use_fast=True, revision=model_args.model_revision, use_auth_token=None, )

다음은 토크나이저가 작동하는 방식의 예입니다.

from transformers import AutoTokenizer tokenizer = AutoTokenizer.from_pretrained("deepset/xlm-roberta-base-squad2") input_ids = tokenizer.encode('İstanbulun en popüler hayvanı hangisidir? Kedileri', return_tensors="pt")
tokens = tokenizer('İstanbulun en popüler hayvanı hangisidir? Kedileri').tokens()

Amazon SageMaker PlatoBlockchain Data Intelligence에서 Hugging Face를 사용하여 언어 다양성을 위해 변환기 언어 모델을 미세 조정하십시오. 수직 검색. 일체 포함.

모델

스크립트는 모델을 로드합니다. AutoModel 클래스(예: AutoModelForQuestionAnswering) 사전 훈련된 모델에 대한 이름과 경로가 주어진 관련 아키텍처의 가중치, 구성 및 어휘로 클래스를 직접 생성합니다. Hugging Face의 추상화 덕분에 모델 이름만 제공하면 동일한 코드를 사용하여 다른 모델로 쉽게 전환할 수 있습니다. 다음 예제 코드를 참조하십시오.

 model = AutoModelForQuestionAnswering.from_pretrained( model_args.model_name_or_path, config=config, cache_dir=model_args.cache_dir, revision=model_args.model_revision, )

전처리 및 훈련

XNUMXD덴탈의 prepare_train_features()prepare_validation_features() 메소드는 각각 훈련 데이터 세트와 검증 데이터 세트를 사전 처리합니다. 코드는 입력 데이터 세트를 반복하고 올바른 모델별 토큰 유형 ID(토큰의 숫자 표현) 및 주의 마스크를 사용하여 컨텍스트 및 현재 질문에서 시퀀스를 작성합니다. 그런 다음 시퀀스가 ​​모델을 통해 전달됩니다. 다음 표와 같이 시작 위치와 끝 위치 모두에 대한 점수 범위가 출력됩니다.

입력 데이터 세트 필드 QuestionAnsweringTrainer에 대한 사전 처리된 훈련 데이터 세트 필드
id 입력 ID
제목 주의_마스크
문맥 시작 위치
문제 끝 위치
답변 { answer_start, answer_text } .

평가

XNUMXD덴탈의 compute_metrics() 메소드는 메트릭 계산을 처리합니다. 질문 답변 작업에 다음과 같은 인기 있는 측정항목을 사용합니다.

  • 정확히 일치 – 정답 중 하나와 정확히 일치하는 예측의 백분율을 측정합니다.
  • F1 점수 – 예측과 정답 사이의 평균 중첩을 측정합니다. F1 점수는 정밀도와 재현율의 조화 평균입니다.
    • Precision – 예측의 총 단어 수에 대한 공유 단어 수의 비율.
    • 소환 – ground truth의 총 단어 수에 대한 공유 단어 수의 비율입니다.

SageMaker에 대한 관리 교육

사용자 지정 머신 러닝(ML) 환경을 설정하고 관리하는 것은 시간이 많이 걸리고 번거로울 수 있습니다. 와 함께 AWS 딥 러닝 컨테이너 (DLC) Hugging Face Transformers 라이브러리의 경우 사전 패키징되고 최적화된 딥 러닝 프레임워크에 액세스할 수 있으므로 최소한의 추가 코드로 여러 교육 작업에서 스크립트를 쉽게 실행할 수 있습니다.

우리는 단지 사용할 필요가 있습니다 포옹 얼굴 추정기 다음 입력과 함께 SageMaker Python SDK에서 사용할 수 있습니다.

# Trial configuration
config['model'] = 'deepset/xlm-roberta-base-squad2'
config['instance_type'] = 'ml.p3.16xlarge'
config['instance_count'] = 2 # Define the distribution parameters in the HuggingFace Estimator config['distribution'] = {'smdistributed':{'dataparallel':{ 'enabled': True }}}
trial_configs.append(config) # We can specify a training script that is stored in a GitHub repository as the entry point for our Estimator, # so we don’t have to download the scripts locally.
git_config = {'repo': 'https://github.com/huggingface/transformers.git'} hyperparameters_qa={ 'model_name_or_path': config['model'], 'train_file': '/opt/ml/input/data/train/train.json', 'validation_file': '/opt/ml/input/data/val/val.json', 'do_train': True, 'do_eval': True, 'fp16': True, 'per_device_train_batch_size': 16, 'per_device_eval_batch_size': 16, 'num_train_epochs': 2, 'max_seq_length': 384, 'pad_to_max_length': True, 'doc_stride': 128, 'output_dir': '/opt/ml/model' } huggingface_estimator = HuggingFace(entry_point='run_qa.py', source_dir='./examples/pytorch/question-answering', git_config=git_config, instance_type=config['instance_type'], instance_count=config['instance_count'], role=role, transformers_version='4.12.3', pytorch_version='1.9.1', py_version='py38', distribution=config['distribution'], hyperparameters=hyperparameters_qa, metric_definitions=metric_definitions, enable_sagemaker_metrics=True,) nlp_training_job_name = f"NLPjob-{model}-{instance}-{int(time.time())}" training_input_path = f's3://{sagemaker_session_bucket}/{s3_prefix_qa}/' test_input_path = f's3://{sagemaker_session_bucket}/{s3_prefix_qa}/' huggingface_estimator.fit( inputs={'train': training_input_path, 'val': test_input_path}, job_name=nlp_training_job_name, experiment_config={ "ExperimentName": nlp_experiment.experiment_name, "TrialName": nlp_trial.trial_name, "TrialComponentDisplayName": nlp_trial.trial_name,}, wait=False, )

결과 평가

터키어 질문 응답 작업에 대한 미세 조정 작업이 완료되면 세 가지 접근 방식의 모델 성능을 비교합니다.

  • 단일 언어 모델 – 터키어 질문 답변 텍스트에 대해 미세 조정된 사전 훈련된 모델을 호출합니다. 버트베이스-터키어-케이스 없음 [8]. F1 점수 75.63과 정확히 일치 점수 56.17을 단 9,000개의 시대와 XNUMX개의 레이블이 지정된 항목으로 달성합니다. 그러나 이 접근 방식은 사전 훈련된 언어 모델이 없거나 처음부터 훈련에 사용할 수 있는 데이터가 거의 없는 저자원 언어에는 적합하지 않습니다.
  • 다국어 BERT를 사용한 다국어 언어 모델 – 사전 훈련된 모델을 호출합니다. bert-base-다국어-uncased. 다국어 BERT 논문[4]은 그것이 여러 언어에 걸쳐 잘 일반화된다는 것을 보여주었습니다. 단일 언어 모델과 비교할 때 성능이 더 떨어지지만(F1 점수 71.73, 정확히 일치 50:45) 이 모델은 100개 이상의 다른 언어를 처리하므로 터키어를 표현할 여지가 적습니다.
  • XLM-R을 사용한 다국어 언어 모델 – 사전 훈련된 모델을 호출합니다. xlm-로베르타-베이스-스쿼드2. XLM-R 논문은 언어별 성능을 희생하지 않고 100개 이상의 언어에 대한 단일 대형 모델을 가질 수 있음을 보여줍니다[7]. 터키어 질문 답변 작업의 경우 다국어 BERT 및 단일 언어 BERT F1 점수를 각각 5% 및 2% 능가합니다(F1 점수 77.14, 정확히 일치 56.39).

Amazon SageMaker PlatoBlockchain Data Intelligence에서 Hugging Face를 사용하여 언어 다양성을 위해 변환기 언어 모델을 미세 조정하십시오. 수직 검색. 일체 포함.

우리의 비교에서는 모델 용량, 사용된 훈련 데이터 세트, 사전 훈련된 NLP 작업, 어휘 크기 또는 토큰화와 같은 모델 간의 다른 차이점을 고려하지 않습니다.

추가 실험

제공된 노트북에는 추가 실험 예제가 포함되어 있습니다.

SageMaker는 다양한 훈련 인스턴스 유형을 제공합니다. 우리는 p3.2xlarge(GPU: Nvidia V100 GPU, GPU 아키텍처: Volta(2017)), p3.16xlarge(GPU: 8 Nvidia V100 GPU) 및 g4dn.xlarge(GPU: Nvidia T4)에서 XLM-R 모델을 미세 조정했습니다. GPU, GPU 아키텍처: Turing(2018)) 및 다음을 관찰했습니다.

  • 훈련 기간 – 우리의 실험에 따르면 XLM-R 모델은 p24xlarge에서 학습하는 데 약 3.2분이 걸렸고 g30dn.xlarge에서 4분이 걸렸습니다(약 23% 더 길음). 또한 3.16개의 p10xlarge 인스턴스에 대해 분산 미세 조정을 수행했으며 교육 시간이 XNUMX분으로 단축되었습니다. SageMaker에서 변압기 기반 모델의 분산 교육에 대한 자세한 내용은 다음을 참조하십시오. Amazon SageMaker에서 Hugging Face Transformers를 사용하여 질문 답변 작업을 위한 BERT Large 모델의 분산 미세 조정.
  • 훈련 비용 – AWS 가격 API를 사용하여 SageMaker 온디맨드 가격을 가져와 즉석에서 계산했습니다. 우리의 실험에 따르면 교육 비용은 p1.58xlarge에서 약 $3.2이고 g4dn.xlarge에서 약 0.37배 저렴합니다($3.16). 16개의 GPU를 사용하는 9.68개의 pXNUMXxlarge 인스턴스에 대한 분산 교육 비용은 $XNUMX입니다.

요약하자면, g4dn.xlarge가 가장 저렴한 머신이었지만 우리가 실험한 가장 강력한 인스턴스 유형(3.16개의 pXNUMXxlarge)보다 훈련하는 데 약 XNUMX배 더 오래 걸렸습니다. 프로젝트 우선 순위에 따라 다양한 SageMaker 교육 인스턴스 유형 중에서 선택할 수 있습니다.

결론

이 게시물에서는 중간 리소스 언어(이 경우 터키어)에 대한 질문 응답 작업을 위해 사전 훈련된 변환기 기반 언어 모델을 미세 조정하는 방법을 살펴보았습니다. 단일 모델을 사용하여 100개 이상의 다른 언어에 이 접근 방식을 적용할 수 있습니다. 글을 쓰는 시점에서 전 세계 7,000개 언어를 모두 포함하도록 모델을 확장하는 것은 여전히 ​​금지되어 있지만 NLP 분야는 우리의 지평을 넓힐 수 있는 기회를 제공합니다.

언어는 인간의 주요 의사소통 수단이자 가치를 전달하고 문화유산의 아름다움을 공유하는 수단입니다. 언어적 다양성은 문화 간 대화를 강화하고 포용적인 사회를 구축합니다.

ML은 고도로 반복적인 프로세스입니다. 단일 프로젝트를 진행하는 동안 데이터 과학자는 최대 정확도를 찾기 위해 수백 가지의 다양한 모델, 데이터 세트 및 매개변수를 훈련합니다. SageMaker는 ML과 딥 러닝의 힘을 활용할 수 있는 가장 완벽한 도구 세트를 제공합니다. 이를 통해 대규모 ML 실험을 구성, 추적, 비교 및 ​​평가할 수 있습니다.

Hugging Face는 SageMaker와 통합되어 데이터 과학자가 최신 NLP 모델을 보다 빠르고 쉽게 개발, 훈련 및 조정할 수 있습니다. 대규모 교육 및 실험, 생산성 및 비용 효율성 증가 등 Amazon SageMaker에서 Hugging Face 변환기를 사용할 때의 여러 이점을 시연했습니다.

SageMaker를 사용할 수 있는 모든 AWS 리전의 SageMaker에서 원하는 언어로 NLP 작업을 실험할 수 있습니다. 예제 노트북 코드는 다음에서 사용할 수 있습니다. GitHub의.

Amazon SageMaker Training Compiler가 어떻게 딥 러닝 모델의 훈련을 최대 50%까지 가속화할 수 있는지 알아보려면 다음을 참조하십시오. 새로운 기능 – SageMaker 교육 컴파일러 소개.

저자는 초안을 검토하고 조언을 제공한 Mariano Kamp와 Emily Webber에게 깊은 감사를 표하고 싶습니다.

참고자료

  1. J. Devlin et al., "BERT: 언어 이해를 위한 심층 양방향 변환기의 사전 훈련", (2018).
  2. A. Vaswani et al., "주의가 필요한 모든 것", (2017).
  3. J. Howard 및 S. Ruder, "텍스트 분류를 위한 범용 언어 모델 미세 조정",(2018).
  4. T. Pires et al., "다국어 BERT는 얼마나 다국어입니까?", (2019).
  5. Y. Liu et al., "RoBERTa: A Robustly Optimized BERT Pretraining Approach", (2019).
  6. G. Lample 및 A. Conneau, "교차 언어 모델 사전 훈련", (2019).
  7. A. Conneau et al., "규모에 따른 감독되지 않은 교차 ​​언어 표현 학습", (2019).
  8. 슈테판 슈베터. BERTurk – 터키어용 BERT 모델(2020).
  9. 다국어 위키 통계 https://en.wikipedia.org/wiki/Wikipedia:Multilingual_statistics

저자에 관하여

Amazon SageMaker PlatoBlockchain Data Intelligence에서 Hugging Face를 사용하여 언어 다양성을 위해 변환기 언어 모델을 미세 조정하십시오. 수직 검색. 일체 포함.아르나브 카레 AWS의 글로벌 금융 서비스 수석 솔루션 아키텍트입니다. 그의 주요 초점은 금융 서비스 기관이 클라우드에서 분석 및 기계 학습 애플리케이션을 구축하고 설계하도록 돕는 것입니다. Arnav는 Edinburgh University에서 인공 지능 석사 학위를 취득했으며 그가 설립한 소규모 신생 기업에서 Nokia 및 Bank of America와 같은 대기업에 이르기까지 18년 간의 업계 경험을 보유하고 있습니다. 직장 밖에서 Arnav는 두 딸과 시간을 보내고, 새로운 독립 커피숍을 찾고, 책을 읽고 여행하는 것을 좋아합니다. 당신은 나를 찾을 수 있습니다 링크드인 그리고 실생활에서 영국 써리에서.

Amazon SageMaker PlatoBlockchain Data Intelligence에서 Hugging Face를 사용하여 언어 다양성을 위해 변환기 언어 모델을 미세 조정하십시오. 수직 검색. 일체 포함.하산-바스리 AKIRMAK (컴퓨터 공학 학사 및 석사 및 경영 대학원 이그 제 큐 티브 MBA)는 Amazon Web Services의 수석 솔루션 설계자입니다. 그는 기업 부문 고객에게 자문을 제공하는 비즈니스 기술자입니다. 그의 전문 분야는 대규모 데이터 처리 시스템 및 기계 학습 솔루션에 대한 아키텍처 및 비즈니스 사례를 설계하는 것입니다. Hasan은 유럽, 중동 및 아프리카의 고객을 위해 비즈니스 개발, 시스템 통합, 프로그램 관리를 제공했습니다. 2016년부터 그는 프로보노(pro-bono) 창업 인큐베이션 프로그램에서 수백 명의 기업가들을 멘토링했습니다.

Amazon SageMaker PlatoBlockchain Data Intelligence에서 Hugging Face를 사용하여 언어 다양성을 위해 변환기 언어 모델을 미세 조정하십시오. 수직 검색. 일체 포함.하이코 핫츠 AI 및 기계 학습을 위한 수석 솔루션 설계자이며 AWS 내에서 자연어 처리(NLP) 커뮤니티를 이끌고 있습니다. 이 역할 이전에는 Amazon EU 고객 서비스의 데이터 과학 책임자였습니다. Heiko는 고객이 AWS에서 AI/ML 여정을 성공적으로 수행할 수 있도록 지원하며 보험, 금융 서비스, 미디어 및 엔터테인먼트, 의료, 유틸리티, 제조를 비롯한 다양한 산업의 조직과 협력했습니다. 여가 시간에 Heiko는 가능한 한 많이 여행합니다.

타임 스탬프 :

더보기 AWS 기계 학습