강의 노트: LoRa로 빠르게 나만의 모델을 만들어보자

2023. 7. 7. 21:00·AI/Lecture notes

 

본 정리글은 "[챗GPT 러닝데이 | 챗GPT말고 LLM] LoRa로 빠르게 나만의 모델을 만들어보자 - 김용담"을 보고 작성하였습니다.

 


 

LoRa가 등장한 배경

 

Large-Scale Pretrained Model

대용량 데이터와 대규모 파라미터로 학습된 모델들
GPT-3 (175B)

 

LSPM limitation

Over-parametrized model이다
보통 pre-trained model을 fine-tuning해서 donwstream task를 푸는데, 필요한 정보는 일부임
기존 연구들을 통해서 필요한 정보는 'intrinsic dimension'에 있을 것이라고 판단했음
이러한 intrinsic dimension을 찾기 위해 'Low-Rank space'로 변환하는 방식을 사용하면 더 적은 파라미터로도 같은 성능을 낼 수 있을 것이라고 판단했음

 

Low-Rank?

선형대수의 rank(계수)와 같은 의미임
Low-rank approximation을 통해서 dimension-reduction을 할 수 있음

 

LoRa (Low-Rank Adaptation)

pre-trained weight를 frozen한 상태에서, pre-trained weight의 정보를 간접적으로 low-rank로 optimize할 수 있음
GPT-3의 경우에는 12,888에 해당하는 원본(full-rank) 정보를 r = 1,2 정도의 저차원에서 표현 가능하다는 것을 밝혔음
이것을 통해, LoRA approach는 time & space complexity를 획기적으로 줄일 수 있음

 


 

LoRa에 대해 알아보자

 

LoRA의 목표

LM은 보통 auto regressive way한 모델.

 

LoRA는 실제 LLM tuner로 제격이다.

W = W0 + BA

BA는 특정 downstream task를 위해 학습된 weight matrices이다.
새로운 downstream task에 대해서 tuning한다면 B'A'만 새로 학습하면 된다.
fine-tuning을 모두 다시해야하는 다른 모델들 대비 훨씬 더 효율적
기반 모델을 계속해서 활용할 수 있음 (W0)

 

Transformer에 적용

k, q, v에 각각 적용됨

Wk = W0k + BAk
Wq = W0q + BAq
Wv = W0v + BAv

 

LoRA를 Transformer 기반 LLM들에 적용시켰을 때,

Transformer Large의 경우 2/3 정도 VRAM 사용량을 줄였음
GPT-3 175B의 경우, 1.2TB에서 350GB로 줄였음 (VRAM 사용량..)
r=4로 두면, 350GB를 35MB로 10,000배 정도 줄일 수 있었음 (projection in q, v)
GPT-3 175B를 pre-trained weight로 두고, 여러 다른 downstream task를 LoRA로 처리하면 25% 속도 향상이 있음
attention weights만 adapting하는 것을 실험함 (연구 이후에 다른 모듈들에도 테스트를 많이 시행함)
additional inference latency를 줄이기 위해서 weight를 합친 경우에는 여러 downstream task에 적용하기 번거로움
r에 대해서 hyper-param tuning을 해야 함

저작자표시 (새창열림)

'AI > Lecture notes' 카테고리의 다른 글

강의 노트: 입문 - 자연어처리 시작하기  (1) 2023.07.06
[ML lec 08] Deep Neural Nets for Everyone  (0) 2017.07.27
[ML lec 07] Application & Tips  (0) 2017.07.25
[ML lec 06] Softmax Regression  (1) 2017.07.21
[ML lec 05] Logistic Classification  (1) 2017.07.19
'AI/Lecture notes' 카테고리의 다른 글
  • 강의 노트: 입문 - 자연어처리 시작하기
  • [ML lec 08] Deep Neural Nets for Everyone
  • [ML lec 07] Application & Tips
  • [ML lec 06] Softmax Regression
pfldy2850
pfldy2850
인공지능의 서비스화와 현실화에 관심이 많은 엔지니어입니다.
  • pfldy2850
    DEV.DY
    Github LinkedIn
  • 전체
    오늘
    어제
    • All (105)
      • AI (68)
        • 어플리케이션 개발 (11)
        • 모델 인퍼런스 (9)
        • 검색 시스템 (11)
        • MLOps (8)
        • 기술,논문 리뷰 (7)
        • Lecture notes (10)
        • 오픈소스 릴리즈 노트 (12)
      • Infra (4)
        • Kubernetes (1)
        • Service Mesh (1)
        • Service Proxy (1)
        • Storage (1)
      • Data Engineering (4)
        • Spark (3)
        • Kafka (1)
        • Delta Lake (0)
      • 컴퓨터 공학 (2)
        • 소프트웨어 공학 (2)
      • 개발 (16)
        • ReactJS (8)
        • NodeJS (2)
        • Python (4)
        • Pytorch (1)
        • git (1)
      • 영어공부 (2)
        • GPT로 영어 회화 공부 (2)
      • 활동 (2)
        • 2017 NDC (2)
      • 기타 (1)
      • 레거시 (6)
        • OS (6)
  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
pfldy2850
강의 노트: LoRa로 빠르게 나만의 모델을 만들어보자
상단으로

티스토리툴바