Paper Review

[paperReview]:LoRA: Low-rank adaptation of large language models

뚜둔뚜둔 2024. 11. 18. 18:01

 

1.Fully Fine-Tuning 이 힘든 이유?

LLM의 weight는 최소 1.5~3B 이다.

Model을 GPU에 load 하는 것만 해도 웬만한 GPU가 아닌 이상 불가능 하다.

모델을 Fine-Tuning 학습하는것도 힘듦

forward & Backward, 이를 통한 Model weight update는 gradient 를 전부 GPU에 저장해야 된다.

gradient 뿐만 아니라 Optimizer를 위한 이전 기록(=tensor)들도 GPU에 저장해야 한다.

결국 Fully Fine-Tuning을 위해서는 모델의 weight수 *2~3배의 GPU vram이 필요하다.

weight의 수가 많은 LLM을 Fully Fine-tuning하지 않는 이유가 이것이다.

이를 개선 하고자 나온 것이 LoRA d이다.

 

2. LoRA 학습 방법

LoRA의 방법론

  • Fully Fine-Tuning하지 않음
  • Model weight를 Freeze함
  • 학습하는 Layer는 LoRA_A & LoRA_B 이다. (둘 다 nn.linear 형태)
  • Transformer Layer에 있는 Query, key, Value, Ouput(=self attenction)중 선택하여 (LoRA_B * LoRA_A)를 더해줬기 때문

즉, Model Weight를 freeze하지만 inference 시 사용되는 weight값은 update가 됨.

model weight에 (LoRA_B * LoRA_A)를 더해줬기 때문

 

  • 왼쪽에 있는 파란색 box는 pretrained Model의 Weight이다.
    • Transformer Layer의 Query, key, Value, Output(=Self attention)의 차원은 (d*k)dlek.
    • d는 hidden_size, k는 d와 거의 같다.
    • Fully Freeze 되어 학습시 weight update가 되지 않는다.
      • gradient, optimize 관련된 tensor값이 gpu에 load되지 않는다.
      • 즉, vram을 save할 수 있다.
    • 오른쪽에 있는 주황색 A가 LoRA_A layer 이다.
      • LoRA_A는 nn.linear이다.
      • {d * r}의 차원을 가지고 있다.
      • d는 hidden_size, r은 사용자가 설정한 낮은 차원 (r << d)이다.
    • 오른쪽에 있는 주황색 B가 LoRA_B layer이다.
      • LoRA_B는 nn.linear 이다.
      • {r*k}의 차원을 가지고 있다. (k는 d와 거의 유사)
      • k는d와 거의 유사하며, r은 사용자가 설정한 낮은 차원 (r<<d)이다.


3. LoRA_B, * LoRA_A 는 어디 Pretrain layer weight에 더해지는가?


해당 표는 모델을 학습 하기 위해 18M의 weight만을 가지고 2개의 Downstream task에 대한 loRA학습 결과를 보여준다.

18M의 weight는 LoRA_A, LoRA_B에 의한 weight수이다.

  • Weight Type?
    • (LoRA_A * LoRA_B)가 더해지는 transformer layer이다.
    •  

 

 

 

 

참고: 

https://beeny-ds.tistory.com/entry/LORA-%EB%85%BC%EB%AC%B8-%EC%89%BD%EA%B2%8C-%EC%84%A4%EB%AA%85%ED%95%98%EA%B8%B0

 

[LoRA] 논문 쉽게 설명하기

21년 여름에 혜성처럼 등장해 최근 2년 동안 LLM 학습을 위해 사용되고 있는 LoRA 를 소개한다. LoRA 를 소개할 때 수식에 대한 내용은 최대한 제거하고 원리는 무엇인지, 모델 구조에서 학습을 위해

beeny-ds.tistory.com

 

반응형

'Paper Review' 카테고리의 다른 글

[PaperReview]FinGPT: Open-Source Financial Large Languge Models(2023)  (8) 2024.11.13
what is Review paper?  (3) 2024.11.06
Surrvey paper  (0) 2024.11.05