트랜스포머의 기본 구조는 인코더(Encoder)와 디코더(Decoder)라는 두 가지 핵심 블록을 여러 개 쌓아 올린 형태

입력 계층인코더와 디코더에 데이터가 들어가기 전에, 두 가지 중요한 전처리 과정이 수행
인코더는 입력 시퀀스를 처리하고 그 의미를 추출하여 문맥을 이해하는 역할
여러 개의 동일한 인코더 블록이 쌓여 있음(논문에서는 6개)
각 인코더 블록은 두 개의 서브 레이어로 구성됨.
1. 멀티-헤드 셀프-어텐션 (Multi-Head Self-Attention)역할:
2. 피드 포워드 네트워크 (Feed-Forward Network, FFN)역할:
어텐션 레이어의 출력을 받아 비선형적 변환을 수행하여 특징 표현을 강화합니다.
디코더는 인코더의 출력을 바탕으로 출력 시퀀스(번역문, 답변 등)를 생성하는 역할
인코더와 마찬가지로 여러 개의 동일한 디코더 블록이 쌓여 있음 (논문에서는 6개)
각 디코더 블록은 세 개의 서브 레이어로 구성
1. 마스크드 멀티-헤드 셀프-어텐션 (Masked Multi-Head Self-Attention)역할:
출력 단어를 순차적으로 생성할 때, 현재 시점의 단어가 미래의 단어(아직 생성되지 않은 단어)를 참고하지 못하도록 마스킹(Masking)
2. 인코더-디코더 어텐션 (Encoder-Decoder Attention, Cross-Attention)역할:
디코더의 현재 상태(Query)와 인코더의 최종 출력(Key, Value) 간의 관계를 파악
3. 피드 포워드 네트워크 (Feed-Forward Network, FFN)
인코더와 동일하게 비선형 변환 및 특징 강화를 수행
디코더 스택의 마지막 출력은 선형 계층(Linear Layer)과 소프트맥스(Softmax) 함수를 거쳐 모델의 전체 어휘 집합에 대한 다음 단어의 확률 분포로 변환