
Introduction
이전까지는 시퀀스 데이터 처리를 위해 RNN이나 LSTM에 기반한 Seq2Seq 모델이 사용되었다. 시퀀스 데이터를 순차적으로 처리하는 이런 모델들은 아래와 같은 문제점들이 존재한다.
Long-Term Dependency : 시퀀스의 길이가 길어지면 초반의 정보가 소실/변질된다.
Low Scalability : 순차적인 처리로 인해 병렬화가 어렵다.
고정된 길이의 context vector 사용으로 인한 정보 소실
이를 해결하기 위해 도입된 것이 Attention Mechanism이다. Attention에 대한 자세한 설명은 아래를 참고하자.

이를 통해 Long-Term Dependency 문제는 해결할 수 있었지만, 여전히 RNN이 가지는 순차적인 처리로 인한 한계는 해결하지 못했다.
트랜스포머는 이런 문제들을 해결하기 위해 순환 구조를 완전히 배제하고 대신 후술할 셀프-어텐션(Self-Attention) 메커니즘을 핵심 요소로 사용하여 시퀀스 내의 모든 단어 쌍 간의 관계를 직접적으로 모델링하고 병렬 처리 효율을 극대화했다.
Attention
Attention의 기본 아이디어는 디코더에서 출력을 생성할 때, 인코더의 출력을 다시 한 번 참고한다는 것이다. 이 때, 인코더 출력의 모든 부분을 동일한 가중치가 아닌, 중요한 부분을 판별해 그 부분에 집중하는 것이 포인트다. 이를 위해 query, key, value라는 세 가지 종류의 벡터를 이용한다.

위 그림에서 query는 한 디코더 셀의 hidden state이고, key는 각 인코더 셀들의 hidden state들이다.
Attention에서는 하나의 query 를 여러 개의 key, value 쌍 ()과 매핑해 각 value에 대한 가중치 벡터 를 얻는다. 가중치는 다음과 같은 식을 통해 구해지고, 여기서 말하는 score는 query와 key 사이의 유사도(내적)다.

최종 출력인 attention value는 형태의 가중합이다. attention value는 인코더의 문맥을 담고 있다고 해서 context vector라고도 불린다.
Scaled Dot-Product Attention

트랜스포머에서 사용되는 기본적인 attention mechanism이다. 위에서 설명한 것과 거의 동일하지만, query와 key의 내적 값에 scaling이 적용된다.
여기서 는 query와 key의 차원이다. Scaling이 적용되는 이유는 연산 속도와 공간 복잡도의 효율을 증대하기 위함이다.
Multi-Head Attention
트랜스포머는 단일 attention function을 사용하지 않고, multi-head 방식을 사용한다. 이는 attention을 여러 개의 head로 나누어 병렬적으로 처리한 뒤, 각 결과를 concatenate하는 것이다. 각 head에서는 query, key, value를 projection을 통해 서로 다른 subspace에 투영한다. 이후 각 head마다 상기한 scaled dot-product attention을 수행한다. 이를 통해 입력 시퀀스의 서로 다른 위치에 있는 정보들끼리 서로의 다양한 측면을 동시에 학습하고 고려할 수 있게 해준다.
기존의 query 차원을 , head의 갯수를 라고 하면, 투영 후의 차원은 다음과 같다.
Encoder and Decoder Stacks

트랜스포머는 인코더와 디코더 모두에서 층으로 쌓인 self-attention과 FCN을 사용한다.
Encoder Stack
인코더는 6개의 동일한 층들로 구성되고, 각 층에는 두 개의 sub layer가 있다. 첫 번째 sub layer에는 multi head attention이 이루어진다. 여기서 이뤄지는 attention은 self attention으로, Query, Key, Value가 모두 인코더의 이전 층(Input Embedding + Positional Encoding)에서 온다. 이전 층의 정보의 모든 위치를 참고할 수 있게 된다.
두 번째 sub layer에는 시퀀스의 각 위치마다 독립적으로 적용되는 fully connected layer가 존재한다. 보통 두 개의 linear transformation과 사이에 ReLU로 구성된다.
두 sub layer에는 후술될 Add & Norm이 적용된다.
Decoder Stack
디코더도 인코더와 마찬가지로 6개의 동일한 층들로 구성된다. 각 층은 인코더의 층과 유사한데, 여기에 한 가지 구조가 추가된 형태다. 이 세 번째 sub layer는 인코더의 출력에 multi head attention을 수행한다. 여기서 수행되는 attention은 encoder-decoder attention으로, Query는 이전 디코더 층에서, Key와 Value는 인코더의 출력에서 온다. 이를 통해 디코더의 각 포지션이 입력 시퀀스의 모든 위치를 참고할 수 있게 된다.
한 가지 변형이 더 있는데, 디코더의 첫 번째 sub layer에서 수행되는 multi head attention에는 masking이 적용된다. 디코더는 출력을 순차적으로 생성해야 하므로, 특정 위치의 단어를 예측할 때 그 뒤에 오는 단어들의 정보(미래 정보)를 참고해서는 안 된다. 이를 위해 어텐션 스코어 계산 시 미래 위치에 해당하는 값들을 아주 작은 값(음의 무한대에 가까운 값)으로 masking해 소프트맥스 함수를 통과한 후 해당 가중치가 0이 되도록 만든다.
디코더의 입력은 target sequence (학습 시에는 label sequence, 추론 시에는 이전에 생성된 시퀀스)에 output embedding과 positional encoding이 적용된 것이다. 일반적으로 target sequence는 오른쪽으로 한 칸씩 밀린 형태로 입력된다.
디코더 스택의 최종 출력은 마지막으로 Linear Transformation을 거치고 Softmax Function를 통과해 다음 단어에 대한 확률 분포를 생성한다.
Positional Encoding
트랜스포머는 RNN과 달리 순환 구조가 없기 때문에 자체적으로는 시퀀스 내부의 순서 정보를 알 수 없다. 이를 해결하기 위해 입력 embedding에 positional encoding이라는 벡터를 더해줘 위치 정보를 부여한다. 해당 논문에서는 sin 함수와 cos 함수를 이용해 고정된 방식의 positional encoding을 사용한다. 각 위치 와 임베딩 차원 내의 각 인덱스 에 대해 다음과 같이 계산된다.
이렇게 구현하면 모델이 상대적인 위치 정보도 쉽게 학습할 수 있게 되고 학습 데이터보다 긴 시퀀스에 대해서도 외삽(extrapolation)이 가능하다는 장점이 있다.
Add & Norm
Residual Connection

Sub layer의 입력을 출력에 더해주는 연산이다.
Gradient vanishing을 방지해, 층이 깊어지는 경우에도 학습의 안정성을 증대시킨다는 장점이 있다.
Layer Normalization
각 레이어의 입력에 대해 정규화를 수행한다. 배치 정규화(Batch Normalization)와 달리 각 데이터 샘플 내의 모든 특성(feature)에 걸쳐 평균과 분산을 계산하여 정규화한다. 이는 미니배치 크기에 영향을 받지 않고 시퀀스 길이에 따른 변화에 덜 민감하여 트랜스포머와 같은 모델에 더 적합하다. 정규화는 학습 과정을 안정화하고 수렴 속도를 높이는 데 도움을 준다.

한계

트랜스포머는 입력 시퀀스의 길이가 길어질수록 계산량과 메모리 사용량이 급격하게 증가하는 한계가 있다. 핵심 메커니즘인 self-attention이 의 복잡도를 가지기 때문이다.
이와 더불어 attention weight을 통해 모델이 어떤 부분에 얼마나 집중하는지는 시각화가 가능하지만, 모델의 결정 과정을 인간이 완전히 이해하고 설명하지는 못한다. 또한 트랜스포머는 강력한 성능을 발휘하기 위해서 대규모 데이터셋에서의 사전 학습(pre-training)이 거의 필수적이다. 이는 데이터 부족 문제와 더불어 단순한 parameter 수 증가로 인한 성능 향상이 점차 포화 상태에 도달하고 있다는 한계로 이어진다.
이러한 한계를 극복하기 위해 최근엔 추론(Reasoning) 능력을 강조한 추론 모델이 등장하고 있다. 추론 모델은 단순히 데이터 크기나 매개변수를 늘리는 것에서 벗어나, 복잡한 추론 작업을 처리할 수 있도록 설계되었다. 대표적으로 o1및 o3는 단순히 매개변수를 확장하는 대신 복잡한 추론 능력을 향상시키는 방향으로 발전했으며, 이 같은 추론 중심 접근이 차세대 트랜스포머 모델 개발의 주요 방향으로 떠오르고 있다.