본문 바로가기

Upstage AI Lab 2기

Upstage AI Lab 2기 [Day100] NLP - Encoder Model(BERT) (이론)

Upstage AI Lab 2기
2024년 5월 7일 (화) Day_100

 

CH3. Encoder Model (BERT)

Part1. Transfer Learning이란

Transfer Learning

: 특정 도메인으로부터 학습된 모델을 비슷한 도메인 task 수행에 재사용하는 방법.

= Pre-training + Fine-tuning

Pre-training : 도메인에 대한 전반적인 특징을 학습

Fine-tuning : Pre-trained parameter를 task에 맞춰 조정

note : pre-trained 모델은 한개만 있으면 되고, task의 개수 만큼 fine-tuned model 있음. 레이블링 없는 데이터 활용 가능

 

ELMo(Embeddings from Language Models)

(before ELMo : Word2vec, GloVe 단어임베딩 - 위치정보x, 다의어 반영x, 문맥반영x)

ELMo : 문장 전체 input, 2개 층으로 이루어진 순방향 LSTM과 역방향 LSTM을 독립적으로 학습

 

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

Upper LSTM : 문맥 정보 학습

Lower LSTM : 문법 정보 학습

 

→ Contextualized Word Embedding : concat hidden layers from forward LSTM & backward LSTM

: 이전 토큰과 이후 토큰에 대한 정보가 반영되고 단어의 순서에 따라 임베딩 값이 달라지기 때문에 문맥정보를 반영

http://jalammar.github.io/illustrated-bert/

 

task 에 맞도록 가중치 조정 - 문맥이 중요할 경우 upper LSTM 가중치 ↑, 구조가 중요할 경우 lower LSTM 가중치 ↑, 순방향과 역방향 LSTM에 대한 가중치도 조정.

 

ELMo 의 장점 : 다의어 정보 표현 가능, ELMo 임베딩 만으로도 성능 향상 가능.

NLP에서는 PLM(Pretrained Language Model) 활용이 대세

[LM to LLM] (3-3) 문맥기반 언어지식 표현 체계 이론 강의자료 중

 


Part2. BERT 이해하기

BERT(Bidirectional Encoder Representation from Transformers)

: Transformer의 인코더만으로 구성

하나의 모델이 양방향으로 읽어 나가며 임베딩 수행 + transformer 이용하여 단어간 관계(attention) 파악

(chatGPT 이전 대세)

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

BERT-Base : 12 layers of transformer encoder with 12 self-attention heads, 768 hidden units per layer

BERT-Large : 24 layers of transformer encoder with 16 self-attention heads

 

입력 임베딩

[CLS] : 모든 문장의 첫 번째 토큰 

[SEP] : 서로 다른 문장 구별 + Segment Embeddings 추가 가능

Position Embeddings

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

 

Pretraining BERT

MLM(Masked Language Model) + NSP(Next Sentence Prediction)

→ 레이블이 필요 없어 다량의 데이터 사용 가능 pretraining이 가능해짐!

note : 제약조건없는 양방향 학습 → multi-layer 구조상 간접참조, 올바른 학습 불가

 

MLM(Masked Language Model)

 - 문장에서 무작위 단어 마스킹, 마스킹 된 토큰 예측하는 방식으로 학습. 단어 간 관계.

(각 문장의 토큰 중 15% 80% [MASK]로 치환, 10% 다른 단어 치환, 10% 보존)

NSP(Next Sentence Prediction)

 - 두 문장의 관련성 예측. 문장과 문장의 관계 또는 document 전체에 대한 정보 파악.

(두 문장을 [SEP]토큰으로 이어붙임. 50%는 실제, 50%는 데이터에서 임의로 선택)

 

BERT로 수행가능한 downsream tasks

(classifier = FNN+softmax)

1. Single Sentence Classification : 문장의 종류 분류. [CLS]의 임베딩 벡터를 classifier layer에 입력

[NLP Advanced] (3-2) BERT 이해하기 강의자료 중

2. Sentence Pair Classification : [SEP]로 이어진 두 문장 간 관계 분류. [CLS]의 임베딩 벡터를 classifier layer에 입력

[NLP Advanced] (3-2) BERT 이해하기 강의자료 중

3. Question Answering : 문장 내 정답 위치 예측. [SEP] 이후 토큰들에 대해 Start token과 End token 예측

 

4. Single Sentence Tagging : 모든 토큰에 대해 태그(개체명/품사) 예측

[NLP Advanced] (3-2) BERT 이해하기 강의자료 중

5. BERT as Embedding via Feature Extraction

https://livebook.manning.com/book/real-world-natural-language-processing/chapter-9/v-6/

 


Part3. Tokenizer 이해하기

Tokenizer : 입력 문장을 토큰 단위로 분해, 사전에 매칭하여 id로 입력

토큰화 품질 ∝ pre-training 결과

 

Subword Tokenizer : 단어를 하위 단어로 분리·전처리, OOV(Out-Of-Vocabulary)/희귀단어/신조어 등의 문제 완화

 1. BPE(Byte Pair Encoding) : character 단위로 분해 → 가장 많이 등장한 pair를 vocab에 update

 2. WordPiece : BERT에 사용, 전체 글자 중 쌍으로 등장하는 빈도수가 높은 문자열 우선 병합. 학습데이터 환경 고려.

 

참고자료:

https://wikidocs.net/22592

https://jalammar.github.io/illustrated-bert/