아키텍처 구성: 인코더-디코더 스택
Transformer는 6개 층으로 이루어진 동일한 인코더 스택과 디코더 스택을 사용합니다. 각 인코더 층은 멀티헤드 자기주의(Multi-Head Self-Attention) 부분층과 위치별 완전연결 피드포워드 네트워크로 구성되며, 모든 서브층 주위에 잔차 연결(Residual Connection)과 계층 정규화(Layer Normalization)를 적용합니다. 디코더는 인코더의 두 부분층에 추가로 인코더 출력에 대한 멀티헤드 어텐션을 수행하는 세 번째 부분층을 삽입합니다.
스케일된 점곱 어텐션의 작동 원리
Transformer의 핵심은 쿼리(Query), 키(Key), 값(Value)의 세 입력을 매핑하는 어텐션 함수입니다. 스케일된 점곱 어텐션은 쿼리와 모든 키의 점곱을 계산한 후 √dk(키 차원의 제곱근)로 나눈 다음, softmax 함수를 적용하여 값에 대한 가중치를 얻습니다. 행렬 표기로는 Attention(Q,K,V) = softmax(QK^T/√dk)V입니다. 이 스케일링은 차원이 클 때 점곱이 과도해져 softmax 기울기가 극히 작아지는 문제를 방지합니다.
멀티헤드 어텐션과 병렬 처리
단일 어텐션 헤드 대신 8개의 병렬 어텐션 층을 사용하여 입력을 dk, dk, dv 차원으로 선형 투영한 후 각각에서 어텐션 함수를 수행합니다. 각 헤드의 출력을 연결한 후 다시 선형 투영하므로 전체 계산 비용은 단일 헤드와 유사합니다. 멀티헤드 어텐션은 모델이 서로 다른 표현 부분공간의 정보에 동시에 주의를 기울일 수 있게 하며, 단일 헤드에서 평균화가 이를 억제하는 문제를 해결합니다.