본문 바로가기

카테고리 없음

🧭 2. 전체 실습 흐름 - 2

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
반응형