AI 해부교실 · Part 6 트랜스포머 조립하기
60장 벡터에서 단어로
Q. 96층을 지나 나온 건 숫자 12,288개짜리 벡터. 이걸 어떻게 '간다'라는 단어로 바꿀까요?
- 96층을 다 지나면 단어마다 벡터가 하나씩 나와요. 다음 말을 정하는 건 맨 끝 단어 '학교에'의 벡터예요.
- 이 벡터를 단어장의 토큰마다 하나씩 비교해 점수를 매겨요. 방향이 비슷할수록 점수가 높아요(9장 내적).
- 단어장에는 토큰이 약 5만 개, 50,257개 있어요. 그래서 점수도 50,257개 나와요. 이 점수를 로짓(logit)이라고 해요.
- 간다 3.0점, 갔다 2.1점, 늦었다 1.5점, 피자 −1.0점. 나머지 5만여 개는 대부분 −9점쯤이에요.
- 이제 14장의 소프트맥스! e로 올리고, 5만 개 전부의 합으로 나눠요. 다 더하면 약 38.72예요.
- 간다 52%, 갔다 21%, 늦었다 12%. 나머지 5만여 개가 조금씩 모여 14%를 가져갔어요.
- 이제 확률대로 하나를 뽑아 글 끝에 붙여요(1, 2장). 설계도에 출력 + 소프트맥스가 채워졌어요!
한 장 요약
- 마지막 층에서 나온 맨 끝 단어의 벡터로 다음 말을 정한다.
- 토큰 약 5만 개(50,257개)와 하나씩 비교해 점수(로짓)를 매긴다. 12,288 × 50,257 행렬 곱 한 번(11장).
- 소프트맥스(14장)로 확률을 만들고 하나 뽑아 붙인다. 간다 52%, 갔다 21%, 늦었다 12%.