Embedding Transformer에서 사용되는 Embedding은 Input Embedding과 Output Embedding이 있으며, 이들과 더해지는 Positional Encoding이 있다. Input과 Output Embedding은 torch에서 제공하는 nn.Embedding을 사용하였으며, Positional Encoding은 논문에서 제시하는 수식을 따라 Positional Encoding class를 구현하였다. 1. Positional Encoding Positional Encoding은 시퀀스의 순서 (단어의 위치 정보) 를 알려주는 역할을 한다. Input과 Output Embedding이 입력될 때 Positional Encoding 정보가 더해져 Encoder와 Decod..
Sub Layers Encoder와 Decoder를 구성하는 Sub Layer로는 Multi-Head Attention과 Position-Wise Fully Connected Feed-Forward Network가 있다. Multi-Head Attention가 내포하는 Scaled Dot-Product Attention까지 총 3가지의 Sub Layer class를 구현하였다. [목차] Multi-Head Attention Scaled Dot-Product Attention Position-Wise Fully Connected Feed-Forward Network 1. Multi-Head Attention Multi-Head 이름은 입력된 Q, K, V 행렬을 Head의 수만큼 나누었기 때문에 붙여졌다...
Transformer 모델은 자연어 처리에서 가장 기본이 되고 있기 때문에, 한번 제대로 공부해 보고자 하는 마음에 논문부터 코드 구현까지 해보게 되었다. 코드는 hyunwoongko 님 깃허브 자료의 도움을 받았으며, Transformer 모델 구현부터 한영 번역 학습까지 진행하였다. 논문의 구성 요소들을 바탕으로 공부한 내용과 코드를 리뷰해 보았다. Date : 12월 9일 ~ 1월 15일 Paper: Attention Is All You Need Github Link: https://github.com/angiekim05/study/tree/master/Paper_Code_Practice/Transformer [ML/Transformer] - [딥러닝 / PyTorch] Transformer 구현 ..