week5: Mixed precision training
혼합 정밀도(Mixed Precision)
- 파라미터(Weights)와 옵티마이저는 FP32 유지, 활성값(Activation)만 FP16/BF16로 변환하여 속도를 향상시키는 기법
연산 속도 변화
FP32 < TF32 < FP16/BF16 (속도 증가)
- 32비트를 16비트로 단순 변환하면 손실이 크므로, 핵심 정보(FP32)는 유지하면서 연산 속도를 최적화하려고
TF32 탄생
배치 크기에 따른 특징
- 작은 배치 → 혼합 정밀도를 써도 메모리 사용량이 크게 줄지 않음
→ 오히려 메모리 사용량 증가
- 배치 크기 증가 → 활성값(Activation) 비율이 커짐
- 혼합 정밀도에서는 파라미터 & 옵티마이저는 FP32 유지
- 활성값만 배치 크기에 따라 변화
- 배치 크기가 커질수록 활성값의 비율이 증가
혼합 정밀도 적용 요소
📌 파라미터 (Weights)
- 모델이 학습하는 가중치, 네트워크의 핵심 값
- 학습 중 옵티마이저에 의해 업데이트됨
- FP32 유지 (정밀도 손실 방지)
📌 옵티마이저 (Optimizer)
- 가중치를 조정하는 알고리즘 (ex. Adam, SGD)
- 모델이 학습할 때 손실(Loss)를 최소화하도록 학습 방향을 조절
- FP32 유지 (수치 안정성 확보)
📌 활성값 (Activation)
- 뉴런에서 나온 연산 결과 (레이어 간 중간 결과)
- 최종 예측 값을 만드는데 사용됨
- 혼합 정밀도 적용 → FP16/BF16 변환 가능 (속도 향상, 메모리 절약)