Kľúčové rozdiely medzi FP16 (16-bitovú pohyblivú čiarku) a Int8 (8-bit celé číslo) presnosti pre modely DeepSeek sa primárne točia okolo presnosti, dynamického rozsahu a výpočtovej účinnosti.
Presnosť
FP16 vo všeobecnosti poskytuje vyššiu presnosť v porovnaní s Int8. Toto je obzvlášť dôležité pre modely, ktoré si vyžadujú presné výpočty, pretože FP16 môže predstavovať širší rozsah hodnôt a jemnejšie rozdiely medzi nimi v dôsledku jeho povahy s pohyblivou rádmi. Naopak, nižšia presnosť Int8 môže viesť k väčším kvantizačným chybám, najmä v scenároch, kde parametre alebo aktivácie modelu majú hodnoty, ktoré presahujú obmedzený rozsah podpísaných 8 -bitových celkov, ktoré trvajú od -128 do 127 [1] [4].Dynamic Range
Dynamický rozsah FP16 je výrazne širší ako rozsah int8. FP16 môže vyjadriť hodnoty v oveľa väčšom spektre, pretože prideľuje bity pre exponent aj Mantissa, čo mu umožňuje efektívne zvládnuť veľmi malý a veľmi veľký počet. V porovnaní s tým, že pevný rozsah INT8 obmedzuje jeho použiteľnosť, najmä v zložitých modeloch, kde sa výstupné hodnoty môžu veľmi líšiť [2] [3]. Napríklad, zatiaľ čo INT8 má dynamický rozsah $$ 2^8 $$, FP16 môže predstavovať hodnoty v rozsahu, ktorý efektívne umožňuje oveľa podrobnejšie reprezentáciu údajov [2].Výpočtová efektívnosť
Int8 je optimalizovaný pre výpočtovú účinnosť, najmä pri inferenčných úlohách na okrajových zariadeniach. Použitie celočíselnej aritmetiky zvyčajne vyžaduje menej energie a môže viesť k rýchlejším výpočtom v porovnaní s operáciami s pohyblivou rádovou čiarkou. Táto účinnosť je rozhodujúca pre nasadenie modelov v aplikáciách v reálnom čase, kde latencia a spotreba energie sú kritickými faktormi [1] [4]. Okrem toho kvantizácia INT8 umožňuje výrazné zníženie využívania pamäte, čo môže zvýšiť výkon na zariadeniach s obmedzenými zdrojmi [3] [5].Stručne povedané, zatiaľ čo FP16 ponúka vynikajúcu presnosť a dynamický rozsah vhodný na výcvik a odvodenie komplexných modelov, Int8 vyniká v prevádzkovej efektívnosti a rýchlosti, čo je vhodnejšie pre nasadenie v prostrediach obmedzených zdrojmi. Výber medzi týmito presnosťami často závisí od konkrétnych požiadaviek aplikácie, ako je napríklad potreba presnosti v porovnaní s potrebou rýchlosti a účinnosti.
Citácie:[1] https://arxiv.org/pdf/2303.17951.pdf
[2] https://www.baseten.co/blog/fp8-efficient-model-inference-with-8-bi-floaing-point-numbers/
[3] https://itsabout.ai/understanding-data-types-in-ai-and-hpc-int8-fp8-fp16-bf16-bf32-fp32-tf32-fp64-and-hardware-accelerators/
[4] https://massedcompute.com/faq-answers/?question=What+are+The+Differences+Between+Int8+and+FP16+Precision+in+Sterms+of+accurack+ACCURACE++Speed%3F%3F%3F%3F%3F%3F%3F
[5] https://www.baseten.co/blog/introduction-to-quantization-models/
[6] https://www.reddit.com/r/machinearning/comments/114fgo8/d_is_fp16_used_in_deep_learning_or_fp32/
[7] https://forums.developer.nvidia.com/t/same-inference-Peed-for-int--prp16/66971
[8] https://forums.developer.nvidia.com/t/int8-vs-fp16-results/158139