← 문제 목록/LoRA Forward (Low-Rank Adaptation)
문제 해설

LoRA Forward (Low-Rank Adaptation)

파인튜닝 · easy

preview

LoRA Forward (Low-Rank Adaptation)

82번 Linear forward Y=XW+bY = X W + b 로 선형층을 익혔습니다. LoRA (Hu et al. 2021) 는 큰 모델의 WW건드리지 않고, 작은 저랭크 보정 ABA B 만 추가로 학습합니다:

Y=XW+XAB+bY = X W + X A B + b

  • WW shape (D_in, D_out) — 원본 가중치 (frozen).
  • AA shape (D_in, r), BB shape (r, D_out) — 학습할 LoRA 가중치.
  • rmin(Din,Dout)r \ll \min(D_\text{in}, D_\text{out}) — 보통 4, 8, 16, 64.

왜 중요?

  • 7B GPT: WW 수십억 파라미터 → LoRA r=8r=8 이면 수백만 만 학습하면 됨.
  • 여러 task 별로 작은 A,BA, B 만 저장 → disk 절약.
  • 수렴 속도·성능 거의 동등.
  • Hugging Face PEFT, Stable Diffusion LoRA 등 표준 도구.

초기화 관례

  • AA: Kaiming / Gaussian 랜덤 초기화.
  • BB: 0 으로 초기화 → 학습 시작 시 AB=0AB = 0, 원본 WW 유지.
  • 학습 중 BB 가 점점 의미있는 방향으로 움직임.

과제

함수 lora_forward(X, W, A, B, b) 를 완성하세요.

  • X shape (N, D_in), W (D_in, D_out), A (D_in, r), B (r, D_out), b (D_out,).
  • 반환: (N, D_out)X @ W + X @ A @ B + b.
  • 계산 순서: X @ A @ B 는 먼저 X @ A 로 작아져서 효율적.

테스트 케이스

#이름검증
1shape (N, D_out)
2B=0 → 순수 Linear82번 결과와 일치
3W=0, b=0 → 저랭크만
4선형성f(2X) = 2·f(X) (b=0)
5결합률: X @ (A @ B) = X @ A @ B
코드 작성
Loading...
실행 결과

코드를 작성하고 Run 을 눌러보세요.