ALBERT에서는 어떤 방법으로 BERT의 학습 파라미터 수를 줄였는가?
워드 임베딩을 hidden layer의 크기로 바로 맵핑하는 것이 아니라, 더 작은 값인 embedding size로 새로 설정해주어 이후의 파라미터의 수를 전체적으로 줄입니다. 초반에 줄이는 것이기에 심지어 뒷부분에서 레이어 수를 늘리거나 복잡하게 만들더라도 엄청나게 파라미터의 수가 증가하지 않아서 이러한 이점을 잘 활용했다고 합니다. 코드로 살펴보면, 워드 임베딩하는 부분에서, BERT에서는 hidden_size이었던 것이 embedding_size로 바꾼 것을 볼 수 있습니다. 기본 configuration 기준으로, BERT에서 hidden_size는 768이었고, ALBERT에서 embedding_size는 128로 설정되어 있습니다. 훨씬 적은 크기로 임베딩됩니다. (주의: 최종 임베딩 크기는 아님) 워드를 임베딩하는 것이 이렇게 작아도 됐었는지 결과가 신기하다.
어텐션과 FFN에서 레이어간에 파라미터를 공유하게 하여 하나의 뎁스에서만 파라미터들이 학습되는 것을 막았습니다.
결과적으로 BERT-large에 비해 ALBERT 모델이 18배 적은 수의 파라미터를 갖게 되었습니다. 파라미터의 수만 줄인 것은 아니었습니다. 문제를 다르게 설정하여 다른 loss를 사용했습니다. 기존의 BERT에서 설정한 문제는 두 문장이 주어지고, 랜덤하게 하나를 선택해서 나머지 하나를 예측하는 것이었습니다. (BERT이후 진행된 다른 연구들에 의해 어느정도 알려진대로) 다음 문장 예측을 하는 것 보다는, 문장의 일관성을 예측하는 문제가 학습하는데 더 좋았다고 합니다. 이러한 문제를 위해 설계된 loss가 SOP(Sentence-Order Prediction) loss 입니다.