구현과 정리

셀프 어텐션은 코드로 몇 줄일까요?

답

여섯 줄입니다

  1. q = x @ W_q쿼리
  2. k = x @ W_k키
  3. v = x @ W_v값
  4. scores = q @ k.T점수
  5. weights = softmax(scores / √dk)가중치
  6. context = weights @ v문맥 벡터

지금까지 본 내용이 한 줄씩 그대로 들어 있습니다.

x는 단어 벡터 표, .T는 표를 눕힌 것, @는 표끼리 곱하는 기호입니다. 파이토치라는 도구의 코드를 읽기 쉽게 줄여 썼습니다.

묶으면

여섯 줄을 묶으면 부품이 됩니다

프로그램에서는 이런 묶음을 클래스라고 부릅니다. LLM은 이 부품을 여러 층으로 쌓아서 만듭니다.

구현 방식

W 표를 만드는 방법이 두 가지입니다

기성 부품은 W의 처음 숫자를 훈련이 잘되도록 골라서 채워 줍니다. 그래서 실제로는 기성 부품을 씁니다.

nn.Parameter와 nn.Linear는 파이토치에 들어 있는 도구의 이름입니다. 이름은 몰라도 됩니다.

확인

두 방법의 출력이 다른 이유

계산이 달라서가 아니라 처음에 채운 숫자가 달라서입니다. W를 그대로 옮겨 넣으면 출력이 똑같아집니다.

4강 정리

여기까지 온 길

다음 강의

아직 두 가지가 남았습니다

4강 끝목록으로 돌아가기