Note

트랜스포머 이해

유니_ 2023. 8. 10. 21:57

Q. 어텐션으로 값이 변경된 임베딩 벡터들이 어떻게 MLP를 거치면 문자로 나오게 되나?
Q. 포지셔널 인코딩에서 더해주는 위치값들이 어떻게 연산할 때 위치정보로 사용되는지?

인코더

1. tokenization

: 인풋으로 들어온 단어들을 특정 값의 token으로 바꿔준다.

2. word embedding (MLP)

--> word2vec

  1) token을 각 단어들과의 유사성을 표현할 수 있는 벡터차원으로 임베딩한다

  2) 이 때 사용되는 알고리즘은 word2vec 이며(아마도?, 여러 알고리즘이 있다)

  3) 이 임베딩 벡터들은 이후에 mlp를 통과하여 차원이 query, key, value로 변경된다.

3. positional encoding

  1) sin,cos으로 0~1의 제한된 값을 생성하고, 이 값을 임베딩벡터에 더해준다.

4. self-attention

-> Query, Key Value

-> multi-head attention

-> pad masking 사용됨

  1) key, query, value는 각각 같은 token을 가리킨다.( 모두 같은 문장의 단어들을 표현하고 있다.)

  2) key, query, value는 임베딩 벡터를 받아서 각각 3개의 MLP를 통과시켜서 기존 d_embed 차원에서 d_k 차원으로 다시 임베딩을 하게된다. 

     2-1) 이렇게 구해지는 임베딩벡터는 각가 다르게 어텐션이 구해지도록 학습이 되는것 같다(*추측)

  3) key와 query의 매트릭스 곱에 softmax함수를 씌워서 attention energy 매트릭스를 구한다.

  4) attention energy 매트릭스를 다시 value 벡터와 곱하여 조정된 임베딩 벡터를 만들어낸다.

  5) 여기서 pad masking 은 트랜스포머가 문장을 입력으로 받을 때 최대 단어의 개수를 (토큰의 개수를) 지정하게되는데, 해당 개수보다 작게 들어오는 경우 비어있는 토큰의 자리를 표시해주기 위해서 마스킹을 한다.

5. add residual and nomralization

  1) backpropagation에서 기울기 소멸문제를 해결하기 위해 residual을 더해준다.

  2) normalization 를 거쳐준다.

6. position wised feed forward layer (MLP)

  1) FC layer 2개를 거쳐서 아웃풋을 만들어낸다.

  2) 이는 다음 인코더의 인풋 혹은 디코더의 인풋으로 사용된다.

7. -> 4.( n회 반복 )

  1) 4번부터 인코더 구조를 반복한다.

 

디코더

1. tokenization

2. word embedding

--> word2vec

3. positional encoding

4. self attention for gt

-> pad masking이 사용됨

-> subsequent masking이 사용됨 ( 이 때문에 masked multi-head attention 이라고도 불린다.)

5. cross attention gt with input context

-> encoder의 아웃풋을 받아서 gt와 어텐션을 계산

6. position wised feed forwad layer ( MLP )

멀티헤드 어텐션에 대한 깊은 이해 -> 

https://www.blossominkyung.com/deeplearning/transformer-mha

 

https://vaclavkosar.com/ml/transformer-embeddings-and-tokenization

 

Transformer Embeddings and Tokenization

How transformers convert text and other data to vectors and back using tokenization, positional encoding, embedding layers.

vaclavkosar.com

[Transformer Embeddings and Tokenization

How transformers convert text and other data to vectors and back using tokenization, positional encoding, embedding layers.

vaclavkosar.com](https://vaclavkosar.com/ml/transformer-embeddings-and-tokenization)

https://mingchin.tistory.com/307

[[논문 리뷰] Transformer _ 워드 임베딩(Word Embedding), 어텐션, 셀프 어텐션(Self-Attention) 이해하기

2017년 Attention is All you need 라는 이름으로 공개된 Transformer에 대해 공부하기 시작했는데, 정말 많은 사전 지식이 필요하다는 느낌을 받는다. 이전의 기계 번역의 과정과 문제점, 2016년 Attention의 활

mingchin.tistory.com](https://mingchin.tistory.com/307)

https://cpm0722.github.io/pytorch-implementation/transformer

[[NLP 논문 구현] pytorch로 구현하는 Transformer (Attention is All You Need)

Paper Link

cpm0722.github.io](https://cpm0722.github.io/pytorch-implementation/transformer)