컴퓨터 산술

AI 혼합 정밀도 학습에서 계산의 대부분을 FP16이나 bfloat16으로 수행하면서 가중치의 원래 값(마스터 가중치)을 FP32로 유지해 두는 주된 이유는 무엇입니까?

  1. A작은 갱신량을 가중치에 더할 때 정밀도가 낮은 형식에서는 정보 누락으로 갱신이 사라져 버리기 때문
  2. BFP32가 FP16보다 계산이 빠르므로 가중치 계산을 모두 FP32에 맡기기 때문
  3. CFP16이나 bfloat16에서는 가중치 값을 메모리에 저장할 수 없도록 정해져 있기 때문
정답과 해설 보기

정답: A. 작은 갱신량을 가중치에 더할 때 정밀도가 낮은 형식에서는 정보 누락으로 갱신이 사라져 버리기 때문

학습에서는 가중치에 「학습률 × 그래디언트」라는 매우 작은 값을 여러 번 더해 갑니다. FP16이나 bfloat16은 가수가 짧아, 가중치에 비해 갱신량이 너무 작으면 더한 결과가 반올림으로 원래 가중치 그대로가 되어 갱신이 사라집니다(정보 누락). 그래서 가중치는 FP32로 유지하여 갱신을 올바르게 누적하고, 순전파와 역전파 계산에는 낮은 정밀도로 변환한 사본을 사용합니다. 계산 속도는 낮은 정밀도가 더 빠르며, 낮은 정밀도의 값도 저장할 수 있습니다.

이 분야 연습하기 분야로 돌아가기

컴퓨터 산술의 다른 문제

  1. 8비트 중 하위 4비트를 소수부로 하는 고정소수점(부호 없음)에서, 비트열 0011 1000이 나타내는 값은 얼마입니까?
  2. IEEE 754 부동소수점수를 구성하는 3가지 부분의 조합으로 올바른 것은 무엇입니까?
  3. IEEE 754 단정밀도(32비트) 부동소수점수에서 부호·지수부·가수에 할당되는 비트 수의 조합은 무엇입니까?
  4. IEEE 754 배정밀도(64비트) 부동소수점수에서 지수부와 가수의 비트 수 조합으로 올바른 것은 무엇입니까?
  5. IEEE 754 단정밀도에서 지수부에 기록된 값이 130일 때, 실제 지수(2의 몇 제곱인지)는 얼마입니까?