To improve throughput, we employ mixed-precision training (Micikevicius et al., 2017) through FSDP's built-in settings and PyTorch's amp module. The latter ensures that certain operations like the softmax always run in full precision to improve stability, while all other operations run in half-precision with the bfloat16 format. Under our specific settings, the shaded model weights and optimizer state local to each GPU are kept in full precision. The weights within each transformer block are only cast to bfloat16 when the full-sized parameters are materialized on each GPU during the forward and backward passes. Gradients are reduced across GPUs in full precision.
처리량을 개선하기 위해 FSDP의 기본 설정과 PyTorch의 amp 모듈을 통해 mixed-precision training (Micikevicius et al., 2017)을 사용합니다. 후자는 softmax와 같은 특정 연산이 항상 전체 정밀도로 실행되어 안정성을 개선하는 동시에 다른 모든 연산은 하프 정밀도로 실행되며, bfloat16 형식으로 실행됩니다. 특정 설정에서 각 GPU에 국한된 음영 모델 가중치와 optimizer 상태는 전체 정밀도로 유지됩니다. 각 Transformer 블록 내의 가중치는 순방향 및 역방향 패스 동안 각 GPU에 전체 크기의 파라미터가 구체화될 때만 bfloat16으로 캐스팅됩니다. Gradients는 전체 정밀도로 GPU 간에 감소합니다.
처리량을 개선하기 위해 FSDP의 기본 설정과 PyTorch의 amp 모듈을 통해 혼합 정밀도 훈련(Micikevicius et al., 2017)을 사용합니다. 후자는 소프트맥스와 같은 특정 연산이 항상 전체 정밀도로 실행되어 안정성을 개선하는 동시에 다른 모든 연산은 하프 정밀도로 실행되며, bfloat16 형식으로 실행됩니다. 특정 설정에서 각 GPU에 국한된 음영 모델 가중치와 최적화 상태는 전체 정밀도로 유지됩니다. 각 트랜스포머 블록 내의 가중치는 순방향 및 역방향 패스 동안 각 GPU에 전체 크기의 파라미터가 구체화될 때만 bfloat16으로 캐스팅됩니다. 그라디언트는 전체 정밀도로 GPU 간에 감소합니다.