Transformer를 이용한 대표적인 NLP 모델의 종류 정리
Transformer의 encoder를 사용한 NLP 모델과 decoder를 사용하는 NLP 모델의 차이를 이해하기 위해 정리를 해본다.
1. NLP는 무엇인가?
Transformer가 2017년 6월에 발표된 이후 NLP 연구는 획기적인 계기를 맞는다. NLP는 인간의 언어와 관련된 모든 것을 이해하는데 초점을 맞춘 언어학(Linguistic) 및 ML 분야이다. NLP 태스크의 목적은 개별 단어를 이해하는 것 뿐만이 아니라 해당 단어들의 컨텍스트를 이해하는 것이다.
2. 일반적인 NLP 태스크 목록
#1. 전체 문장 분류
- 리뷰 감상
- 스팸 메일 감지
- 문장의 문법 감지
- 두 문장간 논리적 관련성 감지
#2. 문장의 각 단어 분류
- 문장의 문법적 구성요소 인식(명사, 동사, 형용사)
- 명명된 개체 인식(사람, 위치, 기관)
#3. 텍스트 컨텐츠 생성
- 자동 생성된 텍스트로 프롬프트 완성
- 마스킹된 단어로 텍스트의 공백 채우기
#4. 텍스트로부터 대답으로 추출하기
- 질문과 컨텍스트가 주어지면 컨텍스트에서 제공되는 정보를 기반으로 질문에 대한 대답을 추출
#5. 입력 텍스트로부터 새로운 문장을 생성하기
- 텍스트를 다른 언어로 번역
- 텍스트 요약
3. Transformer의 일반 아키텍처
Transformer 모델은 크게 두개의 블록으로 구성된다.
Encoder (왼쪽)
- 입력을 받아 입력의 표현(representation) 또는 feature을 만듬.
- Encoder 모델은 입력을 이해하는데 최적화됨
Decoder (오른쪽)
- Encoder의 표현과 Decoder의 입력을 사용하여 target 시퀀스를 생성함.
- Decoder 모델은 출력 생성에 최적화됨
Transformer의 encoder와 decoder의 각 부분은 task에 따라 독립적으로 사용될 수 있다.
Encoder 전용 모델:
- 입력에 대한 이해가 필요한 task에 사용
- e.g., 문장 분류(sentence classification), 명명된 개체 인식(named entity recognition), 질문 답변(question answering)
Decoder 전용 모델
- 생성 task에 적합함
- e.g., 텍스트 생성(text generation)
Encoder-Decoder 모델
- 입력이 필요한 생성 task에 적합함
- e.g., 번역(translation) 또는 요약(summarization)
4. Encoder 모델
Encoder 모델은 Transformer의 encoder만 사용하는 모델로 각 stage에 어텐션 레이어가 초기 문장의 모든 단어에 접근할 수 있다. Encoder 모델을 흔히 auto-encoding 모델이라고도 한다.
이 모델을 pre-training하기 위해서는 일반적으로 주어진 문장 중 임의의 단어를 masking 한 후, 모델이 원래 문장을 찾거나 복원하는 작업을 수행하게 한다.
Encoder 모델은 전체 문장의 이해를 요구하는 task에 가장 적합하며 대표적인 Encoder 모델은 다음과 같다.
- ALBERT
- BERT
- DistillBERT
- ELECTRA
- RoBERTa
5. Decoder 모델
Decoder 모델은 Transformer의 decoder만 사용하며 auto-regressive 모델이라고 부르기도 한다. Decoder 모델의 어텐션 레이어는 각 stage에서 문장 내에서 주어진 단어의 바로 앞 단어만을 접근할 수 있다.
Decoder 모델의 pre-training은 일반적으로 문장의 다음 단어 예측을 중심으로 이루어진다. 따라서 텍스트 생성과 관련 task에 가장 적합하다. 다음은 대표적인 Decoder 모델이다.
- GPT
- GPT-2
- Transformer XL
6. Encoder-Decoder 모델
Encoder-Decoder 모델(또는 Sequence-to-Sequence 모델)은 Transformer의 Encoder와 Decoder를 모두 사용한다. 각 stage에서 encoder의 어텐션 레이어는 초기 문장의 모든 단어에 접근할 수 있는 반면, decoder의 어텐션 레이어는 입력으로 주어진 단어 앞 단어에만 접근할 수 있다.
Encoder-Decoder 모델은 주어진 입력에 따라 새로운 문장을 생성하는 요약, 번역, 생성적 질문 답변에 가장 적합하다. 다음은 대표적인 Encoder-Decoder 모델이다.
- BART
- mBART
- Marian
- T5