LLM 서비스하는데 필요한 GPU 메모리 계산하기

2024. 8. 26. 16:30LLM

개요

 

해당 글은 2024년 8월 17일에 작성된 Medium의 "Mastering LLM(Large Language Model)"을 한국어로 번역하며 첨언한 글임을 밝힙니다.

👉 원문: How Much GPU Memory is Needed to Serve a Large Language Model(LLM)?

 

How Much GPU Memory is Needed to Serve a Large Language Model (LLM)?

In nearly all LLM interviews, there’s one question that consistently comes up: “How much GPU memory is needed to serve a Large Language…

masteringllm.medium.com

 

LLM(거대 언어 모델)을 서빙하기 위해서는 얼마나 많은 GPU 메모리가 필요한가요?

 


실제로 LLM Product를 세일즈하고 있는 회사 재직자로써 많이 받는 질문 "우리 회사에 LLM 도입하려고 하는데 서버 or 하드웨어 구성 어떻게 하면 될까요?"

✅ 이 글에서는 GPT, Llama 또는 기타 LLM 모델로 작업할 때 필요한 GPU 메모리 예측하는 방법이 필수적이라고 설명하고 있음

✅ 7B 파라미터 모델이든 훨씬 더 큰 모델을 다루든, 이러한 모델 지원할 수 있는 하드웨어 크기 올바르게 설정하는 것이 중요함

LLM 효과적으로 배포하는데 필요한 GPU 메모리 추정하는데 도움되는 산출식 알아보기


GPU 메모리 추정 공식

  • M: 기가바이트 단위 GPU 메모리
  • P: 모델 파라미터 수
  • 4B: 파라미터당 사용되는 4바이트
  • Q: 모델 로딩 위한 비트 수(16비트 or 32 비트)
  • 1.2: 20% 오버헤드 반영하기 위한 상후

GPU 메모리 추정 공식


산출식 뜯어보기

  • P: 모델 크기. 예를 들어 파라미터가 700억개(70B)인 LlaMa 모델로 작업하는 경우, 이 값은 700억
  • 4B: 각 파라미터는 일반적으로 4바이트 메모리 필요로 함. 이는 부동 소수점 정밀도가 일반적으로 4바이트(32비트) 차지하기 때문. 그러나 반정밀도(16비트) 사용하는 경우에는 계산이 그에 따라 조정됨
  • Q: 모델을 16비트 or 32비트 정밀도로 로드하는지에 따라 변경됨. 16비트 정밀도는 충분한 정확도 유지하면서 메모리 사용량 줄일 수 있기 때문에 많은 LLM 배포에서 일반적으로 사용됨

  • 1.2: 추론 중에 사용되는 추가 메모리 고려하기 위해 20% 오버헤드 추가. 모델 실행 중 활성화 및 기타 중간 결과에 필요한 메모리 충당하는데 중요

GPU 메모리 계산하기 위한 구성 요소


계산 예시

 

✅ 16비트 정밀도로 로드한 700억 개의 파라미터가 있는 Llama 모델 제공하는데 필요한 메모리 추정하기

계산 통해 16비트 모드에서 700억 개의 파라미터가 있는 Llama 모델 서밍하기 위해서는 약 168GB의 GPU 메모리 필요


Llama 모델 서빙하기 위한 메모리 요구 사항

✅ 80GB 메모리 갖춘 단일 NVIDIA A100 GPU로는 Llama 모델 서빙하기 어려움

메모리 부하를 효율적으로 처리하기 위해서는 최소한 80GB의 A100 GPU가 2개 이상 필요

Llama 모델 서빙하기 위해 필요한 GPU

 

GPU 메모리 계산으로 하드웨어 병목 현상 피할 수 있음