0. 제목이 이상한 이유

는 글자 제한에 걸림...

https://github.com/Mids/TransformerProject/blob/master/Transformer.py


1. 구현 할거

viewimage.php?id=2ab4c42ef0d0&no=24b0d769e1d32ca73ced82fa11d02831fe384ecd5bf5471a0304a0eb0c93158624431c1ad6cb4c45401eab9288a8cac5e0f3345940cbc422c72cd0ce03aaa689b743


이거 만들면 된다.

왜 QKV순서가 아니라 VKQ인지는 구글 성님들에게 물어보길...


viewimage.php?id=2ab4c42ef0d0&no=24b0d769e1d32ca73ced82fa11d02831fe384ecd5bf5471a0304a0eb0c93158624431c1ad6cb4c45401eab9288a8cac5e0f3345940cb9622cf25d79a03afa68989db


Multi-Head라고 해서 여러번 돌릴것 같지만 위의 이유로 한 텐서에 다 처박아놓고 한방에 돌린다.

간-편


2. 구현


viewimage.php?id=2ab4c42ef0d0&no=24b0d769e1d32ca73ced82fa11d02831fe384ecd5bf5471a0304a0eb0c93158624431c1ad6cb4c45401eab9288a8cac5e0f3345940cb9921c627d1ca0efba68952c0


사실 별거 없다.

리니어 각각 해주고

마스크 만들어주고

어텐션에 넣고

하나로 쭉 합쳐주고

다시 리니어 돌리고

Dropout은 논문에 없는거고 정확히 왜 해주는지 이해는 못했는데 다른사람들이 다 해줬길래 나도 해줬다.


근데 attention_probability를 열심히 구해놓고 왜 리턴을 안해주냐고?

그건 지금부터 알아보러가야지....;; 이거 쓰면서 발견함