지난 시간 BERT에 대해 알아본 것을 복습한다.
버트가 등장하기 전에는 이렇게 encoder-decoder 모델이 주를 이뤘다.
버트는 input에 [mask]로 일부를 가리고 복원할 수 있도록 학습되었다. transformer의 encoder 부분만을 떼왔다.
sentence1과 sentence2를 [sep]로 이어 붙여서 input으로 넣어준다. 모델은 두 문장이 관련이 있는지를 [cls]에 해당하는 output을 활용하여 예측한다. [cls] 토큰에 해당하는 hidden vector가 두 문장의 관계를 나타내는 정보를 담고 있다고 가정한다.
1. Input Preprocessing Step
BERT는 wordpiece tokenizer를 사용한다.
토큰화가 끝나면 다음 문장을 이어붙이거나 무작위로 추출한 문장을 이어붙여서 input을 만든다.
(Masked Language Model) special token을 제외하고80% 확률로 [mask]를 씌운다. 10퍼센트 확률로는 아예 변환을 수행하지 않고 또 10퍼센트는 마스킹 말고 아예 다른 단어로 대체한다.
이렇게 최종 input의 모습이 결정된다.
참고로 한국어 문장에서는 tokenizer에 따라 목표하는 task에서의 성능이 크게 달라질 수 있다. (https://arxiv.org/abs/2010.02534)
한국어 문장에 대해 형태소 분석을 수행한 후 wordpiece를 적용하는 결과가 제일 좋다고 한다.
2. General Purpose
NLP에는 다양한 task가 있다. 사전학습된 BERT모델을 가지고 아래 네 가지 방법으로 모든 downstream task에 사용할 수 있다.
1. 단일 문장 분류
- [CLS] 토큰에 해당하는 hidden vector를 classifier에 통과시켜서 분류할 수 있다.
- 문장의 카데고리를 분류하거나 긍/부정 점수를 매길 수 있다.
2. 두 문장 관계 분류
- [CLS] 토큰에 해당하는 hidden vector를 classifier에 통과시켜서 분류할 수 있다.
- 문장 안에 존재하는 subject와 object의 관계를 분류하는 RE task도 이 방식으로 풀 수 있다.
- 혹은 단순히 sentence1, sentence2가 의미적으로 유사한지 판단할 수 있다.
3. 문장 토큰 분류
- 문장 내 토큰별 hidden vector를 classifier에 통과시켜 분류할 수 있다.
- 개채명 분석처럼 문장 내 단어의 품사 혹은 어떤 클래스인가를 분류한다.
4. 기계독해
- 질문 뒤에 지문를 이어 붙여서 input을 구성한다. 모델은 question의 정답 위치를 paragraph에서 (시작,끝)으로 잡아내도록 한다.
'boostcamp AI tech > boostcamp AI' 카테고리의 다른 글
XLNet, RoBERTa, BART, T5, Meena (0) | 2024.01.18 |
---|---|
GPT-3/GPT-4 and Latest Trend 2 (0) | 2024.01.17 |
NLP task : Relation Extraction (0) | 2024.01.03 |
Representation Learning & Self Supervised Learning (0) | 2024.01.02 |
GPT-3 and Latest Trend (0) | 2024.01.01 |