위치 임베딩

벡터에 '몇 번째'를 어떻게 적어 넣을까요?

준비

자리마다 벡터를 하나씩 둡니다

토큰 표와 똑같이 생긴 표를 하나 더 만듭니다. 이번에는 줄 번호가 토큰 번호가 아니라 자리 번호입니다. 여기서 꺼낸 벡터가 위치 임베딩입니다.

넣는 법

같은 칸끼리 더합니다

토큰 벡터에 그 자리의 위치 벡터를 더한 것이 입력 임베딩입니다. 모델에 들어가는 것은 이 벡터입니다.

덧셈만 보려고 토큰 벡터를 모두 1로 둔 설명용 예입니다. 두 벡터의 칸 수가 같아야 더할 수 있습니다.

결과

같은 토큰도 자리가 다르면 다른 벡터

6편의 문제가 덧셈 한 번으로 풀립니다. 이제 벡터 하나에 무슨 토큰인지와 몇 번째인지가 함께 들어 있습니다.

위치 벡터의 값

위치 벡터도 훈련으로 배웁니다

GPT는 위치 벡터의 값을 사람이 정해 주지 않습니다. 토큰 벡터처럼 무작위 값에서 시작해서 훈련하는 동안 함께 고칩니다.

칸의 진하기는 숫자의 크기를 나타낸 예시입니다.

한계

준비한 자리까지만 넣을 수 있습니다

위치 표가 네 줄이면 다섯째 토큰부터는 더할 위치 벡터가 없습니다. 그래서 모델마다 한 번에 넣을 수 있는 길이에 한도가 있습니다.

이 한도가 2편에서 본 문맥 길이입니다. 창문 크기를 여기에 맞춥니다.

다음 편

실제 크기에서는 숫자가 몇 개나 될까?

8편모델에 들어가는 것 3강 목록