Seq2Seq task다. 주어진 문맥을 활용해 다음 단어를 예측하는 task.
특정 시점의 문장에 대한 다음 단어가 나타날 확률을 예측하는 task로도 생각할 수 있다.
Sequence의 순서대로 model에 sequence를 입력한다. 이전 hidden state를 활용해 다음 step의 input으로 활용한다.
RNN은 task를 위해서 설계된 모델이기 때문에, 특정 task에서만 잘 작동한다. e.g., Seq2Seq model은 Seq2Seq만 처리.
양방향 언어 모델링. 이러한 개념을 처음 제시한 것은 ELMo(Embeddings from Language Models)다.
자연어를 Embedding 후 언어 모델링 task를 수행하는 것 자체가 다른 NLP task를 처리할 수 있다는 가능성을 보여줬다.
위 도식의 오른쪽 그림과 같이 ELMo는 Forward, Backward 두 방향으로 Language model을 수행한다.
기존에는 SQuAD(질의응답), SNLI(문장 사이의 모순 파악), SRL(의미역 결정), Coref(Entity 찾기, Blog), NER(Entity 인식), SST-5(문장 분류)에 특화된 모델이 별도로 존재했다.
ELMo는 하나의 Language Model을 통해서 6개의 task를 모두 수행했고 정확도 또한 유의미함을 보여줬다.
Bidirectional Encoder Representations from transformers. Transformer를 사용해 양방향 언어 모델링을 수행한 논문이다.
대량의 corpus에서 encoding, decoding transformer를 사전 학습하고 이를 통해 Embedding을 추출한다. ELMo에서는 두 개의 RNN을 통해 Bidirectional Encoder르 구현했다면 BERT는 transformer를 통해 양방향 학습을 동시에 진행한다.
ELMo와 동일하게 Language modeling을 통해서 여러 nlp task를 수행할 수 있다는 것을 보여줬다.
기존에도 single langauge model만으로 여러 nlp task를 처리하고자 했지만 BERT의 성능이 제일 좋았고 사용법도 보다 쉬워졌다.
GLUE와 SQuAD 1.1, 2.0에서 효과적으로 동작함을 보여줬다.
General Language Understading Evaluation.
Language model이 자연어를 얼만큼 이해하는지 평가하는 데이터셋과 task 정의.
표준화된 데이터셋과 이에 대한 nlp task는 정의 덕분에 BERT와 이후의 모델 평가가 매우 용이해졌다. Facebook의 RoBERTa, Stanford의 ELECTRA, Google의 ALBERT 등 모두 이러한 체계 아래서 공정하게 평가가 이뤄졌다.
GLUE Benchmark는 아래와 같다. ref:https://vanche.github.io/NLP_Pretrained_Model_BERT(2)
GLUE는 Benchmark를 통해 지속적으로 모델을 발전시킬 수 있는 계기가 됐다.
GLUE 외에도 Google의 T5(Blog), Facebook의 BART(Blog) 등의 Langauge model 평가를 위한 Benchmark가 생겼다.
Benchmark를 통해 자연어를 얼만큼 잘 생성하는지를 평가할 수 있는 Benchmark들이다.
Masking되거나 noise가 발생된 자연어에 대한 복원을 encoder가 하지 않고 decoder의 output을 통해 복원하도록 한다. 즉, decoder까지 pre-train의 범주에 넣어서 사용하도록 했다.
GLUE가 영어이기 때문에 다른 언어들은 영어 기반의 접근법읠 활용할 수 밖에 없었다. 해당 언어의 특성이 고려되지 않았기 때문에 영어 기반 접근법을 수정하거나 해당 언어에 특화된 방법론을 따로 고안해야하는 비효율적인 과정이 발생했다.
따라서 다국어 Benchamark들이 등장하면서 해당 언어들에 특화된 Benchmark를 직접 고안하고평가하기 시작했다.
KLUE(Korean Lanuguage Understading Evaluation)