처음 보면 굉장히 복잡해 보이는 Transformer의 구조.
하나하나 뜯어서 직접 계산 과정을 눈으로 확인하고, 각 부분의 의미와 용도를 알아보며 보다 쉽게 이해할 수 있도록 써 보았다.
아래 대부분의 과정은 Attention Is All You Need 논문의 base model을 기준으로 작성하였다.
전체 Layer의 계산과정을, 계산식 예시를 보며 하나하나 파헤쳐 보자.
Input Embedding Layer에서는, 여타 다른 NLP 모델에서와 같이 word embedding을 수행한다.
여기에서는 word embedding에 대해 다루는 것이 아니기 때문에, 과정을 간략하게만 설명한다.
우선 입력된 문장을 Token 단위로 나눈다.
예를 들어, "I love deep learning” 이라는 문장이 있다면,
[”I”, “love”, “deep”, “learning”]으로 변환하게 된다.
위에서 토큰화된 단어 [”I”, “love”, “deep”, “learning”]를, 각 단어마다 특정 숫자로 mapping한다.
예를 들어, 전체 단어 집합의 크기(vocabulary size)가 10,000이라면,
[1, 2, 3, 1424]와 같은 형태(물론 숫자는 다르다.)로 encoding되고,