AI Briefing

DeepSpeed와 FSDP의 정밀도 처리 차이 분석

From DeepSpeed to FSDP and Back Again with Hugging Face Accelerate

·2024.06.13 09:00

DeepSpeed와 PyTorch FSDP의 내부 정밀도 처리 방식 차이가 모델 학습 결과에 미치는 영향을 분석한다.

DeepSpeed와 PyTorch FSDP는 모두 ZeRO 알고리즘을 구현하지만, 정밀도(Precision) 처리 방식의 차이로 인해 학습 결과가 달라질 수 있다.

DeepSpeed는 내부적으로 마스터 가중치를 항상 float32로 유지하며 업캐스팅(upcasting)을 수행하도록 설계되었다. 이 덕분에 낮은 정밀도 설정에서도 안정적인 수렴이 가능하다.

반면 FSDP는 모델 로드 시 설정된 torch_dtype을 기반으로 파라미터를 생성하며, DeepSpeed와는 다른 방식으로 정밀도를 관리한다. 이러한 차이로 인해 동일한 학습률(Learning Rate)을 사용하더라도 두 프레임워크 간의 손실 함수(Loss) 수렴 양상이 다르게 나타날 수 있다.

Hugging Face는 사용자가 두 백엔드 간을 원활하게 전환하며 학습할 수 있도록 Accelerate 라이브러리에 정밀도 관련 업데이트를 반영하고 관련 가이드를 제공한다.

이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.

요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.