Portfolio

Transformer  Balance


Project Overview

  이 프로젝트에서는 트랜스포머 구조에서 인코더와 디코더의 디자인 균형성에 따른 성능 변화를 다각적으로 검증합니다. 균형성의 변인으로는 주요 연산 레이어 차원, 인코더 및 디코더 레이어의 개수, 어텐션 헤드의 개수를 설정했으며, 각 변인을 적용한 모델을 Wide, Deep, Diverse 모델이라고 명명합니다. 각각의 변인이 적용된 모델의 성능 측정에는 인코딩 및 디코딩 중요도가 상이한 세 가지 자연어 생성 과제(기계번역, 대화생성, 문서요약)를 활용해 성능을 비교했습니다.


  1.   Introduction

  • Description
  •   트랜스포머는 다양한 딥러닝 처리 과제에서 널리 사용되는 뛰어난 모델 구조입니다. 일반적으로 트랜스포머 Seq2Seq 모델의 활용 시, 안정성을 위해 인코더와 디코더의 설정값 대부분을 일치시킵니다. 불균형하고 상이한 설정은 모델의 학습 저하 및 성능 하락을 야기하기 쉽기 때문입니다. 하지만 해결하려는 세부 과제 마다의 특성을 면밀히 살펴보면, 특정 과제는 인코딩이 디코딩보다 중요한 과제가 존재하기도, 반대로 디코딩이 인코딩보다 중요한 경우 역시 존재합니다.
    하지만 대부분 경우에서 해결하고자 하는 과제의 성격과는 무관하게 균형잡힌 트랜스포머 모델을 사용하기에, 인코더와 디코더 간 균형성에 대한 연구가 상대적으로 부족합니다. 이 프로젝트에서는 자연어 생성 과제별 트랜스포머 균형성에 관한 연구 부족의 문제점을 해결하기 위해 트랜스포머의 의도적인 불균형성 디자인의 효과를 직접 확인합니다. 실험의 주요 변인은 모델 구조의 균형성이며, 트랜스포머 모델을 의도에 따라 불균형하게 설정해, 총 6개의 실험군을 구성하고, 이를 세 가지 자연어 생성과제(기계 번역, 대화 생성, 문서 요약)에서의 성능을 비교 분석합니다.

  • Objective
    • 기계 번역, 대화 생성, 문서 요약이라는 세부 자연어 생성 과제별 효과적인 트랜스포머 디자인 밸런스 탐색
    • 기계 번역에서는 균형적인, 대화 생성은 디코더 집중적인, 문서 요약은 인코더 집중적인 모델 구조가 좋은 성능을 낼 것이라는 가설의 검증
    • 세부 자연어 생성 과제별 Foundation Model Balance 지침 제공

  2.   Background

  • Transformer Balance

      "Attention Is All You Need"에서 제시된 표준 트랜스포머 모델은 균형잡힌 구조를 사용합니다. 이러한 균형성은 모델의 안정성을 높이므로, 다양한 과제에 범용적으로 적용할 수 있다는 장점을 지닙니다. 그러나 모델의 구조적 밸런스에 변화를 주면 특정 성능을 더욱 향상시킬 수 있습니다. 트랜스포머의 구조적 밸런스를 조정할 수 있는 요소로는 폭(Width), 깊이(Depth), 다양성(Diversity)이 있습니다.
    폭(Width)은 은닉 차원의 크기를 의미합니다. 은닉 차원이 클수록 해당 벡터에 더 많은 정보를 담을 수 있습니다. 깊이(Depth)는 인코더와 디코더의 레이어가 얼마나 깊이 쌓여 있는지를 나타내며, 레이어가 깊을수록 모델의 표현 능력과 이해도가 향상됩니다. 다양성(Diversity)은 Multi-Head Attention에서 헤드의 개수를 의미합니다. 헤드가 많을수록 다양한 관점에서 정보를 파악할 수 있어 성능이 향상됩니다.

  • Task Balance
    • Machine Translation
    •   기계 번역은 특정 언어로 표현된 시퀀스를 입력값으로 받아, 동일한 의미의 다른 언어 시퀀스를 반환하는 과제입니다. 가령 "I am a student"라는 표현을 "나는 학생입니다" 로 변환하는 것과 같이, 길이 및 의미의 관계에서 입력 시퀀스와 출력 시퀀스 간 1:1에 가까운 대응 관계성을 지닙니다. 덕분에 인코딩과 디코딩의 비중 역시, 균형적이라고 볼 수 있습니다.

    • Dialogue Generation
    •   대화 생성은 입력 시퀀스의 의미를 파악해, 적절한 답변을 출력하는 과제입니다. 이때 "Hi"라는 입력값에 대해, 다양한 출력 시퀀스가 모두 맞는 경우가 될 수 있으며, 1:1 대응이라기 보단, 자연스럽고 다양한 시퀀스 생성이 더욱 중요합니다. 때문에 인코딩과 디코딩 부분에서 디코딩이 더욱 중요하게 작용하는 과제라고 볼 수 있습니다. 대표적으로 대화 생성에 특화된 GPT 계열 모델들역시 Decoder를 적극활용하고 있다는 점도 강력한 근거로 작용합니다.

    • Text Summarization
    •   문서 요약은 긴 입력시퀀스에서 중요한 내용만을 파악하고, 이를 다시 새롭게 요약된 시퀀스로 반환하는 과제입니다. 입력 시퀀스의 길이가 출력 시퀀스에 비해 매우 길기 때문에, 입력 시퀀스에서 파악해야 하는 정보의 양이 매우 많습니다. 자연스럽게 이는 인코딩과 디코딩의 비중중에서 인코딩의 비중이 매우 크다는 것을 시사합니다. 실제 문서요약의 성능 개선을 위해, 인코더 방면에서의 연구들이 더 활발하게 이루어지고 있습니다.

  3.   Architecture

  • Base & Large Models
  • Base 모델과 Large 모델은 모두 인코더와 디코더의 Depth, Width, Diversity 모두 동일한 모델 구조입니다. Base 모델은 전체 실험의 기준 모델로써 사용하며, Large 모델은 Base 모델의 2배 만큼의 설정값을 지닌 큰 모델로 균형성이 아닌, 모델 사이즈가 성능에 미치는 영향력을 파악하기 위해 사용합니다.

  • Wide  Models
  • Wide 모델은 인코더 및 디코더의 은닉 차원ㅇ을 늘려 정보 처리 능력을 확장한 모델 구조입니다. 이때 모든 차원의 크기를 동일하게 늘리는 것이 아니라, 레이어 내부 연산 과정에서 사용되는 은닉차원의 크기만을 조정합니다. 이때 인코더와 디코더에서 사용하는 은닉차원의 사이즈가 달라 발생하는 문제는 Connection Layer를 둠으로써 해결합니다. 은닉차원의 크기가 커질수록 담을수 있는 정보의 양도 많아지므로, 처리해야하는 정보량이 많은 경우에 유리한 설정 방식입니다.

  • Depth Unbalanced Model
  • Transformer의 인코더와 디코더는 각각 복수개의 인코더 레이어와 디코더 레이어로 구성됩니다. 이때 레이어의 개수에 따라 레이어가 많을수록 더 많은 연산 과정 속에서 주어진 시퀀스에 대한 보다 깊은 이해능력이 배양됩니다. Width 측면에서 밸런스를 의도적으로 붕괴시킨 모델입니다. Encoder의 무게중심을 더 크게 준 모델을 Encoder_Width Model이라고, 디코더에 무게중심을 더 준 모델을 Decoder Width_Model이라고 명명하고, Back-bone 모델에서 공유되는 Hidden Dimension차원을 2배만큼 증가 시킴으로써, 인코더 혹은 디코더의 은닉차원에서 함유할수 있는 정보의 양을 늘린 모델입니다.

  • Diversity Unbalanced Model
  • Transformer의 핵심 연산 부라고 할 수 있는 Multi Head Attention 구현부에서 Attention Head는 몇개의 쪼개진 조각으로 주어진 벡터를 파악할 것인지를 결정하는 계수입니다. 이 Attention Head의 개수가 많을 수록, 다양한 관점에서 다각적인 의미 해석 및 추출이 가능하게 됩니다.
    Width 측면에서 밸런스를 의도적으로 붕괴시킨 모델입니다. Encoder의 무게중심을 더 크게 준 모델을 Encoder_Width Model이라고, 디코더에 무게중심을 더 준 모델을 Decoder Width_Model이라고 명명하고, Back-bone 모델에서 공유되는 Hidden Dimension차원을 2배만큼 증가 시킴으로써, 인코더 혹은 디코더의 은닉차원에서 함유할수 있는 정보의 양을 늘린 모델입니다.

  • Comparison Table
  • Model Type Dimension Connect Layer Num of Layers Num of Attn Heads
    Base Dimension No N Layers N Heads
    Wide Dimension * 2 Yes N Layers N Heads
    Deep Dimension No N Layers * 2 N Heads
    Diverse Dimension No N Layers N Heads * 2
    Large Dimension * 2 No N Layers * 2 N Heads * 2

  4.   Experimental Setup

  • Data Setup
    • Translation Task:   WMT'14 En-De
    • Dialogue Task:   Daily Dialogue
    • Summarization Task:   CNN Daily
    • Tokenizer:   BPE Tokenizer
    • Train Data Volumn:   50,000
    • Valid Data Volumn:   5,000
    • Test Data Volumn:   100
    • Vocab Size:   30,000
  • Training Setup
    • Hardware:   Google Colab TPU
    • Num Epochs:   10
    • Batch Size:   32
    • Learning Rate:   5e-4
    • Optimizer:   AdamW
    • LR Scheduler:   ReduceLROnPlateau
    • Gradient Accumulation Steps:   4
    • Apply Mixed Precision Training:   True
  • Model Size
  • Model Type Params Size
    Base 15,488,664 60.085 MB
    Large 43,735,448 167.837 MB
    Encoder-Wide 20,478,616 79.120 MB
    Encoder-Deep 17,069,976 66.117 MB
    Encoder-Diverse 15,488,664 60.085 MB
    Decoder-Wide 22,974,104 88.639 MB
    Decoder-Deep 17,861,016 69.134 MB
    Decoder-Diverse 15,488,664 60.085 MB

  5.   Result

  • Machine Translation
  • Model Type Eval Score Epoch Time Avg GPU Max GPU
    Base 12.65 0m 59s 0.36 GB 1.56 GB
    Encoder-Wide Model 14.20 0m 48s 0.26GB 1.12GB
    Decoder-Wide Model 14.09 0m 52s 0.29GB 1.20GB
    Encoder-Deep Model 12.61 0m 55s 0.22GB 1.06GB
    Decoder-Deep Model 11.47 1m 03s 0.23GB 1.12GB
    Encoder-Diverse Model 13.23 0m 42s 0.20GB 0.95GB
    Decoder-Diverse Model 12.96 0m 42s 0.20GB 0.95GB
    Large Model 14.49 1m 41s 0.52GB 2.02GB
  • Dialogue Generation
  • Model Type Eval Score Epoch Time Avg GPU Max GPU
    Base 2.47 0m 57s 0.36 GB 1.47 GB
    Encoder-Wide Model 2.38 0m 45s 0.26GB 1.01GB
    Decoder-Wide Model 1.82 0m 47s 0.29GB 1.07GB
    Encoder-Deep Model 2.20 0m 51s 0.22GB 0.95GB
    Decoder-Deep Model 3.61 1m 03s 0.23GB 1.00GB
    Encoder-Diverse Model 1.11 0m 41s 0.20GB 0.85GB
    Decoder-Diverse Model 1.11 0m 41s 0.20GB 0.85GB
    Large Model 1.12 3m 01s 0.53GB 1.81GB
  • Text Summarization
  • Model Type Eval Score Epoch Time Avg GPU Max GPU
    Base 5.60 3m 15s 0.38 GB 2.89 GB
    Encoder-Wide Model 7.50 4m 08s 0.27GB 3.65GB
    Decoder-Wide Model 9.68 3m 25s 0.30GB 3.14GB
    Encoder-Deep Model 6.90 4m 31s 0.23GB 4.49GB
    Decoder-Deep Model 7.80 3m 30s 0.24GB 3.33GB
    Encoder-Diverse Model 6.86 2m 47s 0.21GB 2.89GB
    Decoder-Diverse Model 7.74 2m 47s 0.21GB 2.89GB
    Large Model 8.45 9m 10s 0.54GB 7.04GB
  • Result Analyis
    • Machine Translation 괴제에서는 Large Model이 가장 좋은 성능을 보였습니다. Encoder-Wide Model과 Decoder Wide Model 역시 Baseline Model보다 성능 개선이 이루어진 것으로 볼때, 과제 해결을 위해 더 많은 파라미터가 필요하다는 것을 보인다고 판단할 수 있습니다. 파라미터 크기 증가외의 변인들은 그다지 긍정적인 성능개선을 견인하지는 못했습니다. 충분한 깊이와 다양성을 충분히 담고 있다고 판단할 수 있습니다.
    • Dialogue Generation에서는 Decoder Deep Model이 가장 좋은 성능을 보였습니다. 다른 두 가지 과제에서 Large Model이 Baseline에 비해 향상된 성능을 보인것과 반대로, 오히려 성능이 저하되는 결과를 보입니다. 이는 모델의 복잡도가 필요 이상으로 높아져 일반화가 더 어려워 진 것으로 판단할 수 있습니다.
    • Text Summarization에서는 Decoder Wide Model이 가장 좋은 성능을 보였습니다. 더불어 Large Model에서도 성능 개선이 이루어진 것으로 보건데, 디코더의 파라미터 개수가 많아지는 것이 성능개선에 도움이 된 다는 것을 알 수 있습니다.

  6.   Conclusion

  • Machine Translation
  • Machine Translation
  • Machine Translation

  7.   Reference