상세 컨텐츠

본문 제목

BERT

NLP

by LYShin 2023. 1. 9. 15:17

본문

- BERT는 자연어처리 모델에서 큰 성능향상을 가져온 모델/학습 방법입니다. 

- BERT를 기반으로 다양한 모델이 파생되어 현재까지 많은 분야에서 사용되고 있습니다.

- 본 글에서는 BERT에 대해 간략히 소개합니다.

 

 

1. 학습 방법

 

BERT모델을 학습하는 방법은 Masked Language Model(MLM)과 Next Sentence Prediction(NSP)입니다. MLM은 특정 확률로 마스킹된 단어를 예측하여 학습하는 방법이고, NSP는 두 개의 문장이 실제로 연결된 문장인지를 예측하여 학습하는 방법입니다. 

 

 

 

MLM은 입력 문장에서 각 단어를 K%의 확률로 마스킹하는데, 논문에서는 15%의 확률을 사용합니다. 만약 마스킹이 너무 적다면 학습 효율이 떨어지고, 너무 많다면 문장의 맥락을 파악하기 힘들어 학습이 어려워집니다.

 

 

 

15%의 확률로 마스킹된 단어를 모두 [MASK]토큰으로 사용하지는 않습니다. 그 중 80%만을 [MASK]토큰으로 변경합니다. 10%는 완전히 다른 의미를 갖는 단어로 변경하고, 나머지 10%의 단어는 그대로 사용합니다.

 

 

 

NSP는 다음과 같이 이어진 두 문장이 입력으로 주어질 때, [CLS]토큰을 통해 두 문장이 연속적인 문장인지 판별하는 학습방법입니다.

 

 

 

2. 모델 아키텍처

 

BERT의 모델 아키텍처입니다. BERT는 Transformer의 Encoder를 사용하여 구성되었습니다. 따라서 기존의 Transformer와 거의 유사합니다. L은 Transformer의 개수를 의미하고 H는 Hidden state의 차원을 의미합니다. A는 Multi-head Attention의 개수를 의미합니다. 즉, BERT BASE는 12개의 Transformer, 768개의 Hidden state 차원, 12개의 Multi-Head Attention을 사용합니다.

 

 

3. 입력 데이터 처리

 

BERT모델에서 입력 데이터에 대한 설명입니다. WordPiece embeddings(tokenizer)은 단어를 Charater Level부터 Subword Level까지 통계적 기법을 통해 사전(Dictionary)을 구축하는 알고리즘입니다. BERTWordPiece를 통해 30,000개의 토큰 종류를 구축하여 사용합니다.

 

Positional Embedding은 Transformer에서 사용되던 Sine, Cosine 함수 대신 embedding layer를 사용했습니다. 이는 단어의 위치 정보를 학습함으로써 더 좋은 성능을 기대했기 때문입니다.

 

입력 문장에는 문장의 순서 여부, 문장의 긍부정 등 분류를 학습하는 [CLS]토큰과 문장과 문장을 나누는 [SEP]토큰이 추가되어 입력됩니다.

 

마지막으로 Segment Embedding은 연속된 문장으로 이루어진 경우 문장의 구분을 위해 사용됩니다. 첫 번째 문장의 단어에 대한 포지션은 \(E_A\), 두 번째 문장의 단어에 대한 포지션은 \(E_B\)로 구분되어 사용하는 것을 확인할 수 있습니다. 

'NLP' 카테고리의 다른 글

LLM with RAG - milvus server  (0) 2024.05.07
LLM with RAG  (0) 2024.05.07
Transformer  (0) 2023.01.06
Tokenization  (0) 2023.01.04
Normalization and Pre-Tokenization  (0) 2023.01.03

관련글 더보기

댓글 영역