[AI Deep Dive] 모델의 크기과 RAM의 관계

강현구·2024년 5월 20일

AI Deep Dive

목록 보기
3/4

모델 파라미터 개수(B)

  • Gemini Nano (1.3B)
  • TinyLLaMA (1.1B)
  • Meta OPT (1.3B)

모델 Size (GB)

흔히 사용하는 모델 bit 수인 32bit tensor는 모델 parameter 하나를 표현하는데 32bit 가 들어간다는 것이다.

32bit는 1bit의 정수(significand), 8bit의 지수(exponent), 23bit의 가수(fraction)로 구성된다.

예를 들어, 123.456 의 수치는 123의 정수부, 456의 가수부를 의미한다.
이는 곧 1.23456E-2 와 동치인데, 해당 표기법으로는 1이 정수부, 23456이 가수부, -2가 지수부를 의미한다.

1byte = 8bit 를 의미하므로, 32bit = 4byte를 의미한다. 해당 공식을 사용하여 위 모델이 몇 GB를 차지하는지 알아보자.

Gemini Nano 1.3B 32float 의 경우, parameter 당 4byte를 의미하므로, 1.3 10^9(파라미터 개수) 4byte = 5.2GB 이다.

  • Gemini Nano 1.3B -> 5.2GB
  • TinyLLaMA 1.1B -> 4.4GB
  • Meta OPT 1.3B -> 5.2GB

Gemini Nano 1.3B의 다른 타입 텐서일 때의 용량

FP32: 5.2GB (1.3 x 10^9 x 4)
FP16: 2.6GB (1.3 x 10^9 x 2)
INT8: 1.3GB (1.3 x 10^9 x 1)
4-bit: 0.65GB (650MB) (1.3 x 10^9 x 0.5)

모델을 Inference하는데 필요한 RAM

앞서 설명한 RAM은 모델을 Load하는데만 필요한 용량(RAM)이다.
만약 모델을 학습하거나 추론을 하게 된다면, activation value 또한 생성되기에, 추가 메모리가 필요하다. 보통 모델 크기의 20%~50% 만큼의 RAM이 추가로 필요하다.

그렇다면 Inference를 할 경우 최종 필요한 RAM은

  • Gemini Nano 1.3B -> 5.2GB(Weight) + 2.5GB(Activation) -> 7.7GB
  • TinyLLaMA 1.1B -> 4.4GB(Weight) + 2GB(Activation) -> 6.4GB
  • Meta OPT 1.3B -> 5.2GB(Weight) + 2.5GB(Activation) -> 7.7GB

Summary

32bit 1.3B Model 기준

  • Load : 5.2GB
  • Inference/Train : 7.7GB
profile
고려대학교 인공지능학과 SLP Lab 석사과정생

0개의 댓글