입력을 받을 때, 문장에 있는 단어들을 1개씩 순차적으로 받는 것이 아니라, 문장에 있는 모든 단어를 한꺼번에 입력으로 받음. 그래서 같은 단어라도 그 단어가 문장의 몇 번째 어순으로 입력되었는지를 단어의 임베딩 벡터에다가 위치 정보를 가진 벡터(Positional Encoding) 값을 더해서 모델의 입력으로 삼음
dmodel : 임베딩 벡터의 차원
pos : 입력문장의 임베딩 벡터의 위치
i : 임베딩 벡터 내의 차원의 인덱스
각 단어 백터 위치 정보 = 임베딩 행렬 + 포지셔널 행렬
2) 어텐션
단어들 간의 유사도를 구하는 메커니즘
단어 (정보를 함축한) 벡터 : 어텐션 함수에서 사용되는 쿼리(query), 키(key), 값(value)을 나타냄
단어백터 : 트랜스포머의 여러 연산을 거친 후의 단어 벡터(초기 입력된 임베딩 벡터는 X)
어텐션의 종류
인코더 셀프 어텐션(Encoder Self Atention)
문장 내 단어들의 유사도 계산
(in Encoder)
디코더 셀프 어텐션(Decoder Self Atention)
이미 생성된 앞 단어들과의 유사도 계산
(in Decoder)
인코더-디코더 어텐션(Encoder-Decoder Atention)
디코더가 인코더에 입력된 단어들과 유사도 계산
in Decoder
셀프 어텐션(Self Attention)
유사도를 구하는 대상이 다른 문장의 단어가 아니라 현재 문장 내의 단어들이 서로 유사도를 구하는 경우
모델학습 초기에 learning rate를 급격히 높였다가, 이후 train step이 진행됨에 따라 서서히 낮추어 가면서 안정적으로 수렴하게 하는 고급 기법을 널리 사용 ⇨ 이것이 커스텀 학습률 스케줄링(Custom Learning rate Scheduling) lrate=dmodel−0.5⋅min(stepnum−0.5,stepnum⋅warmupsteps−1.5)