LoRA의 생각
원래 숫자를 하나도 고치지 않고 모델의 답을 바꿀 수 있을까요?
층 하나를 열어 보면
가중치는 표 모양으로 들어 있습니다
모델은 층을 여러 개 쌓은 것입니다. 층은 들어온 숫자 묶음을 가중치 표로 계산해 새 숫자 묶음으로 바꿉니다.
숫자를 줄과 칸으로 늘어놓은 표를 행렬이라고 합니다. 이 강에서는 층의 가중치 표를 W라고 부릅니다. 그림은 100칸짜리 예시이고, 실제 표는 훨씬 큽니다.
보통의 미세 튜닝
표의 칸을 직접 고칩니다
훈련은 칸마다 얼마나 고칠지를 구해 원래 값에 더합니다. 칸마다 고칠 양이 하나씩 있으니, 고칠 양도 W와 크기가 같은 표입니다.
앞 장과 같은 100칸짜리 표입니다. 칸의 밝기는 값의 크기를 나타내는 예시입니다.
LoRA의 생각 ①
고칠 양을 W에 더하지 않고 따로 둡니다
들어온 숫자를 두 갈래로 보냅니다. 한쪽은 얼려 둔 W를 지나는 원래 길, 다른 쪽은 고칠 양을 지나는 샛길입니다. 두 결과를 더해서 내보냅니다.
표를 먼저 더한 뒤 계산하나, 따로 계산한 뒤 더하나 결과는 같습니다.
그런데
고칠 양이 큰 표라면 줄어든 것이 없습니다
W를 얼려도 고칠 양의 표가 W만큼 크면 훈련할 숫자는 그대로입니다.
LoRA의 생각 ②
큰 표 하나를 작은 표 두 개로 바꿉니다
LoRA는 고칠 양을 큰 표로 두지 않습니다. 세로로 긴 표 A와 가로로 긴 표 B를 두고, 이 둘만 훈련합니다.
작은 표 두 개가 어떻게 큰 표 노릇을 하는지는 다음 편에서 봅니다.
정리
W는 얼리고, A와 B만 훈련합니다
원래 표 W는 훈련 내내 한 칸도 바뀌지 않습니다. 바뀌는 것은 샛길에 둔 A와 B뿐입니다.
다음 편