흔히 사용하는 모델 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의 다른 타입 텐서일 때의 용량
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)
앞서 설명한 RAM은 모델을 Load하는데만 필요한 용량(RAM)이다.
만약 모델을 학습하거나 추론을 하게 된다면, activation value 또한 생성되기에, 추가 메모리가 필요하다. 보통 모델 크기의 20%~50% 만큼의 RAM이 추가로 필요하다.
그렇다면 Inference를 할 경우 최종 필요한 RAM은
32bit 1.3B Model 기준
- Load : 5.2GB
- Inference/Train : 7.7GB