coredot.today
PagedAdamW 특집: GPU 메모리가 부족해도 LLM을 파인튜닝하는 법
블로그로 돌아가기
PagedAdamWQLoRAbitsandbytes파인튜닝GPU 메모리

PagedAdamW 특집: GPU 메모리가 부족해도 LLM을 파인튜닝하는 법

650억 파라미터 모델을 48GB GPU 하나로 파인튜닝한다? QLoRA의 세 번째 비밀 무기 — PagedAdamW는 CUDA 통합 메모리로 옵티마이저 상태를 GPU↔CPU 사이에 자동으로 페이징한다. 8비트 옵티마이저부터 QLoRA까지, Tim Dettmers가 열어젖힌 효율적 파인튜닝의 역사를 추적한다.

코어닷투데이2025-09-2324

들어가며: GPU 메모리의 절벽

GPU 캐릭터가 박스(옵티마이저 상태)를 잔뜩 쌓아 힘겨워하고, CPU 캐릭터가 넘치는 박스를 받아주는 모습

LLaMA-2 7B 모델을 파인튜닝하고 싶다. 모델 가중치는 FP16으로 ~14GB. 48GB GPU면 충분할까?

아니다. AdamW 옵티마이저의 상태(m + v + FP32 마스터 가중치)만 ~84GB를 차지한다. 모델 자체보다 옵티마이저가 6배 더 크다. 여기에 활성화 메모리, 기울기까지 더하면 100GB를 훌쩍 넘긴다.

이것이 LLM 시대의 근본적 문제다: GPU 메모리의 절벽. 모델은 점점 커지는데, GPU 메모리는 이를 따라잡지 못한다.

PagedAdamW는 이 절벽을 우회하는 영리한 해법이다 — 옵티마이저 상태가 GPU에 다 안 들어가면, CUDA 통합 메모리를 이용해 자동으로 CPU RAM에 페이징한다. QLoRA, 8비트 양자화와 결합하면, 48GB GPU 하나로 650억 파라미터 모델을 파인튜닝할 수 있다.


1부: 왜 옵티마이저가 가장 큰 문제인가

GPU 메모리 분해도

세 개의 건물로 표현한 메모리 사용량: Full AdamW(높은 빨간 빌딩) vs 8-bit(중간 초록) vs Paged+QLoRA(낮은 파란, 일부 클라우드로)

7B 모델을 혼합 정밀도(FP16/BF16)로 학습할 때:

7B 모델 GPU 메모리 분해 (혼합 정밀도)
가중치 FP16
~14 GB (2 bytes × 7B)
기울기 FP16
~14 GB (2 bytes × 7B)
마스터 가중치 FP32
~28 GB (4 bytes × 7B)
1차 모멘트 (m) FP32
~28 GB (4 bytes × 7B)
2차 모멘트 (v) FP32
~28 GB (4 bytes × 7B)
활성화
~2-10+ GB (배치/시퀀스 길이 의존)

옵티마이저 상태(마스터 가중치 + m + v)가 ~84GB — 전체 메모리의 60% 이상을 차지한다. 이것이 병목이다.


2부: Tim Dettmers의 연구 여정

8비트 옵티마이저: 75% 압축 (ICLR 2022)

Tim Dettmers 프로필
현직: Carnegie Mellon University 조교수, Allen Institute for AI (Ai2) 연구과학자
학위: University of Washington 박사 (지도교수: Luke Zettlemoyer)
대표작: bitsandbytes, QLoRA, LLM.int8(), 8-bit Optimizers
수상: Madrona Prize(2023, QLoRA), Google ML Systems Junior Faculty Award(2025), PyTorch Foundation Award(2023)
연구 철학: "모든 사람이 AI를 만지작거리고, 배우고, 자기 일에 통합할 수 있게 만든다"

2022년, Dettmers 등은 ICLR에서 "8-bit Optimizers via Block-wise Quantization"을 발표했다 (Spotlight). 핵심 아이디어:

  • 옵티마이저 상태(m, v)를 FP32(4바이트) 대신 INT8(1바이트) 로 저장
  • 블록별 양자화: 텐서를 2048개 원소 블록으로 나눠 독립적으로 양자화 → 이상값(outlier)이 한 블록에 격리
  • 업데이트 시 FP32로 역양자화 → 계산 → 다시 INT8로 양자화 (GPU 레지스터에서 처리, 빠름)

결과: 옵티마이저 상태 메모리 75% 절감, 32비트와 동일한 학습 품질, 오히려 약간 더 빠른 속도.

LLM.int8(): 추론 양자화 (NeurIPS 2022)

이어서 "LLM.int8()"을 발표 — 추론 시 가중치를 8비트로 양자화하되, 이상값이 많은 "비정상(emergent)" 차원만 FP16으로 유지하는 혼합 정밀도 분해. 이것이 QLoRA로 가는 디딤돌이 되었다.


3부: QLoRA — 세 가지 혁신의 합작 (NeurIPS 2023)

QLoRA 논문
"QLoRA: Efficient Finetuning of Quantized LLMs"
Tim Dettmers*, Artidoro Pagnoni*, Ari Holtzman, Luke Zettlemoyer
NeurIPS 2023 (Oral) / arXiv: 2305.14314 (2023년 5월 23일)

핵심 성과: 650억 파라미터 모델을 48GB GPU 하나로 파인튜닝
Guanaco 모델이 ChatGPT 성능의 99.3% 달성 (Vicuna 벤치마크)

QLoRA의 세 가지 기술 혁신:

QLoRA의 세 가지 무기
4-bit NormalFloat (NF4) 혁신 1: 모델 양자화 정규분포 가중치에 최적화된 4비트 데이터 타입
이중 양자화 혁신 2: 양자화의 양자화 양자화 상수까지 다시 양자화하여 추가 메모리 절약
Paged Optimizers 혁신 3: 메모리 페이징 CUDA 통합 메모리로 옵티마이저 상태 자동 CPU↔GPU 전송

세 번째 무기가 바로 PagedAdamW다.


4부: PagedAdamW — 어떻게 작동하는가

CUDA 통합 메모리의 마법

PagedAdamW는 NVIDIA의 CUDA 통합 메모리(Unified Memory) 를 활용한다. cudaMallocManaged()로 할당된 메모리는 GPU와 CPU가 같은 가상 주소 공간을 공유한다.

옵티마이저 상태를 cudaMallocManaged()로 할당
GPU 메모리 충분?
예 → GPU에 상주, 오버헤드 0%
아니오 → 페이지 단위로 CPU RAM에 자동 이관
옵티마이저 스텝 시 필요한 페이지만 GPU로 복귀

핵심: GPU 메모리가 충분하면 오버헤드가 0이다. 페이징은 메모리가 넘칠 때 발생한다. 이것이 DeepSpeed ZeRO-Offload(항상 전송)과의 결정적 차이다.

왜 옵티마이저 상태에 적합한가

학습의 각 단계에서 옵티마이저 상태가 실제로 필요한 시점은 극히 짧다:

단계옵티마이저 상태 필요?
순전파 (Forward)불필요 — 가중치만 사용
역전파 (Backward)불필요 — 기울기만 계산
옵티마이저 스텝필요 — m, v 읽고 업데이트
다음 스텝 대기불필요 — CPU에 있어도 무방

전체 학습 루프에서 옵티마이저 상태가 GPU에 있어야 하는 시간은 극히 일부다. 나머지 시간에는 CPU RAM에 있어도 된다 — 이것이 페이징이 효율적인 이유다.

오버헤드

PagedAdamW 성능 특성
GPU 메모리 충분 시: 오버헤드 완전 제로. 일반 AdamW와 동일

페이징 발생 시 (PCIe 3.0 x16):
• 이론적 대역폭: ~15.75 GB/s
• 통합 메모리 실효: 이론의 절반 이하
• 1GB 옵티마이저 상태 전송: ~125ms 오버헤드/스텝

파인튜닝에서는 허용 가능, 사전학습에서는 부담될 수 있음

5부: 옵티마이저 변형 비교

AdamW 변형 비교
AdamW (32-bit) 파라미터당 8바이트 기준. OOM 보호 없음
AdamW8bit 파라미터당 2바이트 메모리 75%↓. OOM 보호 없음
PagedAdamW 32-bit + CPU 페이징 오버플로 시 CPU로 자동 전송
PagedAdamW8bit 8-bit + CPU 페이징 75%↓ + OOM 보호. QLoRA 표준

PagedAdamW8bit가 QLoRA에서 가장 많이 쓰이는 이유: 8비트 양자화로 메모리를 75% 줄이고, 남은 메모리조차 넘칠 때 자동으로 CPU에 페이징한다. 이중 안전망이다.


6부: 실전 사용법

Hugging Face Transformers에서

hljs language-python
from transformers import TrainingArguments

training_args = TrainingArguments(
    output_dir="./output",
    optim="paged_adamw_8bit",       # 핵심 설정
    learning_rate=2e-4,
    per_device_train_batch_size=4,
    gradient_accumulation_steps=4,
    bf16=True,
)

전체 QLoRA 레시피

모델 로드: 4-bit NF4 양자화 (BitsAndBytesConfig)
LoRA 어댑터 부착 (r=64, alpha=16, target=all-linear)
옵티마이저: paged_adamw_8bit
학습: bf16, gradient checkpointing, gradient accumulation

프레임워크 지원

프레임워크PagedAdamW 지원비고
Hugging Face Transformersoptim="paged_adamw_8bit"기본 통합
Hugging Face PEFTQLoRA 공식 지원LoraConfig + BitsAndBytesConfig
Hugging Face TRLRLHF + QLoRASFTTrainer, DPOTrainer
Axolotl네이티브 지원YAML 설정
LLaMA-FactoryCLI + Web UI100+ 모델
Unsloth최적화 QLoRA2배 빠른 학습 주장
bitsandbytes 직접bnb.optim.PagedAdamW8bit()저수준 API

7부: QLoRA가 만든 민주화

"48GB면 충분하다"

QLoRA + PagedAdamW8bit의 등장 전후를 비교하면:

설정QLoRA 이전QLoRA 이후
65B 모델 파인튜닝780+ GB (멀티 GPU 필수)48 GB (단일 GPU)
7B 모델 파인튜닝~120 GB~6-8 GB (소비자 GPU 가능)
필요 장비A100 80GB × 여러 대RTX 4090 1대 또는 RTX 4060 8GB

2024~2025년 연구에 따르면, NVIDIA RTX 4060 (8GB)에서도 배치 크기 2, 시퀀스 길이 2048으로 LoRA/QLoRA 파인튜닝이 가능하다.

QLoRA GitHub 저장소가 명시하는 목표: "LLM 연구에 대한 접근을 민주화하려는 노력."

커뮤니티 영향

  • Guanaco 모델 패밀리: QLoRA로 파인튜닝, Vicuna 벤치마크에서 ChatGPT의 99.3% 성능
  • 2023 Madrona Prize: QLoRA 팀에 수여
  • 수천 개의 오픈소스 QLoRA 파인튜닝 모델이 Hugging Face Hub에 공개

8부: 대안과 관련 기술

메모리 효율적 학습 기법 비교
PagedAdamW (bitsandbytes) 단일 GPU 파인튜닝 통합 메모리 페이징, QLoRA와 결합
DeepSpeed ZeRO-Offload 분산 학습 옵티마이저를 CPU/NVMe에 명시적 오프로딩. 항상 전송 비용 발생
FSDP PyTorch 내장 파라미터/기울기/옵티마이저를 GPU간 분할. LoRA에는 제한적 이점
GaLore (ICML 2024) 기울기 저랭크 투영 전체 파라미터 학습 가능, 옵티마이저 메모리 82.5%↓. RTX 4090으로 7B 사전학습

PagedAdamW vs. DeepSpeed ZeRO-Offload

특성PagedAdamWZeRO-Offload
전송 방식온디맨드 (필요할 때만)매 스텝 항상 전송
메모리 충분 시오버헤드 0고정 오버헤드 발생
설계 대상단일 GPU멀티 GPU 분산
구현 복잡도낮음 (bitsandbytes)높음 (DeepSpeed 설정)

GaLore: 다른 접근

GaLore (Zhao et al., ICML 2024)는 LoRA처럼 어댑터를 붙이는 대신, 기울기 자체를 저랭크로 투영하여 옵티마이저 상태 메모리를 줄인다. 전체 파라미터를 학습하면서도 메모리를 ~82.5% 절감한다. RTX 4090 24GB로 7B 사전학습이 가능 — QLoRA가 파인튜닝에 특화된 반면, GaLore는 사전학습에도 적용 가능하다.


맺으며: 효율성이 민주주의다

PagedAdamW 자체는 화려한 알고리즘이 아니다. CUDA 통합 메모리를 옵티마이저 상태에 적용한 것 — 운영체제의 가상 메모리 페이징을 GPU 세계에 가져온 것에 불과하다.

하지만 이 단순한 기술이 QLoRA의 세 번째 퍼즐 조각이 되어, 세상을 바꿨다.

QLoRA 이전에는 65B 모델을 파인튜닝하려면 수십 대의 A100이 필요했다. 대기업만 가능한 일이었다. QLoRA 이후에는 노트북 GPU 하나로 가능해졌다. 개인 연구자, 학생, 스타트업이 최첨단 LLM을 자기 데이터에 맞출 수 있게 된 것이다.

Tim Dettmers의 연구 철학 — "모든 사람이 AI를 만지작거리고, 배우고, 자기 일에 통합할 수 있게 만든다" — 이 PagedAdamW와 QLoRA를 통해 현실이 되었다.

연도기여논문
20228비트 옵티마이저 (메모리 75%↓)ICLR 2022 Spotlight
2022LLM.int8() (추론 양자화)NeurIPS 2022
2023QLoRA + PagedAdamW (65B→48GB)NeurIPS 2023 Oral

효율성은 단순히 비용 절감이 아니다. 효율성은 접근성이고, 접근성은 민주주의다. PagedAdamW는 GPU 메모리의 벽을 허물어, AI 연구의 문턱을 낮추었다.