Data/논문 읽기

[논문 같이 읽기] BERT : Pre-training of Deep Bidirectional Transformers for Language Understanding

neulvo 2022. 10. 22. 09:50

논문 링크 :

 

BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

We introduce a new language representation model called BERT, which stands for Bidirectional Encoder Representations from Transformers. Unlike recent language representation models, BERT is designed to pre-train deep bidirectional representations from unla

arxiv.org

Wikidocs 링크 :

 

02) 버트(Bidirectional Encoder Representations from Transformers, BERT)

* 트랜스포머 챕터에 대한 사전 이해가 필요합니다. ![](https://wikidocs.net/images/page/35594/BERT.PNG) BERT(Bid ...

wikidocs.net

jalammar 링크 : 

 

The Illustrated BERT, ELMo, and co. (How NLP Cracked Transfer Learning)

Discussions: Hacker News (98 points, 19 comments), Reddit r/MachineLearning (164 points, 20 comments) Translations: Chinese (Simplified), French 1, French 2, Japanese, Korean, Persian, Russian, Spanish 2021 Update: I created this brief and highly accessibl

jalammar.github.io

논문 소개 모델의 코드 및 구조나 흐름 등을

다루고자 하는 마음이 있지만

당장은 공부해야할 게 많다 보니

후일로 미뤄야할 것 같다.

일단은 원래 하던 대로 논문 번역 +  해석으로!

 

BERT는 label되지 않은 text로부터 모든 레이어에서 좌우 양 context를 공동으로 조건으로 하여

깊은 양방향 표현을 사전 학습하도록 설계되었습니다. 

그 결과 pre-trained BERT 모델은 단 하나의 추가적인 출력 레이어와 함께 미세조정되어

상당한 과제-특정적인 아키텍쳐 변형 없이,

질의 응답, 언어 추론과 같은 넓은 범위의 과제들에 SOTA 모델을 생성할 수 있게 되었습니다.

- unlabed text -> conditioning on both left and right context -> deep bidirectional representations (pretrained)

-> finetune with one additional output layer (by task) -> SOTA model

 

pre-trained 언어 표현을 down streak 과제에 적용시키는 데에는 2가지의 전략이 존재하고 있다.

(* downstreak task : pretrained model 혹은 component를 활용하는 supervised-learning task, jalammar)

feature-based(특징-기반) 와 fine-tuning(미세-조정)이다.

ELMo와 같은 feature-based 접근법은 pre-trained 표현을 추가적인 feature로 포함하는 과제-특정 아키텍쳐를 사용한다.

GPT와 같은 fine-tuning 접근법은 아주 적은 과제-특정 파라미터를 도입하고 단순히 모든 pre-trained 파라미터를 fine-tuning하는 것으로 downstream 과제에 학습된다.

두 접근법은 pre-training 과정에서 일반적인 언어 표현을 학습하는 데 단방향의 언어 모델을 사용하면서 같은 목적 함수를 공유한다.

 

주요 한계점은 보통의 언어 모델이 단방향이라는 것이며 (이 한계는) pre-training 과정에서 사용될 수 있는 아키텍쳐 선택을 제한한다.

그러한 제한은(모든 토큰이 이전 토큰에만 주의를 기울인다는) 문장-수준의 과제에 차선적이며,

양방향에서 context를 포함하는 것이 중요한 질의 응답과 같은 토큰-수준의 과제에

fine-tuining 기반의 접근법을 적용할 때 매우 해로울 수 있다.

-> Unidirectional model의 한계 : 양방향 학습 불가, 토큰-수준 과제 수행 어려움

 

이 논문에서, 우리는 BERT를 제안함으로써 fine-tuning 기반의 접근법을 향상시키고자 합니다.

양방향 인코더 표현 Transformer로부터의.

BERT는 이전에 언급한 단방향 제약을 MLM(가려진 언어 모델) pre-training 목표를 사용해 완화합니다.

가려진 언어 모델은 입력 토큰 중의 일부를 무작위로 가리립니다.

context에만 기반하여 가려진 단어의 원래 어휘 id 값을 예측하는 것이 목적입니다.

MLM 목적은 표현에 왼쪽 context와 오른쪽 context를 융합시키는 것을 가능케 해

우리로 하여금 깊은 양방향 Transformer를 pre-train시키는 것을 허락합니다.

우리는 또한 text-쌍 표현을 공동으로 pre-training하는 NSP(다음 단어 예측) 과제를 사용했습니다.

 

아래는 관련 작업

 

Unsuprevised Feature-based Approaches에 대한 관련 작업 및 개괄

 

Unsupervised Fine-tuning Approaches에 대한 관련 작업 및 개괄

 

Transfer Learning(전이 학습)에 대한 관련 작업 및 개괄

 

pre-training과 fine-tuning의 두 단계.

pre-training 중에는, 서로 다른 pre-training 과제에 대해 레이블되지 않은 데이터로 모델이 학습됩니다.

fine-tuning 중에는, BERT 모델이 pre-trained 파라미터들로 처음 초기화되고,

그리고 모든 파라미터들이 downstream tasks로부터 레이블된 데이터를 활용해 fine-tuend됩니다.

각각의 downstream task는 개별 fine-tuned 모델을 가집니다.

BERT의 특유의 특징은 서로 다른 과제들에 대한 그것의 통일된 아키텍쳐입니다.

 

 출력 레이어를 제외하고, 같은 아키텍쳐가 pre-training과 fine-tuning 모두에 사용됩니다.

같은 pre-trained 모델 파라미터가 서로 다른 down-stream 과제들에 모델을 초기화하는 데 사용됩니다.

fine-tuning 중에, 모든 파라미터들은 fine-tuned 됩니다.

[CLS]는 모든 입력 예제의 맨 앞에 추가되는 특수한 심볼이고

[SEP]는 특수 분리자 토큰입니다. (exempli gratia, 질문/답변을 분리합니다.)

 

BERT'의 모델 아키텍쳐는 (Attention is all you need 논문에 묘사된 독창적인 시행에 기반한)

다중-레이어 양방향 Transformer 인코더입니다.

L은 레이어의 개수, H는 히든 사이즈, A는 self-attention head의 수.

 

BERT가 다양한 down-stream 과제를 다루도록 만들기 위해,

우리의 입력 표현은 한 개의 문장과 문장의 쌍을 하나의 토큰 시퀀스로 분명하게 나타낼 수 있어야 합니다.

이 작업에 걸쳐서, "문장"은 실제 언어 문장이 아닌(라기 보다는) 인접 text의 임의의 범위가 될 수 있습니다.

"시퀀스"는 BERT의 입력 토큰 시퀀스를 일컫으며, 이것은 하나의 문장일 수도 2개의 문장이 함께 묶인 것일 수도 있습니다.

우리는 30,000 토큰 어휘에 WordPiece 임베딩을사용했습니다. 모든 시퀀스의 첫 번째 토큰은 항상 특수 분류 토큰인 [CLS]입니다. 이 토큰에 대응하는 마지막 은닉 상태가 분류 과제의 종합적인 시퀀스 표현으로 사용됩니다.

우리는 문장을 2가지 방법으로 구분 지었였습니다.

첫 번째로 우리는 그것들을 특수 토큰 [SEP]로 분리하였습니다.

두 번째로 우리는 모든 토큰에 문장 A  또는 문장 B에 속하는 지를 가리키는 학습된 임베딩을 추가하였습니다.

E는 입력 임베딩을 의미합니다.

C는 특수 [CLS] 토큰의 최종 은닉 벡터입니다. Ti는 i 번째 입력 토큰의 최종 은닉 벡터입니다.

주어진 토큰들에 대해, 그것의 입력 표현은 그에 상응하는 토큰 임베딩, 부분 임베딩, 위치 임베딩의 합으로 구성됩니다.

 

Input embeddings(representation) = sum([token embeddings, segmentation embeddings, position embeddings])

(* Transformer(Position encoding)과 달리 Position을 embedding하여 학습에 활용함)

 

과제 #1 : MLM

불행하게도, 일반적인 조건부 언어 모델은 왼쪽-에서-오른쪽 또는 오른쪽-에서-왼쪽으로만 학습될 수 있다.

양방향 훈련이 각 단어들을 간접적으로 "자신을 보게" 하도록 할테고,

모델이 다중-레이어된 context의 목표 단어를 사소하게 예측할 수 있을 테기 때문.

-> 기존 방법론에서 양방향 훈련을 하면 결국 자신을 보게 됨, 예측이 무의미, 한 방향으로 학습될 수밖에 없었음

 

깊은 양방향 표현을 학습시키기 위해서, 우리는 단순히 입력 토큰의 일부분을 무작위하게 가렸습니다. 그리고 그 가려진 토큰들을 예측하였습니다.

가려진 토큰에 대응하는 최종 은닉 벡터는 일반적인 LM에서처럼 어휘에 대한 출력 softmax에 넣어졌습니다.

우리의 모든 실험에서 우리는 각 시퀀스의 WordPiece 토큰의 15%를 무작위하게 가렸습니다.

이로 하여 양방향 pre-trained 모델을 얻을 수 있었지만,

안좋은 점은 pre-training 과 fine-tuning 사이의 불일치가 생겨버렸다는 것입니다.

[MASK] 토큰이 fine-tuning에서는 등장하지 않기 때문이었습니다.

이를 완화하기 위해서, 우리는 "가려진" 단어들을 실제 [MASK] 토큰으로 항상 바꾸지는 않았습니다.

학습 데이터 생성자가 예측을 위한 토큰 위치 중의 15%를 랜덤하게 고릅니다.

i 번째 토큰이 선택된다면, 우리는 i 번째 토큰을

(1) 80% 만큼은 [MASK] 토큰으로 (2) 10% 만큼은 무작위 토큰으로 (3) 10% 만큼은 바뀌지 않은 i 번째 토큰으로 바꿨습니다.

그러면 Ti(i 번째 입력 토큰의 최종 은닉 벡터)가 원래 토큰을 예측하는 데 cross entropy loss와 함께 사용될 것 입니다.

 

과제 #2 : NSP

문장 관계를 이해하는 모델을 학습시키기 위해서, 단일 언어 말뭉치에서 사소하게 생성될 수 있는 2항의 다음 문장 예측 과제를 pre-train 했습니다.

구체적으로, pretraining 예제에서 문장 A와 B를 선택할 때, 50%는 A에 뒤따르는 B를 실제 다음 문장으로 하였고 (IsNext로 라벨됨), 그리고 50%는 말뭉치에서 무작위 문장으로 하였습니다 (NotNext로 라벨됨).

BERT는 모든 파라미터를 목적-과제 모델 파라미터를 초기화하기 위해 전이합니다.

pre-training 말뭉치로는 BooksCorpus (800M 단어들) 과 English Wikipedia (2,500M 단어들) 을 사용했습니다.

긴 인접 시퀀스를 추출하기 위해서 Billion Word Benchmark와 같은 문장-수준의 섞인 말뭉치가 아닌 문서-수준의 말뭉치를 사용한 것이 주요했습니다.

 

Bert는 대신에 self-attention 메커니즘을 사용해서, 연결된 text 쌍을 두 문장 사이의 양방향 cross attention을 포함하는 self-attention과 함께 인코딩함으로써, 두 단계를 단일화하였습니다.

각 과제에 대해서, 과제-특정적인 입력과 출력을 BERT에 간단하게 연결하였고 모든 파라미터를 처음부터 끝까지 fine-tune 하였습니다. 입력에서, pre-training의 문장 A와 문장 B는 (아래와) 유사합니다.

(1) 표현이 다른 문장 쌍 (2) 함의를 가진 가설-전제 쌍 (3) 질의 응답에서의 질문-구절 쌍

(4) text 분류 또는 시퀀스 태깅(태그를 붙임)에서의 퇴보된 text - (공집합) 쌍

출력에서, 토큰 표현은 시퀀스 태깅이나 질의 응답과 같은 토큰-수준 과제에서 출력 레이어에 넣어지고,

[CLS] 표현은 함의 (관계) 또는 감성 분석과 같은 분류 (과제)에서 출력 레이어에 넣어집니다.

 

GLUE에 fine-tune 하기 위해서, 우리는 section 3에서 묘사된 바와 같이 (단일 문장 또는 문장 쌍에 대한) 입력 시퀀스를 표현하였고 첫 번째 입력 토큰에 ([CLS]) 상응하는 최종 은닉 벡터 C를 종합적인 표현으로 사용하였습니다.

fine-tuning 중에 도입된 새로운 파라미터는 분류 레이어 가중치인 W 뿐이며, K는 라벨의 수를 말합니다.

우리는 C와 W로 일반적인 분류 손실을 계산하였습니다.

우리는 32 batch 크기를 사용하였고 모든 GLUE 과제에 대해 전체 데이터를 3 epoch 동안 fine-tune하였습니다.

각 과제에 대해서, 우리는 Dev set(development set, 검증용)에서 최고의 fine-tuning 학습률을 선택하였습니다.

추가적으로,  BERT Large에 대해 우리는 fine-tuning이 가끔 작은 데이터셋에 불안정하다는 것을 발견하였고,

그래서 여러 번의 무작위 재시작을 시행해 Dev set에서의 최고의 모델을 골랐습니다.

무작위 재시작에서, 우리는 동일한 pre-trained 체크포인트를 사용하였으나 fine-tuning 데이터를 섞는 법과 분류자 레이어 초기화를 다르게 하였습니다.

BERT Large가 Bert Base 보다 모든 과제에 걸쳐서 성능이 상당히 우수함을 발견하였습니다. 특히, 매우 작은 학습 데이터를 쓸 때에서.

 

문제가 되는 WNLI 세트를 제외하였기 때문에 "평균" 열은 공식적인 GLUE 점수와 살짝 다릅니다.

BERT와  OpenAI GPT는 단일 모델, 단일 과제입니다.

F1 점수는 QQP와 MRPC에 대해 구해졌고, Spearman 상관관계는  STS-B에 대해 구해졌으며, Accuracy 점수는 다른 과제에 대해 구해졌습니다. 우리는 BERT를 하나의 구성요소로 사용하는 모델은 제외하였습니다.

 

질문과 Wikipedia에서 답변을 포함하는 구절을 활용해, 구절 안의 답변 text 범위를 예측하는 것이 과제입니다.

질의 응답 과제에서, 우리는 입력 문장과 구절을, 질문은 A 임베딩으로 그리고 구절은 B 임베딩을 사용하여, 하나의 묶인 시퀀스로 표현하였습니다.

우리는 fine-tuning 중에 시작 벡터 S와 끝 벡터 E 만을 도입했습니다.

답변 범위의 시작인 단어 i의 확률(Pi)은 Ti와 S의 내적으로 계산됩니다.

그리고 단락 안의 모든 단어에 대한 softmax가 뒤따릅니다.

유사한 공식이 답변 범위의 끝에 사용됩니다.

위치 i 부터 위치 j 까지의 후보 범위의 점수는 S*Ti + E*Tj 로 정의됩니다.

그리고 j가 i 이상인 최고 기록의 범위가 예측으로 사용됩니다.

학습 목적은 정확한 시작과 끝 위치의 log-likelihood의 총합입니다.

우리는 5e-5의 학습률과 32의 batch 크기로 3 epoch에 걸쳐 fine-tun하였습니다.

우리는 SQuAD에 fine-tuning 하기 전에 TriviaQA에 먼저 fine-tuning하여 보통의 데이터 증대 방법을 우리의 시스템에 사용하였습니다.

 

Esn(ensemble) + TriviaQA (fine-tuning) 한 BERT Large 모델의 성능이 가장 우수

 

SQuAD 2.0 과제는 주어진 단락 안에 짧은 답변이 존재하지 않다는 확률을 허용함으로써 문제를 더 현실적으로 만들어 SQuAD 1.1 문제 정의를 확장하였습니다.

우리는 답변이 없는 질문을 시작과 끝에 [CLS] 토큰을 가지는 답변 범위로 처리하였습니다.

시작과 끝 답변 범위 위치에 대한 확률 공간은 [CLS]토큰의 위치를 포함하도록 확장됩니다.

예측을 위해서, 우리는 답변-없는 범위의 점수를 비교하였습니다.

Snull = S*C + E*C 을 최고의 null-아닌 범위의 점수, Sij = max(S*Ti + E*Ti)에 대해 빅교

(S: 시작 벡터, E: 끝 벡터, C: CLS 토큰의 최종 은닉 벡터, Ti: i 번째 입력 토큰의 최종 은닉 벡터)

우리는 sij > snull + T 일 때, null-아닌 답변을 예측하였습니다.

임계점 T는 F1 (점수)를 극대화하는 dev set에서 선택되었습니다.

이 모델에서 TriviaQA data는 사용하지 않았습니다. (SQuAD 1.1에서는 사용)

우리는 학습률 5e-5와 48 batch 크기로 2 epoch를 돌며 fine-tune하였습니다. (SQuAD 1.1, 32 batch size, 3 epoch)

 

SQuAD 2.0, single Large 모델로도 이전 literature 보다 좋은 성능을 보임

 

적대적 생성 상황 데이터 셋은 근거 있는 상식 추론을 평가하는 113k 문장-쌍 완성 예제를 포함합니다.

주어진 문장에 대해, 4개의 선택지 중에서 가장 그럴듯한 연속을 고르는 것이 과제입니다.

SWAG 데이터셋에 fine-tuning 할 때, 우리는 4개의 입력 시퀀스를 구성하였습니다.

각각은 주어진 문장(문장 A)와 가능한 연속(문장)(문장 B)의 연결을 포함합니다.

유일하게 도입된 과제-특정적인 파라미터는

[CLS] 토큰 표현 C와의 내적이 각 선택에 대한 점수를 의미하는 softmax 레이어로 정규화되는 벡터입니다.

우리는 학습률 2e-5와 batch 크기 16으로 3 epoch 동안 모델을 fine-tune 했습니다.

 

SWAG, 전문가보다 혹은 그에 필적하는 성능

 

Ablation study - feature를 하나씩 제거해가며 성능에 어떠한 영향을 미치는지 파악하는 연구

No NSP : MLM 사용, NSP 사용 X

LTR & No NSP : Left-to-Right 단방향 (MLM 사용 X), NSP 사용 X, OpenAI GPT랑 직접 비교 가능

 

NSP 과제 영향을 먼저 측정해보기로 하였다. NSP를 제거하니 QNLI, MNLI, SQuAD 1.1에서 성능이 상당히 손상됐다.

다음으로, No NSP와 LTR & No NSP를 비교하여 양방향 표현 학습의 영향을 평가하였다.

LTR 모델이 MLM 모델보다 모든 과제에서 성능이 나쁘게 나왔다. MRPC와 SQuAD에서 크게 떨어졌다.

LTR에 BiLSTM을 더해보기도 하였는데 SQuAD에선 좋은 결과를 보였으나 pre-trained 양방향 모델보다는 많이 떨어졌다.

ELMo 처럼 LTR과 RTL 모델을 따로 학습하고 두 모델의 연결로 각 토큰을 표현하는 것도 가능하겠다는 것을 인지하였다.

그러나 (a) 하나의 양방향 모델보다 두배 정도 비용이 많이 들고

(b) RTL 모델이 질문에 대해 답변을 학습할 수 없었기 때문에 (오른쪽(답변 위치)에서 왼쪽(질문 위치)) QA 같은 과제에 대해 직관적이지 않았다.

(c) 모든 레이어에서 왼쪽과 오른쪽 context 모두를 사용할 수 있는 깊은 양방향 모델보다 엄밀히 강력하지 않았다.

 

위 내용의 표

 

fine-tuning의 5 무작위 재시작의 평균 Dev Set 정확도를 구함

보다 큰 모델이 모든 4개 데이터셋에 대해 엄밀한 정확도 향상으로 이어졌음을 볼 수 있으며,

3,600 개의 라벨된 학습 예제만을 가진 MRPC에 대해서도 pre-training 과제들과 확연히 다름을 볼 수 있음.

기존의 모델보다 상대적으로 이미 꽤  큰 모델 위로 그러한 상당한 향상을 달성할 수 있었다는 것이 아마 놀라울 것입니다.

BERT Base는 110M 파라미터를 포함하고, BERT Large는 340M 파라미터를 포함합니다.

그러나 이것은 모델이 충분히 pre-trained 됐을 때, 극도의 모델 크기로 크기를 조정하는 것이

매우 작은 크기의 과제들에 대해서도 큰 성능 향상으로 이어진다는 것을 설득력 있게 입증한 첫 번째 작업일 것입니다.

(pretrained bi-LM 크기를 2 레이어에서 4 레이어로 늘렸을 때의 효과를 보여준 연구, 은닉 차원을 200에서 600으로 늘리는 것이 도움이 되었으나 1000으로 늘리는 것은 더 많은 향상을 가져오지 않았음을 보여준 연구)

두 이전 작업들은 feature-based 접근법을 사용했음

우리는 모델이 downstream 과제에 직접적으로 fine-tuned 되고 매우 작은 숫자의 무작위로 초기화된 추가적인 파라미터를 사용했을 때, 과제-특정적 모델은 downstream 과제 데이터가 매우 작을 때 조차도 더 큰, 비용이 더 드는 pre-trained 표현으로 부터 이득을 취할 수 있다는 가설을 세웠음

 

 

L- 레이어 개수, H- 히든 크기, A- attention heads 개수

 

BERT와 Feature-based 접근법

지금까지의 모든 BERT 결과들은 pre-trained 모델에 간단한 분류 레이어가 추가되는

그리고 모든 파라미터들이 공동으로 down-stream 과제에 대해 fine-tuned 되는 fine-tuning 접근법을 사용한 것이었습니다.

그러나, pre-trained 모델에서 고정된 features를 추출하는 feature-based 접근법은 확실한 이점이 있습니다.

첫째로, Transformer 인코더 아키텍쳐로 모든 과제들이 쉽게 표현되지 않는다는 것입니다.

그래서 과제-특정적인 모델 아키텍쳐가 추가되는 것을 요구한다는 것입니다.

둘째로, 학습 데이터의 값비싼 표현을 한번 미리 계산하고 이 표현 위에 값싼 모델로 여러 번 실험을 돌리는 것에 주요한 계산적인 이점이 있습니다.

-> 과제 표현의 용이성, 계산 비용의 저렴함

이 섹션에서, 우리는 CoNNL-2003 NER(명명된 독립체 인지) 과제에 BERT를 적용시켜 두 가지 접근법을 비교할 것입니다.

BERT의 입력에서, 사례-보존 WordPiece 모델을 사용하였고 데이터에서 주어진 최대 문서 context를 포함시켰습니다.

일반적인 관행을 따라, 이것을 태깅 과제로 만들어 내었지만 출력에서 CRF(conditional random fields) 레이어를 사용하지는 않았습니다.

우리는 첫번째 하위-토큰 표현을 NER 라벨 셋에 대한 토큰-수준 분류자의 입력으로 사용하였습니다.

fine-tuning 접근법을 ablate하기 위해, BERT의 어떠한 파라미터도 fine-tuning 하지 않고

한 개 혹은 여러 개의 레이어에서 activation을 추출하는 식으로 feature-based 접근법을 적용시켰습니다.

이 문맥적 임베딩은 분류 레이어 이전의 무작위로 초기화된 두 개의 레이어를 지닌 768 차원의 BiLSTM의 입력으로 사용되었습니다.

(activation을 추출하여 BiLSTM에 넣었다는 말)

BERT Large가 SOTA 방법에 대해 경쟁적인 성능을 보였습니다.

가장 성능이 좋은 방법은 pre-trained Transformer의 상위 4 개의 은닉 레이어의 토큰 표현을 연결한 것으로 전체 모델을 fine-tuning하는 것보다 단지 0.3 F1 뒤쳐졌습니다.

이는 BERT가 fine-tuning 그리고 feature-based 접근법 모두에 효과적이라는 것을 입증합니다.

 

Feature-based approach의 ablation study, 임베딩과 마지막 은닉 레이어의 역할이 컸음을 볼 수 있으며 BERT 모델이 양 접근법에 모두에 대해 좋은 성능을 보이고 있음을 확인할 수 있다.

 

언어 모델의 전이 학습으로 인한 최근의 실증적 향상은 풍부한, 감독되지 않은 pre-training이 다수의 언어 이해 시스템의 통합적인 부분임을 입증합니다.

특히, 이러한 결과들은 깊은 단방향 아키텍쳐로 적은-자원 과제 조차도 이득을 볼 수 있게끔 합니다.

우리의 주요 공헌은 이러한 발견들을 깊은 양방향 아키텍쳐로 더욱 일반화한 것이고,

그로 인해 동일한 pre-trained 모델이 광대한 세트의 NLP 과제들을 성공적으로 다룰 수 있게 한 것입니다.

 

A. BERT의 추가적인 실행 세부 사항

B. 추가적인 실험 세부 사항

C. 추가적인 ablation 연구

    - 학습 단계 숫자의 효과

    - 다른 Masking 절차에 대한 ablation

 

이 절차의 이점은 Transformer 인코더가 예측하기 위해 어떠한 단어가 물어지는지 또는 무작위 단어로 바뀌는지를 모른다는 것입니다.

그리하여 모든 입력 토큰들의 분포적인 문맥 표현을 유지하도록 강제된다는 것입니다.

게다가, 무작위 교체가 모든 토큰의 1.5%에서만 일어나기 때문에, 이것은 모델의 언어 이해 능력을 해친다고 보이지 않습니다.

일반적인 언어 모델 학습과 비교하여, 가려진 LM은 각 batch의 15%의 토큰에 대해서만 예측을 만들기 때문에

이는 모델이 수렴되기 위해 더 많은 pre-training 단계가 요구되어진다는 것을 암시합니다 .

C.1 섹션에서, 우리는 MLM이 (모든 토큰을 예측하는) LTR 모델보다 미세하게 느리게 수렴된다는 것을 입증합니다.

하지만 MLM 모델의 실증적인 향상은 학습 비용의 증가를 훨씬 윗돕니다.

 

Skip

 

각 학습 입력 시퀀스를 생성하기 위해, 우리는 말뭉치의 text에서 두 개의 범위를 샘플링했습니다.

우리는 이것이 단일 문장보다 보통 더 길지라도(하지만 짧을 수도 있습니다.) 이것을 "문장"이라고 일컫습니다.

첫 번째 문장은 A 임베딩을 그리고 두 번째 문장은 B 임베딩을 받습니다.

50% 정도로  B는 A를 뒤따르는 실제 다음 문장이고 50)% 정도로 무작위 문장이며,

이것은  "다음 문장 예측" 과제를 위해 만들어진 것입니다.

합쳐진 길이가 512 토큰 이하가 되도록 sampled 되었습니다.

LM maskinig은 15%의 일관된 가림 비율로 그리고 부분 단어 조각들에 대한 특별한 고려가 없이 

WordPiece 토큰화 이후에 적용되었습니다.

우리는 256 시퀀스의 batch 크기로 33억 개의 단어 말뭉치에 대해 대략적으로 40 epoch인 1,000,000 단계 학습하였습니다. (128,000 토큰/batch)

우리는 1e-4의 학습률, B1=0.9, B2=0.99, 0.01 L2 가중치 퇴화율, 처음 10,000 단계의 학습률 warmup, 학습률의 선형 퇴화의 Adam을 사용했습니다. (앞에 것들이 옵션)

우리는 모든 레이어에 0.1의 dropout probability(퇴거율)을 사용했습니다.

우리는 OpenAI GPT를 따라 일반적인 relu가 아닌 gelu 활성화 함수를 사용했습니다.

학습 손실은 평균 MLM likelihood와 평균 NSP likelihood의 총합입니다.

보다 긴 시퀀스들은 불균형적으로 비용이 많이 듭니다. attention이 시퀀스 길이에 2차적이기 때문입니다.

실험에서 pretraining 속도를 높이기 위해서 우리는 90%의 단계들에 대해 128 시퀀스 길이로 모델을 pre-train했습니다.

그리고 나서, 나머지 10%의 512 (길이의) 시퀀스 단계들을 학습해 위치 임베딩을 학습시켰습니다.

 

앞의 본문 내용과 중복되는 내용이기 때문에 내용은 생략.

BERT와 GPT, ELMo의 구조적 차이 및 접근법의 차이를 보고

또 각 task에 따라 input과 output이 어떻게 구성이 되는지를 보면 좋다.

 

MNLI, 다중-장르 자연 언어 추론은 큰-규모의 크라우드 소싱된 함의 분류 과제입니다.

문장 쌍이 주어지면, 목표는 두 번째 문장이 첫 번째 문장에 대한 함의, 반박, 중립 중의 무엇인지 예측하는 것입니다.

QQP, Quora 질문 쌍은 이진 분류 과제입니다.

목표는 Quora에 물은 두 질문이 의미적으로 유사한지 결정하는 것입니다.

QNLI, 질의 자연 언어 추론은 스탠포드 질의 응답 데이터셋의 한 버젼으로 이진 분류 과제로 전환시킨 것입니다. 

긍정 예제는 정확한 답변을 포함하는 쌍이며, 부정 예제는 답변을 포함하지 않는 같은 단락의 것입니다. (질문, 문장)

SST-2, 스탠포드 감성 Treebank는 그 감성에 대해 사람의 주석이 달린 영화 리뷰에서 추출된 문장들로 구성된 이진 단일-문장 분류 과제입니다.

CoLA, 언어 허용성 말뭉치는 이진 단일-문장 분류 과제로, 그 목표는 영어 문장이 언어적으로 "허용"되는지 아닌지를 예측하는 것입니다.

STS-B, 의미적 원문 유사성 기준(점)은 뉴스 헤드라인과 다른 원천으로 부터 가져온 문장 쌍의 모음입니다.

1에서 5까지의 점수로 주석이 달렸으며 그것은 두 문장이 의미적인 의미로 얼마나 유사한지를 나타내는 것입니다.

MRPC, 마이크로소프트 연구 표현 변환 말뭉치는 온라인 뉴스 자료에서 자동으로 추출된 문장 쌍으로 구성되었으며,

쌍을 이루는 문장들이 의미적으로 동등한지에 대한 사람의 주석이 달려있습니다.

RTE, 원문 함의 인식은 이진 함의 과제로 MNLI과 비슷하지만 훨씬 적은 학습 데이터를 지니는 과제입니다.

 

WNLI, Winograd NLI는 작은 자연 언어 추론 데이터셋입니다.

GLUE 웹페이지에서는 이 데이터셋을 구성하는데 문제가 있다고 언급하였습니다.

그리고 GLUE에 제출된 모든 학습된 시스템은 주된 클래스를 예측하는 65.1의 베이스라인 정확도 보다 성능이 안 좋게 나왔습니다. 우리는 OpenAI GPT에 공평하게 이 세트를 제외시켰습니다.

 

Figure 5에서 k 단계로 pre-trained되어 checkpoint에서 fine-tuning한 MNLI Dev의 정확도를 보였습니다.

이것은 우리를 뒤따르는 질문들에 답할 수 있게 해주었습니다.

1. 질문 : BERT는 높은 fine-tuning 정확도를 달성하기 위해 정말로 그렇게 큰 규모의 pre-training을 필요로 합니까?

답변 : 네, BERT Base는 500k 단계에 비교하여 1M 단계로 학습했을 때, 약 1.0% 추가적인 정확도를 달성했습니다.

2. 질문 : 각 배치에서 모든 단어가 아닌 15% 단어들만 예측하면 되는데 MLM pre-training이 LTR pre-training 보다 더 느리게 수렴되나요?

답변 : MLM 모델은 LTR 모델 보다 약간 느리게 수렴됩니다. 그러나, 절대 정확도의 관점에서 MLM 모델은 거의 즉각적으로 LTR 모델보다 성능이 우수하게 나옵니다.

 

MLM과 LTR의 비교, steps가 늘어날 수록 성능도 높아졌다.

 

마스킹 전략의 목적은 pre-training과 fine-tuning의 불일치를 줄이기 위한 것입니다.

NER에 대해서 우리는 fine-tuning과 feature-based 접근법을 모두 다뤘고,

feature-based 접근법에서 불일치가 증대될 것으로 기대하였습니다.

모델이 표현을 조정할 기회를 갖지 못할 것이기 때문이었습니다.

MASK는 MLM에서 [MASK] 심볼로 타깃 토큰을 바꾸는 것을 의미합니다.

SAME는 타깃 토큰을 유지하는 것을 의미합니다.

RND는 타깃 토큰을 또 다른 무작위 토큰으로 바꾸는 것을 의미합니다.

feature-based 접근법을 위해서 우리는 BERT의 마지막 4개 레이어를 연결시켜 features를 추출하였습니다. 이것은 Section 5.3에서 가장 좋은 접근법으로 나타난 것입니다.

테이블을 보면 fine-tuning은 다른 마스킹 전략에 대해 놀랍도록 강건하였습니다.

그러나, MASK 전략만 쓰는 것은 NER에 feature-based 접근법을 적용시킬 때 문제가 있었습니다.

흥미롭게도, RND만 사용한 전략은 우리의 전략보다 성능이 훨씬 안 좋게 나왔습니다.

 

MASK, SAME, RND 비율 변화와 그에 따른 Dev Set Results의 성능 차이, Fine-tune과 Feature-based 모두에서.

728x90