생각하는 아져씨

PEFT, LoRA 입문하기✌️ 본문

Machine & Deep Learning/Generative AI

PEFT, LoRA 입문하기✌️

azeomi 2023. 10. 20. 12:21

앤드류 응 교수님의 강의를 듣고 정리 및 공부한 글임을 알려드립니다.

Generative AI with LLMs In Generative AI with Large Language Models (LLMs), created in partnership with AWS, you’ll learn the fundamentals of how generative AI works, and how to deploy it in real-world applications.

 

LoRA(Low Rank Adaptation)

  • PEFT 중 Reparameterization 테크닉에 속하는 기법으로, 사전학습 모델에 학습이 가능한 Rank decomposition 행렬을 삽입한 것으로 파인튜닝 동안 학습되는 파라미터를 줄이는 전략
    • 오리지널 모델의 파라미터를 freezing 하고
    • ‘A Pair of Rank Decomposition Matrices’를 오리지널 weights에 주입합니다.
    • 그리고 smaller matrices의 weights를 학습합니다.
  • Rank Decomposition
    • 행렬의 차원을 r 만큼 줄이는 행렬과 다시 원래 크기로 키워주는 행렬의 곱으로 나타내는 것을 의미합니다.
    • 레이어 중간마다 존재하는 hidden states h에 값을 더해줄 수 있는 파라미터를 추가해 줘서 모델의 출력 값을 원하는 타깃 레이블에 맞게 튜닝하는 것이 LoRA 테크닉입니다.
  • 핵심 포인트는,
    • 오리지널 모델의 weights는 Freeze!
    • 한 쌍의 rank decomposition matrices를 오리지널 모델의 weights에 주입!

 

LoRA Example 살펴보기

트랜스포머 아키텍처를 활용해 살펴보겠습니다.

  • 트랜스포머에는 2 종류의 NN이 학습 → Self Attention & Feed forward Network
  • 원래 이 2 파트는 pre-training 시 학습되는 parameter 들로, Full fine-tuning 진행 시 이 부분이 모두 update 됩니다.
  • 하지만! LoRA를 사용하면 모두 update 하지 않아도 됩니다.

1. Original weights freeze : 먼저 오리지널 weights는 고정!

2. Matrix Multiply the low rank matrices : Low Rank Matrices의 행렬곱을 진행

3. Add to original weights : 오리지널 weights에 LoRA Matrices를 더함

4. Update weights : small matrices만 업데이트

LoRA의 장점

  • LoRA significantly reduces parameters
    • 트랜스포머 논문에 따르면, weights 차수가 512 * 64로 총 32,768개의 학습 파라미터 존재합니다.
    • rank = 8 인 LoRa를 이용하면, 32,768개의 파라미터를 풀로 업데이트하지 않고, 작은 rank decomposition matrices를 대신 학습할 수 있습니다.
    • 즉, B는 5128 = 4,096개, A는 864 = 512개로 총 4,608개 파라미터만 업데이트하면 되는 것이죠.
    • 기존보다 86% 감소하게 되고,
    • 그렇기 때문에 single gpu에서도 PEFT 가능하다는 장점이 있습니다.
  • LoRA is flexible
    • rank decomposition matrices가 아주 작기 때문 → 각 Task에 대해 fine-tune 할 수 있고, inference 시 weights를 업데이트할 수 있습니다.
    • Full fine tuning 시, Task 마다 오리지널 LLM과 동일한 사이즈의 모델이 만들어지면서 → 모델을 저장하고 처리하는데 storage 문제가 발생할 수 있습니다.
    • 하지만, LoRA로 공간도 절약하고 flexible 하게 적용이 가능하게 됩니다.
  •