Language Representation 모델의 크기가 클 때 발생할 수 있는 문제점
BERT base : 16개의 TPU로 4일의 학습기간 소요
BERT large : 64개의 TPU로 4일의 학습기간 소요
이를 GPU로 변경한다면,
BERT base : 16개의 V100 GPU 5일 이상의 학습 기간 소요
BERT large : 64개의 V00 GPU 8일 이상의 학습 기간 소요
모델의 크기를 줄이고 성능은 높일 수 있는 방법 고안 필요
BERT 모델의 크기를 줄이기
fatorized embedding parameterization
BERT에서는 input token embedding과 hidden size의 크기가 동일함
ALBERT에서는 input token embedding size < hidden size로 설정하여 parameter의 수를 줄임
1) input token embedding은 입력 데이터의 각 토큰에 대한 정보를 담고 있는 벡터를 생성하지만 transformer 레이어의 output은 해당 토큰과 주변 토큰들 사이의 관계를 반영한 representation을 나타내므로 입력 임베딩이 보다 적은 정보량을 담고 있기 때문에 출력 결과물보다 크기가 작아도 된다는 것을 직관적으로 이해할 수 있음
2) 그러나 input token embedding과 hidden size의 크기가 달라지면 첫번째 trasnformer layer에서 차원이 맞지 않는 문제가 발생함. 이를 해결하기 위해 하나의 layer를 추가함.
→ 기존 BERT : Vocab size * Hidden Size를 활용하여 token embedding
→ ALBERT : Vocab size Input Token Embedding / Input Token Embedding Hidden Size 2개의 matrix를 연달아 곱하는 방식으로 Hidden Size의 토큰 임베딩 제작
→ BERT의 경우 Vocab size의 크기가 매우 크고, Input Token Embedding, Hidden Size의 크기는 작으므로 보다 적은 파라미터 수로 학습이 가능함 [Factorized Embedding]
cross layer parameter sharing
transformer layer 사이에 같은 Parameter를 공유하여 사용하는 것
tranforemr 각layer의 결과물이 다시 입력으로 들어가는 형태, Recursive Transformer
논문에서는 실험 결과를 통해 layer간 파라미터를 공유하더라도 그 성능이 크게 떨어지지 않음을 밝혀냄. 그러나 feed forward network에서는 공유 시 성능이 다소 떨어지는 것을 확인할 수 있음
NSP보다 나은 학습 방식 고안
Sentence Order Prediction
→ 기존 NSP : 두번째 문장이 첫번째 문장의 다음 문장인지 유추하는 태스크로 학습 데이터 구성 시 절반은 실제 연속되는 문장, 나머지 절반은 임의의 문장으로 구성함. 이때 임의로 추출한 두번째 문장의 경우 첫문장과 완전이 상이한 주제의 문장일 가능성이 높으므로 문장 사이의 연관성에 대해 학습하기보다는 두 문장이 동일한 주제로 이뤄져있는지를 판단하는 topic prediction 태스크로 이해할 수 있음
→ SOP : 실제 연속인 두 문장과 그 문장의 순서를 바꾼 것으로 학습 데이터를 구성하여 문장의 순서가 올바른지 예측하는 방식으로 학습함. 이를 통해 기존 NSP에 비해 두 문장의 연관성에 대해 보다 잘 학습할 것이라 기대할 수 있음
→ SOP 학습 시 NSP에 대한 성능 어느정도 커버 가능하지만 NSP의 경우 SOP 태스크에 대해 낮은 성능 보이는 것을 확인할 수 있음.
→ 더불어 SQuAD, MNLI, RACE 등의 task에서 SOP를 적용할 경우 보다 높은 성능을 보임