피드로 돌아가기
The bf16 grad accumulator that killed our SDXL LoRA training
Dev.toDev.to
AI/ML

bf16 Grad Accumulator 정밀도 손실 해결로 배경 일관성 6% 향상

The bf16 grad accumulator that killed our SDXL LoRA training

Elise Moreau2026년 5월 27일4advanced

Context

SDXL LoRA 파인튜닝 과정에서 bf16 mixed precision과 Gradient Accumulation을 적용한 커스텀 학습 루프 사용. OFT 기반의 custom adapter init 구조와 tighten된 LR schedule의 결합으로 인해 gradient magnitude가 감소하며 수치적 불안정성 발생.

Technical Solution

  • Gradient Accumulator의 데이터 타입을 bf16에서 fp32로 변경하여 정밀도 확보
  • bf16의 하한 임계값(~6e-8)으로 인한 gradient quantization(zero-rounding) 현상 차단
  • PyTorch hook을 통한 raw bf16 gradient tensor 덤프로 grad norm collapse 지점(~1e-5) 식별
  • 메모리 오버헤드를 감수하고 LoRA 파라미터의 누적 연산에 fp32 정밀도를 강제한 구조 설계
  • VLM 기반 평균 점수의 한계를 극복하기 위해 averaging을 배제한 per-category CLIPScore 검증 체계 도입

- Custom training loop 사용 시 Gradient Accumulation 단계의 dtype이 fp32인지 확인 - Loss curve의 완만한 하락만으로 학습 정상 여부를 판단하지 말고, per-layer gradient norm 모니터링 구축 - VLM Eval 시 평균값에 의한 신호 희석을 방지하기 위해 개별 카테고리별 baseline 비교 검증 수행

원문 읽기