분류 헤드

답이 5만 가지인 모델을 두 가지로 줄이려면 어디를 고칠까요?

모델의 구조

맨 끝에 출력 층이 있습니다

7강에서 조립한 GPT입니다. 글은 아래로 들어가 블록 12개를 지나고, 맨 위 출력 층에서 점수가 되어 나옵니다.

7강에서 본 대로 블록 12개 아래에 임베딩을, 위에 층 정규화와 출력 층을 붙인 모양입니다.

출력 층이 하는 일

숫자 768개를 점수 50,257개로 바꿉니다

모델이 아는 토큰 50,257가지마다 점수가 하나씩 나옵니다. 점수가 가장 높은 토큰이 다음에 올 토큰입니다.

7강에서는 이 점수를 로짓이라고도 불렀습니다.

바꿔 달기

점수가 2개 나오는 층으로 바꿉니다

새로 단 출력 층을 분류 헤드라고 부릅니다. 그 아래는 그대로 둡니다.

여기서 헤드는 모델 끝에 붙는 출력 부분을 뜻합니다. 5강에서 본 어텐션 헤드와는 다른 말입니다.

왜 2개인가

가려낼 종류만큼 점수를 냅니다

종류마다 번호를 붙입니다. 10강에서 정한 대로 정상이 0번, 스팸이 1번입니다. 뉴스를 세 종류로 나눈다면 점수도 3개가 됩니다.

이런 종류 하나하나를 10강에서 클래스라고 불렀습니다.

코드로는

한 줄입니다

파이토치라는 도구의 코드를 읽기 쉽게 줄여 썼습니다. Linear는 숫자 묶음을 받아 개수가 다른 숫자 묶음으로 바꿔 주는 층입니다.

남은 문제

새 층은 아직 아무것도 모릅니다

아래쪽 층의 가중치는 사전 훈련에서 배운 값입니다. 새 층의 가중치는 아무 값으로 시작하므로, 지금 나오는 점수에는 뜻이 없습니다.

가중치는 모델 안에 든 숫자입니다. 그림의 숫자는 예시 값입니다.

다음 편

점수가 여러 줄 나옵니다. 어느 줄을 읽을까요?

3편어느 줄을 읽을까? 11강 목록