-
전처리
-
모델링
- 아키텍처는 인코더, 디코더, 인코더와 디코더로 나누어진다.
-
인코더 파이프라인 [Classfication에서 주로 사용]

- 모델의 input은 n개의 sequence가 들어올 것
- input embdding은 word idx(dictionary)에서 look up을 하여 벡터를 가져옴
- Positional Encoding을 사용해서 sin과 cos함수를 기반으로 만든 위치 정보를 포함하고 있는 임베딩을 더해줌
- Positional Encoding 구현 자체가 그런 의미를 가지는 것이라기 보다는, 그런 의도로 넣어줌
- 입력 차원 : B(Batch Size)x S(Sequence lenght) x D ⇒
출력 차원 : B x S x D
RNN 출력 차원 : B x 1 x D [output hidden state에서는 sequence length]를 반영하지 않음
- Encoder는 일반적으로 분류를 하게 되는데, 처음에는 cls라는 처음 토큰을 넣고, 해당 토큰의 output을 가지고 classify를 시킴.
- output의 차원은 S x D 이지만(sample이 하나), Predciction에 사용하는 Vector의 차원은 1XD가 되기 떄문에 RNN과 같음
-
디코더 파이프라인 [Generation에 주로 사용] ⇒
Language Model(이전 단어를 보고 다음단어를 예측) 은 대부분 사용

- Masked Multi Head Attention을 사용하여 Sequential 하게 정보를 참조
⇒ 2차원 행렬을 통해 내 뒤의 단어를 볼 수 없게 함
- 학습 시에는 Shifted right output을 넣게 되고, 추론 시에는 Auto regressive하게 수행
- Lnaguage Generation Model은 evaluate가 오래 걸림
-
Sequence to Sequence Pipeline(기계 번역에 주로 사용됨)

- LSTM은 Row Resource 일 때 좋을 수도 있음