구글이 만든 NLP 모델, BERT

2023. 8. 26. 23:54AI/NLP

세서미 스트리트의 캐릭터 Bert  ⓒEverett Collection

 

HBO시리즈 '세서미 스트리트'의 캐릭터 Bert에서 가져온 BERT(Bidirectional Encoder Representations from Transformers)는 2018년에 Google이 발표한 자연어 처리 (NLP) 모델입니다. BERT는 특히 문장이나 문단의 문맥을 이해하는 데 매우 효과적이며, 그 이후로 많은 NLP 작업에서 최첨단 성능을 보여줬습니다.

 

  • Bidirectional (양방향): 전통적인 언어 모델들은 주로 한 방향 (왼쪽에서 오른쪽 또는 오른쪽에서 왼쪽)으로 텍스트를 처리합니다. 그러나 BERT는 문장 내의 단어를 고려할 때 그 단어를 둘러싼 양쪽 문맥을 모두 사용하므로 "양방향"이라는 용어가 사용됩니다.
  • Encoder: BERT는 Transformer 아키텍처의 인코더 부분만을 활용합니다. 원래 Transformer 모델은 인코더와 디코더로 구성되어 있지만, BERT는 인코딩 작업만 수행하므로 "인코더"라는 이름이 붙습니다.
  • Representations: BERT의 주요 목표는 문장이나 단어의 벡터 표현(representation)을 생성하는 것입니다. 이 표현은 후속 작업에서 사용되며, 주어진 입력의 복잡한 정보와 문맥을 포착합니다.
  • from Transformers: BERT는 Transformer 아키텍처를 기반으로 합니다. Transformer는  Attention Is All You Need라는 논문에서 소개된 아키텍처로, "Self-Attention" 메커니즘이 핵심입니다.

 

1. Transformer 구조

 

Transformer 구조는 2017년 「Attention Is All You Need」라는 논문에서 딥러닝 인공지능 연구팀, 구글 브레인의 Ashish Vaswani에 의해 소개되었습니다. 주로 자연어 처리 분야에서 깊은 문맥 이해를 위해 사용되며, 그 성능과 유연성으로 인해 많은 최신 NLP 모델의 기반이 되었습니다. Transformer의 핵심 요소는 "Self-Attention" 메커니즘입니다.

 

[Self-Attention 메커니즘]

  • 선형 변환: 입력 시퀀스의 각 단어에 대해 세 가지 다른 가중치 행렬을 사용하여 선형 변환을 수행합니다. 이로써 각 단어에 대한 Query (Q), Key (K), Value (V) 벡터를 얻습니다.
  • Attention Score 계산: Query 벡터와 모든 Key 벡터 간의 점곱(dot product)을 계산하여 Attention Score를 얻습니다. 이 점수는 특정 단어가 다른 단어와 얼마나 연관되어 있는지를 나타냅니다.
  • Softmax 적용: Attention Score에 Softmax 함수를 적용하여 확률 분포를 얻습니다. 확률 분포는 각 단어가 주어진 단어에 얼마나 중요한지를 나타냅니다.
  • 가중치 부여: 위에서 얻은 확률 분포를 사용하여 Value 벡터들에 가중치를 부여합니다.
  • 출력 생성: 가중치가 부여된 Value 벡터들을 합하여 Self-Attention의 출력 벡터를 생성합니다.

 

이러한 과정을 통해, Self-Attention은 각 단어가 문장 내에서 어떤 위치의 단어와 연관되어 있는지를 파악하고, 이러한 정보를 바탕으로 문맥적으로 풍부한 임베딩을 생성합니다. 또한, 실제 Transformer 모델에서는 "Multi-Head Attention"을 사용하여 여러 개의 독립된 Self-Attention 계층을 병렬로 수행합니다. 이를 통해 모델이 다양한 서브스페이스에서의 정보를 동시에 캡처할 수 있게 됩니다.

 

메커니즘은 입력된 시퀀스의 각 요소가 자신을 포함한 전체 시퀀스와 상호작용하도록 허용함으로써 문장 내의 단어 간의 관계를 더 깊게 파악할 수 있게 해 줍니다. 인코더는 입력 문장을 고차원의 임베딩으로 변환하고, 디코더는 이 임베딩을 사용하여 출력 문장을 생성합니다. 구조의 장점은 병렬 처리가 가능하다는 것입니다. 전통적인 RNN이나 LSTM은 시퀀스의 요소를 순차적으로 처리해야 했지만, Transformer는 모든 요소를 동시에 처리할 수 있어 학습 속도가 훨씬 빠릅니다.

 

2. 양방향 인코딩

 

양방향 인코딩은 자연어 처리에서 문장의 문맥을 깊게 이해하기 위한 중요한 전략입니다. 전통적인 언어 모델은 주로 왼쪽에서 오른쪽 또는 그 반대 방향으로 텍스트를 처리하였습니다. 이러한 한 방향적 접근법은 현재 단어의 문맥을 제한적으로만 파악할 수 있습니다. 그러나 양방향 인코딩은 문장의 각 단어를 고려할 때 그 단어 앞과 뒤의 모든 단어를 함께 고려합니다. 예를 들어 "나는 오늘 박물관에 갔다"라는 문장에서 "박물관에"라는 단어는 "나는 오늘" 및 "갔다"라는 양쪽 문맥에 의해 영향을 받을 수 있습니다.

 

BERT는 이러한 양방향 인코딩을 실현하기 위해 "Masked Language Model" (MLM)이라는 사전 학습 작업을 사용합니다. MLM에서 BERT는 문장의 일부 단어를 무작위로 가린 후, 가려진 단어를 예측하려고 합니다. 이 과정에서 모델은 양쪽 문맥을 동시에 사용하여 가려진 단어를 정확하게 예측해야 합니다. 양방향 인코딩의 주요 장점은 문장의 깊은 문맥 정보를 포착할 수 있다는 것입니다. 이로 인해 BERT와 같은 모델은 의미가 애매한 단어나 동음이의어, 그리고 긴 거리의 의존 관계를 더 잘 이해할 수 있게 되었습니다. 이러한 능력은 문장의 정확한 의미를 파악하는 데 큰 도움이 됩니다.

 

[논문 링크]

Attention is All you Need

 

3. 사전훈련 및 세부조정

 

  • 사전훈련 (Pre-training): 해당 단계에서는 대규모의 비지도 텍스트 데이터(ex. Wikipedia)를 사용하여 모델을 학습시킵니다. BERT에서는 "Masked Language Model" 작업을 통해 일부 단어를 무작위로 가리고, 가려진 단어를 예측하는 작업을 수행합니다. 이렇게 함으로써 모델은 광범위한 문맥 정보와 언어의 구조를 학습하게 됩니다. 사전훈련의 주요 장점은 풍부한 문맥 정보를 포착하고 일반적인 언어 지식을 획득할 수 있다는 것입니다.

 

  • 세부조정 (Fine-tuning): 사전훈련된 모델을 특정 작업(ex. 감정 분석, 질의응답)에 맞게 추가적으로 학습시킵니다. 이때 작은 양의 레이블이 붙은 데이터를 사용하여 모델을 학습시킬 수 있습니다. 세부조정의 핵심은 모델이 사전훈련에서 얻은 일반적인 언어 지식을 활용하여 특정 작업에 특화된 성능을 달성한다는 것입니다.

 

많은 NLP 작업에서 충분한 양의 레이블이 붙은 학습 데이터를 확보하기 어렵습니다. 사전훈련을 통해 모델은 비지도 데이터에서 학습할 수 있으며, 세부조정을 통해 작은 양의 데이터로도 높은 성능을 달성할 수 있습니다. 그리고 사전훈련은 일반적인 언어 지식을 모델에 전달하며, 세부조정은 지식을 특정 작업에 적용하게 합니다. 이러한 전이 학습 접근법은 다양한 도메인과 작업에서 효과적임이 입증되었습니다.

 

4. 전이 학습 (Transfer Learning)

 

전이 학습(Transfer Learning)은 딥러닝 및 기계 학습 분야에서 중요한 연구 주제로, 모델이 한 작업에서 학습한 지식을 다른 관련 작업에 적용하는 방법론입니다.

 

  • 지식의 일반화: 모델이 특정 작업에서 학습한 특징들은 다른 관련 작업에도 유용할 수 있습니다. 예를 들어, 이미지 인식 모델이 강아지와 고양이를 구별하는 작업에서 학습한 특징들은 사자와 호랑이를 구별하는 작업에도 도움이 될 수 있습니다.

 

  • 데이터 제한: 많은 작업에서는 충분한 학습 데이터를 얻기 어려울 때가 많습니다. 전이 학습은 모델이 다른 대규모 데이터셋에서 얻은 지식을 활용하여 이러한 데이터 부족 문제를 극복할 수 있게 해 줍니다.

 

여러 연구에서 전이 학습이 적은 양의 데이터만을 가진 작업에서도 모델의 성능을 크게 향상했음을 보여줬습니다. 그리고 이미 학습된 가중치를 기반으로 모델을 조정하므로, 전이 학습을 사용하면 모델의 학습 시간이 크게 단축될 수 있습니다. 전이 학습은 실제 세계의 다양한 문제, 특히 데이터가 제한된 경우에 매우 유용합니다. 예를 들어, 의료 영상에서 특정 질병을 탐지하는 작업에서 레이블이 지정된 데이터가 제한적일 수 있는데, 전이 학습은 이러한 작업에서 큰 도움이 됩니다.

 

5. 다양한 변형

 

BERT의 발표 이후로, 그 성능과 유연성 때문에 다양한 변형 모델이 연구되고 개발되었습니다. 이러한 변형들은 BERT의 기본 구조와 아이디어를 기반으로 하되, 특정 환경이나 작업에 더 적합하도록 최적화되었습니다.

  • RoBERTa: Facebook AI에 의해 개발된 RoBERTa는 "A Robustly Optimized BERT Pretraining Approach"의 줄임말로, BERT의 사전 훈련 방법을 개선하여 더 뛰어난 성능을 달성하려는 시도에서 나왔습니다.
    • 학습 데이터와 배치 크기: RoBERTa는 원래 BERT보다 훨씬 큰 데이터셋과 배치 크기로 훈련되었습니다. 이를 통해 모델이 더 많은 데이터에서 문맥 정보를 학습할 수 있게 되었습니다.
    • Next Sentence Prediction (NSP) 제거: BERT의 사전 훈련에서는 Masked Language Model과 함께 NSP 작업이 사용되었습니다. 그러나 RoBERTa는 NSP 작업을 제거하고 오로지 Masked Language Model 작업에만 집중하였습니다.
    • 동적 마스킹: 훈련 중에 각 에포크마다 입력 데이터의 마스킹 패턴을 변경하였습니다. 이로 인해 모델은 다양한 마스킹 패턴에서 학습하게 되어 더 견고한 표현을 학습할 수 있게 되었습니다.
    • 긴 시퀀스 학습: RoBERTa는 긴 문장 시퀀스를 처리할 수 있도록 훈련되었습니다. 이로 인해 모델은 더 긴 문맥 정보를 학습하게 되었습니다.
    • 빠른 학습 속도와 학습률 조정: RoBERTa는 더 높은 학습률과 더 빠른 학습 속도로 훈련되었습니다.

 

  • DistilBERT: BERT의 경량화 버전입니다. DistilBERT는 BERT의 크기와 복잡성을 절반으로 줄이면서도 원래 BERT의 대부분의 성능을 유지합니다. 이러한 경량화는 연산량이 제한된 환경(예: 모바일 기기)에서 모델을 배포하는 데 유용합니다.
    • 크기 및 연산량 감소: DistilBERT는 원래 BERT 모델(예: BERT-base)의 크기를 대략 절반으로 줄였습니다. 이렇게 함으로써 연산량도 대폭 감소되었습니다.
    • 학습 방식: DistilBERT는 "teacher-student" 학습 방법을 사용하여 훈련됩니다. 여기서 원래의 BERT 모델이 "teacher" 역할을 하며, DistilBERT는 "student" 역할을 합니다. 학습 과정에서 teacher 모델의 출력을 기반으로 student 모델이 학습되는데, 이렇게 함으로써 student 모델은 teacher 모델의 주요 지식을 흡수하게 됩니다.
    • Next Sentence Prediction (NSP) 제거: DistilBERT는 RoBERTa와 마찬가지로 Next Sentence Prediction 작업을 제거하였습니다.
    • 성능: DistilBERT는 원래 BERT의 대부분의 성능을 유지하면서 크기와 연산량을 줄였습니다. 구체적으로, GLUE 벤치마크에서 원래 BERT의 성능의 약 97%를 달성하였습니다.
    • 활용성: DistilBERT의 경량화된 특성은 연산량이 제한된 환경에서 빠른 추론 시간을 필요로 하는 응용 프로그램에 매우 적합합니다.

 

  • ALBERT: "A Lite BERT"의 약자로, BERT의 변형 모델 중 하나입니다. ALBERT는 BERT의 크기와 연산량을 줄이면서도 원래 BERT의 성능을 유지하거나 개선하는 것을 목표로 합니다. Google Research와 Toyota Technological Institute at Chicago에서 공동으로 개발되었습니다.
    • 파라미터 공유: ALBERT는 모든 레이어에서 파라미터를 공유하는 것을 특징으로 합니다. 이로 인해 모델 크기가 크게 감소하면서도 표현 능력은 유지됩니다.
    • 임베딩 분해: ALBERT는 큰 어휘 크기와 작은 임베딩 크기 간의 격차를 줄이기 위해 임베딩 매트릭스를 두 부분으로 분해합니다. 이 방법은 모델의 크기 감소에 기여하며, 연산량도 줄입니다.
    • Sentence Order Prediction (SOP): ALBERT는 BERT의 Next Sentence Prediction (NSP) 작업을 대체하기 위해 SOP 작업을 도입하였습니다. SOP는 두 문장의 순서를 올바르게 예측하는 것을 목표로 합니다.
    • 성능 및 크기: ALBERT는 원래 BERT보다 훨씬 작은 크기와 연산량을 가지면서도, 다양한 NLP 벤치마크 작업에서 뛰어난 성능을 보여주었습니다.
    • 확장성: ALBERT는 다양한 크기의 버전이 있으며, 이러한 버전들은 특정 작업과 환경에 따라 최적화될 수 있습니다.