목차
반응형
1. peft(🤗 Parameter-Efficient Fine-Tuning)란?
peft(Parameter-Efficient Fine-Tuning)는 Hugging Face에서 제공하는 라이브러리로, 대형 언어 모델(LLM)을 효율적으로 파인튜닝할 수 있도록 도와준다.
기존 방식처럼 모델 전체를 미세 조정하는 대신, 일부 가중치만 조정하여 메모리 사용량을 줄이고, 훈련 속도를 높이며, 다양한 작업에 쉽게 적용할 수 있도록 설계되었다.
2. peft의 주요 기능
- LoRA (Low-Rank Adaptation)
- 특정 가중치 행렬의 일부만 학습 가능한 상태로 두어 모델 크기를 줄이고, 연산량을 감소시킴
- 메모리 사용량이 적어 GPU 자원이 적어도 LLM을 튜닝할 수 있음
- Prefix Tuning
- 입력 시퀀스 앞에 학습 가능한 토큰(prefix) 을 추가하여 모델을 조정하는 방식
- 모델 가중치를 거의 변경하지 않고도 빠른 도메인 적응이 가능함
- Prompt Tuning
- 모델의 가중치를 고정한 채, 입력 프롬프트만 학습하는 방식
- 파인튜닝보다 훨씬 적은 데이터로 특정 태스크에 적응 가능
- Adapter
- 모델의 특정 층 사이에 추가적인 작은 네트워크(어댑터)를 삽입하여 파인튜닝
- 기존 모델을 거의 그대로 유지하면서 새로운 작업을 학습할 수 있음
- IA3 (Intrinsic Attention Adaptation)
- Attention 가중치 일부만 조정하는 방식으로, 가장 적은 수의 파라미터를 학습하면서도 효과적인 성능 향상을 제공
3. 적용 예시
- config 에서 설정
- peft 적용해 모델을 불러옴
from peft import LoraConfig, get_peft_model
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "meta-llama/Llama-2-7b-chat-hf"
model = AutoModelForCausalLM.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)
# LoRA 설정
config = LoraConfig(
r=8, lora_alpha=32, lora_dropout=0.1,
bias="none", task_type="CAUSAL_LM"
)
# peft 모델 적용
peft_model = get_peft_model(model, config)
반응형
'자연어처리 > LLM을 위한 코딩' 카테고리의 다른 글
[LLM] 파인튜닝(fine-tunning) (9) (0) | 2025.02.28 |
---|---|
[LLM] 모델 학습 with HuggingFace (DeepSpeed) (7) (0) | 2025.02.20 |
[LLM] 모델 학습 with HuggingFace (Accelerate) (6) (0) | 2025.02.15 |
[LLM] 모델 학습 with Hugging Face (TrainingArguments, Trainer, trl) (5) (1) | 2025.02.13 |
[LLM] 데이터 준비 with huggingface (datasets) (4) (0) | 2025.02.10 |