Tighter bounds on the expressivity of transformer encoders
arxiv.org
arxiv.org
not sure what a fixed precision transformer is?
A transformer N is a specific kind of a computation graph family over vectors of floating-point numbers with p precision. We work with fixed-precision transformers, i.e., we take p to be constant with respect to the input sequence length n. In practice, transformers typically use p = 32, and, several newer, larger transformer language models use p = 16 (Brown et al., 2020; Zhang et al., 2022), even while allowing larger context lengths n than their predecessors.
[1]: https://arxiv.org/pdf/2210.02671.pdf#page=7(Other than drastically slowing things down, of course)
- rounding errors in arithmetic between small and large numbers, large and large numbers, or small and small numbers
- unrepresentable numbers (eg 0.1)
- non-associativity of arithmetic making order of evaluation relevant
- residual connections can introduce, quite easily, arithmetic errors (heard this from research I can’t find atm): x + f(x) happens a lot in transformers, and the terms might be prone to cancellation or inadvertent rounding
- layernorm blocks introducing some error
- gradients might get added with error if too small or too big
On the bright side, some people have suggested that ieee float problems are usually not so terrible that you can see them instead as introducing slightly beneficial regularization
There are limitations for what a Transformer can compute if we do not allow for Chain-of-Thought type of output. By allowing the model to "show its work" allows it to effectively use the output as an "infinite tape". I'm simplifying but that's the basic gist of it.
I'll shamelessly plug my blog post from a week ago for a simpler take on the matter: https://blog.wtf.sg/posts/2023-02-03-the-new-xor-problem/