도구스개발

LLM 학습 메모리 계산기

파라미터 수에서 가중치·그래디언트·옵티마이저 상태 메모리를 정밀도·옵티마이저별로 계산합니다. fp32 AdamW 풀파인튜닝은 파라미터당 약 16바이트입니다.

B (10억)

1차·2차 모멘트 두 벌을 더 든다.

총 학습 메모리 (활성화 메모리 제외)

104.31 GiB

파라미터당 16바이트

가중치13.04 GiB
그래디언트13.04 GiB
fp32 마스터 가중치 사본26.08 GiB
옵티마이저 상태52.15 GiB
파라미터당 총 바이트16 바이트
혼합정밀도가 이 메모리를 줄여주지 않습니다. “fp16으로 학습하면 메모리가 반으로 준다”는 흔한 오해입니다. 표준 혼합정밀도 학습은 순전파·역전파는 2바이트로 하지만, 수치 안정성을 위해 fp32 마스터 가중치 사본과 옵티마이저 상태는 그대로 4바이트를 유지합니다. 그 결과 fp32·혼합정밀도 모두 AdamW 기준 파라미터당 정확히 16바이트로 같습니다 — 위에서 정밀도를 바꿔도 총량이 그대로인 것을 직접 확인할 수 있습니다.
Adam 계열이 유독 메모리를 많이 먹는 이유입니다. SGD는 옵티마이저 상태가 없고, SGD+모멘텀은 1개, Adam/AdamW는 1차·2차 모멘트 2개를 파라미터마다 따로 듭니다. 같은 모델도 옵티마이저를 Adam에서 SGD로 바꾸면 학습 메모리가 절반 가까이 줄어드는 이유가 이것입니다.
활성화(activation) 메모리는 포함하지 않았습니다. 배치 크기·시퀀스 길이·그래디언트 체크포인팅 여부에 따라 몇 배씩 달라지기 때문입니다. 실제 GPU 메모리 사용량은 여기서 계산한 값(가중치+그래디언트+옵티마이저 상태)보다 항상 더 큽니다.

사용 방법

  1. 1파라미터 수를 넣습니다(10억 단위, 7B면 7).
  2. 2정밀도(순수 fp32 또는 혼합정밀도)를 고릅니다.
  3. 3옵티마이저(SGD·SGD+모멘텀·Adam/AdamW)를 고릅니다.
  4. 4가중치·그래디언트·옵티마이저 상태별 메모리와 총합이 나옵니다.

자주 묻는 질문

fp32 AdamW 기준 가중치 4바이트 + 그래디언트 4바이트 + 옵티마이저 상태(1차·2차 모멘트 2개) 8바이트를 더한 값입니다. 70억(7B) 파라미터 모델을 풀파인튜닝하면 7e9 × 16바이트 = 약 112GB가 필요합니다.

아닙니다. 흔한 오해입니다. 표준 혼합정밀도 학습은 순전파·역전파만 2바이트로 하고, 수치 안정성을 위해 fp32 마스터 가중치 사본과 옵티마이저 상태는 그대로 4바이트를 유지합니다. 그 결과 AdamW 기준으로 순수 fp32와 혼합정밀도 모두 파라미터당 정확히 16바이트로 총 메모리가 같습니다. 혼합정밀도가 아끼는 것은 이 계산에 포함되지 않는 활성화 메모리와 통신량입니다.

SGD(모멘텀 없음)는 옵티마이저 상태가 없어 가중치+그래디언트만 필요하지만, Adam/AdamW는 파라미터마다 1차·2차 모멘트 2개를 추가로 듭니다. 같은 모델도 Adam에서 SGD로 바꾸면 학습 메모리가 절반 가까이 줄어듭니다.

둘 다 추론(inference) 중 메모리를 다룹니다. kv-cache-size는 어텐션이 잠깐 들고 있는 캐시, model-quantization은 저장된 가중치 자체의 용량입니다. 이 도구는 역전파로 모델을 업데이트하는 학습·파인튜닝 중 메모리를 다룬다는 점이 다릅니다.

전송되지 않습니다. 모든 계산은 브라우저 안에서 이뤄지고, 입력값은 이 기기에만 남습니다.

알아두면 좋은 점

  • 배치 크기·시퀀스 길이·그래디언트 체크포인팅 여부에 따라 몇 배씩 달라지는 활성화(activation) 메모리는 포함하지 않았습니다. 실제 GPU 메모리 사용량은 이 값보다 항상 더 큽니다.
  • LoRA 등 파라미터 효율적 미세조정(PEFT)은 원본 가중치를 고정하고 일부만 학습해 메모리 구조가 이 계산과 다릅니다. 이 도구는 풀파인튜닝·사전학습 기준입니다.
  • 옵티마이저 상태는 정밀도와 무관하게 항상 fp32(4바이트) 기준으로 유지한다고 가정했습니다. 실제 구현(8비트 옵티마이저 등)에 따라 더 적을 수 있습니다.

함께 보면 좋은 도구

마지막 검증: 2026년 9월 3일 · 결과는 참고용 추정치입니다.