AI 해부교실 · Part 6 트랜스포머 조립하기
61장 처음부터 끝까지 따라가기
Q. ChatGPT가 단어 하나를 쓰는 동안, 안에서는 정확히 무슨 일이 일어날까요?
- 지금까지 조립한 GPT에 '나는 오늘 학교에'를 넣고, 처음부터 끝까지 따라가 볼게요.
- 먼저 토크나이저가 글을 조각(토큰)으로 잘라요. 조각마다 단어장 번호가 붙어요(29장).
- 임베딩이 번호마다 의미가 담긴 숫자 줄을 꺼내 와요. GPT-3에선 조각 하나가 숫자 12,288개예요(33장).
- 여기에 몇 번째 조각인지 알려 주는 위치 정보를 더해요(36장). 이제 벡터 3개가 블록으로 들어가요.
- 블록 안. 정규화로 크기를 맞추고 어텐션! '학교에'는 앞의 '나는', '오늘'과 자기 자신을 쳐다봐요(45장).
- 쳐다본 만큼 섞어 온 결과를 고속도로 위 원래 벡터에 더해요(56장). 숫자가 조금씩 바뀌었죠?
- 다시 정규화하고 피드포워드가 단어마다 생각을 더해요. 그 결과도 원래 벡터에 더하고요(55장).
- 이게 블록 한 층이에요. 똑같은 일을 96층 되풀이하면, 벡터마다 문맥이 차곡차곡 쌓여요(58장).
- 96층을 나온 '학교에' 벡터로 토큰 50,257개의 점수를 매겨요. 간다 3.0, 갔다 2.1, 늦었다 1.5(60장).
- 소프트맥스로 확률로 바꾸면 간다 52%, 갔다 21%, 늦었다 12%. 다 더하면 100%예요(14장).
- 확률대로 하나를 뽑아요. '간다'! 글 끝에 붙이면 '나는 오늘 학교에 간다'가 돼요(1장).
- 그리고 이 문장을 다시 맨 위로 넣어 다음 조각을 만들어요(2장). ChatGPT의 답은 전부 이 여행으로 나와요.
한 장 요약
- 토크나이저 → 임베딩 + 위치 정보 → [정규화·어텐션·더하기·정규화·피드포워드·더하기] × 96 → 출력 + 소프트맥스 → 뽑아서 붙이기.
- 단어 벡터는 층을 지날 때마다 문맥이 더해지고, 맨 끝 단어의 벡터가 다음 말을 정한다.
- 다음 조각 하나 = 이 여행 한 번. 붙인 문장으로 다시 처음부터.