본문으로 건너뛰기

제한된 하드웨어에서 LLM을 학습하는 7가지 방법

QLoRA부터 RingAttention까지 소비자용 GPU의 메모리 한계를 우회하는 LLM 학습 기법 7가지를 비교합니다.

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

소비자용 GPU에서 수십억 파라미터 LLM을 학습하려면 단순히 GPU 수를 늘리기보다 가중치, optimizer state, gradient, activation이 메모리 계층을 어떻게 점유하는지 분리해서 관리해야 합니다. QLoRA와 DoRA는 4-bit base weight와 저순위 update를 사용하고, GaLore는 gradient를 저순위 공간에 투영해 optimizer state를 줄이며, FSDP·ZeRO-3는 tensor를 GPU와 CPU 메모리에 나눠 저장합니다. Activation checkpointing, FlashAttention-2, FP8은 activation과 메모리 전송량을 줄이지만 재계산 비용, 하드웨어 호환성, 수치 불안정성 같은 대가가 따릅니다. RingAttention은 32k 토큰을 넘는 context를 여러 장치에 분산하지만 소비자용 PCIe와 네트워크에서는 통신 지연이 처리량을 상쇄할 수 있으므로 GPU 사용률, underflow, checkpoint 무결성을 지속적으로 추적해야 합니다.

섹션별 상세

01
7B 모델은 FP16 또는 BF16 가중치만으로 약 14GB를 차지하고 AdamW의 두 FP32 moment까지 더하면 optimizer state가 약 56GB에 이르러 24GB GPU에서 첫 학습 단계 전에도 메모리가 부족해집니다. 따라서 학습 메모리를 가중치·optimizer state·gradient 같은 정적 영역과 activation·임시 buffer 같은 동적 영역으로 나눠야 하며, 병목이 Tensor Core 계산인지 VRAM 읽기·쓰기인지도 구분해야 합니다. 이 구분이 있어야 어떤 기법이 용량을 줄이고 어떤 기법이 메모리 대역폭을 줄이는지에 맞춰 조합할 수 있습니다.
02
QLoRA는 base weight를 NF4 4-bit로 저장하고 quantization constant에도 Double Quantization을 적용해 파라미터당 0.37비트를 추가로 절약합니다. Forward 단계에서는 weight를 BF16으로 복원하고 저순위 update ΔW = B · A를 더한 뒤 복원값을 cache에서 바로 버리므로 7B부터 70B 모델까지 단일 또는 듀얼 24GB GPU에서 Fine-tuning을 시도할 수 있습니다. 다만 동적 dequantization 때문에 native 16-bit 학습보다 TPS가 20%에서 35% 낮아질 수 있고, adapter를 합쳐 16-bit로 되돌려야 zero-latency serving이 가능하다는 제약이 있습니다.
03
GaLore는 전체 파라미터를 고정하지 않고 gradient tensor G를 SVD 또는 randomized orthogonal projection으로 저순위 행렬 P에 투영합니다. AdamW의 1차·2차 moment를 원래 gradient 전체가 아니라 rank r이 작은 투영 행렬에 대해서만 추적하고, projection을 매 step이 아닌 T step마다 갱신해 optimizer state 메모리를 줄입니다. 하지만 SVD 계산으로 step latency가 튀고 T와 r을 잘못 고르면 최적화 경로가 불안정해져 학습 중 loss가 갑자기 발산할 수 있습니다.
04
FSDP Full Shard와 ZeRO-3는 모델 파라미터, gradient, optimizer state를 여러 GPU와 CPU host RAM에 분산하고 필요한 layer를 계산 직전에 All-Gather로 복원합니다. Host-offload 모드에서는 비활성 shard를 pinned CPU RAM에 두고 non-blocking CUDA stream으로 PCIe를 통해 전송하므로 전체 VRAM보다 큰 30B 이상 모델도 네 개의 24GB GPU에서 실행할 여지가 생깁니다. 반면 소비자용 PCIe Gen4·Gen5에서 H2D 전송이 계산을 따라가지 못하면 GPU SM이 대기하고 사용률이 30% 아래로 떨어지며, NVMe dataloader와 PCIe 대역폭을 두고 경쟁할 수 있습니다.
05
Selective Activation Checkpointing은 GeLU, SwiGLU, layer norm, dropout mask처럼 메모리를 많이 쓰지만 재계산 비용이 상대적으로 낮은 중간 tensor를 Forward 뒤에 버리고 backward에서 가장 가까운 checkpoint 경계부터 다시 만듭니다. 이 방식은 8k에서 32k 이상 context처럼 activation 메모리가 커지는 학습에서 정적 가중치보다 큰 동적 사용량을 줄이는 데 적합합니다. 전체 activation 재계산은 step당 FLOPs를 약 30% 늘리고, tensor 수명 관리를 제대로 하지 않으면 CUDA 메모리 fragmentation으로 실제 사용량이 한도 아래여도 OOM이 발생할 수 있습니다.
06
FlashAttention-2는 N × N attention matrix 전체를 HBM에 기록하지 않고 Query, Key, Value를 SRAM에 들어가는 block으로 나눠 online scaling 방식으로 softmax를 계산합니다. LayerNorm, bias addition, activation을 하나의 fused CUDA kernel로 묶으면 전역 메모리 왕복과 kernel launch를 줄여 Tensor Core와 SM 점유율을 높일 수 있습니다. 다만 Ada Lovelace, Hopper, Ampere 같은 GPU microarchitecture와 compute capability에 강하게 의존하며, 비표준 driver에서는 ABI 문제나 느린 PyTorch kernel로의 fallback, sequence padding 부족에 따른 precision underflow가 생길 수 있습니다.
07
FP8 학습은 activation·weight에 E4M3, gradient에 더 넓은 동적 범위의 E5M2를 사용하고 tensor 또는 tile 단위 scaling factor를 runtime에 계산합니다. 16-bit보다 activation buffer와 메모리 대역폭 사용량을 절반으로 줄일 수 있으며 RTX 4090, L40S 같은 Ada Lovelace와 H100 같은 Hopper에서는 FP8 Tensor Core가 계산 처리량을 두 배로 높일 여지가 있습니다. 그러나 delayed scaling이나 per-channel quantization이 부족하면 깊은 layer에서 gradient vanishing과 loss explosion이 발생하고, 최신 microarchitecture가 아닌 장치에서는 하드웨어 가속을 활용하기 어렵습니다.
08
RingAttention은 64k 이상 sequence를 K개 장치의 시간축 block으로 나누고 각 장치가 local Query와 순환해 도착하는 Key·Value block 사이의 attention을 계산합니다. 계산 중 다음 장치로 KV block을 비동기 P2P 전송하고 이전 장치에서 다음 block을 받으므로 계산과 통신을 겹치며 32k를 넘는 context를 NVLink 없이 확장할 수 있습니다. 하지만 PCIe나 1GbE·10GbE 환경에서 block 계산보다 전송이 느리면 각 ring 단계가 멈추고, 작은 batch에서는 통신 지연이 처리량 향상을 없앨 수 있습니다.

이미지 분석

제한된 하드웨어에서 LLM 학습 효율을 높이는 7가지 접근법을 GPU 그림과 함께 요약한 인포그래픽입니다.
Infographic

이미지는 QLoRA, 저순위 optimizer 메모리 절감, sharded training과 offloading, activation checkpointing, memory-tiled attention과 fused kernel, FP8 mixed precision, Sequence Chunking과 RingAttention을 번호별로 배치합니다. 본문에서 각 기법의 핵심 메모리 절감 또는 분산 처리 방향을 한눈에 연결하지만, 수치와 실패 조건은 포함하지 않습니다.

제한된 하드웨어에서 LLM 학습 효율을 높이는 7가지 접근법을 GPU 그림과 함께 요약한 인포그래픽입니다.

용어 해설

정적 메모리 오버헤드(Static Memory Overhead)
모델 가중치, optimizer state, 지속적으로 유지되는 gradient처럼 학습 단계 전반에 걸쳐 VRAM을 점유하는 메모리입니다. 모델 크기와 파라미터 수에 따라 기본 사용량이 결정되므로 소비자용 GPU에서 먼저 한계에 도달하기 쉽습니다.
동적 임시 메모리 오버헤드(Dynamic Transient Memory Overhead)
Forward와 backward 과정에서 생성되는 activation map 및 임시 buffer가 순간적으로 차지하는 메모리입니다. context length와 batch size가 커질수록 사용량이 증가하며 activation checkpointing으로 일부를 저장하지 않고 다시 계산할 수 있습니다.
NormalFloat 4
신경망 가중치가 정규분포를 따른다는 특성에 맞춰 값을 표현하는 4-bit 양자화 형식입니다. QLoRA는 NF4로 base weight를 저장한 뒤 계산 시 BF16으로 복원해 메모리 사용량을 줄입니다.
Optimizer State
AdamW가 각 학습 파라미터에 대해 유지하는 1차 및 2차 moment 값입니다. 두 값을 FP32로 저장하면 파라미터당 8바이트가 필요해 7B 모델에서 약 56GB를 차지할 수 있습니다.
Activation Checkpointing
Forward 단계에서 일부 중간 activation을 버리고 backward 단계에서 필요한 값을 다시 계산하는 메모리 절감 기법입니다. 저장하는 tensor 수를 줄이는 대신 학습 단계마다 재계산 비용이 추가됩니다.
RingAttention
긴 sequence를 여러 장치에 나누고 각 장치가 Query, Key, Value block을 ring 형태로 주고받으며 attention을 계산하는 방식입니다. 계산과 통신을 겹쳐 NVLink 없이 긴 context를 처리하려 하지만 PCIe나 저속 네트워크에서는 통신 지연이 병목이 될 수 있습니다.

기술

  • RTX 4090
  • A10G
  • L40S
  • H100
  • QLoRA
  • DoRA
  • NF4
  • Double Quantization
  • AdamW
  • GaLore
  • SVD
  • FSDP
  • ZeRO-3
  • CUDA
  • FlashAttention-2
  • PyTorch
  • FP8
  • E4M3
  • E5M2
  • RingAttention
  • NVLink
  • PCIe
  • NVMe

활용 사례

  • 24GB 또는 48GB 소비자용 GPU에서 7B~70B 모델 Fine-tuning
  • 전체 VRAM보다 큰 모델의 다중 GPU 학습
  • 8k~32k 이상 긴 context를 사용하는 Transformer 학습
  • NVLink 없이 여러 장치에서 32k 초과 context 학습
  • 제한된 하드웨어에서 optimizer state와 activation 메모리 절감
AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 09. 09.수집 2026. 09. 09.출처 타입 RSS

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.