토큰 임베딩

번호를 벡터로 바꾸는 계산은 얼마나 복잡할까요?

답

계산이 아니라 표입니다

토큰이 여섯 종류뿐인 작은 예입니다. 한 줄이 토큰 하나의 벡터이고, 줄 번호가 곧 토큰 번호입니다.

이 표를 임베딩 층이라고 부릅니다. 숫자는 무작위로 채운 처음 값입니다.

꺼내기

3번을 넣으면 3번 줄이 나옵니다

곱하지도 더하지도 않습니다. 그 번호의 줄을 찾아 그대로 내줍니다. 이 일을 룩업이라고 부릅니다. 찾아보기라는 뜻입니다.

번호를 0부터 세므로 3번 줄은 위에서 넷째 줄입니다.

여러 개

번호 네 개를 넣으면 네 줄이 나옵니다

넣은 순서대로 한 줄씩 꺼내 줍니다. 번호 바로 오른쪽에 놓인 것이 그 번호의 벡터입니다. 나오는 줄 수는 표의 줄 수가 아니라 넣은 토큰 수입니다.

같은 일을 다르게 보면

0과 1을 곱해도 같은 답이 나옵니다

3번 줄에만 1을, 나머지 줄에는 0을 곱해도 3번 줄이 남습니다. 답이 같으니 줄을 바로 꺼내는 쪽이 훨씬 빠릅니다.

곱셈으로도 볼 수 있다는 것은, 이 표의 숫자도 훈련으로 고칠 수 있다는 뜻입니다.

실제 크기

실제 표는 5만 줄이 넘습니다

GPT-2가 쓰는 토큰은 50,257종류라서 표도 50,257줄입니다. 한 줄의 숫자는 이 강의의 실습에서 256개, GPT-3에서는 12,288개입니다.

표가 클 뿐, 하는 일은 작은 표와 똑같습니다.

다음 편

그런데 이 표는 토큰이 몇 번째에 있는지 알까?

6편순서를 바꿔도 같은 벡터? 3강 목록