You've probably seen results showing impressive few-shot performance of very large language models (LLMs). Do those results mean that LLMs can reason? Well, maybe, but maybe not. Few-shot performance is highly correlated with pretraining term frequency. arxiv.org/abs/2202.07206
We focus on numerical reasoning (addition, multiplication, and unit conversion). We use the same formats and tasks used previously to show impressive few-shot performance, but we systematically evaluate every number and correlate performance with pretraining term frequency.
For example, a model that "knows" how to multiply should have similar performance multiplying 23*X and 24*X, for various X. We evaluate GPT-J on Y*X, for Y in [0, 100] and X in [1, 50], and plot average accuracy against Y's frequency in Pile (thanks #EleutherAI!).
The correlation is striking. The effect remains as we increase the number of shots, vary the model size, evaluate accuracy on other tasks, and count co-occurrences of X, Y, and/or Z (the correct answer), not just unigram statistics.
How do we interpret these results? It seems unlikely that a model that has this dependence on pretraining term frequency is doing "reasoning", but it's hard to state that unequivocally because "reasoning" and "memorization" are not well defined.
Is there a multiplication algorithm in the model's weights that just doesn't get good enough embeddings for less frequent words? Maybe that would be the beginnings of "reasoning".
Or is it somehow just regurgitating associations from pretraining data at test time? We are not looking at exact train/test overlap, however, only training frequency of terms from test instances. We'd need to be able to peer inside the black box to answer these questions.
At the least, this analysis should give us caution when looking at few-shot performance. It seems impossible to properly interpret any few-shot benchmark result without reference to a model's pretraining data.