훈련할 숫자 세기

실제 GPT-2에 붙이면 훈련할 숫자는 몇 개가 될까요?

실제 표 하나

가로 768칸, 세로 768칸입니다

GPT-2의 어텐션 안에 든 가중치 표 하나입니다. 숫자가 589,824개 들어 있습니다.

어텐션은 단어끼리 서로 참고하는 계산입니다. 768은 글 조각(토큰) 하나를 나타내는 숫자의 개수입니다. 그림의 격자는 실제보다 성기게 그렸습니다.

LoRA의 표 두 개

작은 표는 16줄씩입니다

앞 편의 예시는 두 줄씩이었고, 실제로는 16줄씩 씁니다. A는 768칸짜리 세로줄 16개, B는 768칸짜리 가로줄 16개입니다.

이 줄 수 16이 앞 편에서 말한 랭크입니다. 실습에서 고른 값입니다.

세어 보면

589,824개가 24,576개로

A와 B가 12,288개씩, 합쳐 24,576개입니다. 원래 표 하나의 24분의 1입니다.

589,824 ÷ 24,576 = 24. 직접 계산한 값입니다.

붙이는 곳

블록 속 표와 출력 층, 73곳에 붙입니다

트랜스포머 블록 하나에 든 여섯 칸은 모두 가중치 표입니다. 이름은 지금 몰라도 됩니다. 블록 12개에 72곳, 맨 끝의 출력 층까지 73곳에 A와 B를 한 쌍씩 붙입니다.

표의 이름은 5강과 6강에서 블록을 만들 때 나온 것입니다. 임베딩과 층 정규화에는 붙이지 않습니다. 표의 크기는 곳마다 다르고, 73은 직접 센 값입니다.

모델 전체

훈련할 숫자는 124,441,346 → 0 → 2,666,528

훈련으로 고칠 수 있는 숫자의 수입니다. 전부 얼려 0개로 만든 뒤 A와 B를 붙이면, 새로 붙인 2,666,528개만 훈련 대상이 됩니다.

실습 코드로 센 값입니다. 얼린 가중치는 지우지 않고 계산에 그대로 씁니다.

얼마나 줄었나

약 47분의 1입니다

전체의 2.1%입니다. 11강에서 뒤쪽 세 곳만 풀었을 때의 5.7%보다도 적습니다.

124,441,346 ÷ 2,666,528은 약 47입니다. 표 하나에서 본 24분의 1보다 더 줄어든 것은, 768칸보다 큰 표도 있고 A와 B를 붙이지 않는 부분도 있어서입니다.

다음 편

훈련할 숫자는 정해졌습니다. 데이터와 모델은 무엇을 쓸까요?

5편재료는 10강 그대로 15강 목록