논문 ; RoBERTa: A Robustly Optimized BERT Pretraining Approach
참고 ; https://lsjsj92.tistory.com/626
논문 ; ALBERT: A LITE BERT FOR SELF-SUPERVISED LEARNING OF LANGUAGE REPRESENTATIONS
; bert와 같은 pre-trained language model은 모델의 크기가 커지면 성능이 향상되나, memory limitation, training time, memory degradation의 문제 발생
memory limitation ; 모델의 크기가 메모리에 비해 큰 경우 학습시 out of memory 발생
training time ; 학습하는데 오랜 시간이 소요됨
memory degradation ; layer의 수/ hidden size가 너무 커지면 모델 성능 감소
bert의 다음 사항을 개선하여 모델의 크기 줄이고 더 높은 성능을 얻음
일반적으로 Laguage representation 모델의 layer, hidden size가 클 때 더 높은 성능을 보임. but 무작정 늘리는게 좋을까?
메모리 부족
input sequence length가 384이상이면, 한 문장에 대한 훈련, inference 불가.
out of memory가 발생하지 않을 때, input length에 따른 maximum batch size
factorized embedding parameterization
bert에서는 input token embedding size==hidden size==input/output embedding size
albert에서는 input token embedding size<<hidden size
이렇게 설정한 이유 ;
input token embedding - 각 token의 정보를 담고 있는 vector생성.
output - 해당 token과 주변 token과의 관계를 반영한 contextualized representation.
→담고 있는 정보량 자체가 다르기 때문에 input token의 크기가 더 작아도 된다고 생각??????
- **cross layer parameter sharing** - layer간 parameter 공유
![Untitled](https://s3-us-west-2.amazonaws.com/secure.notion-static.com/99e1c492-e130-4502-a822-0f86f608b214/Untitled.png)
forward prop에서 성능이 약간 떨어지나, 크게 떨어지지 않음. 파라미터를 공유하게 되면 전체 파라미터의 수는 줄어들고 이는 곧 모델 크기가 줄어듦.
- **sentence order prediction(sop)**
- NSP와의 차이
NSP는 두 번째 문장이 첫 문장의 다음 문장인지를 맞추는 학습 데이터 구성시, 두번째 문장은 실제 문장 혹은 임의의 문장. 임의의 문장은 완전히 다른 topic 문장일 확률이 높으므로 문장 간 연관 관계 학습이 아니라 첫/두번째 **문장이 같은 topic에 대해 말하는지를 판단**함.
sop는 실제 연속인 두 문장과 두 문장의 순서를 앞뒤로 바꾼 것으로 구성되고 **문장의 순서가 옳고 그른지 판단.**
roberta, bert-large와 비교해도 albert의 성능이 더 좋다는 것!
참고 ; https://y-rok.github.io/nlp/2019/10/23/albert.html
논문 ; ELECTRA: PRE-TRAINING TEXT ENCODERS AS DISCRIMINATORS RATHER THAN GENERATOR
- generator가 너무 강하면 discriminator가 토큰의 진위여부를 가르는 task를 어려워 효과적인 학습을 방해한다고 추측.
small/large model에서 bert vs electra
electra의 모델이 작을 수록 성능이 높아지고 bert와의 성능차이가 커짐.
모델이 작아도 bert에 비해 빠르게 수렴.
electra가 fully trained됐을떄, bert보다 더 높은 정확도 달성