Transformer 논문 정리
- 트랜스포머는 rnn처럼 한번에 하나의 토큰을 처리하는것이 아니라 한꺼번에 처리함
- 어텐션을 사용하는 방법이면서, 병렬적 사용을 통해 효율적인 학습이 가능한 구조의 언어 모델

- 트랜스포머 이전에도 LSTM 등 RNN 기반의 딥러닝 모델, 그리고 이를 인코더-디코더 구조로 엮은 seq2seq 모델 등을 활용하여 챗봇 제작을 시도해왔음
- RNN, LSTM, GRU 등의 여러 딥러닝 모델들이 존재하며, 해당 모델을 이용하여 기계 번역, sequence 모델링 및 변환 문제에 효과적으로 이용하고 있음
- RNN같은 모델은 한번에 한 단어씩 반복적으로 입력으로 넣고 hidden state 값을 갱신시키는 방식으로 학습을 함

- 하지만 RNN모델은 모든 데이터를 한꺼번에 처리하는 것이 아니라 모델의 입력으로 sequence position t에 따라 순차적으로 입력에 넣어주어야 함(병렬적인 처리가 어렵다는 문제가 존재)
- long-term dependecy problems로 앞에 있는 객체의 영향력이 뒤에까지 온전히 전달되지 못한다는 것
- 또한 sequence라는 것은 단어 간의 연관성이 있는데, RNN은 각 단어에 대한 전파력이 앞으로만 전달되니까 모든 단어들 간의 관계성을 파악하기 쉽지 않다는 문제점이 존재함
- 단어를 순차적으로 처리하기 때문에 뒤에 나올 문장에 앞 문장에서 얻은 정보를 전달하기 어려우며, 문장의 길이가 길어질수록 더 어려워짐
- 그리고 레이어의 아웃풋을 바로 구할수 있는것이 아니라 문장의 길이만큼 수행할 필요가 있기 때문에 메모리 및 속도 측면에서도 문제가 존재함
트랜스포머란?
- 어텐션 모듈을 통해 병렬적인 학습이 가능하도록 설계된 구조
- 개괄적 구조

- 내부에 인코더 파트와 디코더 파트가 존재하며 이 둘 사이를 이어주는 연결고리가 존재

- 초록색 색깔의 도형을 인코더 층(Encoder layer), 핑크색 색깔의 도형을 **디코더(Decoder layer)**라고 함