강의 소개
드디어 KLUE 강의의 마지막 강의입니다.
지금 이 순간에도 더 좋은 성능을 갖는 모델을 만들기 위해 많은 연구자들이 RoBERTa, XLNet, BART, T5 등등, 다양한 실험과 새로운 알고리즘을 개발하고 있습니다. 🤗
최신 언어모델 관련 연구 트랜드를 살펴볼게요!
Reference
-
Reformer
-
T-5
-
Roberta
-
Longformer
-
Multimodal transformers
BERT 이후의 다양한 LM
- XLNet
- RoBERTa
- BART
- T5
- Meena
- Controllable LM
Multi-modal Language Model
- 할머니 세포
- LXMERT
- ViBERT
- Dall-e
XLNet
- 기존 모델의 문제점
- BERT : Mask Toekn을 독립적으로 예측하고, Token 사이의 관계를 학습이 불가하며, embedding length 한계로 sengment간 관계 학습 불가
- GPT : 단일 방향성으로만 학습
- XLNet - 상기 문제를 보완하며 나온 모델!!
- embedding length의 한계를 극복하기 위해 positional encoding을 relative positional encoding 방식 적용!!seq 길이제한이 없어짐
- Masking 제거 => Permutation language Modeling 적용
- 모든 토큰을 순열 조합으로 순서를 섞고, 섞인 sequence가 학습의 대상이 됨
RoBERTa
- BERT의 한계점을 극복한 또 다른 모델
- Model 학습 시간 증가 + batch size 증가 + Train Data 증가
- 쉬운 테스크인 NSP 제거
- Long sentence 추가
- Dymanic Masking 적용
BART
- RoBERTa와 XLNet의 장점 즉, text를 어떻게 encoding하면 성능이 올라갈 지에 대한 아이디어 두 가지를 적용한 모델
- Transformer의 encoder와 docoder를 하나로 합친 통합 LM
- RoBERTa의 Masking + XLNet의 순열 sequence
- 문서 자체의 token을 rotation하여 올바르게 맞추는 예측 task도 포함
T-5
- 또 다른 transformer의 encoder-decoder 통합 LM (현재까지 끝판왕!!)
- pretrain 과정에서 다양한 task에 대해 다양하게 학습 가능!!(SQUaD, GLUE 등...)
- Masking은 하나의 토큰만이 아니라 의미를 가진 여러 어절들을 masking하여 Multi-Mask를 복원하는 과정을 학습
Meena
- 대화 모델을 위한 LM
- 1개의 transformer encoder layer + 여러 개의 transformer decoder layer 구조
- 챗봇의 새로운 평가 Metric(SSA) 제시
- SSA : Sensibleness ans Specificity Average
- Sensibleness : 현재까지 진행중인 대화의 가장 적절한 답변을 했는가에 대한 지표
- Specificity : 얼마나 구체적으로 답변을 했는가에 대한 지표
- 이 두 가지에 대해 사람이 평가하여 성능 측정
이처럼 end-to-end generation chatbot이 단순히 말만 잘하면 될까?
결론은 아니다. 인간과 같아지려면 인간과 같은 윤리성을 지녀야 하지만, Model은 확률 기반이므로 윤리성을 컨트롤 할 수 없다.
그래서 이런 컨트롤을 할 수 있게 연구되는 분야는 다음 소개할 Controllable LM 분야이다.
Controllable LM
- PPLM : Plug and Play Language Model
- 다음 단어에 등장할 단어를 예측할 때에는 확률 분포를 기반으로 선택
- 다음에 나올 단어들에 대해 BOW에 저장
- 예로, 긍정의 답변을 원할 경우, 긍정의 답변을 BOW에 저장
- 여기서 PPLM이 제시하는 방법은, 원하는 답변이 최대 확률이 되도록 이전 상태의 Vector를 수정
- 이 방법을 사용하면, 확률 분포를 사용하는 것이기에 유사한 성향의 답변들을 중첩하여 사용할 수 있음
- 또한 특정 카테고리에 대한 감정을 컨트롤하여 생성도 가능
- 예를 들어, 특정 정치,종교,성적,인종적 키워드에 대해서 중성적인 단어를 생성 가능하며
- 범죄 사건에 대해 부정적인 단어를 선택 가능
- 또한, 확률 분포 조절을 통해 그라데이션 분포를 가능
- 예를 들어, 분노에 대해 분노의 정도에 따른 답변을 지정 가능함
누군가는 부정적 내용을 삭제하면 편향된 데이터가 제거된 결과를 반환한다고 생각할 수 있지만 이는 틀린 얘기다. LM 모델은 언어를 잘 하는 것을 배우고 학습하는 것이다. 따라서 학습 단계에서는 모든 내용을 사용하지만, 사람과 같이 윤리적인 것을 같이 학습시키게 되면 편향된 데이터에 대해서도 컨트롤이 가능하다.
하지만 과연 자연어 to 자연어로 LM을 학습시키는게 충분할까?
이것도 아니다. 사람이 언어를 배울 땐, spoken language(Multi-Modal)를 통해 학습을 한다. 즉, 언어뿐만 아니라, 시각, 청각, 후각, 촉각, 미각 등 모든 감각을 통해 세상을 학습한다. 따라서 모델 역시 다양한 방식으로 학습을 진행해야 한다.
Multi-Modal LM
- LXMERT
- BERT for vision-and-language
- BERT와 동일한 구조
- 단 semgment A에는 image에 대한 embedding token을, segment B에는 자연어에 대한 embedding token을 넣음
- Dall-e
- Multi-Modal LM 중 가장 sensation을 준 모델!
- OpenAI 모델
- 자연어에서 이미지를 생성해내는 모델!!
- 학습 방법
- VQ-VAE를 통해 이미지 차원 축소
- 이미지의 경우 256x256x3의 크기를 들 수 있는데, 이 경우 bert만 하더라도 512 length를 넘게 됨
- 따라서 VQ-VAE를 통해 중간에 나오는 latent vector를 이미지 벡터로 환산
- 그 후 GPT2와 동일함
- 우선 text token을 input하는데 256 token을 할당!
- 그리고 이미지 벡터를 생성해내도록 함
- 이렇게 학습을 했을 떄 자연어로만 입력을 했더라도 그럴듯한 이미지를 생성해냈다고 합니다.
이걸 마지막으로 10강이 끝났다.
이번 10강을 통해 그 동안 뒤섞였던 내용들이 총 정리된 느낌이다.
그리고 추가적으로 공부했던 것은, batch size vs generalization performance이다.
붓캠 초기 강의에선 batch size를 줄이는 것이 일반화 성능을 올릴 방안이라 했지만, 이후에는 batch size를 늘리는 것이 일반화 성능 및 학습 시간을 개선하는 방법이라고 했다.
결과적으로 맞는 말이지만 한 가지 조건이 빠졌던 것인데, 바로 learning rate이다.
batch를 늘리게 되면 큰 batch를 한 번에 학습을 하므로 gradient가 sharp해지고 overfitting이 발생하지만, learning rate를 늘리게 되면, 특정 bad minima에 빠지지 않ㄱ 학습이 가능하여 batch size가 적은 것과 유사한 성능을 낼 수 있다는 점이었다.
그리고 이 10강을 마치며, 어느 정도 내가 가야 할 길을 조금은 찾을 수 있게 되었다. 현재는 NLP를 집중적으로 공부하고 있지만, 앞으로는 Multi-Modal이 필수적이라고 생각되므로, NLP뿐만 아니라 CV에도 조금 더 노력하여 공부해볼 예정이다.