토큰 임베딩의 빈틈

단어 순서를 바꾸면 모델이 알아챌까요?

표는

표는 번호만 봅니다

5편의 표에 번호 2, 3, 5, 2를 넣었습니다. 같은 번호는 어느 자리에 있든 같은 줄을 꺼냅니다. 벡터만 봐서는 몇 번째였는지 알 수 없습니다.

그러면

순서를 바꿔도 같은 벡터들입니다

두 문장은 뜻이 정반대입니다. 그런데 꺼낸 벡터 세 개는 그대로이고 놓인 자리만 바뀌었습니다.

벡터의 색은 토큰을 구별하려고 칠한 것입니다.

왜 문제인가

모델은 자리를 세지 않습니다

모델에는 토큰들을 한꺼번에 놓고 서로 견주는 부품이 있습니다. 셀프 어텐션이라고 하고 4강에서 배웁니다. 이 부품은 토큰이 몇 번째인지 세지 않습니다.

필요한 것

벡터에 자리를 적어 넣어야 합니다

토큰 벡터에 몇 번째 자리인지를 함께 담으면, 같은 토큰이라도 자리에 따라 다른 벡터가 됩니다.

자리도 토큰 번호처럼 0부터 셉니다.

두 가지 방법

몇 번째인가, 몇 칸 떨어졌나

절대 위치는 자리마다 고유한 벡터를 줍니다. 상대 위치는 두 토큰 사이의 거리를 씁니다. 어느 쪽이 늘 더 낫다고 정해져 있지는 않습니다.

GPT는 절대 위치를 씁니다. 다음 편에서 이 방식을 따라갑니다.

다음 편

자리 번호를 벡터에 어떻게 넣을까?

7편자리마다 벡터를 더한다 3강 목록