HyperAI

Modellquantisierung

Quantisierung ist eine Technik, die verwendet wird, um die Größe und den Speicherbedarf neuronaler Netzwerkmodelle zu reduzieren. Durch die Modellquantisierung können der Speicherbedarf und die Rechenleistungsanforderungen tiefer neuronaler Netzwerkmodelle reduziert werden. Bei der Gewichtsquantisierung handelt es sich um eine gängige Quantisierungstechnik, bei der die Gewichte und Aktivierungen eines neuronalen Netzwerks von hochpräzisen Gleitkommazahlen in ein weniger präzises Format wie 16-Bit- oder 8-Bit-Ganzzahlen konvertiert werden. Konvertieren Sie die Gewichte des Modells von Standard-Gleitkomma-Datentypen (z. B. 32-Bit-Gleitkommazahlen) in Datentypen mit geringerer Genauigkeit (z. B. 8-Bit-Ganzzahlen). Dadurch werden Modellgröße und Speicherbedarf reduziert und die Inferenzgeschwindigkeit erhöht (durch Reduzierung der Rechenkomplexität). Durch die Modellquantisierung können große Modelle (wie LLM) leichter auf Edge-Geräten mit begrenzten Rechen- und Speicherressourcen bereitgestellt werden.

Gleitkommadarstellung:

Unter den verschiedenen Datentypen werden Gleitkommazahlen hauptsächlich im Deep Learning verwendet, da sie verschiedene Werte mit hoher Präzision darstellen können. Normalerweise werden Gleitkommazahlen mit N Bits zum Speichern von Werten. Das N Bits werden weiter in drei verschiedene Komponenten unterteilt:

  1. Symbol: Das Vorzeichenbit gibt an, ob die Zahl positiv oder negativ ist. Es wird ein Bit verwendet, wobei 0 eine positive Zahl und 1 eine negative Zahl darstellt.
  2. Index: Der Exponent ist ein Bitbereich, der die Potenz der Basis darstellt (normalerweise 2 in der Binärdarstellung). Der Exponent kann auch positiv oder negativ sein, sodass Zahlen sehr große oder sehr kleine Werte darstellen können.
  3. Signifikante Zahl/Mantisse: Die restlichen Bits werden zum Speichern der Mantisse, auch Mantisse genannt, verwendet. Dies stellt die signifikanten Ziffern einer Zahl dar. Die Genauigkeit einer Zahl hängt weitgehend von der Länge ihrer signifikanten Ziffern ab.

Einige der am häufigsten verwendeten Datentypen im Deep Learning sind float32 (FP32) und float16 (FP16):

FP32 wird oft als „volle Genauigkeit“ (4 Bytes) bezeichnet, während FP16 als „halbe Genauigkeit“ (2 Bytes) bezeichnet wird. Der Datentyp INT8 ist besser und verwendet ein einzelnes Byte zum Speichern des Gewichts, das aus einer 8-Bit-Darstellung besteht, in der 2⁸ = 256 verschiedene Werte gespeichert werden können.

Verweise

【1】https://www.hopsworks.ai/dictionary/model-quantization

【2】https://medium.com/@sachinsoni600517/Einführung in die Modellquantisierung-4effc7a17000