Project Overview
이 프로젝트에서는 트랜스포머 구조에서 인코더와 디코더의 디자인 균형성에 따른 성능 변화를 다각적으로 검증합니다. 균형성의 변인으로는 주요 연산 레이어 차원, 인코더 및 디코더 레이어의 개수, 어텐션 헤드의 개수를 설정했으며, 각 변인을 적용한 모델을 Wide, Deep, Diverse 모델이라고 명명합니다. 각각의 변인이 적용된 모델의 성능 측정에는 인코딩 및 디코딩 중요도가 상이한 세 가지 자연어 생성 과제(기계번역, 대화생성, 문서요약)를 활용해 성능을 비교했습니다.
  1.   Introduction
- Description
- Objective
- 기계 번역, 대화 생성, 문서 요약이라는 세부 자연어 생성 과제별 효과적인 트랜스포머 디자인 밸런스 탐색
- 기계 번역에서는 균형적인, 대화 생성은 디코더 집중적인, 문서 요약은 인코더 집중적인 모델 구조가 좋은 성능을 낼 것이라는 가설의 검증
- 세부 자연어 생성 과제별 Foundation Model Balance 지침 제공
트랜스포머는 다양한 딥러닝 처리 과제에서 널리 사용되는 뛰어난 모델 구조입니다. 일반적으로 트랜스포머 Seq2Seq 모델의 활용 시, 안정성을 위해 인코더와 디코더의 설정값 대부분을 일치시킵니다. 불균형하고 상이한 설정은 모델의 학습 저하 및 성능 하락을 야기하기 쉽기 때문입니다.
하지만 해결하려는 세부 과제 마다의 특성을 면밀히 살펴보면, 특정 과제는 인코딩이 디코딩보다 중요한 과제가 존재하기도, 반대로 디코딩이 인코딩보다 중요한 경우 역시 존재합니다.
하지만 대부분 경우에서 해결하고자 하는 과제의 성격과는 무관하게 균형잡힌 트랜스포머 모델을 사용하기에, 인코더와 디코더 간 균형성에 대한 연구가 상대적으로 부족합니다.
이 프로젝트에서는 자연어 생성 과제별 트랜스포머 균형성에 관한 연구 부족의 문제점을 해결하기 위해 트랜스포머의 의도적인 불균형성 디자인의 효과를 직접 확인합니다.
실험의 주요 변인은 모델 구조의 균형성이며, 트랜스포머 모델을 의도에 따라 불균형하게 설정해, 총 6개의 실험군을 구성하고, 이를 세 가지 자연어 생성과제(기계 번역, 대화 생성, 문서 요약)에서의 성능을 비교 분석합니다.
  2.   Background
- Transformer Balance
  "Attention Is All You Need"에서 제시된 표준 트랜스포머 모델은 균형잡힌 구조를 사용합니다. 이러한 균형성은 모델의 안정성을 높이므로, 다양한 과제에 범용적으로 적용할 수 있다는 장점을 지닙니다. 그러나 모델의 구조적 밸런스에 변화를 주면 특정 성능을 더욱 향상시킬 수 있습니다. 트랜스포머의 구조적 밸런스를 조정할 수 있는 요소로는 폭(Width), 깊이(Depth), 다양성(Diversity)이 있습니다.
폭(Width)은 은닉 차원의 크기를 의미합니다. 은닉 차원이 클수록 해당 벡터에 더 많은 정보를 담을 수 있습니다. 깊이(Depth)는 인코더와 디코더의 레이어가 얼마나 깊이 쌓여 있는지를 나타내며, 레이어가 깊을수록 모델의 표현 능력과 이해도가 향상됩니다. 다양성(Diversity)은 Multi-Head Attention에서 헤드의 개수를 의미합니다. 헤드가 많을수록 다양한 관점에서 정보를 파악할 수 있어 성능이 향상됩니다. - Task Balance
- Machine Translation
- Dialogue Generation
- Text Summarization
  기계 번역은 특정 언어로 표현된 시퀀스를 입력값으로 받아, 동일한 의미의 다른 언어 시퀀스를 반환하는 과제입니다. 가령 "I am a student"라는 표현을 "나는 학생입니다" 로 변환하는 것과 같이, 길이 및 의미의 관계에서 입력 시퀀스와 출력 시퀀스 간 1:1에 가까운 대응 관계성을 지닙니다. 덕분에 인코딩과 디코딩의 비중 역시, 균형적이라고 볼 수 있습니다.
  대화 생성은 입력 시퀀스의 의미를 파악해, 적절한 답변을 출력하는 과제입니다. 이때 "Hi"라는 입력값에 대해, 다양한 출력 시퀀스가 모두 맞는 경우가 될 수 있으며, 1:1 대응이라기 보단, 자연스럽고 다양한 시퀀스 생성이 더욱 중요합니다. 때문에 인코딩과 디코딩 부분에서 디코딩이 더욱 중요하게 작용하는 과제라고 볼 수 있습니다. 대표적으로 대화 생성에 특화된 GPT 계열 모델들역시 Decoder를 적극활용하고 있다는 점도 강력한 근거로 작용합니다.
문서 요약은 긴 입력시퀀스에서 중요한 내용만을 파악하고, 이를 다시 새롭게 요약된 시퀀스로 반환하는 과제입니다. 입력 시퀀스의 길이가 출력 시퀀스에 비해 매우 길기 때문에, 입력 시퀀스에서 파악해야 하는 정보의 양이 매우 많습니다. 자연스럽게 이는 인코딩과 디코딩의 비중중에서 인코딩의 비중이 매우 크다는 것을 시사합니다. 실제 문서요약의 성능 개선을 위해, 인코더 방면에서의 연구들이 더 활발하게 이루어지고 있습니다.
  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
- Base & Large Models
- Wide  Models
- Depth Unbalanced Model
- Diversity Unbalanced Model
- Comparison Table
Base 모델과 Large 모델은 모두 인코더와 디코더의 Depth, Width, Diversity 모두 동일한 모델 구조입니다. Base 모델은 전체 실험의 기준 모델로써 사용하며, Large 모델은 Base 모델의 2배 만큼의 설정값을 지닌 큰 모델로 균형성이 아닌, 모델 사이즈가 성능에 미치는 영향력을 파악하기 위해 사용합니다.
Wide 모델은 인코더 및 디코더의 은닉 차원ㅇ을 늘려 정보 처리 능력을 확장한 모델 구조입니다. 이때 모든 차원의 크기를 동일하게 늘리는 것이 아니라, 레이어 내부 연산 과정에서 사용되는 은닉차원의 크기만을 조정합니다. 이때 인코더와 디코더에서 사용하는 은닉차원의 사이즈가 달라 발생하는 문제는 Connection Layer를 둠으로써 해결합니다. 은닉차원의 크기가 커질수록 담을수 있는 정보의 양도 많아지므로, 처리해야하는 정보량이 많은 경우에 유리한 설정 방식입니다.
Transformer의 인코더와 디코더는 각각 복수개의 인코더 레이어와 디코더 레이어로 구성됩니다. 이때 레이어의 개수에 따라 레이어가 많을수록 더 많은 연산 과정 속에서 주어진 시퀀스에 대한 보다 깊은 이해능력이 배양됩니다. Width 측면에서 밸런스를 의도적으로 붕괴시킨 모델입니다. Encoder의 무게중심을 더 크게 준 모델을 Encoder_Width Model이라고, 디코더에 무게중심을 더 준 모델을 Decoder Width_Model이라고 명명하고, Back-bone 모델에서 공유되는 Hidden Dimension차원을 2배만큼 증가 시킴으로써, 인코더 혹은 디코더의 은닉차원에서 함유할수 있는 정보의 양을 늘린 모델입니다.
Transformer의 핵심 연산 부라고 할 수 있는 Multi Head Attention 구현부에서 Attention Head는 몇개의 쪼개진 조각으로 주어진 벡터를 파악할 것인지를 결정하는 계수입니다. 이 Attention Head의 개수가 많을 수록, 다양한 관점에서 다각적인 의미 해석 및 추출이 가능하게 됩니다.
Width 측면에서 밸런스를 의도적으로 붕괴시킨 모델입니다. Encoder의 무게중심을 더 크게 준 모델을 Encoder_Width Model이라고, 디코더에 무게중심을 더 준 모델을 Decoder Width_Model이라고 명명하고, Back-bone 모델에서 공유되는 Hidden Dimension차원을 2배만큼 증가 시킴으로써, 인코더 혹은 디코더의 은닉차원에서 함유할수 있는 정보의 양을 늘린 모델입니다.
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 |
- 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 |
- Machine Translation
- Dialogue Generation
- Text Summarization
- 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에서도 성능 개선이 이루어진 것으로 보건데, 디코더의 파라미터 개수가 많아지는 것이 성능개선에 도움이 된 다는 것을 알 수 있습니다.
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 |
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 |
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 |
- Machine Translation
- Machine Translation
- Machine Translation