3

Unsloth: 같은 QLoRA를 더 빠르게 돌리는 선택지

파인튜닝 개요 & LoRA/QLoRA

학습 목표
  • Unsloth가 QLoRA를 가속하는 원리를 이해한다
  • Unsloth와 표준 HuggingFace 방식의 차이를 코드 수준에서 비교하고, 개선폭은 직접 측정해야 한다는 것을 안다
  • 지원되는 모델 목록을 파악한다

Unsloth: 커널을 바꿔 같은 학습을 더 빠르게

왜 Unsloth인가?

김대리: "QLoRA 학습이 너무 오래 걸려요. 밤새 돌려야 해요."

박선배: "Unsloth를 한번 봐. 무료 오픈소스고 코드는 두어 줄만 바뀌어. 얼마나 빨라지는지는 GPU·시퀀스 길이·데이터 건수에 따라 달라지니까, 남의 배수를 외우지 말고 네 환경에서 한 번 재 봐."

Unsloth의 최적화

가속 원리:
1. 커스텀 CUDA 커널
   - Attention 연산 최적화
   - RoPE (위치 인코딩) 퓨전
   - Cross-Entropy Loss 퓨전

2. 메모리 최적화
   - 그래디언트 체크포인팅 개선
   - 메모리 효율적 역전파

3. 결과
   - 같은 데이터·같은 설정이면 어댑터 수학이 바뀌지 않으므로 학습 결과는 같은 계열이다
   - 속도와 메모리 개선폭은 공개 벤치마크마다 다르고 GPU·시퀀스·배치에 크게 좌우된다
   - 그래서 이 과정은 배수를 외우게 하지 않는다. Day 3 실습에서 직접 재고 표를 채운다

HuggingFace vs Unsloth 비교

항목HuggingFace PEFTUnsloth
학습 속도기준더 빠름 (폭은 환경별로 측정)
메모리기준더 적음 (폭은 환경별로 측정)
설치pip install peftpip install unsloth
코드 변경-최소 (2-3줄)
성능기준같은 계열 (본인 평가 지표로 확인)
지원 모델대부분Llama, Mistral, Gemma 등
가격무료무료 (오픈소스)

Unsloth 코드 (표준 vs Unsloth)

# === 표준 HuggingFace 방식 ===
from transformers import AutoModelForCausalLM
from peft import get_peft_model, LoraConfig

model = AutoModelForCausalLM.from_pretrained(
    "microsoft/Phi-4-mini-instruct",
    quantization_config=bnb_config,
)
model = get_peft_model(model, lora_config)

# === Unsloth 방식 (이것만 바꾸면 됨!) ===
from unsloth import FastLanguageModel

model, tokenizer = FastLanguageModel.from_pretrained(
    model_name="unsloth/Phi-4-mini-instruct-bnb-4bit",  # 사전 양자화된 같은 3.8B 모델
    max_seq_length=512,
    load_in_4bit=True,
)
model = FastLanguageModel.get_peft_model(
    model,
    r=16,
    lora_alpha=32,
    # 모듈 이름은 베이스 모델을 따른다. Llama 예제를 그대로 복사하면 안 된다.
    target_modules=["qkv_proj", "o_proj", "gate_up_proj", "down_proj"],
    lora_dropout=0,
    bias="none",
)

지원 모델 (2024-2026)

Llama 계열:
- Llama 2 (7B, 13B)
- Llama 3 (8B, 70B)
- Llama 3.1 (8B, 70B, 405B)
- Llama 3.2 (1B, 3B)
- Llama 3.3 (70B)
- Llama 4 Scout (17B active, MoE)

기타:
- Mistral (7B), Mixtral (8x7B)
- Gemma 2 (2B, 9B, 27B)
- Phi-3 (mini, small, medium)
- Qwen 2 (0.5B, 1.5B, 7B, 72B)
- DeepSeek-V3 (685B MoE)
- Qwen 2.5/3 (0.5B~72B)
- Gemma 3/4 (2B~31B)
- Phi-4 (14B), Phi-4-mini (3.8B)  <- 이 과정이 쓰는 것은 mini 쪽이다
AI로 학습하기 — 꿀팁
Unsloth vs HuggingFace 비교표 생성AI 학습 팁

Unsloth와 표준 HuggingFace PEFT의 속도·메모리·호환성 차이를 표로 정리하면 실습 환경 선택 근거가 명확해집니다.

Unsloth와 표준 HuggingFace PEFT+Transformers를 이용한 QLoRA 학습을 비교하는 마크다운 표를 만들어줘. 비교 항목: 학습 속도(토큰/초), GPU 메모리 사용량, Flash Attention 2 지원 여부, 그래디언트 체크포인팅 방식, Llama-3 7B 지원 여부, 설치 복잡도, 제조 도메인 sLLM 학습 추천 여부. 수치는 공개 벤치마크 기준 근사값을 사용하고 출처 불명확한 수치는 '미공개'로 표시해줘.
이 팁이 도움이 됐나요?
핵심 포인트
  • Unsloth: Attention·RoPE·Cross-Entropy를 커스텀 CUDA 커널로 퓨전해 같은 QLoRA 학습을 더 빠르게 돌린다
  • 코드 변경 최소 (FastLanguageModel 클래스 사용)
  • Llama, Mistral, Gemma 등 주요 모델 지원
  • 무료 오픈소스. 속도·메모리 개선폭은 환경마다 다르므로 본인 GPU에서 재고 조건과 함께 적는다
용어