AI 해부교실 · Part 5 어텐션 완전 정복

50장 한 번에 계산하기

Q. 단어가 1,000개면 47~49장의 계산을 1,000번 따로 해야 할까요?

  1. 지금까지 '간다' 한 단어만 계산했어요. 단어가 1,000개라면, 이걸 1,000번 따로 해야 할까요?
  2. 단어 벡터를 한 줄씩 쌓으면 행렬이 돼요(10장). 여기에 46장의 세 행렬을 곱하면, 모든 단어의 Q, K, V가 한꺼번에 나와요.
  3. 다음은 Q × Kᵀ. Kᵀ는 K를 옆으로 눕힌 행렬이에요. 결과의 칸마다 Q 줄과 K 줄의 내적, 즉 47장의 점수표가 나와요.
  4. 점수표를 통째로 √2로 나누고, 줄마다 소프트맥스를 해요(48장). 이제 줄마다 그 단어가 쳐다볼 비율이 들어 있어요.
  5. 마지막으로 비율표 × V. 결과의 줄마다 49장의 물감 섞기가 들어 있어요. 모든 단어의 새 벡터가 한꺼번에 나와요.
  6. 이 과정을 식 하나로 쓰면 softmax(QKᵀ/√d)V. 2017년 논문(44장)에 나오는 바로 그 어텐션 식이에요.
  7. 행렬 곱은 GPU가 수많은 칸을 동시에 계산해요. 그래서 트랜스포머는 긴 문장도 한꺼번에 빠르게 처리해요(44장).

한 장 요약