토큰 임베딩의 빈틈
단어 순서를 바꾸면 모델이 알아챌까요?
표는
표는 번호만 봅니다
5편의 표에 번호 2, 3, 5, 2를 넣었습니다. 같은 번호는 어느 자리에 있든 같은 줄을 꺼냅니다. 벡터만 봐서는 몇 번째였는지 알 수 없습니다.
그러면
순서를 바꿔도 같은 벡터들입니다
두 문장은 뜻이 정반대입니다. 그런데 꺼낸 벡터 세 개는 그대로이고 놓인 자리만 바뀌었습니다.
벡터의 색은 토큰을 구별하려고 칠한 것입니다.
왜 문제인가
모델은 자리를 세지 않습니다
모델에는 토큰들을 한꺼번에 놓고 서로 견주는 부품이 있습니다. 셀프 어텐션이라고 하고 4강에서 배웁니다. 이 부품은 토큰이 몇 번째인지 세지 않습니다.
필요한 것
벡터에 자리를 적어 넣어야 합니다
토큰 벡터에 몇 번째 자리인지를 함께 담으면, 같은 토큰이라도 자리에 따라 다른 벡터가 됩니다.
자리도 토큰 번호처럼 0부터 셉니다.
두 가지 방법
몇 번째인가, 몇 칸 떨어졌나
절대 위치는 자리마다 고유한 벡터를 줍니다. 상대 위치는 두 토큰 사이의 거리를 씁니다. 어느 쪽이 늘 더 낫다고 정해져 있지는 않습니다.
GPT는 절대 위치를 씁니다. 다음 편에서 이 방식을 따라갑니다.
다음 편