Transformer FFN 이해: Attention 뒤에서 무엇을 하는가

난이도: 중급

태그: llm,transformer,ffn

Attention이 "어디를 볼지"를 정한다면, FFN은 "모은 정보를 각 토큰 안에서 다시 변환하고 가공하는 역할"을 한다.

Transformer 블록을 보면 attention만 눈에 띄기 쉽지만, 실제 계산량과 파라미터 상당수는 FFN에 있다. 그래서 FFN을 이해하지 못하면 Transformer 구조를 절반만 이해한 셈이다.

많은 입문자가 Transformer를 attention만으로 이해하지만, 실제로 토큰 표현을 풍부하게 가공하는 큰 부분은 FFN이 담당한다. attention이 문맥을 모아 주는 단계라면, FFN은 그 문맥을 바탕으로 각 토큰 내부 표현을 더 복잡하게 바꾸는 단계라고 볼 수 있다.

1. 기본 식

FFN(x)=W2σ(W1x+b1)+b2

보통 hidden dimension을 크게 늘렸다가 다시 줄이는 구조를 쓴다. 이 과정에서 토큰별 비선형 변환 능력이 생긴다.

이 차원 확장-축소 구조가 중요한 이유는, 단순 선형층 하나로는 만들기 어려운 비선형 표현력을 제공하기 때문이다. 그래서 FFN은 attention 뒤에서 조용히 일하지만, 실제 모델 성능에는 매우 큰 영향을 준다.

2. 역할

3. 왜 token-wise인가

FFN은 각 토큰 위치에 독립적으로 적용된다. 토큰 간 상호작용은 attention이 담당하고, FFN은 "위치별 표현 가공"을 담당한다고 보면 된다.

4. 확장형

5. 체크리스트