매거진 AI NOTE

GPU 파인튜닝 성능 비교: L4 vs A100 vs

L4 vs A100 vs H100, 그리고 DataParallel의 함정

by dean



image.png?type=w1


서론

온라인 커뮤니티에서 악플이랑 욕설은 진짜 끊이질 않는다. 이걸 자동으로 감지하려고 한국어에 특화된 KcELECTRA 모델을 파인튜닝하기로 했다.

파인튜닝 하면서 자연스럽게 드는 의문이 있었다.

어떤 GPU를 써야 할까?

비싼 GPU가 정말 그만큼 값어치를 할까?

Multi-GPU 쓰면 무조건 빨라질까?


이번 글에서는 GCP의 L4, A100, H100 GPU로 똑같은 모델을 학습시키면서 실제 소요 시간이랑 비용을 비교해봤다.


실험 환경

모델 정보

2025-12-04_20-19-48.png

데이터셋

총 79만개 데이터를 수집해서 직접 라벨링했다.


데이터 출처:

AI Hub 한국어 혐오 표현 데이터셋

Curse Detection Data (2runo)

K-MHaS (ADL NLP)

NSMC (Naver Sentiment Movie Corpus)

kor_unsmile (Smilegate AI)


라벨 카테고리 (10개):

여성/가족

남성

성소수자

인종/국적

연령

지역

종교

기타/혐오

악플/욕설

clean


데이터 분할:

2025-12-04_20-22-09.png

학습 설정

2025-12-04_20-22-17.png

GCP GPU 스펙

2025-12-04_20-22-43.png

실험 결과

GPU별 학습 시간 비교

2025-12-04_20-23-13.png

학습 시간 시각화

2025-12-04_20-23-44.png

모델 성능 비교

모든 GPU에서 거의 동일한 성능이 나온다. 당연히 그래야 정상이고.

2025-12-04_20-24-17.png

DataParallel의 함정


문제 상황

A100 1GPU로 학습 돌렸는데 예상보다 너무 느렸다.

확인해보니까 4개 GPU 중에 1개만 돌아가고 있었음.

2025-12-04_20-39-11.png GPU 1개만 사용중..



"그럼 DataParallel로 4개 다 쓰면 4배 빨라지겠지?"


2025-12-04_20-25-15.png

왜 이런 일이?

nn.DataParallel은 가장 간단한 멀티GPU 방식인데, 심각한 비효율이 있다.

2025-12-04_20-39-36.png DDP 로 4개 다 사용중




1. GPU 0 병목현상

DataParallel은 매 step마다 이런 과정을 거친다:

모델을 모든 GPU에 복제

각 GPU에서 forward pass

모든 gradient를 GPU 0으로 모음

GPU 0에서 파라미터 업데이트

업데이트된 파라미터를 다시 복제

GPU 0이 모든 gradient를 처리해야 하니까 병목이 생긴다.


2. Python GIL 제한


DataParallel은 멀티스레딩 기반이다. Python GIL(Global Interpreter Lock) 때문에 실제로는 병렬 처리가 제한된다.


3. 통신 오버헤드

매 step마다 모델 전체를 복제하고 gradient를 수집하는 과정에서 GPU 간 통신 오버헤드가 발생한다.


4. 작은 모델 크기

KcELECTRA는 약 1.28억 파라미터로 상대적으로 작은 모델이다. 모델이 작을수록 통신 비용 대비 연산 이득이 적어서 멀티GPU 효과가 떨어진다.


2025-12-04_20-26-59.png

DistributedDataParallel 장점:

각 GPU가 독립 프로세스로 동작 → GIL 회피

효율적인 Ring-AllReduce 알고리즘으로 gradient 동기화

GPU 0 병목 없음


아니면 Hugging Face Accelerate나 DeepSpeed 쓰면 더 쉽게 멀티GPU 학습 가능하다.



비용 분석

GCP 가격 기준으로 총 학습 비용을 계산해봤다. (2024년 12월 기준, On-demand, us-central1)

2025-12-04_20-27-45.png
2025-12-04_20-28-00.png

비용 효율 분석

2025-12-04_20-28-20.png

결론

GPU 선택 가이드


빠른 실험/프로덕션 → H100

시간이 중요하면 H100이 압도적이다

비용도 L4랑 비슷한 수준

예산 제한/학습용 → L4

시간 넉넉하면 가장 경제적

밤새 돌려놓고 다음날 확인하는 용도로 적합

A100은?

1GPU 기준으로 시간도 비용도 애매한 포지션

LLM 같은 대형 모델에서 VRAM 필요할 때 고려

핵심 교훈

GPU는 비싼 게 답일 수 있다: H100이 L4보다 15배 비싸지만 13배 빠르고, 총 비용은 비슷함

DataParallel 믿지 마라: 간단하지만 비효율적이고, 오히려 느려질 수 있음

멀티GPU 필요하면 DDP 써라: DistributedDataParallel 또는 Accelerate/DeepSpeed 활용

작은 모델은 싱글GPU가 효율적: 통신 오버헤드 > 연산 이득이면 멀티GPU 의미 없음



부록

실험에 사용된 환경

2025-12-04_20-30-29.png

참고 링크

beomi/KcELECTRA-base-v2022

PyTorch DistributedDataParallel

Hugging Face Accelerate

keyword
매거진의 이전글목소리로 감정을 읽는 AI 개발기 #3