실습 · 연습문제 1개
LoRA의 순전파·병합·파라미터 수 lora-merge
LoRA는 사전학습 가중치 를 고정하고 저랭크 갱신을 더한다.
세 함수를 완성한다. 입력은 batch로 들어온다: X의 shape은 (N, d_in), 출력은 (N, d_out)이다.
lora_forward(X, W0, A, B, alpha): 위 식을 병합하지 않고 계산한다. 고정 경로 와 저랭크 경로 를 따로 계산해 더한다. 은A의 행 수다.merge(W0, A, B, alpha): 병합한 가중치 를 반환한다(shape(d_out, d_in)).W0를 제자리에서 바꾸지 않는다.n_trainable(d_in, d_out, r): LoRA가 학습하는 파라미터 수(정수)를 반환한다.
테스트는 다음을 확인한다.
- 병합한 가중치의 출력
X @ merge(...).T가lora_forward와 같다. B가 0이면 출력이 사전학습 모델 와 같다(학습의 시작점).- 갱신 의 rank가 이하다.
merge가W0를 바꾸지 않는다.- 행렬, 이면 학습 파라미터는 16,384개다.