Attention은 밖을 보고, Feed Forward는 안에서 생각한다
현재 단어가 문장 속 다른 단어들을 살펴봅니다.
필요한 정보를 찾아 자신의 벡터 안으로 모읍니다.
이미 모아온 정보를 다시 살펴봅니다.
그 정보가 무엇을 의미하는지 더 알맞은 표현으로 바꿉니다.
증거를 모은 뒤에는 생각해야 한다
탐정이 사건을 조사한다고 생각해 봅시다.
증거를 모으는 것만으로는 수사가 끝나지 않습니다. 탐정은 이미 모은 증거를 머릿속에서 연결해 해석합니다.
Tom이 모아 온 정보를 다시 해석해 보자
정보 수집과 정보 해석을 분리해서 보자
각 단어는 자기 안에 모인 정보를 따로 생각한다
Self-Attention에서는 토큰들이 서로 정보를 주고받았습니다. Feed Forward 단계에서는 각 토큰이 자기 벡터 안에 모인 정보를 따로 처리합니다.
내가 모은 사람·거주·장소 정보를 다시 해석합니다.
내가 모은 행동·주체·장소 정보를 다시 해석합니다.
내가 모은 장소·사람·행동 정보를 다시 해석합니다.
내부에서는 무엇을 할까?
핵심 개념을 이해했다면 내부 구조도 어렵지 않습니다. Feed Forward Network는 보통 현재 벡터를 넓게 펼쳐 여러 특징을 살펴본 뒤, 필요한 특징을 골라 다시 정리합니다.
현재 토큰의 정보를 더 넓은 공간에 펼칩니다.
어떤 특징을 강조하거나 약하게 할지 판단합니다.
다음 층에서 사용할 새로운 벡터로 만듭니다.
Transformer 한 층에서 두 단계가 함께 일한다
Tom의 생각 과정을 단계별로 따라가 보자
아래 버튼을 눌러 Attention에서 Feed Forward까지 이어지는 흐름을 확인해 보세요.
현재 Tom이 가진 정보
다른 단어에서 정보를 모음
Tom은 lives, New York, He를 참고해 문장 속 관계 정보를 가져옵니다.
핵심 오해를 정리하자
아닙니다. 새로운 토큰을 찾아보는 일은 Attention이 담당합니다.
현재 토큰 벡터 안에 담긴 문맥을 더 유용한 표현으로 다시 구성합니다.
Transformer는 단어의 순서를 어떻게 알까?
Attention과 Feed Forward를 이용하면 단어 관계를 찾고, 모은 정보를 다시 해석할 수 있습니다. 하지만 Transformer는 모든 토큰을 한꺼번에 보기 때문에 단어가 몇 번째 위치에 있는지는 따로 알려줘야 합니다.
핵심 정리
- Self-Attention은 문장 속 다른 단어를 살펴보며 정보를 모읍니다.
- Feed Forward Network는 모아 온 정보를 바탕으로 현재 단어를 다시 이해합니다.
- Attention은 정보 수집, Feed Forward는 정보 해석과 재표현입니다.
- Feed Forward는 다른 토큰을 새로 참고하지 않습니다.
- 각 토큰은 자기 벡터 안에 모인 정보를 독립적으로 가공합니다.
- 내부에서는 표현을 펼쳐 여러 특징을 살펴본 뒤 새 벡터로 정리합니다.
- Transformer 한 층에는 Attention과 Feed Forward가 모두 필요합니다.