🥳 200만 유저의 친구 ‘이루다’ 기술로 AI 캐릭터를 자유롭게 만들어보세요 ‘핑퐁 스튜디오’ 보러가기

Tech

Transformer - Harder, Better, Faster, Stronger

Transformer 구조체와 이 구조를 향상시키기 위한 기법들을 같이 알아봅시다.

구상준 | 2020년 01월 03일 | #Machine_Learning

이번 블로그에서는 2017년에 발표되어 자연어처리 분야의 한 획을 그었던 Transformer 구조와 이를 활용한 GPT / BERT 구조에 대해서 다룹니다. 아울러 어떠한 문제들이 있었고 연구자들이 어떻게 그 문제들을 풀려 노력했는지에 대해서 같이 알아보고자 합니다.

Table of Contents

  1. 들어가며: Transformer 에 대해서
    1. 기존 순환 신경망 구조와 그 한계
    2. Attention에 대해서
    3. Transformer의 구조
      1. Attention in Transformer
      2. Encoder block and Decoder block
  2. Transformer의 구현체: GPT와 BERT
    1. GPT와 BERT의 성질과 비교
    2. Transformer 기반 모델의 문제점
  3. 더 똑똑하게 훈련하기(Harder and Better)
    1. XLNet: Transformer-XL based Approach (XLNet)
    2. RoBERTa: Robustly Optimized BERT Pretraining Approach
    3. MT-DNN: Multi-Task Deep Neural Network
    4. T5: Text-To-Text Transfer Transformer
  4. 빠르고 강하게 줄이기 (Faster and Stronger)
    1. Transformer.zip: Quantization and Pruning
    2. DistilBERT: Knowledge Distillation
    3. ALBERT: A Lite BERT
  5. 이 글을 마치며
  6. References

들어가며: Transformer 에 대해서

기존 순환 신경망 구조와 그 한계

2010년대는 신경망의 재발견의 시대라고 말해도 과언이 아니라 할 수 있습니다. GPU의 성능이 발전하고 여러 신경망 기법이 재조명되면서 많은 연구자들은 연구하는 분야의 기법들을 신경망의 형태로 구현하기 시작하였습니다. 자연어처리 분야도 예외는 아니었습니다. 기존 방법론에서는 문장을 확률 그래프 모델인 Hidden Markov Model (HMM)과 Conditional Random Field (CRF)으로 나타내었는데, 이 구조 역시 빠르게 신경망 구조로 대체되었습니다. 2016년까지 그 선택지로 제시된 주로 제안된 구조는 순환 신경망 (Recurrent Neural Network, RNN)과 그 파생 구조 (LSTM이나 GRU 등)이었습니다. 순환 신경망은 출력이 입력으로 들어가는 구조를 의미하는데, 일반적으로 문장을 표현할 때의 순환 신경망은 이전 단어에서의 hidden_state가 해당 단어의 hidden_state를 결정하는 것에 사용되면서 단어의 뜻을 순차적으로 반영하는 구조를 말합니다. 이 구조들에서 각 단어를 나타내는 벡터는 그 앞 단어의 벡터에 의해서만 직접적으로 영향받게 됩니다.

이 모델은 문장을 효율적으로 나타낼 수 있었지만, 두드러지는 단점이 있었습니다. 그 단점은 순차적으로 입력이 들어가기 때문에 거리가 먼 단어의 영향력이 줄어든다는 점 (Long Term Dependency Problem)이었습니다. 즉, 바로 앞 문장의 가중치에 의존하는 구조 특성상, 긴 문장이 나왔을 때 앞 쪽에 나온 단어의 영향력을 모델이 잊어버리는 현상 (Vanishing Gradient)이 발생합니다.

Long Term Dependency Problem

Attention에 대해서

일상적인 문장을 분류하는 문제를 다루는 경우는, 예를 들어 문장의 감정값을 추출하거나 의도를 파악하는 경우는, 문장의 길이가 짧기 때문에 이 문제가 크게 심각하지는 않았습니다. 하지만 문장을 새로 생성하는 경우 특히 기계 번역을 하는 경우에는, 새로 만들어 내는 단어들 때문에 문장이 길어지는데다가 언어 특유의 어순에 따라서 멀리 있는 단어를 참조해야하는 경우가 많았기 때문에 성능을 저하시키는 중요한 문제가 되었습니다.

‘먼 거리에 위치한 단어의 영향력을 현재 단어에 효과적으로 반영할 수 있는 방법이 없을까?’ 이 문제에 대한 답으로써 Bahdanau et al.은 Attention 구조를 제안하였습니다. 제안된 Attention 구조는 각 입력 단어가 출력 상태에 연결되는 신경망을 추가로 두어서, 바로 직전 단어 뿐만이 아니라 다른 모든 단어들이 얼마나 현재 결과에 기여하는지 가중치의 형태로 나타낸 것이었습니다. 이 구조는 기존 RNN 구조와 다르게 각 단어가 직접적으로 가중치의 형태로 연결되어 있으므로 그 사이의 상관관계를 직접적으로 나타낼 수 있었습니다. 예를 들어, 훈련 데이터에서 두 단어가 서로 자주 나오게 된다면 가중치가 크게 학습이 되고 모델은 해당 단어쌍이 서로 상관관계가 강하다는 것을 알게 되는 것입니다.

Attention Method

Bahdanau가 제시한 이후로 Luong 등이 추가로 더 효율적인 Attention 구조를 제안하였지만 본질적인 아이디어, 즉 “단어간 상관관계를 가중치의 형태로 모델에 반영한다.” 는 것은 자연어처리 분야에서의 하나의 혁신으로 남았습니다.

Transformer의 구조

기존의 Attention 구조는 RNN Cell에서 보조적으로 활용되었습니다. 2017년 Google의 Vaswani et al. 은 다음과 같은 아이디어를 제안하였습니다.

만약 Attention이 단어간 상관관계를 잘 반영할 수 있다면, Attention만으로도 문장을 모델링 할 수 있지 않을까?

Transformer Architecture

이 발상의 전환에 따라서 제안한 구조는 기존의 언어 모델과 다르게 RNN 없이 언어를 수학적으로 기술할 수 있는 모델이었습니다. 이 구조가 바로 Transformer 구조입니다. 기존 구조에서는 문장을 “단어의 연속적인 배열”로 간주하였습니다. 그러나 Transformer에서 문장은 “단어간의 Attention들의 합”으로 나타납니다. 즉, 문장이라고 하는 구조는 마치 베틀처럼 Attention을 촘촘하게 엮은 형태로 나타낼 수 있는 것입니다.

Transformer 는 크게 두 부분으로 나눌 수 있습니다: 문장을 잠재 표현으로 변환하는 Encoder block과 이를 다시 복원하는 Decoder block 입니다. 각 block은 Attention을 집약적으로 구성한 구조입니다. 이제 어떻게 Transformer에서 Attention이 활용되었는지를 알아보면서 Transformer의 구조를 살펴보도록 합시다.

Attention in Transformer

Transformer 에서 Attention 은 Scaled-dot Product attention 을 사용합니다. 앞서서 Attention은 단어와 단어 사이의 상관관계를 나타내는 가중치라고 설명드렸습니다. 단어 A에 대해서 단어 B 가 주는 가중치는 다음과 같은 세 개의 변수로 표현할 수 있습니다.

Attention in the Transformer

이 경우, 단어쌍 가중치 Attention(Q,K,V)는 다음과 같이 계산됩니다. Attention을 Q,K의 내적으로 계산한 값을 (Dot-Product), Query와 Key의 Array Dimension으로 그 크기를 조절 (Scaling) 하기 때문에 제안한 Attention을 Scaled-dot Product attention 으로 칭합니다.

\[Attention(Q,K,V) = softmax({\frac{Q{K^{T}}}{\sqrt{d_{k}}}})V\]

논문의 저자들은 위의 Attention 구조를 제안한 것에 그치지 않고, 이를 여러 번 반복하는 구조 (Multi-head Attention)를 제안하였습니다. 문장의 상관 관계는 여러 측면에서 바라볼 수 있기 때문이며 따라서 여러 종류의 Q, K, V를 설정함으로써 다양한 측면의 관계를 나타낼 수 있다고 보았기 때문입니다.

Encoder block and Decoder block

Encoder block은 문장을 잠재 표현으로 변환하는 부분입니다. 원 논문에서 저자들은 6개의 동일한 구조를 활용하여 이를 구현하였습니다. 각 구조는 위에서 설명한 Multi-head attention 층과 Fully-connected 층으로 구성되었습니다. 원 논문에서는 각 구조들의 출력값을 합하여 한 단어당 총 512차원의 잠재 표현으로 변환하였습니다.

Decoder block도 Encoder block과 유사하게 형성되었습니다. 단, Encoder의 출력이 잠재표현인 것과 다르게, Decoder의 출력은 단어의 출현 확률이 됩니다. 아울러 Decoder는 실제 단어를 출력하는 부분이기 때문에 해당 단어를 기준으로 뒷 단어들에 의한 Attention을 Masking 처리를 하고 참조하지 않았습니다.

Transformer의 구현체: GPT와 BERT

GPT와 BERT의 성질과 비교

Vaswani et al.에 제안한 Transformer는 효과적인 구조였지만 Encoder와 Decoder가 단순하게 결합된 구조로 더 향상될 여지가 있었습니다. 2018년, OpenAI에서 발표한 Pre-trained Transformer 기반 생성 모듈 (Generative Pre-trained Transformer, 이하 GPT)과 역시 같은 해에 Google에서 발표한 양방향 Transformer Encoder 모델 (Bidirectional Encoder Representations from Transformers, 이하 BERT)은 원래의 Transformer 구조를 층층이 누적시켜서 단어간의 상관관계를 충분히 반영할 수 있도록 조직한 구조이지만, 기능적인 측면에서 차이를 보입니다.

항목 GPT BERT
Transformer block Decoder block Encoder block
Attention 방향 Uni-directional Bi-directional
문장 생성 활용 여부 문장 생성 가능 직접 생성 불가능
BERT 와 GPT의 비교 (Devlin et al. 2018)

두 구조의 가장 큰 차이점은 Attention의 참조방향이 순방향이냐 양방향이냐는 것입니다. GPT의 경우 Decoder block이 순방향 Attention만을 쓰기 때문에 문장 생성에 직접적으로 이용될 수 있다는 강점을 가집니다. 이에 비해 BERT는 양방향 Attention을 써서 더 많은 정보를 반영하므로 비록 문장 생성에 직접 사용될 수는 없어도 더 우수한 성능을 나타냅니다.

상술한 BERT와 GPT는 기존 기법들에 비해 아주 뚜렷한 성능 향상이 있었기 때문에, 생성 분야에서는 GPT, 그 외의 분야에서는 BERT가 기존 방법론을 대체하였습니다. 마치 2010년대 초반에 LSTM이나 GRU 기반의 기법들이 CRF나 SVM 기반 처리기법들을 대체해버린 것처럼 말입니다.

Transformer 기반 모델의 문제점

그렇지만 모든 구조는 밝은 면이 있으면 어두운 면이 있는 법입니다. Transformer 기법들이 현업에 적용되면서 연구 단계에서는 크게 부각되지 않은 단점들이 드러나기 시작했습니다. Transformer 구조체의 여러 단점들은 하나의 크고 근원적인 문제점으로 요약됩니다.

모델이 문제를 풀기에는 너무 크다!

배기량이 매우 큰 슈퍼카를 자가용으로 몰게 되는 경우를 비유로 들 수 있겠습니다. 아마 그 슈퍼카는 200km/h는 가볍게 찍을 수 있을 것입니다. 그렇지만 늘 자동차로 붐비는 도심에서 자가용으로 모는 것이 좋은 선택일까요? 제 속력을 발휘할 기회는 거의 찾지 못한채 유지비만 막대하게 소모할 것입니다. 보다 구체적으로 Transformer 구조체의 문제점을 들어보면

이러한 문제를 접하게 된 이후의 연구 방향은 크게 2가지 방향으로 진행되었습니다.

  1. 실험 결과 Transformer 구현체는 훈련이 덜 된 구조인 것이 시사되었다. 그렇다면 어떻게 더 많이, 치밀하게 훈련시켜서 성능을 향상시킬 수 있을까?
  2. 실제로 Transformer 구현체들을 인터페이스로 구현하려면 어떻게든 구조를 축소시켜야한다. 어떻게 하면 성능의 손실을 최대한 막으면서 구조를 빠르고, 강하게 줄여서 실제로 서비스가 가능한 형태로 바꿀 수 있을까?

더 똑똑하게 훈련하기 (Harder and Better)

다음 구조들은 첫번째 관점에서 진행된 연구들입니다.

항목 BERT XLNet RoBERT MT-DNN T5
Parameter Size Base:110M
Large:340M
Base:110M
Large:340M
Base:110M
Large:340M
Base:110M
Large:340M
220M
Train Data Size 16GB Base: 16GB(BERT)
Large: 113GB
Base: 16GB(BERT)
Large: 160GB
16GB(BERT) + GLUE 750GB (C4)
GLUE Score 80.5 88.4 88.5 85.1 89.7

XLNet: Transformer-XL based Approach

XLNet

XLNet은 BERT보다 더 많은 상관관계를 고려한 모델입니다. 개략적인 특징은 다음과 같습니다. (보다 더 자세한 설명은 https://tech.scatterlab.co.kr/xlnet-review/ 를 참조해주시기 바랍니다.)

결과적으로 성능이 향상되었으며 동일한 데이터에 대해서도 더 우수한 성능을 보였습니다. 몇몇 시사점들은 다음과 같습니다.

RoBERTa: Robustly Optimized BERT Pretraining Approach

BERT의 훈련 과정을 다시 조정한 것이 RoBERTa입니다.

RoBERTa와 BERT의 차이점은 다음과 같습니다.

RoBERTa의 경우는 BERT와 구조적으로 다르지 않지만, 여러 실험들을 통해서 BERT에 대한 이해도를 높여주었다는 의의를 가지는 방법입니다. 특히 더 많은 데이터가 필요하다는 직관은 우리 생각보다 BERT는 더 많은 여력을 가지고 있는 구조라는 것을 시사합니다. 반대로 그렇다면 같은 성능을 위해서는 이렇게 큰 구조가 필요없다는 결론에 도달할 수도 있을 것입니다.

MT-DNN: Multi-Task Deep Neural Network

MT-DNN Pre-training

위에서 계속해서 시사되고 있는 바는 “BERT는 매우 강력한 모델이며, 이를 이끌어내기 위해서는 더 어려운 문제가 필요하다.” 라는 것입니다. 이에 대해서 자연스럽게 내릴 수 있는 가설은 “다양한 작업으로 학습시키면 언어를 잘 이해할 수 있지 않을까?” 입니다. MT-DNN은 이 가설을 실제로 시험해본 모델이라 할 수 있습니다.

기존의 BERT의 경우, Transformer를 Masked LM과 다음 문장 예측 작업으로만 훈련시켰습니다. MT-DNN은 여기에 그치지 않고 GLUE에 포함되는 서로 다른 네 가지 작업 (문장 분류, 문장쌍 유사도, 문장쌍 분류, 문장쌍 순위 메기기) 으로 Transformer를 Fine-tuning 시켰습니다. Fine-tuning을 위해서 Task당 별도의 신경망 층 (Task-specific Layer)를 두었습니다. 전체 작업들은 임의의 순서에 의해, 미니배치 단위로 학습에 사용되었습니다. 즉, 실제로 훈련시에는 한 미니배치당 한 작업만이 배당되며, 그 작업 하나에 의해서만 Loss가 계산되며 이 Loss에 따라서 전체 모델이 학습되었습니다.

검증을 위해서 원 작업인 GLUE와 새 작업인 문장 추론 (SNLI) 에 대해서 성능을 측정하였습니다. 실험 결과, MT-DNN 모델은 원 BERT에 비해 GLUE에 대해서 더 높은 성능을 보였으며 (이것은 사실 Fine-tuning을 거쳤기 때문에 당연합니다.) 각 GLUE 작업 단위로 추가적인 Fine-tuning을 했을 때 단순 BERT를 Fine-tuning했을 때보다 더 높은 성능을 보였습니다. 아울러 새 작업을 Fine-tuning할 때도 훨씬 작은 데이터를 사용해도 좋은 성능을 발휘하는 것을 볼 수 있었습니다.

MT-DNN이 시사하는 바는 다음과 같습니다.

T5: Text-To-Text Transfer Transformer

Schematic of T5

구글에서 제안한 T5 구조는 상당히 특이한 형태로 문제들을 기술합니다. 기존의 MT-DNN 등의 모델들이 배치 단위에서 실 훈련 데이터를 변경하며 다양한 문제를 모델에 투입하였다면, T5는 모든 문제를 문장 형태로 추상화 한 다음에, 그 추상화된 문장을 푸는 것을 훈련시킨 구조입니다.

T5의 문제 기술 형태에 대해서 조금 더 살펴보도록 하겠습니다. 기존의 Transformer 구조들은 다른 작업을 풀 때에는 각기 다른 레이어를 사용하도록 되어있었습니다. T5는 모든 문제를 “문제 문장” 형태로 기술될 수 있다고 가정합니다. 이 구조에서 문제를 푸는 것은 “문장 형태로 제공된 문제의 답을 찾기”로 변환됩니다. 어떤 관점에서는 문제를 일반화된 문장으로 번역한다고 할 수 있습니다. 예를 들어, “That is good.”을 독일어로 번역하는 문제를 생각해봅시다. 이 문제는 문제 문장 “translate English to German: That is good. target: Das is gut“로 변환됩니다. 본 문장에서 translate ~ target: 까지는 문제를 풀기 위해 주어진 정보이며, 반대로 Das is gut 부분은 실제 정답에 해당하는 부분으로 알지 못하는 부분입니다. T5에서는 주어진 정보 부분에 대해서는 양방향 Attention을, 정답을 생성하는 부분에서는 단방향 Attention을 이용하는 Prefix LM구조를 사용하였습니다.

Prefix Language Model

T5의 특징은 다음과 같습니다.

Corruption

T5는 분명 참신한 구조였습니다. 비록 파라미터의 크기가 커졌지만 750GB가 되는 데이터를 소화할 수 있다는 것을 보였기 때문입니다. 다만, 한편으로는 문제를 추상화하는 방법이 Naive하지 않았나는 생각이 듭니다. 문제 문장은 한정된 형태로만 기술되었으며 모델은 그 한정된 형태에 대해서만 답을 생성할 수 있었습니다. 그렇기 때문에 단순히 문제 문장으로 추상화하는 것은 언어를 깊게 이해시키는 소기의 목적을 달성하기에는 피상적이라 판단합니다.

빠르고 강하게 줄이기 (Faster and Stronger)

위의 Transformer를 더 많이 학습시키는 관점으로 바라보는 연구들을 다룰 때에는 해당 연구에서 제안된 구조와 그 구조들이 요구하는 데이터의 양을 기준으로 설명하였습니다. 원 BERT나 GPT에 비해 더 많은 데이터와 더 복잡한 구조가 요구되었기 때문입니다. 즉, 위의 연구들은 “Transformer에 원하는 바를 더하는” 것들이었습니다. 이에 비해 Transformer를 가볍고 빠르게 만드는 연구들은 “Transformer에서 덜어내는” 관점으로 진행되었기 때문에, 그 연구들에서 사용한 기법 위주로 설명하도록 하겠습니다.

Transformer.zip: Quantization and Pruning

양자화(Quantization)라고 불리는 기법은 원래 연속된 아날로그값을 불연속적인 디지털값으로 변환하는 것을 말하며, 정해진 단위값으로 근사시켜서 통일시키는 것을 일컫습니다. 양자화를 하게 되면 (얼마나 정밀하게 하느냐에 따라 다르겠지만) 필연적으로 정보가 손실됩니다. 즉, 데이터의 정밀도가 떨어지게 됩니다. 하지만 반대로 압축률이 올라갑니다. 즉, 더 적은 용량으로도 데이터를 나타낼 수 있게 됩니다. 대부분의 경우 신호의 정밀도는 큰 문제가 되지 않습니다. 왜냐하면 통상 데이터는 주요 대표값에 의해서 기술되기 때문입니다. 밑의 과자 사진에서 왼쪽은 24bit (1677만 색) 이미지이고 오른쪽은 불과 4bit (16색)이미지입니다. 수치적인 정밀도는 비교할 수 없이 줄었지만, 사진의 이미지가 꽤 잘 보존된 것을 확인할 수 있습니다.

Example of quantization

신경망의 가중치도 마찬가지입니다. 만약 임의의 가중치 값을 K 개의 가중치 값으로 축소시킬 수 있다면, 모델의 크기를 대폭 줄일 수 있게 됩니다. 자연어처리에서의 신경망 가중치의 값은 대개 그 값 자체보다는 대략적인 크기나 경향성이 훨씬 중요하기 때문에 이러한 손실은 감수할 수 있는 것이라 하겠습니다.

가지치기(Pruning)는 신경망 내의 일부 가중치를 삭제하고 사용하지 않는 것입니다. 핵심은 성능에 영향을 많이 주는 가중치는 보존하면서 그렇지 않은 가중치들을 삭제하는 것입니다. 이 기법은 이미지 처리 분야에서 많이 연구가 된 부분으로, Song Han et. al이 원 VGGNet의 1/10 크기의 모델로도 동일한 성능을 나타내는 것을 보여주었습니다. 만약에 BERT가 더 많은 데이터를 소화할 수 있을 정도로 큰 모델이라면 이 모델에 대해서 ‘가지를 칠 수 있는’ 여지가 많다고 판단이 됩니다.

스탠포드의 Robin Cheong과 Robel Daniel은 Transformer 구조에 대해서 간단한 K-means Quantization과 Threshold 미만 가중치 쳐내기를 적용했을 때, 성능이 어떻게 변하는지 확인하였습니다. 실험은 WMT 2017 데이터셋에 대해 진행되었고, BLEU를 측정하였습니다. 양자화 방법의 경우, K-means (데이터 클러스터링 시에 상위 K개의 피벗값으로 대표화하는 방법), Binary Masking (Threshold 미만의 데이터값을 0으로 치환하는 방법으로 Threshold 고정(BS-Fixed) 과 변동(BS-Flexible)이 있음)을 적용하였습니다.

Result of pruning and quantization

실험 결과를 분석해보면

많은 가중치를 삭제한 이후에도 BERT가 성능을 어느 정도 잘 보존한다는 것은 실제로 성능에 기여하는 가중치는 그렇게 많지 않다는 것을 시사합니다. Mitchell et al. 은 NeurIPS에서 발표한 Are Sixteen Heads Really Better than One? 에서 각 Attention block의 head가 얼마나 실제 성능에 기여하는지를 분석하였습니다. 분석한 결과에 따르면 실제로 작업에 기여하는 Attention Head는 전체 Head에 비해 일부분이며 이는 위의 실험에서 나타난 바와 같습니다.

DistilBERT: Knowledge Distillation

예를 들어 분류 문제를 푸는 상황을 가정해봅시다. 원래 데이터는 그 이미지가 어떤 물체에 해당하는지에 대한 정답 라벨(Hard Label)이 달려있을 것입니다. 이 이미지를 잘 훈련시킨 모델(선생 모델)에 전달하게 되면, 대부분 결과도 그 정답과 일치할 것입니다. 한 가지 놀라운 사실은, 모델이 만들어낸 결과 분포가 실제 이미지를 더 풍부하게 표현한다는 것입니다. 즉, 원래 정답 관점에서는 정답 이외에 대한 정보가 없지만, 한번 모델에서 풀어나온 결과는 정답 외에도 다른 물체에 대한 정보를 담고 있게 됩니다. 이렇게 정보가 묻어 나오는 것이 마치 석유의 부산물들이 증류탑에서 나오는 양상과 같기 때문에 이를 지식 증류라고 일컫습니다.

Example of distillation

원래 모델이 생각하는 데이터의 정보가 풀어나온 데이터로 새로 학습시키게 되면 간접적으로 선생 모델이 학습한 바를 반영하게 되므로 더 효율적으로 모델을 학습시킬 수 있으며, 새로 배우는 모델(학생 모델)은 상대적으로 더 적은 규모로 구성될 수 있습니다. 이것이 Hinton et al. 이 제시한 지식 증류의 핵심입니다.

BERT에 대해서도 똑같은 방법을 사용할 수 있습니다. Huggingface의 Sanh et al. 은 원 BERT 모델에 대해서 훈련시킨 다음, 원 모델이 예측한 Masked LM 분포를 이용하여, 레이어 수가 절반인 새 모델을 학습시켰습니다.

Result of DistilBERT

실험 결과, 파라미터 수가 절반임에도 불구하고 원 BERT의 성능과 대등한 성능을 보였으며, 심지어 CoLA, SST-2 등 몇몇 작업에 대해서는 더 우수한 성능을 보였습니다. 즉, Pretrain 단계에서 BERT 모델의 출력은 해당 단어에 대한 언어 모델 그 이상의 정보를 가지고 있다는 것을 시사합니다.

ALBERT: A Lite Bert

ALBERT는 구글과 토요타 연구소에서 새로 제시된 모델입니다. 기존의 BERT와 BERT x-large 모델은 성능은 좋았지만 너무 모델 크기가 크다는 문제가 있었습니다. 실험 결과, BERT x-large (모델 사이즈: 1270M)의 경우 RACE 데이터에 대해서 더 작은 모델인 BERT보다 더 낮은 성능을 보였습니다. 따라서 본 논문의 저자들은 모델 가중치의 효율적인 재활용과 더 어려운 문제를 도입함으로써 조금 더 충실한 구조를 만들고자 하였습니다.

ALBERT의 특징은 다음과 같습니다.

Parameters of ALBERT

실험 결과를 살펴보면 다음과 같습니다.

Performance comparison
NSP vs SOP

이 글을 마치며

현재도 많은 연구자들이 한편으로는 언어 모델의 성능을 향상시키기 위해, 다른 한편으로는 언어 모델을 실제 제품에서 사용할 수 있도록 연구에 힘을 쓰고 있습니다. 그리고 저희는 이러한 연구들이 머지 않아 그 결실을 맺으리라고 믿습니다. LSTM이 그러했고, Transformer가 그러했고, BERT가 그러했기 때문입니다. 스캐터랩의 엔지니어들은 다가올 그 날을 깨어 기다리며, 더 사람다운 대화 인공지능을 만들기 위해 노력하겠습니다.

References

스캐터랩이 직접 전해주는
AI에 관한 소식을 받아보세요

능력있는 현업 개발자, 기획자, 디자이너가
지금 스캐터랩에서 하고 있는 일, 세상에 벌어지고 있는 흥미로운 일들을 알려드립니다.