피드로 돌아가기
Dev.toAI/ML
원문 읽기
SDXL VAE fp16 Overflow 해결을 통한 렌더링 성공률 확보
The SDXL VAE overflow that decoded black images in fp16
AI 요약
Context
SDXL VAE Decoder의 특정 Activation 값이 fp16 최대치인 65504를 초과하여 이미지 전체가 검게 출력되는 Overflow 현상 발생. 고대비 장면에서 간헐적으로 나타나는 입력 의존적 버그로 인해 일반적인 QA 단계에서 탐지가 어려웠던 구조적 한계 존재.
Technical Solution
- Forward Hook을 통한 VAE Decoder 내 각 모듈의 Max Activation을 추적하여 문제의 ResBlock 특정
- UNet의 fp16 유지로 Latency Budget을 확보하며 VAE 단독 Upcast를 수행하는 하이브리드 정밀도 전략 채택
- Ampere GPU 환경에서 fp32와 동일한 Exponent 범위를 가진 bf16을 적용하여 Overflow 방지 및 연산 효율 최적화
- bf16 미지원 구형 하드웨어를 위해 Activation 크기를 낮춘 Rescaled fp16-fix Decoder Weights 도입
- VAE Tiling 적용 시 Tiling 처리 전 단계에서 Dtype Upcast가 선행되어야 함을 식별하여 적용 순서 조정
- LoRA로 인한 Latent 값 이상과 VAE Overflow를 구분하기 위한 모니터링 훅을 Eval Harness에 통합
실천 포인트
- fp16 사용 시 Max Activation 값이 65504에 근접하는지 확인하는 Hook 기반 검증 체계 구축 - GPU 아키텍처(Ampere 여부)에 따라 bf16과 Rescaled Weights를 분기 적용하는 하드웨어 최적화 전략 검토 - 수치 정밀도 변경 시 SSIM(Structural Similarity Index)을 통해 fp32 레퍼런스와의 시각적 차이 정량 분석