분류 헤드
답이 5만 가지인 모델을 두 가지로 줄이려면 어디를 고칠까요?
모델의 구조
맨 끝에 출력 층이 있습니다
7강에서 조립한 GPT입니다. 글은 아래로 들어가 블록 12개를 지나고, 맨 위 출력 층에서 점수가 되어 나옵니다.
7강에서 본 대로 블록 12개 아래에 임베딩을, 위에 층 정규화와 출력 층을 붙인 모양입니다.
출력 층이 하는 일
숫자 768개를 점수 50,257개로 바꿉니다
모델이 아는 토큰 50,257가지마다 점수가 하나씩 나옵니다. 점수가 가장 높은 토큰이 다음에 올 토큰입니다.
7강에서는 이 점수를 로짓이라고도 불렀습니다.
바꿔 달기
점수가 2개 나오는 층으로 바꿉니다
새로 단 출력 층을 분류 헤드라고 부릅니다. 그 아래는 그대로 둡니다.
여기서 헤드는 모델 끝에 붙는 출력 부분을 뜻합니다. 5강에서 본 어텐션 헤드와는 다른 말입니다.
왜 2개인가
가려낼 종류만큼 점수를 냅니다
종류마다 번호를 붙입니다. 10강에서 정한 대로 정상이 0번, 스팸이 1번입니다. 뉴스를 세 종류로 나눈다면 점수도 3개가 됩니다.
이런 종류 하나하나를 10강에서 클래스라고 불렀습니다.
코드로는
한 줄입니다
파이토치라는 도구의 코드를 읽기 쉽게 줄여 썼습니다. Linear는 숫자 묶음을 받아 개수가 다른 숫자 묶음으로 바꿔 주는 층입니다.
남은 문제
새 층은 아직 아무것도 모릅니다
아래쪽 층의 가중치는 사전 훈련에서 배운 값입니다. 새 층의 가중치는 아무 값으로 시작하므로, 지금 나오는 점수에는 뜻이 없습니다.
가중치는 모델 안에 든 숫자입니다. 그림의 숫자는 예시 값입니다.
다음 편