위치 임베딩
벡터에 '몇 번째'를 어떻게 적어 넣을까요?
준비
자리마다 벡터를 하나씩 둡니다
토큰 표와 똑같이 생긴 표를 하나 더 만듭니다. 이번에는 줄 번호가 토큰 번호가 아니라 자리 번호입니다. 여기서 꺼낸 벡터가 위치 임베딩입니다.
넣는 법
같은 칸끼리 더합니다
토큰 벡터에 그 자리의 위치 벡터를 더한 것이 입력 임베딩입니다. 모델에 들어가는 것은 이 벡터입니다.
덧셈만 보려고 토큰 벡터를 모두 1로 둔 설명용 예입니다. 두 벡터의 칸 수가 같아야 더할 수 있습니다.
결과
같은 토큰도 자리가 다르면 다른 벡터
6편의 문제가 덧셈 한 번으로 풀립니다. 이제 벡터 하나에 무슨 토큰인지와 몇 번째인지가 함께 들어 있습니다.
위치 벡터의 값
위치 벡터도 훈련으로 배웁니다
GPT는 위치 벡터의 값을 사람이 정해 주지 않습니다. 토큰 벡터처럼 무작위 값에서 시작해서 훈련하는 동안 함께 고칩니다.
칸의 진하기는 숫자의 크기를 나타낸 예시입니다.
한계
준비한 자리까지만 넣을 수 있습니다
위치 표가 네 줄이면 다섯째 토큰부터는 더할 위치 벡터가 없습니다. 그래서 모델마다 한 번에 넣을 수 있는 길이에 한도가 있습니다.
이 한도가 2편에서 본 문맥 길이입니다. 창문 크기를 여기에 맞춥니다.
다음 편