Table of Contents
LoRA 외에도 PEFT(Parameterized Efficient Fine-Tuning) 기술로 사용할 수 있는 여러 가지 방법
꼬꼬마코더 2024. 9. 9. 12:48LoRA 외에도 PEFT(Parameterized Efficient Fine-Tuning) 기술로 사용할 수 있는 여러 가지 방법이 있습니다. 각 방법은 LoRA와 마찬가지로 대규모 모델의 효율적인 파인튜닝을 목표로 하며, 메모리와 계산 비용을 줄이면서 성능을 유지하거나 개선할 수 있습니다. 아래에서 다른 주요 PEFT 기술들을 소개합니다.
1. Prefix Tuning
설명: 입력 시퀀스에 모델 학습 중 추가적인 "프리픽스" 벡터를 삽입하여 모델을 미세 조정하는 방식입니다. 모델의 기존 파라미터는 고정된 상태에서 추가된 프리픽스 벡터만 학습됩니다.
장점:
- 모델 파라미터를 수정하지 않고, 효율적으로 미세 조정이 가능합니다.
- 원래 모델의 성능을 유지하면서도 특정 작업에 맞게 빠르게 조정할 수 있습니다.
적용 시점: 대규모 파라미터를 직접 수정하지 않고 특정 작업에 최적화할 때 유용합니다.
관련 연구: Prefix Tuning (Li and Liang, 2021)
from peft import PrefixTuningConfig prefix_config = PrefixTuningConfig( num_virtual_tokens=20, # 프리픽스 토큰 개수 prefix_projection=True # 프리픽스 투영 사용 여부 )
2. Adapter Tuning
설명: 모델의 원래 파라미터를 고정하고, 추가적인 작은 네트워크(어댑터)를 삽입하여 파인튜닝하는 방식입니다. 각 층에 어댑터를 추가하여 이 부분만 학습하고, 나머지 부분은 고정합니다.
장점:
- 기존 모델을 거의 변경하지 않고, 새로운 작업에 대한 미세 조정이 가능합니다.
- 메모리 사용량이 적고, 학습 효율이 높습니다.
적용 시점: 대규모 모델을 수정하지 않으면서 작은 학습 파라미터로 성능을 최적화할 때 유용합니다.
관련 연구: Adapter-BERT (Houlsby et al., 2019)
from peft import AdapterConfig adapter_config = AdapterConfig( reduction_factor=4, # 차원 축소율 non_linearity="relu" # 활성화 함수 )
3. Prompt Tuning
설명: 입력 프롬프트에 몇 개의 학습 가능한 토큰을 추가하여, 모델을 미세 조정하는 방식입니다. 프롬프트 토큰만 학습되며, 모델의 나머지 파라미터는 고정됩니다.
장점:
- 매우 가벼운 파라미터를 학습함으로써 빠르고 메모리 효율적으로 미세 조정이 가능합니다.
- 소량의 데이터로도 좋은 성능을 얻을 수 있습니다.
적용 시점: 대규모 파라미터를 직접 수정하지 않고, 모델이 특정 프롬프트에 반응하도록 조정할 때 유용합니다.
관련 연구: Prompt Tuning (Lester et al., 2021)
from peft import PromptTuningConfig prompt_config = PromptTuningConfig( num_virtual_tokens=50 # 학습 가능한 프롬프트 토큰 개수 )
4. P-Tuning v2
설명: Prompt Tuning을 확장한 방식으로, 프롬프트 학습을 Transformer 레이어에 적용하여 더 깊은 학습이 가능하게 합니다. 입력과 연결된 프롬프트뿐만 아니라 각 레이어에 학습된 벡터를 추가하여 성능을 높입니다.
장점:
- 더 복잡한 작업에서도 성능을 발휘하며, 다양한 작업에 맞게 쉽게 조정 가능합니다.
- 메모리 사용량이 적어 효율적입니다.
적용 시점: 프롬프트 튜닝의 성능이 충분하지 않을 때, 더 복잡한 모델에 적용할 수 있습니다.
관련 연구: P-Tuning v2 (Liu et al., 2021)
from peft import PromptTuningConfig prompt_v2_config = PromptTuningConfig( num_virtual_tokens=100, # 더 많은 학습 가능한 프롬프트 토큰 개수 task_type="seq_classification" # 작업 유형 )
5. BitFit
설명: 모델의 bias 파라미터만 미세 조정하는 방식입니다. 나머지 가중치는 고정하고, bias 항만 학습하게 하여 메모리와 계산 비용을 극도로 줄입니다.
장점:
- 메모리 사용량이 매우 적고, 연산 비용이 낮습니다.
- 간단한 작업에도 효과적이며, 특정 상황에서 LoRA에 가까운 성능을 보일 수 있습니다.
적용 시점: 메모리나 연산 자원이 매우 제한된 상황에서 빠르게 학습을 해야 할 때 유용합니다.
관련 연구: BitFit (Zaken et al., 2021)
from peft import BitFitConfig bitfit_config = BitFitConfig()
6. IA^3 (Inverse Attention Adapters)
설명: 모델의 Attention 및 MLP 모듈에 작은 학습 가능한 행렬을 추가하여 파라미터를 미세 조정합니다. IA^3는 추가적인 학습이 가능하면서도 매우 효율적인 방식으로, 메모리와 연산량을 줄이는 데 도움을 줍니다.
장점:
- 성능 손실 없이 매우 효율적인 학습이 가능하며, 메모리 사용량이 최소화됩니다.
적용 시점: LoRA와 유사한 방식으로, 대규모 모델을 효율적으로 학습할 때 사용됩니다.
관련 연구: IA^3 (Liu et al., 2022)
from peft import IA3Config ia3_config = IA3Config()
각 PEFT 기법 비교
기술 | 장점 | 단점 | 사용 사례 |
---|---|---|---|
LoRA | 효율적이고 성능이 좋음 | 추가 파라미터 필요 | 대규모 모델 파인튜닝 |
Prefix Tuning | 모델 파라미터 고정, 작은 데이터에도 적합 | 전체 모델 파인튜닝 불가 | 특정 작업에 맞춤 |
Adapter Tuning | 모델의 작은 모듈만 학습 | 어댑터 크기가 클 경우 메모리 사용 증가 | 다중 작업, 언어 모델 |
Prompt Tuning | 빠르고 경량 | 성능이 제한될 수 있음 | 소량 데이터 학습 |
P-Tuning v2 | 깊은 학습으로 성능 향상 | 복잡성 증가 | 복잡한 작업 |
BitFit | 매우 가벼운 학습 가능 | 성능 제한 가능성 있음 | 메모리 제한된 상황 |
IA^3 | 매우 효율적이고 메모리 사용량 적음 | 모델 구조에 의존적 | 효율적 학습 필요 시 |
결론:
- LoRA 외에도 다양한 PEFT 기술을 사용해 모델을 효율적으로 파인튜닝할 수 있습니다.
- 각 기술은 메모리 사용, 학습 효율, 성능 최적화 측면에서 장단점이 있으므로, 작업 특성에 맞게 선택하는 것이 중요합니다.
'DeepLearning > NLP' 카테고리의 다른 글
[LLM] Transformers 모델 구조 Attention Is All You Need (0) | 2024.09.16 |
---|---|
float16과 bfloat16 (0) | 2024.09.10 |
LoRA(Low-Rank Adaptation)와 같은 PEFT(Parameterized Efficient Fine-Tuning) 기술 적용 (0) | 2024.09.09 |
Tokenizer 만드는 방법 (0) | 2024.09.04 |
IndexError: index out of range in self (4) | 2024.09.04 |
- Total
- Today
- Yesterday
- Array
- clustering
- LIST
- git
- #패스트캠퍼스 #UpstageAILab #Upstage #부트캠프 #AI #데이터분석 #데이터사이언스 #무료교육 #국비지원 #국비지원취업 #데이터분석취업 등
- 파이썬
- recursion #재귀 #자료구조 # 알고리즘
- Python
- PEFT
- RAG
- #패스트캠퍼스 #패스트캠퍼스AI부트캠프 #업스테이지패스트캠퍼스 #UpstageAILab#국비지원 #패스트캠퍼스업스테이지에이아이랩#패스트캠퍼스업스테이지부트캠프
- #패스트캠퍼스 #패스트캠퍼스ai부트캠프 #업스테이지패스트캠퍼스 #upstageailab#국비지원 #패스트캠퍼스업스테이지에이아이랩#패스트캠퍼스업스테이지부트캠프
- LLM
- English
- 티스토리챌린지
- 손실함수
- Hugging Face
- Transformer
- 오블완
- nlp
- Lora
- Numpy
- classification
- 코딩테스트
- speaking
- 리스트
- Github
- t5
- cnn
- 해시
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |