Pagrindiniai skirtumai tarp FP16 (16 bitų plūduriuojančio taško) ir INT8 (8 bitų sveikasis skaičius) tikslumas „Deepseek“ modeliams pirmiausia sukasi apie tikslumą, dinaminį diapazoną ir skaičiavimo efektyvumą.
tikslumas
FP16 paprastai suteikia didesnį tikslumą, palyginti su INT8. Tai ypač svarbu modeliams, kuriems reikalingi tikslūs skaičiavimai, nes FP16 gali atspindėti platesnį verčių diapazoną ir smulkesnius skirtumus tarp jų dėl jo kintamojo taško pobūdžio. Priešingai, mažesnis „InT8“ tikslumas gali sukelti didesnes kiekybinio įvertinimo klaidas, ypač scenarijuose, kai modelio parametrai ar aktyvacijos turi vertes, viršijančias ribotą pasirašytų 8 bitų sveikųjų skaičių diapazoną, kuris siekia nuo -128 iki 127 [1] [4].dinaminis diapazonas
Dinaminis FP16 diapazonas yra žymiai platesnis nei INT8. FP16 gali išreikšti reikšmes daug didesniame spektre, nes jis skiria bitus tiek eksponentui, tiek mantisai, leisdamas jam efektyviai valdyti labai mažus ir labai didelius skaičius. Palyginimui, „InT8“ fiksuotas diapazonas riboja jo pritaikomumą, ypač sudėtinguose modeliuose, kai išvesties vertės gali labai skirtis [2] [3]. Pavyzdžiui, nors „InT8“ dinaminis diapazonas yra $ $ 2^8 $$, FP16 gali parodyti vertes diapazone, kuris efektyviai suteikia daug daugiau niuansuotų duomenų [2].Skaičiavimo efektyvumas
„InT8“ yra optimizuotas skaičiavimo efektyvumui, ypač atliekant išvadų užduotis ant kraštų prietaisų. Naudojant sveiką skaičių aritmetiką paprastai reikia mažiau galios ir gali būti greitesni skaičiavimai, palyginti su plaukiojančiu taško operacijomis. Šis efektyvumas yra labai svarbus norint diegti modelius realiuoju laiku, kai latentinis ir energijos suvartojimas yra kritiniai veiksniai [1] [4]. Be to, INT8 kvantizavimas leidžia žymiai sumažinti atminties sunaudojimą, o tai gali padidinti įrenginių, turinčių ribotus išteklius, našumą [3] [5].Apibendrinant galima pasakyti, kad nors „FP16“ siūlo puikų tikslumą ir dinaminį diapazoną, tinkantį mokymui ir sudėtingų modelių mokymui ir išvadoms, „InT8“ išsiskiria eksploatavimo efektyvumu ir greičiu, todėl jis geriau diegti išteklių ribotoje aplinkoje. Pasirinkimas tarp šių tikslų dažnai priklauso nuo specifinių programos reikalavimų, tokių kaip tikslumo poreikis, palyginti su greičio ir efektyvumo poreikiu.
Citatos:[1] https://arxiv.org/pdf/2303.17951.pdf
]
[3] https://itsabout.ai/nundepread-data-types-in-ai-and-hpc-inter8-fp8-fp16-bf16-bf32-fp32-tf32-fp64 ir hardware-accelerators/
[4] https://massedcompute.com/faq-answers/?question=hat+are+the+differences+between+Int8+and+Fp16+Precision+in+terms+Of+Accuracy+and+speed%3F
[5] https://www.baseten.co/blog/introduction-to-quantina-ml-models/
]
[7] https://forums.developer.nvidia.com/t/same-inference---for-inter-inter---fp16/66971
[8] https://forums.developer.nvidia.com/t/int8-vs-fp16-results/158139