훈련할 숫자 세기
실제 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를 붙이지 않는 부분도 있어서입니다.
다음 편