728x90
반응형
✅ 2단계: Hugging Face 사전학습 모델 불러오기
🎯 목표
- LLM 모델 불러오기
- LoRA를 적용할 수 있는 형태로 구성하기
📌 1. 모델 선택
로컬 환경 성능에 따라 아래 중 선택하세요:
모델 이름설명VRAM 요구
tiiuae/falcon-rw-1b | 가볍고 학습 속도 빠름 | 4GB 이상 |
EleutherAI/gpt-neo-1.3B | GPT-2 스타일 LLM | 6GB 이상 |
mistralai/Mistral-7B | 고성능, 최근 각광 | 14GB 이상 |
meta-llama/Llama-2-7b-hf | 성능 좋지만 시스템 세팅 필요 | 16GB 이상, transformers>=4.35 필요 |
여기서는 예시로 Falcon-RW-1B를 사용합니다. (빠르고 가벼움)
📦 2. 모델 및 토크나이저 로드
from transformers import AutoModelForCausalLM, AutoTokenizer
base_model_id = "tiiuae/falcon-rw-1b"
tokenizer = AutoTokenizer.from_pretrained(base_model_id)
model = AutoModelForCausalLM.from_pretrained(
base_model_id,
torch_dtype=torch.float16,
device_map="auto"
)
device_map="auto"는 여러 GPU가 있는 경우 자동 분산 로딩을 지원합니다.
🔧 3. PEFT - LoRA 구성
from peft import get_peft_model, LoraConfig, TaskType
peft_config = LoraConfig(
r=8, # low-rank 차원
lora_alpha=32, # scaling factor
lora_dropout=0.05, # dropout 적용
bias="none", # 바이어스 학습 여부
task_type=TaskType.CAUSAL_LM # GPT 계열은 CAUSAL_LM
)
lora_model = get_peft_model(model, peft_config)
# 학습할 파라미터 수 확인
lora_model.print_trainable_parameters()
출력 예시:
trainable params: 592,384 || all params: 2,096,128,000 || trainable%: 0.0283
📁 (선택) 모델 구조 확인
print(lora_model)
LoRA가 어디에 적용되었는지 확인할 수 있습니다. 보통 query_key_value 또는 dense 등에 적용됩니다.
📦 다음 단계 예고: 3단계 - 데이터셋 준비 및 전처리
- Alpaca 형식(json) 또는 Hugging Face Datasets에서 불러오기
- 텍스트를 prompt-response 형태로 정리
- 토크나이저로 학습용 input/label 생성
728x90
반응형