# Efficiency and resource use scaling parity

An interesting pattern I've now noticed across many different domains is that if we try to do an attribution of improvements in outcomes or performance in a domain to the two categories "we're using more resources now than in the past" and "we're making more efficient use of resources now than in the past", there is usually an even split in how much improvement can be attributed to each category.

Some examples:

1. In computer vision, [Erdil and Besiroglu (2022)](https://arxiv.org/pdf/2212.05153.pdf) (my own paper) estimates that 40% of performance improvements in computer vision from 2012 to 2022 have been due to better algortihms, and 60% due to the scaling of compute and data.

2. In computer chess, [a similar pattern seems to hold](https://www.lesswrong.com/posts/75dnjiD8kv2khe9eQ/measuring-hardware-overhang): roughly half of the progress in chess engine performance from Deep Blue to 2015 has been from the scaling of compute, and half from better algorithms. Stockfish 8 running on consumer hardware in 1997 could achieve an Elo rating of  ~ 3000, compared to ~ 2500 for contemporary software; and Stockfish 8 on 2015 hardware could go up to ~ 3400.

3. In rapidly growing economies, accounting for growth in output per worker by dividing it into capital per worker (resource scaling) and TFP (efficiency scaling, roughly speaking) often gives an even split: see [Bosworth and Collins (2008)](https://pubs.aeaweb.org/doi/pdfplus/10.1257/jep.22.1.45) for data on China and India specifically.

    More pessimistic estimates of the growth performance of China compared to official data put this split at 75% to 25% (see [this post](https://www.lesswrong.com/posts/4SsoZLYk6efXFWzY5/is-chinese-total-factor-productivity-lower-today-than-it-was) for details) but the two effects are still at least comparable.

## A toy model

A speculative explanation is the following: if we imagine that performance in some domain is measured by a multiplicative index \\( P \\) which can be decomposed as the product of individual contributing factors \\( F_1, F_2, \ldots, F_n \\) so that \\( P \propto \prod_{i=1}^n F_i \\), in general we'll have

\\[ g_P = \frac{1}{P} \frac{dP}{dt} = \sum_{i=1}^n \frac{1}{F_i} \frac{dF_i}{dt} = \sum_{i=1}^n g_{F_i} \\]

thanks to the product rule. Note that \\( g_X \\) denotes the growth rate of the variable \\( X \\).

I now want to use a law of motion from [Jones (1995)](https://www.journals.uchicago.edu/doi/abs/10.1086/262002) for \\( F_i \\): we assume they evolve over time according to

\\[ g_{F_i} = \frac{1}{F_i} \frac{dF_i}{dt} = \theta_i F_i^{-\beta_i} I_i^{\lambda_i} \\]

where \\( \theta_i, \beta_i, \lambda_i > 0 \\) are parameters and \\( I_i \\) is a measure of "investment input" into factor \\( i \\). This general specification can capture diminishing returns on investment as we make progress or scale up resources thanks to \\( \beta \\), and can capture returns to scale to spending more resources on investment at a given time thanks to \\( \lambda \\).

Substituting this into the growth expression for \\( P \\) gives

\\[ g_P = \frac{1}{P} \frac{dP}{dt} = \sum_{i=1}^n \theta_i F_i^{-\beta_i} I_i^{\lambda_i} \\]

Now, suppose we have a fixed budget \\( I \\) at any given time to allocate across all investments \\( I_i \\), and our total budget \\( I \\) grows over time at a rate \\( g \\). To maximize the rate of progress at a given time, the marginal returns to investment across all factors should be equal, i.e. we should have

\\[ \frac{\partial}{\partial I_i} \left( \frac{1}{F_i} \frac{dF_i}{dt} \right) = \frac{\partial}{\partial I_j} \left( \frac{1}{F_j} \frac{dF_j}{dt} \right) \\]

for all pairs \\( i, j \\). Substitution gives

\\[ \theta_i \lambda_i F_i^{-\beta_i} I_i^{\lambda_i - 1} = \theta_j \lambda_j F_j^{-\beta_j} I_j^{\lambda_j - 1} \\]

and upon simplification, we recover

\\[ \frac{\lambda_i g_{F_i}}{I_i} = \frac{\lambda_j g_{F_j}}{I_j} \\]

In an equilibrium where all quantities grow exponentially, the ratios \\( I_i/I_j \\) must therefore remain constant, i.e. all of the \\( I_i \\) must also grow at the aggregate rate of input growth \\( g \\). Then, it's easy to see that the Jones law of motion implies \\( g_{F_i} = g\lambda_i/\beta_i \\) for each factor \\( i \\), from which we get the important conclusion

\\[ g_{F_i} \propto \frac{\lambda_i}{\beta_i} = r_i \\]

that must hold in an exponential growth equilibrium. The parameter \\( r_i \\) is often called the *returns to investment*, so this relation says that distinct factors account for growth in \\( P \\) proportional to their returns to investment parameter.

## How do we interpret the data in light of the toy model?

If we simplify the setup and make it about two factors, one measuring resource use and the other measuring efficiency, then the fact that the two factors account for comparable fractions in overall progress should mean that their associated return parameters \\( r_i \\) are close. This prediction is validated in some domains:

1. A linearly accumulating factor that follows \\( dF/dt \propto I \\) has \\( r = 1 \\), and if this factor is raised to a power \\( \alpha \\) its returns become \\( r = \alpha \\).

    Since the capital share of the US economy is around \\( 30 \% \\), meaning roughly that we think total output scales with the capital stock raised to a power of \\( 0.3 \\); and capital is thought to accumulate linearly, the parity hypothesis predicts \\( r = 0.3 \\) for US total factor productivity. [Bloom et al. (2020)](https://web.stanford.edu/~chadj/IdeaPF.pdf) validates this prediction almost exactly.

2. When we focus on niche problems, we must be careful because some efficiency terms (e.g. Moore's law) are driven by worldwide investment that's not optimized for our niche application. This then becomes an exogenous progress term, and it becomes better to compare endogenous terms with each other instead.

    In machine learning, compute scaling has been much faster than Moore's law, so we expect our model to be a good approximation in this case. If we assume spending on compute accumulates linearly, so that \\( r_{\text{compute}} = 1 \\), the parity results suggest we should also expect \\( r_{\text{software}} \approx 1 \\). I have some unpublished estimates that support something like this, but a public reference is [Tom Davidson's takeoff model](https://www.lesswrong.com/posts/Gc9FGtdXhK9sCSEYu/what-a-compute-centric-framework-says-about-ai-takeoff), where he estimates \\( r \approx 2.5 \\) in computer vision. Not quite \\( 1 \\), but not too far off either.

I think the toy model *generally* suggests that \\( r_{\text{efficiency}} \\) tends to be \\( O(1) \\). We have no good *a priori* reason to expect this, but in fact, it seems to be the case. From one perspective, this is really another way of phrasing the parity hypothesis, but I think it's one that might be useful in thinking about the phenomenon.

Of course, there are other possible explanations for this "coincidence", but none of them seem completely satisfactory, which is rather disappointing.