LLM.int8() : 8-bit Matrix Multiplication for Transformers at Scale
Abstract
Large language models have been widely adopted but require significant GPU memory for inference.
We develop a procedure for Int8 matrix multiplication for feed-forward and attention projection layers in transformers, which cut the memory needed for inference by half while retaining full precision performance.
With our method, a 175B parameter 16/32-bit checkpoint can be loaded, converted to Int8, and used immediately without performance degradation.
This is made possible by understanding and working around properties of highly systematic emergent features in transformer language models that dominate attention and transformer predictive performance.
To cope with these features, we develop a two-part quantization procedure, LLM.int8() .
We first use vector-wise quantization with separate normalization constants for each inner product in the matrix multiplication, to quantize most of the features.
However, for the emergent outliers, we also include a new mixed-precision decomposition scheme, which isolates the outlier feature dimensions into a 16-bit matrix multiplication while still more than 99.9% of values are multiplied in 8-bit.
Using LLM.int8(), we show empirically it is possible to perform inference in LLMs with up to 175B parameters without any performance degradation.
This result makes such models much more accessible, for example making it possible to use OPT-175B/BLOOM on a single server with consumer
GPUs.
We open source our software.
Introduction
Large pretrained language models are widely adopted in NLP (Vaswani et al., 2017; Radford et al., 2019; Brown et al., 2020; Zhang et al., 2022) but require significant memory for inference.
For large transformer language models at and beyond 6.7B parameters, the feed-forward and attention projection layers and their matrix multiplication operations are responsible for 95% 2 of consumed parameters and 65-85% of all computation (Ilharco et al., 2020).
One way to reduce the size of the parameters is to quantize them to less bits and use low-bit-precision matrix multiplication.
With this goal in mind, 8-bit quantization methods for transformers have been developed (Chen et al., 2020;
Lin et al., 2020; Zafrir et al., 2019;
Shen et al., 2020).
While these methods reduce memory use, they degrade performance, usually require tuning quantization further after training, and have only been studied for models with less than 350M parameters.
Degradation-free quantization up to 350M parameters is poorly understood, and multi-billion parameter quantization remains an open challenge.
In this paper, we present the first multi-billion-scale Int8 quantization procedure for transformers that does not incur any performance degradation.
Our procedure makes it possible to load a 175B parameter transformer with 16 or 32-bit weights, convert the feed-forward and attention projection layers to 8-bit, and use the resulting model immediately for inference without any performance degradation.
We achieve this result by solving two key challenges: the need for higher quantization precision at scales beyond 1B parameters and the need to explicitly represent the sparse but systematic large magnitude outlier features that ruin quantization precision once they emerge in all transformer layers starting at scales of 6.7B parameters.
This loss of precision is reflected in C4 evaluation perplexity (Section 3) as well as zeroshot accuracy as soon as these outlier features emerge, as shown in Figure 1.
[Figure]
We show that with the first part of our method, vector-wise quantization, it is possible to retain performance at scales up to 2.7B parameters.
For vector-wise quantization, matrix multiplication can be seen as a sequence of independent inner products of row and column vectors.
As such, we can use a separate quantization normalization constant for each inner product to improve quantization precision.
We can recover the output of the matrix multiplication by denormalizing by the outer product of column and row normalization constants before we perform the next operation.
To scale beyond 6.7B parameters without performance degradation, it is critical to understand the emergence of extreme outliers in the feature dimensions of the hidden states during inference.
To this end, we provide a new descriptive analysis which shows that large features with magnitudes up to 20x larger than in other dimensions first appear in about 25% of all transformer layers and then gradually spread to other layers as we scale transformers to 6B parameters.
At around 6.7B parameters, a phase shift occurs, and all transformer layers and 75% of all sequence dimensions are affected by extreme magnitude features.
These outliers are highly systematic: at the 6.7B scale, 150,000 outliers occur per sequence, but they are concentrated in only 6 feature dimensions across the entire transformer.
Setting these outlier feature dimensions to zero decreases top-1 attention softmax probability mass by more than 20% and degrades validation perplexity by 600-1000% despite them only making up about 0.1% of all input features.
In contrast, removing the same amount of random features decreases the probability by a maximum of 0.3% and degrades perplexity by about 0.1%.
To support effective quantization with such extreme outliers, we develop mixed-precision decomposition, the second part of our method.
We perform 16-bit matrix multiplication for the outlier feature dimensions and 8-bit matrix multiplication for the other 99.9% of the dimensions.
We name the combination of vector-wise quantization and mixed precision decomposition, LLM.int8() .
We show that by using LLM.int8(), we can perform inference in LLMs with up to 175B parameters without any performance degradation.
Our method not only provides new insights into the effects of these outliers on model performance but also makes it possible for the first time to use very large models, for example, OPT-175B/BLOOM, on a single server with consumer GPUs.
While our work focuses on making large language models accessible without degradation, we also show in Appendix D that we maintain end-to-end inference runtime performance for large models, such as BLOOM-176B and provide modest matrix multiplication speedups for GPT-3 models of size 6.7B parameters or larger.
We open-source our software 3 and release a Hugging Face Transformers (Wolf et al., 2019) integration making our method available to all hosted Hugging Face Models that have linear layers.
[Figure]
X
[Figure]
+
[Figure]
The outlier feature matrices are multiplied in 16-bit.
All other values are multiplied in 8-bit.
We perform 8-bit vector-wise multiplication by scaling by row and column-wise absolute maximum of
C x and C w and then quantizing the outputs to Int8.
The Int32 matrix multiplication outputs Out iare dequantization by the outer product of the normalization constants C x ⊗ C w .
Finally, both outlier and regular outputs are accumulated in 16-bit floating point outputs.
Background
In this work, push quantization techniques to their breaking point by scaling transformer models.
We are interested in two questions: at which scale and why do quantization techniques fail and how does this related to quantization precision?
To answer these questions we study high-precision asymmetric quantization (zeropoint quantization) and symmetric quantization (absolute maximum quantization).
While zeropoint quantization offers high precision by using the full bit-range of the datatype, it is rarely used due to practical constraints.
Absolute maximum quantization is the most commonly used technique.
2.1 8-bit Data Types and Quantization
Absmax quantization scales inputs into the 8-bit range [ − 127 , 127] by multiplying with s x f 16 which is 127 divided by the absolute maximum of the entire tensor.
This is equivalent to dividing by the infinity norm and multiplying by 127.
As such, for an FP16 input matrix X f 16 ∈ R s × h Int8 absmax quantization is given by:
[Equation]
where ⌊⌉ indicates rounding to the nearest integer.
Zeropoint quantization shifts the input distribution into the full range [ − 127 , 127] by scaling with the normalized dynamic range nd x and then shifting by the zeropoint
zp x .
With this affine transformation, any input tensors will use all bits of the data type, thus reducing the quantization error for asymmetric distributions .
For example, for ReLU outputs, in absmax quantization all values in [ − 127 , 0) go unused, whereas in zeropoint quantization the full [ − 127 , 127] range is used.
Zeropoint quantization is given by the following equations:
[Equation]
To use zeropoint quantization in an operation we feed both the tensor X i 8 and the zeropoint zp x iinto a special instruction 4 which adds zp x i 16 to each element of X i 8 before performing a 16-bit integer operation.
For example, to multiply two zeropoint quantized numbers
A i 8 and B i 8 along with their zeropoints
zp a i 16 and zp b i 16 we calculate:
[Equation]
where unrolling is required if the instruction multiply i 16 is not available such as on GPUs or TPUs:
[Equation]
where A i 8 B i 8 is computed with Int8 precision while the rest is computed in Int16/32 precision.
As such, zeropoint quantization can be slow if the multiply i 16 instruction is not available.
In both cases, the outputs are accumulated as a 32-bit integer C i 32 .
To dequantize C i 32 , we divide by the scaling constants nd a f 16 and nd b f 16 .
Int8 Matrix Multiplication with 16-bit Float Inputs and Outputs.
Given hidden states
X f 16 ∈ R s × h and weights W f 16 ∈ R
h × o with sequence dimension s , feature dimension h , and output dimension o we perform 8-bit matrix multiplication with 16-bit inputs and outputs as follows:
[Equation]
Where Q ( · ) is either absmax or zeropoint quantization and c x f 16 and c w f 16 are the respective tensorwise scaling constants s x and s w for absmax or nd x and nd w for zeropoint quantization.
Int8 Matrix Multiplication at Scale
The main challenge with quantization methods that use a single scaling constant per tensor is that a single outlier can reduce the quantization precision of all other values.
As such, it is desirable to have multiple scaling constants per tensor, such as block-wise constants (Dettmers et al., 2022), so that the effect of that outliers is confined to each block.
We improve upon one of the most common ways of blocking quantization, row-wise quantization (Khudia et al., 2021), by using vector-wise quantization, as described in more detail below.
To handle the large magnitude outlier features that occur in all transformer layers beyond the 6.7B scale, vector-wise quantization is no longer sufficient.
For this purpose, we develop mixedprecision decomposition, where the small number of large magnitude feature dimensions ( ≈ 0.1%) are represented in 16-bit precision while the other 99.9% of values are multiplied in 8-bit.
Since most entries are still represented in low-precision, we retain about 50% memory reduction compared to 16-bit.
For example, for BLOOM-176B, we reduce the memory footprint of the model by 1.96x.
Vector-wise quantization and mixed-precision decomposition are shown in Figure 2.
The LLM.int8() method is the combination of absmax vector-wise quantization and mixed precision decomposition.
3.1 Vector-wise Quantization
One way to increase the number of scaling constants for matrix multiplication is to view matrix multiplication as a sequence of independent inner products.
Given the hidden states X f 16 ∈ R b
×
h
and
weight matrix W f 16 ∈ R h × o , we can assign a different scaling constant c x f 16 to each row of
X f 16 and c w to each column of W f 16 .
To dequantize, we denormalize each inner product result by 1 / ( c x f 16 c w f 16 ) .
For the whole matrix multiplication this is equivalent to denormalization by the outer product c x f 16 ⊗ c w f 16 , where c x ∈ R s and c w ∈ R
o .
As such the full equation for matrix multiplication with row and column constants is given by:
[Equation]
which we term vector-wise quantization for matrix multiplication.
3.2 The Core of LLM.int8(): Mixed-precision Decomposition
In our analysis, we demonstrate that a significant problem for billion-scale 8-bit transformers is that they have large magnitude features ( columns ), which are important for transformer performance and require high precision quantization.
However, vector-wise quantization, our best quantization technique, quantizes each row for the hidden state, which is ineffective for outlier features.
Luckily, we see that these outlier features are both incredibly sparse and systematic in practice, making up only about 0.1% of all feature dimensions, thus allowing us to develop a new decomposition technique that focuses on high precision multiplication for these particular dimensions.
We find that given input matrix X f 16 ∈ R s × h , these outliers occur systematically for almost all sequence dimensions s but are limited to specific feature/hidden dimensions h .
As such, we propose mixed-precision decomposition for matrix multiplication where we separate outlier feature dimensions into the set
O =
{ i | i ∈ Z , 0 ≤ i ≤ h } , which contains all dimensions of h which have at least one outlier with a magnitude larger than the threshold α .
In our work, we find that α = 6 . 0 is sufficient to reduce transformer performance degradation close to zero.
Using Einstein notation where all indices are superscripts, given the weight matrix W f 16 ∈ R h × o , mixed-precision decomposition for matrix multiplication is defined as follows:
[Equation]
where S f 16 is the denormalization term for the Int8 inputs and weight matrices
X
i 8 and W i 8 .
This separation into 8-bit and 16-bit allows for high-precision multiplication of outliers while using memory-efficient matrix multiplication with 8-bit weights of more than 99.9% of values.
Since the number of outlier feature dimensions is not larger than 7 ( | O | ≤ 7 ) for transformers up to 13B parameters, this decomposition operation only consumes about 0.1% additional memory.
3.3 Experimental Setup
We measure the robustness of quantization methods as we scale the size of several publicly available pretrained language models up to 175B parameters.
The key question is not how well a quantization method performs for a particular model but the trend of how such a method performs as we scale.
We use two setups for our experiments.
One is based on language modeling perplexity, which we find to be a highly robust measure that is very sensitive to quantization degradation.
We use this setup to compare different quantization baselines.
Additionally, we evaluate zeroshot accuracy degradation on
OPT models for a range of different end tasks, where we compare our methods with a 16-bit baseline.
For the language modeling setup, we use dense autoregressive transformers pretrained in fairseq (Ott et al., 2019) ranging between 125M and 13B parameters.
These transformers have been pretrained on
Books (Zhu et al., 2015), English Wikipedia, CC-News (Nagel, 2016), OpenWebText (Gokaslan and
Cohen, 2019), CC-Stories (Trinh and Le, 2018), and English CC100 (Wenzek et al., 2020).
For more information on how these pretrained models are trained, see Artetxe et al.
To evaluate the language modeling degradation after Int8 quantization, we evaluate the perplexity of the 8-bit transformer on validation data of the C4 corpus (Raffel et al., 2019) which is a subset of the
Common Crawl corpus.
5 We use NVIDIA A40 GPUs for this evaluation.
To measure degradation in zeroshot performance, we use OPT models (Zhang et al., 2022), and we evaluate these models on the EleutherAI language model evaluation harness (Gao et al., 2021).
3.4 Main Results
The main language modeling perplexity results on the 125M to 13B Int8 models evaluated on the
C4 corpus can be seen in Table 1.
We see that absmax, row-wise, and zeropoint quantization fail as we scale, where models after 2.7B parameters perform worse than smaller models.
Zeropoint quantization fails instead beyond 6.7B parameters.
Our method, LLM.int8(), is the only method that preserves perplexity.
As such, LLM.int8() is the only method with a favorable scaling trend.
[Table]
When we look at the scaling trends of zeroshot performance of OPT models on the EleutherAI language model evaluation harness in Figure
[Table]
we see that LLM.int8() maintains full 16-bit performance as we scale from 125M to 175B parameters.
On the other hand, the baseline, 8-bit absmax vector-wise quantization, scales poorly and degenerates into random performance.
Although our primary focus is on saving memory, we also measured the run time of LLM.int8().
The quantization overhead can slow inference for models with less than 6.7B parameters, as compared to a
FP16 baseline.
However, models of 6.7B parameters or less fit on most GPUs and quantization is less needed in practice.
LLM.int8() run times is about two times faster for large matrix multiplications equivalent to those in 175B models.
Appendix D provides more details on these experiments.
Emergent Large Magnitude Features in Transformers at Scale
As we scale transformers, outlier features with large magnitudes emerge and strongly affect all layers and their quantization.
Given a hidden state X ∈ R s × h where s is the sequence/token dimension and h the hidden/feature dimension, we define a feature to be a particular dimension h i .
Our analysis looks at a particular feature dimension h
i across all layers of a given transformer.
We find that outlier features strongly affect attention and the overall predictive performance of transformers.
While up to 150k outliers exist per 2048 token sequence for a 13B model, these outlier features are highly systematic and only representing at most 7 unique feature dimensions
h i .
Insights from this analysis were critical to developing mixed-precision decomposition.
Our analysis explains the advantages of zeropoint quantization and why they disappear with the use of mixed-precision decomposition and the quantization performance of small vs. large models.
4.1 Finding Outlier Features
The difficulty with the quantitative analysis of emergent phenomena is two-fold.
We aim to select a small subset of features for analysis such that the results are intelligible and not to complex while also capturing important probabilistic and structured patterns.
We use an empirical approach to find these constraints.
We define outliers according to the following criteria: the magnitude of the feature is at least 6.0, affects at least 25% of layers, and affects at least 6% of the sequence dimensions.
More formally, given a transformer with L layers and hidden state X l ∈ R s × h , l = 0 ...
L where s is the sequence dimension and h the feature dimension, we define a feature to be a particular dimension
h i in any of the hidden states
X l i .
We track dimensions
h
i , 0 ≤ i ≤ h , which have at least one value with a magnitude of α ≥ 6 and we only collect statistics if these outliers occur in the same feature dimension h i in at least 25% of transformer layers 0 ...
L and appear in at least 6% of all sequence dimensions s across all hidden states X l .
Since feature outliers only occur in attention projection
12 Parameters in billions
P e r c e n t a g e o f l a y e r s o r t
o k e n s a ﬀ e c t e d emergence of outlier features (a) 15 20 25
C4 perplexity
P e r c e n t a g e o f l a y e r s o r t
o k e n s a ﬀ e c t e d % layers a ﬀ ected % tokens a ﬀ ected emergence of outlier features
[Figure]
(key/query/value/output) and the feedforward network expansion layer (first sub-layer), we ignore the attention function and the FFN contraction layer (second sub-layer) for this analysis.
Our reasoning for these thresholds is as follows.
We find that using mixed-precision decomposition, perplexity degradation stops if we treat any feature with a magnitude 6 or larger as an outlier feature.
For the number of layers affected by outliers, we find that outlier features are systematic in large models: they either occur in most layers or not at all.
On the other hand, they are probabilistic in small models: they occur sometimes in some layers for each sequence.
As such, we set our threshold for how many layers need to be affected to detect an outlier feature in such a way as to limit detection to a single outlier in our smallest model with 125M parameters.
This threshold corresponds to that at least 25% of transformer layers are affected by an outlier in the same feature dimension.
The second most common outlier occurs in only a single layer ( 2% of layers), indicating that this is a reasonable threshold.
We use the same procedure to find the threshold for how many sequence dimensions are affected by outlier features in our 125M model: outliers occur in at least 6% of sequence dimensions.
We test models up to a scale of 13B parameters.
To make sure that the observed phenomena are not due to bugs in software, we evaluate transformers that were trained in three different software frameworks.
We evaluate four GPT-2 models which use OpenAI software, five Meta AI models that use Fairseq (Ott et al., 2019), and one EleutherAI model GPT-J that uses Tensorflow-Mesh (Shazeer et al., 2018).
More details can be found in Appendix C. We also perform our analysis in two different inference software frameworks: Fairseq and Hugging Face Transformers (Wolf et al., 2019).
4.2 Measuring the Effect of Outlier Features
To demonstrate that the outlier features are essential for attention and predictive performance, we set the outlier features to zero before feeding the hidden states X l into the attention projection layers and then compare the top-1 softmax probability with the regular softmax probability with outliers.
We do this for all layers independently, meaning we forward the regular softmax probabilities values to avoid cascading errors and isolate the effects due to the outlier features.
We also report the perplexity degradation if we remove the outlier feature dimension (setting them to zero) and propagate these altered, hidden states through the transformer.
As a control, we apply the same procedure for random non-outlier feature dimensions and note attention and perplexity degradation.
Our main quantitative results can be summarized as four main points.
[Figure]
M
[Figure]
d i a n f e a t u r e o u t li e r m a g n i t u d e
[Figure]
O u t li e r f e a t u r e s c o un t emergence of outlier features
[Figure]
(1) When measured by the number of parameters, the emergence of large magnitude features across all layers of a transformer occurs suddenly between 6B and 6.7B parameters as shown in Figure 3a as the percentage of layers affected increases from 65% to 100%.
The number of sequence dimensions affected increases rapidly from 35% to 75%.
This sudden shift co-occurs with the point where quantization begins to fail.
(2) Alternatively, when measured by perplexity, the emergence of large magnitude features across all layers of the transformer can be seen as emerging smoothly according to an exponential function of decreasing perplexity, as seen in Figure 3b.
This indicates that there is nothing sudden about emergence and that we might be able to detect emergent features before a phase shift occurs by studying exponential trends in smaller models.
This also suggests that emergence is not only about model size but about perplexity, which is related to multiple additional factors such as the amount of training data used, and data quality (Hoffmann et al., 2022;
Henighan et al., 2020).
(3) Median outlier feature magnitude rapidly increases once outlier features occur in all layers of the transformer, as shown in Figure 4a.
The large magnitude of outliers features and their asymmetric distribution disrupts Int8 quantization precision.
This is the core reason why quantization methods fail starting at the 6.7B scale – the range of the quantization distribution is too large so that most quantization bins are empty and small quantization values are quantized to zero, essentially extinguishing information.
We hypothesize that besides Int8 inference, regular 16-bit floating point training becomes unstable due to outliers beyond the 6.7B scale – it is easy to exceed the maximum 16-bit value 65535 by chance if you multiply by vectors filled with values of magnitude 60.
(4) The number of outliers features increases strictly monotonically with respect to decreasing
C4 perplexity as shown in Figure 4b, while a relationship with model size is non-monotonic.
This indicates that model perplexity rather than mere model size determines the phase shift.
We hypothesize that model size is only one important covariate among many that are required to reach emergence.
These outliers features are highly systematic after the phase shift occurred.
For example, for a 6.7B transformer with a sequence length of 2048, we find about 150k outlier features per sequence for the entire transformer, but these features are concentrated in only 6 different hidden dimensions.
These outliers are critical for transformer performance.
If the outliers are removed, the mean topsoftmax probability is reduced from about 40% to about 20%, and validation perplexity increases by 600-1000% even though there are at most 7 outlier feature dimensions.
When we remove 7 random feature dimensions instead, the top-1 probability decreases only between 0.02-0.3%, and perplexity increases by 0.1%.
This highlights the critical nature of these feature dimensions.
Quantization precision for these outlier features is paramount as even tiny errors greatly impact model performance.
4.3 Interpretation of Quantization Performance
Our analysis shows that outliers in particular feature dimensions are ubiquitous in large transformers, and these feature dimensions are critical for transformer performance.
Since row-wise and vectorwise quantization scale each hidden state sequence dimension s (rows) and because outliers occur in the feature dimension h (columns), both methods cannot deal with these outliers effectively.
This is why absmax quantization methods fail quickly after emergence.
However, almost all outliers have a strict asymmetric distribution: they are either solely positive or negative (see Appendix C).
This makes zeropoint quantization particularly effective for these outliers, as zeropoint quantization is an asymmetric quantization method that scales these outliers into the full [ − 127 , 127] range.
This explains the strong performance in our quantization scaling benchmark in
Table 1.
However, at the 13B scale, even zeropoint quantization fails due to accumulated quantization errors and the quick growth of outlier magnitudes, as seen in Figure 4a.
If we use our full LLM.int8() method with mixed-precision decomposition, the advantage of zeropoint quantization disappears indicating that the remaining decomposed features are symmetric.
However, vector-wise still has an advantage over row-wise quantization, indicating that the enhanced quantization precision of the model weights is needed to retain full precision predictive performance.
Related work
There is closely related work on quantization data types and quantization of transformers, as described below.
Appendix B provides further related work on quantization of convolutional networks.
8-bit Data Types.
Our work studies quantization techniques surrounding the Int8 data type, since it is currently the only 8-bit data type supported by GPUs.
Other common data types are fixed point or floating point 8-bit data types (FP8).
These data types usually have a sign bit and different exponent and fraction bit combinations.
For example, a common variant of this data type hasbits for the exponent and 2 bits for the fraction (Wang et al., 2018; Sun et al., 2019; Cambier et al., 2020; Mellempudi et al., 2019) and uses either no scaling constants or zeropoint scaling.
These data types have large errors for large magnitude values since they have only 2 bits for the fraction but provide high accuracy for small magnitude values.
Jin et al.
(2022) provide an excellent analysis of when certain fixed point exponent/fraction bit widths are optimal for inputs with a particular standard deviation.
We believe FP8 data types offer superior performance compared to the Int8 data type, but currently, neither GPUs nor TPUs support this data type.
Outlier Features in Language Models.
Large magnitude outlier features in language models have been studied before (Timkey and van Schijndel, 2021; Bondarenko et al., 2021; Wei et al., 2022;
Luo et al., 2021).
Previous work proved the theoretical relationship between outlier appearance in transformers and how it relates to layer normalization and the token frequency distribution (Gao et al., 2019).
Similarly, Kovaleva et al.
(2021) attribute the appearance of outliers in BERT model family to LayerNorm, and Puccetti et al.
(2022) show empirically that outlier emergence is related to the frequency of tokens in the training distribution.
We extend this work further by showing how the scale of autoregressive models relates to the emergent properties of these outlier features, and showing how appropriately modeling outliers is critical to effective quantization.
Multi-billion Scale Transformer Quantization.
There are two methods that were developed in parallel to ours: nuQmm (Park et al., 2022) and ZeroQuant (Yao et al., 2022).
Both use the same quantization scheme: group-w2ise quantization, which has even finer quantization normalization constant granularity than vector-wise quantization.
This scheme offers higher quantization precision but also requires custom CUDA kernels.
Both nuQmm and ZeroQuant aim to accelerate inference and reduce the memory footprint while we focus on preserving predictive performance under an 8-bit memory footprint.
The largest models that nuQmm and ZeroQuant evaluate are 2.7B and 20B parameter transformers, respectively.
ZeroQuant achieves zero-degradation performance for 8-bit quantization of a 20B model.
We show that our method allows for zero-degradation quantization of models up to 176B parameters.
Both nuQmm and ZeroQuant suggest that finer quantization granularity can be an effective means to quantize large models.
These methods are complementary with LLM.int8().
Another parallel work is GLM-130B which uses insights from our work to achieve zero-degradation 8-bit quantization (Zeng et al., 2022).
GLM-130B performs full 16-bit precision matrix multiplication with 8-bit weight storage.
Discussion and Limitations
We have demonstrated for the first time that multi-billion parameter transformers can be quantized to
Int8 and used immediately for inference without performance degradation.
We achieve this by using our insights from analyzing emergent large magnitude features at scale to develop mixed-precision decomposition to isolate outlier features in a separate 16-bit matrix multiplication.
In conjunction with vector-wise quantization that yields our method, LLM.int8(), which we show empirically can recover the full inference performance of models with up to 175B parameters.
The main limitation of our work is that our analysis is solely on the Int8 data type, and we do not study 8-bit floating-point (FP8) data types.
Since current GPUs and TPUs do not support this data type, we believe this is best left for future work.
However, we also believe many insights from
Int8 data types will directly translate to FP8 data types.
Another limitation is that we only study models with up to 175B parameters.
While we quantize a 175B model to Int8 without performance degradation, additional emergent properties might disrupt our quantization methods at larger scales.
A third limitation is that we do not use Int8 multiplication for the attention function.
Since our focus is on reducing the memory footprint and the attention function does not use any parameters, it was not strictly needed.
However, an initial exploration of this problem indicated that a solution required additional quantization methods beyond those we developed here, and we leave this for future work.
A final limitation is that we focus on inference but do not study training or finetuning.
We provide an initial analysis of Int8 finetuning and training at scale in Appendix E. Int8 training at scale requires complex trade-offs between quantization precision, training speed, and engineering complexity and represents a very difficult problem.
We again leave this to future work.
[Table]
175B / BLOOM
Enterprise 8x A 40 GB
OPT-175B / BLOOM
OPT-66B
Academic server 8x RTX24 GB
OPT-175B / BLOOM
OPT-66B
Academic desktop 4x RTX24 GB
OPT-66B
OPT-30B
Paid Cloud
Colab Pro 15 GB
OPT-13B
GPT-J-6B
Free Cloud
Colab 12 GB
T0/T5-11B
GPT-2 1.3B
Broader Impacts
The main impact of our work is enabling access to large models that previously could not fit into
GPU memory.
This enables research and applications which were not possible before due to limited
GPU memory, in particular for researchers with the least resources.
See Table 3 for model/GPU combinations which are now accessible without performance degradation.
However, our work also enables resource-rich organizations with many GPUs to serve more models on the same number of
GPUs, which might increase the disparities between resource-rich and poor organizations.
In particular, we believe that the public release of large pretrained models, for example, the recent
Open Pretrained Transformers (OPT) (Zhang et al., 2022), along with our new Int8 inference for zeroand few-shot prompting, will enable new research for academic institutions that was not possible before due to resource constraints.
The widespread accessibility of such large-scale models will likely have both beneficial and detrimental effects on society that are difficult to predict.
Acknowledgments
We thank Ofir Press, Gabriel Ilharco, Daniel Jiang, Mitchell Wortsman, Ari
Holtzman, Mitchell Gordon for their feedback on drafts of this work.
We thank JustHeuristic (Yozh) and Titus von Köller for help with Hugging Face Transformers integration.
Checklist
The checklist follows the references.
Please read the checklist guidelines carefully for information on how to answer these questions.
For each question, change the default [TODO] to [Yes] , [No] , or [N/A] .
You are strongly encouraged to include a justification to your answer , either by referencing the appropriate section of your paper or providing a brief inline description.
For example:
• Did you include the license to the code and datasets?
[Yes] See Section ?? .
• Did you include the license to the code and datasets?
[No] The code and the data are proprietary.
• Did you include the license to the code and datasets?
[N/A]
Please do not modify the questions and only use the provided macros for your answers.
Note that the
Checklist section does not count towards the page limit.
In your paper, please delete this instructions block and only keep the Checklist section heading above along with the questions/answers below.
For all authors...
(a) Do the main claims made in the abstract and introduction accurately reflect the paper’s contributions and scope?
[Yes] (b) Did you describe the limitations of your work?
[Yes] See the limitation section (c) Did you discuss any potential negative societal impacts of your work?[Yes] See the Broader Impacts section (d) Have you read the ethics review guidelines and ensured that your paper conforms to them?[Yes]
Yes, we believe our work conforms to these guidelines.
If you are including theoretical results... (a) Did you state the full set of assumptions of all theoretical results?
[N/A] (b) Did you include complete proofs of all theoretical results?
[N/A] 3.
If you ran experiments... (a) Did you include the code, data, and instructions needed to reproduce the main experimental results (either in the supplemental material or as a URL)?
[Yes] We will include our code in the supplemental material.
(b) Did you specify all the training details (e.g., data splits, hyperparameters, how they were chosen)?[Yes] See the experimental setup section (c) Did you report error bars (e.g., with respect to the random seed after running experiments multiple times)?
[No] Our experiments are deterministic for each model.
Instead of running the same model multiple times, we run multiple models at different scales.
We are unable to compute error bars for these experiments.
(d) Did you include the total amount of compute and the type of resources used (e.g., type of GPUs, internal cluster, or cloud provider)?
[Yes] See the exper2imental setup section 4.
If you are using existing assets (e.g., code, data, models) or curating/releasing new assets... (a) If your work uses existing assets, did you cite the creators?
[Yes] See experimental setup section (b) Did you mention the license of the assets?
[No] The license is permissible for all the assets that we use.
The individual licenses can easily be looked up.
(c) Did you include any new assets either in the supplemental material or as a URL?
[N/A] We only use existing datasets.
(d) Did you discuss whether and how consent was obtained from people whose data you’re using/curating?
[N/A] (e) Did you discuss whether the data you are using/curating contains personally identifiable information or offensive content?
[N/A] 5.
If you used crowdsourcing or conducted research with human subjects... (a) Did you include the full text of instructions given to participants and screenshots, if applicable?
[N/A] (b) Did you describe any potential participant risks, with links to Institutional Review Board (IRB) approvals, if applicable?
[N/A] (c) Did you include the estimated hourly wage paid to participants and the total amount spent on participant compensation?
[N/A]