Οι βασικές διαφορές μεταξύ του FP16 (16-bit κυμαινόμενο σημείο) και της ακρίβειας INT8 (8-bit) για τα μοντέλα DeepSeek περιστρέφονται κυρίως γύρω από την ακρίβεια, τη δυναμική περιοχή και την υπολογιστική απόδοση.
ακρίβεια
Το FP16 παρέχει γενικά υψηλότερη ακρίβεια σε σύγκριση με το INT8. Αυτό είναι ιδιαίτερα σημαντικό για τα μοντέλα που απαιτούν ακριβείς υπολογισμούς, καθώς το FP16 μπορεί να αντιπροσωπεύει ένα ευρύτερο εύρος τιμών και λεπτότερες διακρίσεις μεταξύ τους λόγω της φύσης του κυμαινόμενου σημείου. Αντίθετα, η χαμηλότερη ακρίβεια του Int8 μπορεί να οδηγήσει σε μεγαλύτερα σφάλματα κβαντισμού, ειδικά σε σενάρια όπου οι παραμέτρους ή οι ενεργοποιήσεις του μοντέλου έχουν τιμές που υπερβαίνουν το περιορισμένο εύρος υπογεγραμμένων ακέραιων ακέραιων 8 -bit, οι οποίοι καλύπτουν από -128 έως 127 [1] [4].Δυναμική περιοχή
Το δυναμικό εύρος του FP16 είναι σημαντικά ευρύτερο από αυτό του INT8. Το FP16 μπορεί να εκφράσει τιμές σε ένα πολύ μεγαλύτερο φάσμα, διότι κατανέμει bits τόσο για τον εκθέτη όσο και για το Mantissa, επιτρέποντάς του να χειριστεί πολύ μικρούς και πολύ μεγάλους αριθμούς αποτελεσματικά. Σε σύγκριση, η σταθερή περιοχή της INT8 περιορίζει την εφαρμογή του, ιδιαίτερα σε σύνθετα μοντέλα όπου οι τιμές εξόδου μπορεί να ποικίλουν ευρέως [2] [3]. Για παράδειγμα, ενώ το Int8 έχει ένα δυναμικό εύρος $$ 2^8 $$, το FP16 μπορεί να αντιπροσωπεύει τιμές σε ένα εύρος που επιτρέπει αποτελεσματικά πολύ πιο ξεχωριστή αντιπροσώπευση δεδομένων [2].υπολογιστική απόδοση
Το INT8 είναι βελτιστοποιημένο για υπολογιστική απόδοση, ιδιαίτερα σε εργασίες συμπερασμάτων στις συσκευές άκρων. Η χρήση ακέραιων αριθμητικών συνήθως απαιτεί λιγότερη ισχύ και μπορεί να οδηγήσει σε ταχύτερους υπολογισμούς σε σύγκριση με τις λειτουργίες κυμαινόμενου σημείου. Αυτή η αποτελεσματικότητα είναι ζωτικής σημασίας για την ανάπτυξη μοντέλων σε εφαρμογές σε πραγματικό χρόνο, όπου η καθυστέρηση και η κατανάλωση ενέργειας είναι κρίσιμοι παράγοντες [1] [4]. Επιπλέον, η ποσοτικοποίηση INT8 επιτρέπει σημαντικές μειώσεις στη χρήση μνήμης, η οποία μπορεί να ενισχύσει την απόδοση σε συσκευές με περιορισμένους πόρους [3] [5].Συνοπτικά, ενώ το FP16 προσφέρει ανώτερη ακρίβεια και δυναμική εμβέλεια κατάλληλα για εκπαίδευση και συμπέρασμα σύνθετων μοντέλων, το Int8 υπερέχει στην επιχειρησιακή αποτελεσματικότητα και την ταχύτητα, καθιστώντας την προτιμότερη για την ανάπτυξη σε περιβάλλοντα περιορισμένου πόρων. Η επιλογή μεταξύ αυτών των ακρίβειων εξαρτάται συχνά από τις συγκεκριμένες απαιτήσεις της εφαρμογής, όπως η ανάγκη ακρίβειας έναντι της ανάγκης για ταχύτητα και αποτελεσματικότητα.
Αναφορές:[1] https://arxiv.org/pdf/2303.17951.pdf
[2] https://www.baseten.co/blog/fp8-efficient-model-inference-with-8-bit-floating-point-numbers/
[3] https://itsabout.ai/understanding-data-types-in-ai-and-hpc-int8-fp8-fp16-bf16-bf32-fp32-tf32-fp64-and-hardware-ccelerators/
[4] https://massedcompute.com/faq-answers/?question=what+are+The+Differences+between+Int8+and+fp16+Precision+In+Terms+of
[5] https://www.baseten.co/blog/introduction-to-quantizing-ml-models/
[6] https://www.reddit.com/r/machinelearning/comments/114fgo8/d_is_fp16_used_in_deep_learning_or_fp32/
[7] https://forums.developer.nvidia.com/t/same-inference-peed-for-int8-and-fp16/66971
[8] https://forums.developer.nvidia.com/t/int8-vs-fp16-results/158139