Table of Contents
[논문 겉핥기 리뷰] LoRA: Low-Rank Adaptation of Large Language Model
꼬꼬마코더 2024. 8. 31. 01:46ref: https://ngp9440.tistory.com/144
위에서 설명한 내용은 NLP 모델, 특히 매우 큰 사전 훈련된 언어 모델(GPT-3 등)을 다양한 다운스트림 작업(특정 작업에 모델을 적용하는 것)에 효율적으로 적용하기 위한 방법론에 대해 다루고 있습니다. 이를 쉽게 설명하면 다음과 같습니다.
문제 상황
- 기존의 방식: NLP에서는 모델을 특정 작업에 맞추기 위해 모델의 모든 파라미터(가중치)를 업데이트하는 전체 파인 튜닝을 자주 사용했습니다. 예를 들어, GPT-3와 같은 거대한 모델은 약 1750억 개의 파라미터를 가지고 있으며, 이 모든 것을 업데이트하는 데는 엄청난 계산 자원과 시간이 소요됩니다.
- 효율성 문제: 모델이 커질수록 전체 파라미터를 업데이트하는 방식은 비효율적입니다. 따라서 더 적은 파라미터만을 수정하거나, 특정 외부 모듈만 학습하는 방식으로 연구가 진행되고 있습니다. 예를 들어, 'adapter 모듈'을 추가하는 방식 등이 있습니다.
LoRA (Low-Rank Adaptation)
LoRA는 이러한 문제를 해결하기 위한 새로운 접근 방법입니다. 기본 아이디어는 다음과 같습니다:
- 기본 가정: 큰 모델의 가중치 변화는 사실상 '낮은 고유 차원(low intrinsic dimension)'에 있습니다. 즉, 전체 가중치를 수정할 필요 없이 매우 작은 부분만을 조정해도 충분합니다.
- 작동 방식: LoRA는 모델의 원래 가중치(pre-trained weight)를 고정하고, 이 가중치의 작은 변화만을 학습합니다. 이 변화는 'rank decomposition'이라는 기법을 사용하여 더 낮은 차원으로 분해하여 표현됩니다. 예를 들어, 두 매트릭스(A와 B)를 사용하여 원래 가중치의 작은 변화를 모델링합니다.
- 장점: 이 방법을 사용하면 스토리지 요구사항과 작업 전환 비용을 크게 줄일 수 있습니다. 또한, 대부분의 파라미터에 대한 최적화가 필요 없으므로, 학습 과정이 더 효율적이고 하드웨어에 대한 요구사항도 낮아집니다.
적용 및 결과
LoRA는 트랜스포머 아키텍처의 특정 부분(예: 주의(attention) 메커니즘의 가중치)에 적용될 수 있습니다. 연구 결과에 따르면, 매우 낮은 랭크(차원)의 적응이 가능하며, 이는 계산 및 메모리 효율성을 크게 향상시킬 수 있습니다.
LoRA 방법론은 이전의 접근 방법과 병합하여 사용될 수도 있으며, 예를 들어 prefix-tuning과 같은 기술과 결합하여 사용될 수 있습니다. 이러한 접근법은 NLP 모델의 효율적인 적응을 가능하게 하여, 자원 사용을 최소화하면서도 다양한 NLP 작업에 효과적으로 대응할 수 있게 합니다.
"Rank decomposition"은 선형 대수학에서 사용되는 방법으로, 본질적으로 행렬을 더 낮은 차원의 구성 요소로 분해하는 기법입니다. 이 기법은 행렬의 복잡도를 줄이면서도 중요한 정보를 유지하는 방법으로 사용됩니다. 특히, 머신러닝과 데이터 압축 분야에서 효율적인 계산과 데이터 저장을 위해 널리 사용됩니다.
Rank Decomposition의 기본 원리
주어진 행렬 WW에 대해, "rank decomposition"은 WW를 두 개의 더 작은 행렬 AA와 BB의 곱으로 표현하는 것입니다: W=ABW = AB
여기서:
- WW는 d×kd \times k 차원의 원래 행렬입니다.
- AA는 d×rd \times r 차원의 행렬이며,
- BB는 r×kr \times k 차원의 행렬입니다.
- rr은 WW의 "rank"로, AA와 BB가 표현할 수 있는 차원의 수를 의미합니다. 이 rr 값은 WW의 실제 rank와 동일하거나 더 작을 수 있습니다.
Rank Decomposition의 적용
- 데이터 압축: 데이터의 차원을 줄임으로써 저장 공간을 절약하고, 계산 효율성을 높일 수 있습니다.
- 잡음 제거: 데이터에서 잡음이나 불필요한 정보를 제거하고, 가장 중요한 특징만을 유지할 수 있습니다.
- 특징 추출: 데이터의 가장 중요한 특징을 추출하는 데 사용됩니다. 예를 들어, 이미지 처리에서 주요 특징을 식별하거나, 텍스트 데이터에서 핵심 주제를 도출하는 데 사용될 수 있습니다.
NLP에서의 적용
NLP의 맥락에서, 특히 대규모 언어 모델의 파라미터를 최적화할 때, rank decomposition을 통해 모델의 일부 가중치(예를 들어, Transformer 모델의 attention 가중치)를 더 효율적으로 표현할 수 있습니다. 이러한 접근 방식은 모델의 메모리 요구 사항을 줄이고, 계산 속도를 향상시키며, 미세 조정(fine-tuning) 시 필요한 파라미터의 수를 크게 줄일 수 있습니다.
LoRA(Low-Rank Adaptation)와 같은 기법은 이러한 rank decomposition을 활용하여 모델의 가중치를 효율적으로 업데이트하면서도 모델의 전체적인 성능을 유지할 수 있도록 도와줍니다. 이를 통해, 특정 작업에 필요한 계산 리소스와 메모리 사용을 줄이면서도 우수한 성능을 달성할 수 있습니다.
'DeepLearning > NLP' 카테고리의 다른 글
no_repeat_ngram_size (0) | 2024.08.31 |
---|---|
fp16, fp32, int8 (0) | 2024.08.31 |
한국어는 ROUGE, BLEU metric이 안맞나요? (0) | 2024.08.30 |
Understanding Causal LLM’s, Masked LLM’s, and Seq2Seq: A Guide to Language Model Training Approaches (0) | 2024.08.30 |
빔 서치(Beam Search) (0) | 2024.08.29 |
- Total
- Today
- Yesterday
- speaking
- #패스트캠퍼스 #UpstageAILab #Upstage #부트캠프 #AI #데이터분석 #데이터사이언스 #무료교육 #국비지원 #국비지원취업 #데이터분석취업 등
- Numpy
- English
- nlp
- #패스트캠퍼스 #패스트캠퍼스ai부트캠프 #업스테이지패스트캠퍼스 #upstageailab#국비지원 #패스트캠퍼스업스테이지에이아이랩#패스트캠퍼스업스테이지부트캠프
- LIST
- RAG
- classification
- LLM
- Python
- 해시
- recursion #재귀 #자료구조 # 알고리즘
- 코딩테스트
- #패스트캠퍼스 #패스트캠퍼스AI부트캠프 #업스테이지패스트캠퍼스 #UpstageAILab#국비지원 #패스트캠퍼스업스테이지에이아이랩#패스트캠퍼스업스테이지부트캠프
- Array
- Github
- clustering
- git
- 파이썬
- cnn
- 손실함수
- PEFT
- 리스트
- 오블완
- Lora
- Transformer
- 티스토리챌린지
- t5
- Hugging Face
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |