FP8 Precision joacă un rol crucial în procesul de instruire al Deepseek-V3, îmbunătățind semnificativ eficiența și reducând costurile de calcul. Iată o explicație detaliată a rolului său:
Introducere în FP8 Precision
FP8 este un format cu punct flotant pe 8 biți care oferă o reprezentare mai compactă în comparație cu formatele tradiționale de 16 biți sau 32 de biți. Această compactitate are ca rezultat o utilizare redusă a memoriei și un calcul mai rapid, ceea ce o face ideală pentru antrenamentele de model AI la scară largă precum Deepseek-V3 [3] [5].
Cadru de precizie mixtă
Deepseek-V3 folosește un cadru de precizie mixtă, unde diferite părți ale modelului folosesc diferite niveluri de precizie. Majoritatea operațiunilor intensive de calcul, cum ar fi înmulțirea generală a matricei (GEMM), sunt efectuate în FP8 pentru a optimiza utilizarea vitezei și a memoriei. Cu toate acestea, anumite operații care necesită o precizie mai mare, cum ar fi modulul de încorporare, capul de ieșire, modulele de închidere MOE, operatorii de normalizare și operatorii de atenție, sunt păstrate în formate de precizie mai mare (FP16 sau FP32) pentru a menține precizia [1] [5].
Cuantificare cu granulație fină
Pentru a aborda provocările intervalului dinamic limitat al FP8, Deepseek-V3 introduce o strategie de cuantificare cu granulație fină. Aceasta implică gruparea activărilor în 1x128 plăci și greutăți în 128x128 blocuri, fiecare scalat independent. Această abordare împiedică valorile extreme să denatureze întregul tensor, reducând erorile de cuantificare și menținând precizia modelului [1] [5].
Cuantificarea online
Deepseek-V3 folosește cuantificarea online, unde factorii de scalare sunt calculați dinamic pentru fiecare țiglă de activare sau bloc de greutate în timpul antrenamentului. Aceasta elimină necesitatea unor metode de cuantificare întârziate care se bazează pe valori maxime istorice, simplificând cadrul și îmbunătățind precizia [1] [5].
Precizia creșterii acumulării
Pentru atenuarea erorilor cauzate de precizia de acumulare limitată a FP8 în nucleele tensiunii, Deepseek-V3 promovează rezultate parțiale la registrele FP32 la intervale specifice în timpul operațiunilor GEMM. Acest lucru asigură că acumularea de erori mici este redusă, menținând precizia generală a modelului [1] [5].
Format E4M3 unificat
Spre deosebire de cadrele anterioare care au folosit formate hibride FP8 (de exemplu, E4M3 pentru trecerea înainte și E5M2 pentru trecerea înapoi), Deepseek-V3 adoptă în mod universal formatul E4M3. Acest lucru este posibil prin strategia sa de cuantificare cu granulație fină, care împărtășește efectiv biți de exponenți între elementele grupate, menținând precizia pe toate calculele [1] [5].
Impactul asupra eficienței instruirii
Utilizarea preciziei FP8 accelerează semnificativ procesul de instruire al Deepseek-V3. Modelul a fost instruit folosind un centru de date de 2048 GPU în aproximativ două luni, necesitând doar 2.664 milioane ore de GPU H800 pentru pre-instruire și 0,1 milioane de ore de GPU suplimentare pentru etapele ulterioare. Această eficiență este atribuită consumului de memorie redus și vitezei de calcul sporită oferită de FP8 [3] [6].
În rezumat, precizia FP8 în Deepseek-V3 este crucială pentru obținerea unei eficiențe ridicate de formare, menținând în același timp precizia modelului. Este integrat cu atenție într-un cadru de precizie mixt, folosind cuantificarea cu granulație fină și cuantificarea online pentru a atenua limitările FP8.
Citări:
[1] https://community.aws/content/2rjj1wkztsfywvfsiibhwxeqmf1/four-unique-takeaways-from-deepseek-v3?lang=en
[2] https://arxiv.org/pdf/2412.19437.pdf
[3] https://dirox.com/post/deepseek-v3-the-open-source-ai-revolution
]
[5] https://www.linkedin.com/pulse/deepseek-v3s-key-innovations-8-bit-floating-punct-fp8-qi-e-e3dgf
[6] https://huggingface.co/deepseek-ai/deepseek-v3
[7] https://martinfowler.com/articles/deepseek-papers.html
[8] https://research.cofax-intl.com/deepseek-r1-and-fp8-mixed-precision-training/