Deep learning

BERT, RoBERTa, 그리고 BigBird

taeeyeong 2024. 1. 21. 15:03

BERT (Bidirectional Encoder Representations from Transformers)는 구글이 개발한 언어 이해를 위한 사전 훈련(pre-trained) 모델입니다(https://arxiv.org/pdf/1810.04805.pdf). 이 모델이 노블했던 점은 텍스트의 양방향 context를 동시에 고려한다는 것이며, 이를 통해 단어의 의미를 보다 정확하게 이해할 수 있습니다. 

 

BERT 구조


- 인코더 아키텍처: BERT는 Transformer 모델의 인코더 아키텍처를 사용합니다. Transformer의 인코더는 멀티-헤드 어텐션과 position-wise feedforward network로 구성된 여러 레이어를 포함합니다. BERT는 일반적으로 12개(소규모 모델인 BERT-Base) 또는 24개(대규모 모델인 BERT-Large)의 인코더 레이어를 사용합니다.

- 포지셔널 인코딩: BERT는 순차적 데이터를 처리하지만, Transformer 아키텍처는 기본적으로 순서를 고려하지 않습니다. 따라서 입력 데이터에 포지셔널 인코딩을 추가하여 각 단어의 위치 정보를 모델에 제공합니다.

- 입력 표현: BERT는 단어 단위로 토큰화된 입력을 받으며, 각 토큰은 WordPiece 임베딩을 통해 벡터로 변환됩니다. 이 벡터에는 포지셔널 인코딩과 세그먼트 인코딩이 결합되어 있습니다. 세그먼트 인코딩은 두 개의 다른 문장을 구분하는 데 사용됩니다.

https://arxiv.org/pdf/1810.04805.pdf



- 사전 훈련 task: BERT는 두 가지 주요 사전 훈련 태스크를 통해 학습됩니다:
   - Masked Language Model (MLM): 훈련 데이터의 일부 단어를 마스킹하고, 모델이 이 마스킹된 단어를 예측하도록 합니다. 이를 통해 모델은 단어의 양방향 컨텍스트를 고려할 수 있습니다.
   - Next Sentence Prediction (NSP): 두 개의 문장이 주어졌을 때, 한 문장이 다른 문장 바로 다음에 오는지를 예측합니다. 이를 통해 문장 간 관계를 이해할 수 있습니다.

- 사전 훈련과 파인 튜닝: BERT는 대규모의 텍스트 코퍼스에서 사전 훈련된 후, 특정 작업에 맞게 추가로 파인 튜닝됩니다. 파인 튜닝은 작업 관련 데이터셋을 사용하여 수행되며, 이 단계에서 모델은 특정 자연어 처리(NLP) 작업에 최적화됩니다.

https://arxiv.org/pdf/1810.04805.pdf



- 출력: BERT의 출력은 다양한 작업에 사용될 수 있는 특징 벡터입니다. 예를 들어, 문장 분류 작업에서는 첫 번째 토큰(일반적으로 [CLS]라고 표시됨)의 최종 레이어 표현을 사용하여 분류를 수행할 수 있습니다. 다른 작업에서는 다른 전략을 사용할 수 있습니다.

BERT는 이러한 구조를 통해 문맥적으로 풍부한 단어 임베딩을 생성할 수 있습니다.

 


 

RoBERTa (Robustly optimized BERT approach)는 BERT (Bidirectional Encoder Representations from Transformers) 모델을 개선한 버전으로, Facebook AI가 개발했습니다 (https://arxiv.org/pdf/1907.11692.pdf). BERT 모델의 변형인 RoBERTa는 원래 BERT의 기본 아키텍처를 유지하면서 몇 가지 중요한 변경 사항을 적용하여 성능을 향상시켰습니다.

 

RoBERTa 구조


- 인코더 기반 아키텍처: RoBERTa는 Transformer의 인코더 레이어를 사용합니다. 이 레이어는 멀티-헤드 어텐션과 position-wise feedforward network로 구성되어 있습니다. RoBERTa는 디코더 부분을 사용하지 않으며, BERT와 마찬가지로 오직 인코더 레이어만을 쌓아서 만듭니다.

- 양방향 컨텍스트 학습: RoBERTa는 입력의 왼쪽과 오른쪽 컨텍스트를 모두 고려하는 양방향 학습을 통해 단어의 임베딩을 생성합니다. 이는 문맥을 효과적으로 파악할 수 있도록 돕습니다.

- 다이내믹 마스킹: BERT에서 사용된 정적 마스킹 대신(BERT에서는 훈련 데이터의 15%의 토큰을 무작위로 마스킹하고, 이 마스킹된 토큰을 예측하도록 합니다. 그러나 이 마스킹 패턴은 훈련 데이터 전체에 걸쳐 고정되어 있습니다.), RoBERTa는 훈련 데이터를 여러 번 복사하여 각 복사본에 다른 마스킹 패턴을 적용합니다. 즉, 데이터의 다른 복사본에 대해 마스킹 패턴을 변경하여 모델이 같은 문장을 여러번 보더라도 다른 토큰을 예측하도록 합니다.

- 큰 배치 사이즈와 더 많은 데이터: RoBERTa는 BERT에 비해 훨씬 더 큰 배치 크기로 훈련되며, 더 많은 데이터를 사용합니다. 이로 인해 일반화 능력이 향상됩니다.

- 훈련 과정 최적화: BERT는 'Next Sentence Prediction' 태스크를 포함하여 모델이 두 문장 사이의 관계를 학습할 수 있도록 했습니다. 연구 결과에 따르면, NSP task는 특정 경우에만 유용하고, 대부분의 경우 모델 성능에 큰 영향을 주지 않거나 심지어 해를 끼칠 수도 있다는 것이 밝혀졌습니다. 그래서 RoBERTa는 BERT의 'Next Sentence Prediction' (NSP) 태스크를 제거하고, 더 긴 시퀀스와 더 오랜 시간 동안 모델을 학습시킵니다. 이는 모델이 더 복잡한 언어 구조를 이해하도록 만듭니다.

- 하이퍼파라미터 조정: RoBERTa는 BERT의 하이퍼파라미터를 다시 조정하여 최적화합니다. 학습률과 같은 파라미터들을 세밀하게 조정하여 모델의 성능을 향상시킵니다. 또한 RoBERTa는 BERT와 다른 하이퍼파라미터를 사용하는데 그 예시로 학습률 스케줄링과 관련하여 RoBERTa는 Byte-Pair Encoding(BPE)을 사용하는 등 최적화 방법을 적용했습니다.

 

 


 

BigBird는 Google Research와 Toyota Technological Institute at Chicago의 연구자들에 의해 개발된 언어 모델로, Transformer 기반의 BERT 모델을 확장한 버전입니다(https://arxiv.org/pdf/2007.14062.pdf). BigBird의 핵심 혁신은 대규모의 문서나 긴 시퀀스를 효과적으로 처리할 수 있는 어텐션 메커니즘의 확장입니다. 

Transformer 모델은 일반적으로 문장 내 모든 단어 쌍 사이의 관계를 계산하는데, 이는 시퀀스의 길이가 길어질수록 계산량이 제곱으로 증가하여 비효율적입니다. BigBird는 이 문제를 해결하기 위해 sparse attention mechanism을 도입했습니다.

 

BigBird의 주요 구성 요소

 

-sparse attention mechanism: BigBird는 전체 어텐션 매트릭스를 계산하는 대신, 특정한 패턴을 사용하여 어텐션을 계산합니다. 이 패턴은 글로벌 어텐션, 슬라이딩 윈도우 어텐션, 그리고 랜덤 어텐션을 포함합니다. 이러한 sparse 연결 구조는 메모리 사용량을 크게 줄이면서도 문맥을 효과적으로 포착할 수 있게 해줍니다.

https://arxiv.org/pdf/2007.14062.pdf



- global attention node: 글로벌 어텐션 노드(Global Attention Nodes) 개념은 특정 중요한 토큰이 전체 시퀀스에 걸쳐 다른 모든 토큰과 상호 작용할 수 있도록 하는 메커니즘입니다. 전통적인 Transformer 모델에서는 모든 토큰이 서로 어텐션을 계산합니다. 즉, 모든 토큰 쌍 사이의 관계가 고려됩니다. 하지만 이는 시퀀스 길이에 따라 계산 복잡도가 제곱으로 증가하는 문제를 야기합니다. 긴 문서를 처리할 때 이는 매우 비효율적이 될 수 있습니다. 특정 토큰들이 글로벌 어텐션 노드로 선택됩니다. 이들은 일반적으로 문서의 의미를 포착하는 데 중요한 토큰들입니다. 예를 들어, 문서의 시작을 나타내는 [CLS] 토큰이 이에 해당할 수 있습니다. 글로벌 어텐션 노드는 문서 내의 모든 다른 토큰들과 어텐션을 계산합니다. 이를 통해, 모델은 전체 문서의 컨텍스트를 글로벌 어텐션 노드에 통합할 수 있습니다.

글로벌 어텐션을 통해, 모델은 특정 중요한 정보를 전체 문서에 걸쳐 유지하고 전파할 수 있습니다. 이는 모델이 전체 문서의 구조와 흐름을 더 잘 이해하도록 돕습니다.
글로벌 어텐션 노드는 모든 토큰이 아닌 중요한 토큰에만 전체적인 어텐션을 계산하기 때문에, 계산 비용을 절감하면서도 긴 시퀀스의 문맥을 효과적으로 처리할 수 있게 합니다.


- 슬라이딩 윈도우: 일반적인 Transformer 어텐션과 유사하지만, 각 토큰은 고정된 크기의 이웃과만 상호 작용합니다. 이는 계산 복잡성을 줄이면서도 local context을 효과적으로 포착할 수 있게 해줍니다.

- 랜덤 어텐션: 토큰들의 작은 무작위 집합에 대해서만 어텐션을 계산하여, 더 넓은 문맥을 포착할 수 있도록 합니다.

- 확장된 시퀀스 처리 능력: sparse attention 기법을 통해 BigBird는 BERT와 같은 모델보다 훨씬 긴 시퀀스를 효과적으로 처리할 수 있습니다. 이는 특히 자연어 처리에서 긴 문서를 다루는 경우 유용합니다.

BigBird는 BERT와 동일한 사전 훈련 및 파인튜닝 프로세스를 사용할 수 있으며, 다양한 NLP 작업에서 BERT의 성능을 뛰어넘는 것으로 나타났습니다.