Bootcamp MissionNLP
PEFT vs Full Fine-Tuning 비교
쇼핑 리뷰 감성 분석에서 PEFT와 전체 파인튜닝을 비교한 실습
게시 2026-07-10
PythonPyTorchTransformersPEFTJupyter
Repository개인 저장소
malit9999/nlp-shopping-review-sentiment-mission-13(새 탭에서 열림)Contents · 목차
무엇을 하는 미션인가
쇼핑 리뷰 감성 분류에서 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 Accuracy | Val Macro F1 | Test Accuracy | Test Macro F1 | 학습 시간 | 모델 크기 | 학습 파라미터 | |
|---|---|---|---|---|---|---|---|
| Full Fine-Tuning | 0.8844 | 0.8489 | 0.8824 | 0.8454 | 871.5초 | 417.8 MB | 109,083,651 |
| PEFT (LoRA) | 0.8857 | 0.8472 | 0.8713 | 0.8290 | 766.7초 | 16.9 MB | 4,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 변환 대상이 됐습니다