본 정리글은 "[챗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' 카테고리의 다른 글
강의 노트: 입문 - 자연어처리 시작하기 (0) | 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 (0) | 2017.07.21 |
[ML lec 05] Logistic Classification (0) | 2017.07.19 |