그렇다면, 트랜스포머에 대한 정리부터 먼저 해보자. 일단 지금까지 내가 여기저기 흩뿌려놓은 자료는 다음과 같다.
k4ji_ai 리포에서 처음 시도했던 Transformer 논문 리뷰
이후 k4ji 노션에서 다시 시도했던 Transformer 논문 리뷰
멋사에서 진행한 Transformer 강의 슬라이드
멋사에서 진행한 Transformer 보충 수업 & 구현
이후 직접 구현까지 해본 the-clean-transformer (이건 마저 더 깔끔하게 리팩토링을 할 필요가 있다)
이것들을 한데 모아서. 이번에는 거시적인 구조를 잡고 한번 제대로 정리를 해보자. 단, 각 글(이슈)의 제목은 반드시 질문으로 시작해야한다. 그리고 그 질문을 하는 이유(rationale)를 반드시 적어야 한다. 그리고 the-clean-transformer를 바탕으로 구현하는 방법에 대한 소개도 필요하다.
글을 쓸 때 지켜야하는 몇가지 규칙들:
why are you asking why? 각 질문을 왜 하는지, 그 rationale을 반드시 적자. 그래야 글의 흐름을 이해할 수 있다.
Done is better than perfect - 처음부터 완벽할 필요는 없다. 어차피 언제든 편집할 수 있다. 우선 마무리를 하는 것부터 목표로 하자.
To-do's
[x] #35
[ ] #41
[x] #39
[ ] Embeddings: 왜 positional_encodings이 필요한가?
[ ] Embeddings: 왜 positional_encodings을 더하는가?
[ ] Encoder: 왜 "attention is all you need"인가?
[ ] Encoder: 왜 Query, Key, Value라고 부르는가?
[ ] Encoder: 왜 "scaled" dot product attention인가?
[ ] Encoder: 왜 "self" attention인가?
[ ] Encoder: 왜 padding_mask가 필요한가?
[ ] Encoder: 왜 "multihead" self attention인가?
[ ] Encoder: 왜 Residual connection이 필요한가?
[ ] Encoder: 왜 Layer Norm이 필요한가?
[ ] Encoder: 왜 "Position-wise" feedforward network인가?
[ ] Decoder & Loss function: 왜 "right-shifted"인가?
[ ] Decoder & Loss function: 왜 "masked" self attention인가? (autoregressive training)
[ ] Decoder & Loss function: 어떻게 lookahead_mask와 padding_mask를 동시에 고려할 수 있을까?
Rationale
그동안 자연어처리에 대해 공부했던 자료가 여기저기 흩어져있다. 무엇부터 공부를 해야할까?
그렇다면, 트랜스포머에 대한 정리부터 먼저 해보자. 일단 지금까지 내가 여기저기 흩뿌려놓은 자료는 다음과 같다.
이것들을 한데 모아서. 이번에는 거시적인 구조를 잡고 한번 제대로 정리를 해보자. 단, 각 글(이슈)의 제목은 반드시 질문으로 시작해야한다. 그리고 그 질문을 하는 이유(rationale)를 반드시 적어야 한다. 그리고
the-clean-transformer
를 바탕으로 구현하는 방법에 대한 소개도 필요하다.글을 쓸 때 지켜야하는 몇가지 규칙들:
To-do's
positional_encodings
이 필요한가?positional_encodings
을 더하는가?padding_mask
가 필요한가?lookahead_mask
와padding_mask
를 동시에 고려할 수 있을까?positional_encodings
이 최선인가?