COAT: Comprimeren van Optimizer-states en Activatie voor Geheugenefficiënte FP8 Training

COAT: Compressing Optimizer states and Activation for Memory-Efficient FP8 Training

October 25, 2024
Auteurs: Haocheng Xi, Han Cai, Ligeng Zhu, Yao Lu, Kurt Keutzer, Jianfei Chen, Song Han
cs.AI

Samenvatting

FP8-training is naar voren gekomen als een veelbelovende methode om de trainings-efficiëntie te verbeteren. Bestaande frameworks versnellen de training door FP8-berekeningen toe te passen op lineaire lagen, terwijl ze de optimizer states en activaties in hogere precisie laten, wat niet volledig optimaal is voor geheugengebruik. Dit artikel introduceert COAT (Compressing Optimizer States and Activations for FP8 Training), een nieuw FP8-trainingsframework dat is ontworpen om aanzienlijk de geheugenfootprint te verkleinen bij het trainen van grote modellen. COAT pakt huidige beperkingen aan door middel van twee belangrijke innovaties: (1) Dynamische Bereikuitbreiding, die optimizer state distributies nauwer afstemt op het FP8-representatiebereik, waardoor kwantisatiefouten worden verminderd, en (2) Gemengde-Granulariteit Activatiekwantisatie, die activatiegeheugen optimaliseert door een combinatie van per-tensor en per-groep kwantisatiestrategieën. Experimenten tonen aan dat COAT effectief de end-to-end trainingsgeheugenfootprint met 1.54x verkleint in vergelijking met BF16, terwijl het bijna verliesloze prestaties behaalt bij verschillende taken, zoals vooraftraining en fijnafstemming van grote taalmodellen en training van visueel taalmodellen. COAT behaalt ook een 1.43x versnelling van de end-to-end training in vergelijking met BF16, waarbij het op gelijke hoogte presteert of TransformerEngine's versnelling overtreft. COAT maakt efficiënte training van volledige parameters van grote modellen mogelijk op minder GPU's en vergemakkelijkt het verdubbelen van de batchgrootte in gedistribueerde trainingsomgevingen, wat een praktische oplossing biedt voor het schalen van grootschalige modeltraining. De code is beschikbaar op https://github.com/NVlabs/COAT.
English
FP8 training has emerged as a promising method for improving training efficiency. Existing frameworks accelerate training by applying FP8 computation to linear layers while leaving optimizer states and activations in higher precision, which fails to fully optimize memory usage. This paper introduces COAT (Compressing Optimizer States and Activations for FP8 Training), a novel FP8 training framework designed to significantly reduce memory footprint when training large models. COAT addresses current limitations through two key innovations: (1) Dynamic Range Expansion, which aligns optimizer state distributions more closely with the FP8 representation range, thereby reducing quantization error, and (2) Mixed-Granularity Activation Quantization, which optimizes activation memory using a combination of per-tensor and per-group quantization strategies. Experiments demonstrate that COAT effectively reduces end-to-end training memory footprint by 1.54x compared to BF16 while achieving nearly lossless performance across various tasks, such as Large Language Model pretraining and fine-tuning and Vision Language Model training. COAT also achieves a 1.43x end-to-end training speedup compared to BF16, performing on par with or surpassing TransformerEngine's speedup. COAT enables efficient full-parameter training of large models on fewer GPUs, and facilitates doubling the batch size in distributed training settings, providing a practical solution for scaling large-scale model training. The code is available at https://github.com/NVlabs/COAT.

Summary

AI-Generated Summary

PDF185November 16, 2024