Minseong Code Lab
← Projects
Bootcamp MissionNLP

PEFT vs Full Fine-Tuning 비교

쇼핑 리뷰 감성 분석에서 PEFT와 전체 파인튜닝을 비교한 실습

게시 2026-07-10
PythonPyTorchTransformersPEFTJupyter
Contents · 목차
  1. 무엇을 하는 미션인가
  2. 두 방식의 설정 차이
  3. 비교 결과
  4. 표에서 읽히는 것
  5. 한계

무엇을 하는 미션인가

쇼핑 리뷰 감성 분류에서 Full Fine-Tuning과 PEFT(LoRA)를 같은 조건으로 학습해 비교하는 미션입니다. 베이스 모델은 beomi/KcELECTRA-base이고, 3개 클래스(negative / neutral / positive)를 분류합니다.

두 방식의 설정 차이

Full Fine-Tuning은 전체 파라미터를 갱신하고, LoRA는 어텐션 투영과 출력 dense에만 어댑터를 붙입니다. 분류 헤드는 학습이 필요하므로 modules_to_save로 따로 남겼습니다.

# notebooks/mission13.ipynb — LoRA 설정
lora_config = LoraConfig(
    task_type       = TaskType.SEQ_CLS,
    r               = 32,
    lora_alpha      = 64,
    lora_dropout    = 0.05,
    target_modules  = ["query", "key", "value", "output.dense"],
    bias            = "none",
    modules_to_save = ["classifier"],   # classifier head도 함께 저장
)

비교 결과

노트북 최종 셀의 출력입니다.

Val AccuracyVal Macro F1Test AccuracyTest Macro F1학습 시간모델 크기학습 파라미터
Full Fine-Tuning0.88440.84890.88240.8454871.5초417.8 MB109,083,651
PEFT (LoRA)0.88570.84720.87130.8290766.7초16.9 MB4,426,755

표에서 읽히는 것

학습 파라미터가 4.1%로 줄었고 저장 용량은 16.9 MB입니다 — Full FT 대비 4% 수준입니다. 학습 시간은 871.5초 → 766.7초로 약 12% 짧아졌습니다.

성능은 갈립니다. 검증셋에서는 LoRA가 Accuracy 기준 근소하게 앞서지만 (0.8857 vs 0.8844), 테스트셋에서는 Full FT가 더 좋습니다 (Macro F1 0.8454 vs 0.8290). 검증셋 결과만 보고 판단했다면 반대 결론이 나왔을 구간입니다.

Macro F1 차이(0.0164)는 소수 클래스인 neutral에서 벌어집니다. 클래스가 불균형한 데이터라 Accuracy보다 Macro F1을 함께 봐야 차이가 드러납니다.

한계

  • 시드를 바꿔 반복 실행하지 않았습니다. 위 차이가 실행 간 변동 범위 안인지 확인되지 않았습니다
  • LoRA 하이퍼파라미터(r=32, alpha=64)는 한 조합만 시도했습니다
  • 학습 시간은 같은 환경에서 순차 측정한 값이지만, GPU 상태까지 통제한 측정은 아닙니다
  • 이 미션에서 학습한 Full FT 모델이 미션 16의 양자화·ONNX 변환 대상이 됐습니다