BERT의 파생 모델 ALBERT
A Lite version of BERT의 줄임말로 BERT의 라이트 버전이다.
BERT모델 학습 및 추론 시 소비되는 시간 감소, 컴퓨팅 리소스 감소를 위한 모델
리소스 감소를 위해 아래 두 가지 방법을 제안한다
- factorized embedding parameterization
- cross-layer parameter sharing
Factorized embedding parameterization
논문에서는 토큰이 임베딩 레이어를 거치는 것은 맥락과는 독립적인 representation(임베딩 벡터) 학습을 거치지만, 그 뒤 히든 레이어를 거치는 것은 맥락 의존적인 결과를 낸다고 본다. 그리고 BERT와 같은 모델이 좋은 성능을 발휘하는데는 맥락에 대한 학습에서 온다고 본다.
→ 그러므로 워드피스 토큰에 대한 임베딩 벡터(E)가 인코더(H)에 입력되기 위한 이유로 각 토큰 당 768차원까지 커질 필요가 없다고 본다. 또한 E가 H로 들어갈 때 단어(Vocabulary)가 늘어날수록 최소 V * 768의 weight가 생성되어 학습을 진행한다. 이 과정에서는 맥락을 학습하지 않으므로 불필요한 크기라고 보는 것이다.
→ 그래서 각 토큰을 128차원으로 임베딩한 후 다시 768차원으로 늘리는 중간 단계를 넣기로 했다. 이 과정을 행렬 분해로 보면서 이름으로 Factorized가 붙여진 듯 하다. 논문에서 실험 환경으로 V를 3만 개로 설정했는데 30000 * 786의 weight 개수를 30000 * 128 + 128 * 786으로 변경해서 모델의 학습량을 줄이는 방식을 소개하며 기존 BERT모델과의 성능 비교를 보여준다.
Cross-layer parameter sharing
기존 BERT모델은 12개의 인코더 레이어 구성에서 첫 번째 인코더 레이어 연산이 끝난 representation이 두 번째 인코더 레이어의 인풋값으로 들어가고, 이 과정을 12번 거치는 방식이었다. 그러므로 12개의 인코더 내부 weight값은 모두 다르고 제각기 학습이 진행된다.
ALBERT에서는 첫 번째 인코더에서 학습된 weight값을 나머지 11개의 인코더에 공유하는 방식을 소개했다. 그렇게 되면 학습해야할 weight가 대략적으로 기존 모델에 비해 1/12로 감소하게 된다. 이로 인해 학습 속도를 개선하는 것이다.
→ 위와 같은 방식은 전통적인 RNN 방식을 떠오르게 한다. 임베딩 벡터가 하나의 인코더에 입력되어 총 12번 순환하는 방식과 같다.
ALBERT에서는 또한 weight를 공유하는 방식을 여러가지로 구분하여 실험을 진행했다.
- All-shared: 첫 번째 인코더에 포함된 모든 weight값을 나머지 인코더와 공유한다.
- Shared feedforward network: 인코더 내 피드포워드 weight만 다른 인코더와 공유한다.
- Shared attention: 인코더 내 멀티헤드어텐션의 weight만 다른 인코더와 공유한다.
→ 실험 결과 attention weight만을 공유한 ALBERT 모델과 전혀 공유하지 않은 BERT 모델 간 성능에 큰 차이를 보이지 않았다고 한다.
ALBERT의 모델 학습 방식
기존 BERT 모델에서 MLM과 NSP task를 통해 학습하는 방식과 달리 NSP 대신 SOP(Setence order prediction) 방식을 취했다.
→ NSP의 문장과 문장의 연결성, 일관성을 파악하는 task에서 오답으로 A문장과 타 문서 내 B문장을 결합해서 train data로 활용한다. 이 과정은 문장 간의 연결성과 더불어 주제에 대한 예측 task가 하나로 결합된 것임을 지적한다.
→ 이를 해결하고자 주어진 두 문장 A과 B의 순서가 바뀌었는지 아닌지를 학습하는 task로 접근한다. 이렇게하면 하나의 문서 내 문장을 조합하여 정답과 오답을 만들 수 있으므로 task가 하나의 주제 안에 머물게 되어 주제 예측에 대한 task 가능성이 배제된다.
성능
우선 parameter 양에서 엄청난 차이를 보이는 것을 알 수 있다. 성능 측면에서도 나쁘지 않은 결과를 확인할 수 있다. BERT-base 모델과 ALBERT-large 모델 성능이 비슷한 것을 확인할 수 있으며 ALBERT xxlarge 모델의 경우 BERT-large의 parameter보다 100M 가량 작지만 성능이 향상된 것을 볼 수 있다.
'데이터사이언스 이론 공부' 카테고리의 다른 글
BERT의 파생모델 [ELECTRA] (0) | 2022.12.26 |
---|---|
BERT의 파생 모델 [RoBERTa] 특징 (0) | 2022.12.22 |
BERT 모델에서의 임베딩 벡터 추출 방식에 관하여 (0) | 2022.12.17 |
하위 단어 토큰화 알고리즘 정리 (sub-word tokenize) (0) | 2022.12.14 |
역전파 알고리즘 손계산 (0) | 2022.12.12 |