# Catch-Up Algorithmic Progress Might Actually be 60× per Year

*Epistemic status: This is a quick analysis that might have major mistakes. I currently think there is something real and important here. I’m sharing to elicit feedback and update others insofar as an update is in order, and to learn that I am wrong insofar as that’s the case.*

Summary
=======

The canonical paper about Algorithmic Progress is by [Ho et al. (2024)](https://arxiv.org/abs/2403.05812) who find that, historically, the pre-training compute used to reach a particular level of AI capabilities decreases by about 3× each year. Their data covers 2012-2023 and is focused on pre-training.

In this post I look at AI models from 2023-2025 and find that, based on what I think is the most intuitive analysis, catch-up algorithmic progress (including post-training) over this period is something like 16×–60× each year.

This intuitive analysis involves drawing the best-fit line through models that are on the frontier of training-compute efficiency over time, i.e., those that use the least training compute of any model yet to reach or exceed some capability level. I combine Epoch AI’s estimates of training compute with model capability scores from Artificial Analysis’s Intelligence Index. Each capability level thus yields a slope from its fit line, and these slopes can be aggregated in various ways to determine an overall rate of progress. One way to do this aggregation is to assign subjective weights to each capability level and take a weighted mean of the capability level slopes (in log-compute), yielding an overall estimate of algorithmic progress: 1.76 orders of magnitude per year, or a ~60× improvement in compute efficiency, or a 2 month halving time in the training compute needed to reach a particular capability level. Looking at the median of the slopes yields 16× or a halving time of 2.9 months.

Based on this evidence and existing literature, my overall expectation of catch-up algorithmic progress *in the next year* is maybe 20× with an 80% confidence interval of \[2×–200×\], considerably higher than I initially thought.

The body of this post explains catch-up vs. frontier algorithmic progress, discusses the data analysis and results, compares two Qwen models as a sanity check, discusses existing estimates of algorithmic progress, and covers several related topics in the appendices.

What do I mean by ‘algorithmic progress’?
=========================================

First, let me differentiate between two distinct things people care about when they discuss “algorithmic progress”: the rate of catch-up, and algorithmic efficiency improvement at the frontier.

**Catch-up**: when a capability is first reached using X amount of compute, how long does it take until that capability can be reached with \[some amount less than X\] compute? Conveniently, catch-up is directly measurable using relatively simple measures: release date, benchmark scores, and an estimate of training compute. Catch-up rates affect the [proliferation/diffusion of AI capabilities](https://arxiv.org/abs/2311.15377) and indirectly reflect the second kind of algorithmic progress.

**Algorithmic progress at the frontier** is less clearly defined. It asks: for a given set of assumptions about compute growth, how quickly will the frontier of AI capabilities improve due to better algorithms? Frontier efficiency or “effective compute” informs predictions about the automation of AI research or an intelligence explosion; if compute remains constant while the amount of research effort surges, how much will capabilities improve?

[Hernandez & Brown](https://arxiv.org/abs/2005.04305) define effective compute as follows:

> The conception we find most useful is if we imagine how much more efficient it is to train models of interest in 2018 in terms of floating-point operations than it would have been to “scale up” training of 2012 models until they got to current capability levels. By "scale up," we mean more compute, the additional parameters that come with that increased compute, the additional data required to avoid overfitting, and some tuning, but nothing more clever than that.

Unfortunately, this is not easily measured. It invokes a counterfactual in which somebody in 2012 massively scales up training compute. (If they had actually done that, then, looking back, we would be measuring catch-up instead!) The common workaround is empirical scaling laws: train a family of models in 2012 using different amounts of compute but the same dataset and algorithms, and compare their training compute and performance, extrapolating to estimate how they would likely perform with more training compute.

Several factors affect the relative speed of these two measures. Catch-up might be faster due to distillation or synthetic data: once an AI model reaches a given capability level, it can be used to generate high-quality data for smaller models. Catch-up has a [fast-follower](https://theaiminstitute.com/blog/fast-follower-chasing-the-myth/) or proof-of-concept effect: one company or project achieving a new frontier of intelligence lets everybody else know that this is possible and inspires efforts to follow suit (and the specific methods used might also be disseminated). On the other hand, the returns to performance from compute *might* diminish rapidly at the frontier. Without better algorithms, capabilities progress at the frontier may require vast compute budgets, rendering algorithmic efficiency a particularly large progress multiplier. However, it’s not clear to me how strongly these returns diminish on downstream tasks (vs. language modeling loss where they [diminish](https://arxiv.org/abs/2001.08361) [steeply](https://arxiv.org/abs/2203.15556)). See e.g., [Owen 2024](https://arxiv.org/pdf/2401.04757), [Pimpale 2025](https://arxiv.org/abs/2502.15850), or the [Llama-3.1 paper](https://arxiv.org/abs/2407.21783).

**This post is about catch-up algorithmic progress**, not algorithmic progress at the frontier.

Methods and Results
===================

The intuitive way to measure catch-up algorithmic progress is to look at how much compute was used to train models of similar capability, over time, and then look at the slope of the compute frontier. That is, look at how fast “smallest amount of compute needed to reach this capability level” has changed over time, for different capability levels.

So I did that, with substantial help from Claude[^-TCNGzXTeZgQqFa2NB-1]. I use [Epoch’s database of AI models](https://epoch.ai/data/ai-models?view=table) for compute estimates (though I make a few edits to fix what I believe to be errors), and for capabilities, I use [Artificial Analysis’s Intelligence Index](https://artificialanalysis.ai/models/), an average of 10 widely used benchmarks. Here’s the most important graph:

![](https://39669.cdn.cke-cs.com/rQvD3VnunXZu34m86e5f/images/61b37e4f1e3238efe566bed27f2f180cef750df70e0b98db.png)

And the accompanying table:

+++ Results table

| **Capability_threshold** | **slope\\_log10\\_yr** | **efficiency\\_factor\\_yr** | **multiplier_yr** | **subjective_weight** | **n_models** | **n\\_models\\_on_frontier** | **first_date** | **last_date** |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| **5** | 1.20 | 15.72 | 0.064 | 5   | 80  | 7   | 2023-03-15 | 2025-08-14 |
| **10** | 1.85 | 70.02 | 0.014 | 5   | 67  | 3   | 2023-03-15 | 2024-04-23 |
| **15** | 1.04 | 10.92 | 0.092 | 8   | 57  | 6   | 2023-03-15 | 2025-07-15 |
| **20** | 0.93 | 8.60 | 0.116 | 9   | 51  | 8   | 2023-03-15 | 2025-07-15 |
| **25** | 2.32 | 210.24 | 0.005 | 9   | 39  | 7   | 2024-07-23 | 2025-07-15 |
| **30** | 1.22 | 16.61 | 0.060 | 8   | 31  | 5   | 2024-12-24 | 2025-09-10 |
| **35** | 1.41 | 25.91 | 0.039 | 8   | 30  | 5   | 2025-01-20 | 2025-09-10 |
| **40** | 1.22 | 16.50 | 0.061 | 8   | 22  | 6   | 2025-01-20 | 2025-09-10 |
| **45** | 4.48 | 29984.61 | 0.000 | 8   | 15  | 6   | 2025-02-17 | 2025-09-10 |
| **50** | 0.32 | 2.11 | 0.473 | 0   | 10  | 2   | 2025-08-05 | 2025-09-10 |
| **55** | 1.05 | 11.25 | 0.089 | 0   | 6   | 2   | 2025-08-05 | 2025-09-22 |
| **60** | 0.754 | 5.68 | 0.176 | 0   | 3   | 2   | 2025-08-05 | 2025-09-29 |
| **65** |     |     |     | 0   | 2   | 1   | 2025-09-29 | 2025-09-29 |
| **Mean** | 1.48 | 2531.51 | 0.099 |     |     |     |     |     |
| **Weighted** | 1.76 | 3571.10 | 0.051 | 68  |     |     |     |     |
| **Weighted log conversion** | 1.76 | 57.10 | 0.018 |     |     |     |     |     |
| **Median** | 1.21 | 16.10 | 0.062 |     |     |     |     |     |






+++

**The headline result: By a reasonable analysis, catch-up algorithmic progress is 57× (call it 60×) per year in the last two years. By another reasonable analysis, it’s merely 16×.**

These correspond to compute halving times of 2 months and 2.9 months.

There were only three capability levels in this dataset that experienced less than one order of magnitude per year of catch-up.

There are a bunch of reasonable ways to filter/clean the data. For example, I choose to focus only on models with “Confident” or “Likely” compute estimates. Historically, I’ve found the methodology for compute estimates shaky in general, and less confident compute estimates seem pretty poor. To aggregate across the different capability bins, I put down some subjective weightings.[^-TCNGzXTeZgQqFa2NB-2]

Other ways of looking at the data, such as considering all models with compute estimates or only those with Confident estimates, produce catch-up rates mostly in the range of 10×–100× per year. I’ve put various other analyses in [this Appendix](https://www.lesswrong.com/posts/yXLqrpfFwBW5knpgc/catch-up-algorithmic-progress-might-actually-be-60-per-year#Appendix__Filtering_by_different_confidence_levels_of_compute_estimates_).

Sanity check: Qwen2.5-72B vs. Qwen3-30B-A3B
===========================================

As a sanity check, let’s look at progress between Qwen2.5 and Qwen3. For simplicity, I’ll just look at the comparison between Qwen2.5-72B-Instruct and Qwen3-30B-A3B (thinking)[^-TCNGzXTeZgQqFa2NB-3]. I picked these models because they’re both very capable models that were near the frontier of compute efficiency at their release, among other reasons[^-TCNGzXTeZgQqFa2NB-4]. I manually calculated the approximate training compute for both of these models[^-TCNGzXTeZgQqFa2NB-5].

| Model | Qwen2.5-72B-Instruct | Qwen3-30B-A3B (thinking) |
| --- | --- | --- |
| Release date | [September 18 2024](https://qwen.ai/blog?id=qwen2.5-llm) | [April 29 2025](https://qwenlm.github.io/blog/qwen3/) |
| Training compute (FLOP) | 8.6e24 | 7.8e23 |
| Artificial Analysis Intelligence Index | 29  | 36.7 |
| Approximate cost of running AAII ($)[^-TCNGzXTeZgQqFa2NB-6] | 3.4 | 38  |

So these models were released about 7.5 months apart, the latter is trained with an order of magnitude less compute, and it exceeds the former’s capabilities—for full eval results see [this Appendix](https://www.lesswrong.com/posts/yXLqrpfFwBW5knpgc/catch-up-algorithmic-progress-might-actually-be-60-per-year#Appendix__Qwen2_5_and_Qwen3_benchmark_performance_). The 60×/yr trend given above would imply that reaching the capabilities of Qwen2.5-72B-Instruct with 7.8e23 FLOP would take 7.1 months[^-TCNGzXTeZgQqFa2NB-7]. Meanwhile, Qwen3-30B-A3B (thinking) *exceeded* this capability after 7.5 months. (I’m not going to attempt to answer whether the amount of capability-improvement over 2.5 is consistent with the trend.) So **the sanity check passes**: from Qwen2.5 to Qwen3 we have seen training compute efficiency improve significantly. (I’m not going to analyze the inference cost differences, though it is interesting that the smaller model is more expensive due to costing a similar amount per token and using many more tokens in its answers!)

Discussion
==========

How does this compare to the recent analysis in A Rosetta Stone for AI Benchmarks?
----------------------------------------------------------------------------------

There are a bunch of existing estimates of algorithmic progress. One of the most recent and relevant is that from [Ho et al. 2025](https://arxiv.org/abs/2512.00193), who use the Epoch Capabilities Index (ECI) to estimate algorithmic progress in various ways. I’ll focus on this paper and then briefly discuss other previous estimates in the next section.

Their Appendix C.2 “Directly estimating algorithmic progress” performs basically the same methodology as in this post, but they relegate it to an appendix because they do not consider it to be the most relevant. They write: “This gives us a way of sanity-checking our core results, although we consider these estimates less reliable overall — hence we place them in the appendix rather than in the main paper.” and later “Like the estimates using our primary method in Section 3.2.2, the range of values is very wide. In particular, we find training compute reductions from 2× to 400×! The median estimate across these is around 10× per year, but unfortunately we do not have much data and consider this method quite unreliable.”

I find this reasoning unconvincing because their appendix analysis (like that in this blog post) is based on more AI models than their primary analysis! The primary analysis in the paper relates a model’s capabilities (Cm) to its training compute (Fm) as follows: Cm = k*log(Fm) + b, where b is the algorithmic quality of a model. Then solving for algorithmic progress is a multi-step process, using specific model families[^-TCNGzXTeZgQqFa2NB-8]to estimate k, and then using k to estimate b for all models. The change in b over time is algorithmic progress. The crucial data bottleneck here is on step one, where you use a particular model family to estimate k. They only have 12 models in the primary analysis, coming from the Llama, Llama 2, and Llama 3.1 families. The overall results are highly sensitive to these models, as they discuss: “Much of this uncertainty comes from the uncertainty in the estimate of k.” I would consider relying on just 3 model families to be a worse case of “we do not have much data”, and thus not a good argument against using the intuitive approach.

There are various other differences between this post and Ho et al. 2025 where I think I have made a better choice.

In their primary analysis of algorithmic progress they exclude “distilled” models. They write “We drop distilled models from the dataset since we are interested in capturing the relationship between model capabilities and training compute for the final training run. This relationship might be heavily influenced by additional compute sources, such as from distillation or substantial quantities of synthetic data generation (Somala, Ho, and Krier 2025).” In an appendix, they correctly explain that publicly available information doesn’t tell us whether many models are distilled, making this difficult to do in practice.

I also think it’s unprincipled. *When thinking about catch-up algorithmic progress, it’s totally fine for existing models to influence the training of future models*, for instance, via creating synthetic data, being used for logit distillation, or even doing research and engineering to train future AIs more efficiently. I don’t see the principled reason to exclude distilled models, given that existing models simply will, by default, be used to help train future models. But note that this isn’t universally true. For example, it was [reported](https://www.wired.com/story/anthropic-revokes-openais-access-to-claude/) that Anthropic cut off access to Claude for OpenAI employees, and broadly there are many [access-levels](https://arxiv.org/abs/2302.04844) of AI that would prevent certain kinds of “use of existing models to help train future models”. Interestingly, their appendix results show similar results to the main paper even when including distilled models.

*Edit: the following paragraph and the histogram (now deleted) were based on me looking at the wrong data.* [*According to Epoch*](https://epoch.ai/benchmarks/eci#:~:text=We%20drop%20any%20models%20with%20fewer%20than%204%20benchmark%20scores%20from%20our%20model%20fit%2C%20to%20avoid%20low%2Dcertainty%20estimates.)*, ECI scores are based on at least 4 benchmarks scores for each model. *

~~I am also unconvinced that ECI is a better metric to use than AAII. One issue with ECI scores is that they are often calculated using just 2 benchmark scores for a particular model. I expect this introduces significant noise. By comparison, the Artificial Analysis Intelligence Index includes 10 benchmark scores for each model (at least most of the time, see~~ [~~this limitation~~](#some-aaii-scores-are-estimates)~~). As we can see, the ECI score for many models is based on just 2 or 3 different benchmark scores:~~

How does this compare to other previous estimates of algorithmic progress
-------------------------------------------------------------------------

For the sake of time, I’m just discussing headline results. I’m not going to discuss the methodological differences between these works or whether they focus on catch-up or algorithmic progress at the frontier. This is more of a pointer to the literature than an actual literature review:

*   [Hernandez & Brown (2020)](https://arxiv.org/abs/2005.04305) find that algorithmic progress in computer vision is 1.7× per year.
*   [Erdil & Besiroglu (2023)](https://arxiv.org/abs/2212.05153) find that algorithmic progress in computer vision is 2.5× per year.
*   [Ho et al. (2024)](https://arxiv.org/abs/2403.05812) find that algorithmic progress in language models is progressing at around 2.7× (often rounded to 3×), 95% CI \[1.8×–6.3×\], per year.
*   [Ho et al. (2025)](https://arxiv.org/abs/2512.00193) (discussed above) find that algorithmic progress in language models is 6× per year. Other estimates they arrive at with various methods include 5×, 3.5×, 10×, and 20×.
*   [Gundlach et al. (2025)](https://arxiv.org/abs/2511.21622) account for specific algorithmic improvements that net out to around a 2.2× rate of algorithmic progress.
*   [Whitfill et al. (2025)](https://arxiv.org/abs/2511.19492) estimate algorithmic progress in language models at 3.5× per year.
*   [MacAskill & Moorhouse (2025)](https://www.forethought.org/research/preparing-for-the-intelligence-explosion) combine existing estimates of pre-training algorithmic progress (3× from Ho et al. 2024) with an informal guess at post-training enhancements from [Anthropic](https://www-cdn.anthropic.com/872c653b2d0501d6ab44cf87f43e1dc4853e4d37.pdf#page=20) (3×) to arrive at a combined rate of overall algorithmic progress of around 9× per year.
*   In January 2025, [Dario Amodei wrote the following](https://www.darioamodei.com/post/on-deepseek-and-export-controls): “In 2020, my team published a paper suggesting that the shift in the curve due to algorithmic progress is ~1.68×/year \[[Hernandez & Brown, 2020](https://arxiv.org/abs/2005.04305)\]. That has probably sped up significantly since; it also doesn't take efficiency and hardware into account. I'd guess the number today is maybe ~4×/year.”

As discussed in [an Appendix](https://www.lesswrong.com/posts/yXLqrpfFwBW5knpgc/catch-up-algorithmic-progress-might-actually-be-60-per-year#Appendix__How_fast_is_the_cost_of_AI_inference_falling__), the rate of inference cost reduction is also relevant to one’s overall estimate of algorithmic progress.

*   [Gundlach et al. (2025)](https://arxiv.org/abs/2511.23455) estimate a rate of algorithmic progress relevant to inference prices at 3× per year, or 5× to 10× before taking hardware efficiency into account.

Other related work includes:

*   [Sanderson et al. (2025)](https://arxiv.org/abs/2505.04075)
*   [Davidson et al. (2023)](https://arxiv.org/abs/2312.07413)
*   [Ho & Berg (2025)](https://epochai.substack.com/p/quantifying-the-algorithmic-improvement)
*   [Whitfill (2025)](https://arxiv.org/abs/2508.11033)
*   [Aschenbrenner (2024)](https://situational-awareness.ai/from-gpt-4-to-agi/)

How should we update on this analysis?
--------------------------------------

I think we should update on this analysis, even though there are various methodological concerns—see [this Appendix](https://www.lesswrong.com/posts/yXLqrpfFwBW5knpgc/catch-up-algorithmic-progress-might-actually-be-60-per-year#Appendix__Limitations_) for limitations. This analysis was about using the most intuitive approach to estimate the rate of catch-up algorithmic progress. As somebody who doesn’t love math, I think intuitive approaches, where they are available, should be preferred to complicated modeling.

How should we update? Well, if you are me and you previously thought that algorithmic progress was 3× per year, you should update toward thinking it is higher, e.g., 60× or 20× or somewhere between your previous view and those numbers. The data from the last 2 years is not consistent with 3× per year algorithmic progress (to be clear and fair to Ho et al. 2024, their work focused on pre-training only). Due to the combination of pre-training improvements and post-training improvements, one probably should have expected overall algorithmic progress to be greater than 3× even before seeing these results. But also remember that catch-up algorithmic progress is not the same as algorithmic progress at the frontier!

Based on this analysis and the existing literature, my current all-things-considered view is that **catch-up algorithmic progress in the last couple of years and for the next year is likely 20× with an 80% confidence interval of \[2×–200×\]**, considerably higher than I initially thought.

Here is a concrete and falsifiable prediction from that estimate[^-TCNGzXTeZgQqFa2NB-9]:  
[DeepSeek-V3.2-Exp](https://api-docs.deepseek.com/news/news250929) is estimated by Epoch to be trained with 3.8e24 FLOP. It reached an AAII index score of 65.9 and was released on September 29, 2025. It is on the compute-efficiency frontier. I predict that by September 29, 2026, the least-compute-used-to-train model that reaches a score of 65 will be trained with around 1.9e23 FLOP, with the 80% CI covering 1.9e22–1.9e24 FLOP.

There are various implications of this update for one’s beliefs about AI governance, but I won’t discuss them for the sake of time.

The analysis here should be largely replicable using [this data](https://drive.google.com/file/d/1od4HA4mwgpgUZ3gvVgfszOnodByUIupj/view?usp=sharing)[^-TCNGzXTeZgQqFa2NB-10]and this [colab notebook](https://colab.research.google.com/drive/1d-YG6oD6JcJkx6T_puAYqhWsZPwhRh8f#scrollTo=0cVxcd7Tc0N4)[^-TCNGzXTeZgQqFa2NB-11]. The various tables in this post are available in spreadsheet format [here](https://docs.google.com/spreadsheets/d/1xNalNB5Cjf-4-8MwN_0GrwVa3gSadAvekpfCf0Bmfik/edit?gid=283572273#gid=283572273).

Appendices
==========

Appendix: Filtering by different confidence levels of compute estimates 
------------------------------------------------------------------------

### All models

![](https://39669.cdn.cke-cs.com/rQvD3VnunXZu34m86e5f/images/c23785d535b3b22770c425f0d01c5fa295ea56f2ac7eeb3e.png)

+++ Results table

| **Capability_threshold** | **slope\\_log10\\_yr** | **efficiency\\_factor\\_yr** | **multiplier_yr** | **subjective_weight** | **n_models** | **n\\_models\\_on_frontier** | **first_date** | **last_date** |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| **5** | 1.242982673 | 17.49776877 | 0.05715014372 | 5   | 89  | 8   | 2023-03-15 | 2025-08-14 |
| **10** | 1.845247949 | 70.02416666 | 0.01428078402 | 5   | 75  | 3   | 2023-03-15 | 2024-04-23 |
| **15** | 1.038225438 | 10.9200704 | 0.09157450124 | 8   | 63  | 6   | 2023-03-15 | 2025-07-15 |
| **20** | 0.9343559857 | 8.597179326 | 0.1163172201 | 9   | 57  | 8   | 2023-03-15 | 2025-07-15 |
| **25** | 2.073184863 | 118.3545239 | 0.008449191184 | 9   | 45  | 7   | 2024-06-20 | 2025-07-15 |
| **30** | 1.220342999 | 16.6089814 | 0.06020838821 | 8   | 35  | 5   | 2024-12-24 | 2025-09-10 |
| **35** | 1.533072741 | 34.12500632 | 0.02930402388 | 8   | 33  | 6   | 2025-01-20 | 2025-09-10 |
| **40** | 1.217481885 | 16.49992177 | 0.06060634794 | 8   | 24  | 6   | 2025-01-20 | 2025-09-10 |
| **45** | 4.476898444 | 29984.61273 | 3.34E-05 | 8   | 17  | 6   | 2025-02-17 | 2025-09-10 |
| **50** | 16.42308809 | 2.65E+16 | 3.77E-17 | 0   | 12  | 3   | 2025-07-09 | 2025-09-10 |
| **55** | 9.345398436 | 2215126006 | 4.51E-10 | 0   | 8   | 3   | 2025-07-09 | 2025-09-22 |
| **60** | 8.161341043 | 1.45E+08 | 6.90E-09 | 0   | 5   | 3   | 2025-07-09 | 2025-09-29 |
| **65** | 9.327678293 | 2.13E+09 | 4.70E-10 | 0   | 4   | 3   | 2025-07-09 | 2025-09-29 |
| **Mean** | 4.53 | 2037721399413230.00 | 0.034 |     |     |     |     |     |
| **Weighted** | 1.74 | 3560.03 | 0.050 | 68  |     |     |     |     |
| **Weighted log conversion** | 1.74 | 55.10 | 0.018 |     |     |     |     |     |
| **Median** | 1.85 | 70.02 | 0.014 |     |     |     |     |     |






+++

### Confident compute estimates

![](https://39669.cdn.cke-cs.com/rQvD3VnunXZu34m86e5f/images/4fbffd9438fb8e12f86b89bfd3f35910d1efefc158454b78.png)

+++ Results table

| **Capability_threshold** | **slope\\_log10\\_yr** | **efficiency\\_factor\\_yr** | **multiplier_yr** | **subjective_weight** | **n_models** | **n\\_models\\_on_frontier** | **first_date** | **last_date** |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| **5** | 0.505 | 3.201 | 0.312 | 5   | 61  | 5   | 2023-07-18 | 2025-08-14 |
| **10** | 0.062 | 1.154 | 0.866 | 5   | 49  | 2   | 2023-07-18 | 2024-04-23 |
| **15** | 1.516 | 32.845 | 0.030 | 8   | 40  | 5   | 2024-06-07 | 2025-07-15 |
| **20** | 1.605 | 40.244 | 0.025 | 9   | 36  | 7   | 2024-07-23 | 2025-07-15 |
| **25** | 2.425 | 266.051 | 0.004 | 9   | 26  | 6   | 2024-07-23 | 2025-07-15 |
| **30** | 1.006 | 10.131 | 0.099 | 8   | 19  | 7   | 2024-12-24 | 2025-09-10 |
| **35** | 1.275 | 18.823 | 0.053 | 8   | 18  | 7   | 2025-01-20 | 2025-09-10 |
| **40** | 1.217 | 16.500 | 0.061 | 8   | 14  | 6   | 2025-01-20 | 2025-09-10 |
| **45** | 4.288 | 19399.837 | 0.000 | 8   | 9   | 3   | 2025-07-11 | 2025-09-10 |
| **50** | 0.325 | 2.112 | 0.473 | 0   | 7   | 2   | 2025-08-05 | 2025-09-10 |
| **55** | 0.754 | 5.675 | 0.176 | 0   | 3   | 2   | 2025-08-05 | 2025-09-29 |
| **60** | 0.754 | 5.675 | 0.176 | 0   | 2   | 2   | 2025-08-05 | 2025-09-29 |
| **65** |     |     |     | 0   | 1   | 0   |     |     |
| **Mean** | 1.31 | 1650.19 | 0.190 |     |     |     |     |     |
| **Weighted** | 1.67 | 2332.40 | 0.119 | 68  |     |     |     |     |
| **Weighted log conversion** | 1.67 | 46.71 | 0.021 |     |     |     |     |     |
| **Median** | 1.11 | 12.93 | 0.077 |     |     |     |     |     |






+++

Appendix: How fast is the cost of AI inference falling? 
--------------------------------------------------------

We might ask whether AI inference costs are also falling very fast. It’s really easy to look at per-token costs, so that’s what I do here. It would be more principled to look at “[Cost to Run Artificial Analysis Intelligence Index](https://artificialanalysis.ai/models?intelligence-index-cost=intelligence-vs-cost&models=gpt-oss-120b%2Cgpt-oss-20b%2Cgpt-5-1-non-reasoning%2Cgpt-5-1%2Cgpt-5-1-codex%2Cllama-4-maverick%2Cgemini-2-5-flash-preview-09-2025-reasoning%2Cgemini-3-pro%2Cclaude-4-5-sonnet-thinking%2Cclaude-4-5-haiku-reasoning%2Cclaude-opus-4-5-thinking%2Cmagistral-medium-2509%2Cmistral-large-3%2Cdeepseek-r1%2Cdeepseek-v3-2-reasoning%2Cgrok-4%2Cgrok-4-1-fast-reasoning%2Cnova-2-0-pro-reasoning-medium%2Cminimax-m2%2Cnvidia-nemotron-nano-9b-v2-reasoning%2Ckimi-k2-thinking%2Colmo-3-32b-think%2Ckat-coder-pro-v1%2Cglm-4-6-reasoning%2Capriel-v1-5-15b-thinker%2Cqwen3-235b-a22b-instruct-2507-reasoning%2Cqwen2-5-72b-instruct%2Cqwen3-30b-a3b-instruct-reasoning#intelligence-vs-cost-to-run-artificial-analysis-intelligence-index)”.

Fortunately, that token-adjusted analysis has already been done by [Gundlach et al. 2025](https://arxiv.org/abs/2511.23455). They find “the price for a given level of benchmark performance has decreased remarkably fast, around 5× to 10× per year, for frontier models on knowledge, reasoning, math, and software engineering benchmarks.” They also write, “Isolating out open models to control for competition effects and dividing by hardware price declines, we estimate that algorithmic efficiency progress is around 3× per year.” I will defer to them on the token-quantity adjusted numbers.

But let’s look at per-token numbers briefly.

![](https://39669.cdn.cke-cs.com/rQvD3VnunXZu34m86e5f/images/4eee170be047a11f52b981424037b387270b0d38f615f46c.png)

+++ Results table

| **Capability_threshold** | **slope\\_log10\\_yr** | **price\\_reduction\\_factor_yr** | **price\\_multiplier\\_yr** | **subjective_weight** | **n_models** | **n\\_models\\_on_frontier** | **first_date** | **last_date** |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| **5** | 0.5308772781 | 3.395293156 | 0.2945253779 | 5   | 139 | 5   | 2022-11-30 | 2025-05-20 |
| **10** | 1.101835417 | 12.64257147 | 0.07909783247 | 5   | 133 | 4   | 2023-03-15 | 2025-05-20 |
| **15** | 1.487149892 | 30.70081409 | 0.03257242616 | 8   | 121 | 7   | 2023-03-15 | 2025-05-20 |
| **20** | 1.30426336 | 20.14945761 | 0.04962912745 | 9   | 113 | 7   | 2023-03-15 | 2025-08-18 |
| **25** | 1.573068449 | 37.41695563 | 0.02672585151 | 9   | 97  | 7   | 2024-05-13 | 2025-08-18 |
| **30** | 2.634093754 | 430.6195613 | 0.002322235425 | 8   | 74  | 8   | 2024-09-12 | 2025-08-18 |
| **35** | 2.903967451 | 801.6179829 | 0.001247477004 | 8   | 67  | 9   | 2024-09-12 | 2025-08-18 |
| **40** | 2.98712387 | 970.7868174 | 0.001030092274 | 8   | 59  | 8   | 2024-09-12 | 2025-08-05 |
| **45** | 2.720627924 | 525.5668007 | 0.001902707703 | 8   | 46  | 6   | 2024-12-05 | 2025-08-05 |
| **50** | 2.330820045 | 214.2002853 | 0.004668527863 | 8   | 36  | 4   | 2024-12-20 | 2025-08-05 |
| **55** | 1.476940885 | 29.98754309 | 0.03334718009 | 8   | 23  | 3   | 2024-12-20 | 2025-08-05 |
| **60** | 1.800798316 | 63.2118231 | 0.01581982533 | 5   | 15  | 2   | 2024-12-20 | 2025-08-05 |
| **65** | 0.9487721533 | 8.887347329 | 0.1125195138 | 5   | 10  | 3   | 2024-12-20 | 2025-09-29 |
| **Mean** | 1.83 | 242.24 | 0.050 |     |     |     |     |     |
| **Weighted** | 1.92 | 265.82 | 0.041 | 89  |     |     |     |     |
| **Weighted log conversion** | 1.92 | 82.47 | 0.012 |     |     |     |     |     |
| **Median** | 1.57 | 37.42 | 0.027 |     |     |     |     |     |






+++

So by my weighting, the cost per 1m tokens is falling at around 82× per year. To modify this to be a true estimate of algorithmic efficiency, one would need to adjust for other factors that affect prices, including improvements in [hardware price-performance](https://epoch.ai/data-insights/price-performance-hardware). Note that Artificial Analysis has made a similar graph [here](https://artificialanalysis.ai/trends#efficiency#language-model-inference-price), and that others have estimated similar quantities for the falling cost of inference. This recent OpenAI [blog post](https://openai.com/index/ai-progress-and-recommendations/) says “the cost per unit of a given level of intelligence has fallen steeply; 40× per year is a reasonable estimate over the last few years!”. This [data insight](https://epoch.ai/data-insights/llm-inference-price-trends) from Epoch finds rates of 9×, 40×, and 900× for three different capability levels. Similar analysis has appeared from [Dan Hendrycks](https://x.com/hendrycks/status/1822768743883378798), and in the [State of AI report](https://docs.google.com/presentation/d/1GmZmoWOa2O92BPrncRcTKa15xvQGhq7g4I4hJSNlC0M/edit?slide=id.g2d35cc0c275_7_89#slide=id.g2d35cc0c275_7_89) for 2024.

Prior work here generally uses per-token costs, and, again, a more relevant analysis would look at the cost to run benchmarks (cost per token * number of tokens), as in [Gundlach et al. 2025](https://arxiv.org/abs/2511.23455) (who find 5× to 10× per year price decreases before accounting for hardware efficiency) or [Erol et al. 2025](https://arxiv.org/abs/2504.13359). [Gundlach et al. 2025](https://arxiv.org/abs/2511.23455) and [Cottier et al. 2025](https://epoch.ai/data-insights/llm-inference-price-trends) find that progress appears to be faster for higher capability levels.

Overall I think trends in inference costs provide a small update against “20×–60×” rates of catch-up algorithmic progress for training and point toward lower rates, even though they are not directly comparable.

Appendix: Histogram of 1 point buckets
--------------------------------------

A natural question is to ask what the distribution of the slopes of catch-up are across the different capability buckets. This shows us that it’s not *just* the high-capability buckets that are driving high rates of progress, even though they seem to have higher rates of progress.

![](https://39669.cdn.cke-cs.com/rQvD3VnunXZu34m86e5f/images/8e6e51da8b02b57b0cb5b77df2bb8106e8ab6ee6d967087a.png)

Appendix: Qwen2.5 and Qwen3 benchmark performance 
--------------------------------------------------

For those interested, here’s a more thorough comparison of the models’ capabilities, adapted from the [Qwen3 paper](https://arxiv.org/abs/2505.09388). First, Instruct vs. Thinking, where the newer, small model dominates:

| Task/Metric | Qwen2.5-72B-Instruct | Qwen3-30B-A3B (thinking) |
| --- | --- | --- |
| Architecture | Dense | MoE |
| \\# Activated Params | 72B | 3B  |
| \\# Total Params | 72B | 30B |
| MMLU-Redux | 86.8 | 89.5 |
| GPQA-Diamond | 49  | 65.8 |
| C-Eval | 84.7 | 86.6 |
| LiveBench 2024-11-25 | 51.4 | 74.3 |
| IFEval strict prompt | 84.1 | 86.5 |
| Arena-Hard | 81.2 | 91  |
| AlignBench v1.1 | 7.89 | 8.7 |
| Creative Writing v3 | 61.8 | 79.1 |
| WritingBench | 7.06 | 7.7 |
| MATH-500 | 83.6 | 98  |
| AIME’24 | 18.9 | 80.4 |
| AIME’25 | 15  | 70.9 |
| ZebraLogic | 26.6 | 89.5 |
| AutoLogi | 66.1 | 88.7 |
| BFCL v3 | 63.4 | 69.1 |
| LiveCodeBench v5 | 30.7 | 62.6 |
| CodeForces (Rating / Percentile) | 859 / 35.0% | 1974 / 97.7% |
| Multi-IF | 65.3 | 72.2 |
| INCLUDE | 69.6 | 71.9 |
| MMMLU 14 languages | 76.9 | 78.4 |
| MT-AIME2024 | 12.7 | 73.9 |
| PolyMath | 16.9 | 46.1 |
| MLogiQA | 59.3 | 70.1 |
| Average | 50.2 | 72.1 |

I was also curious to compare the base models which turn out to be very close in their capabilities (note these are different benchmarks than for thinking/instruct):

| Metric | Qwen2.5-72B | Qwen3-30B-A3B |
| --- | --- | --- |
| Variant | Base | Base |
| Architecture | Dense | MoE |
| \\# Total Params | 72B | 30B |
| \\# Activated Params | 72B | 3B  |
| MMLU | 86.06 | 81.38 |
| MMLU-Redux | 83.91 | 81.17 |
| MMLU-Pro | 58.07 | 61.49 |
| SuperGPQA | 36.2 | 35.72 |
| BBH | 86.3 | 81.54 |
| GPQA | 45.88 | 43.94 |
| GSM8K | 91.5 | 91.81 |
| MATH | 62.12 | 59.04 |
| EvalPlus | 65.93 | 71.45 |
| MultiPL-E | 58.7 | 66.53 |
| MBPP | 76  | 74.4 |
| CRUX-O | 66.2 | 67.2 |
| MGSM | 82.4 | 79.11 |
| MMMLU | 84.4 | 81.46 |
| INCLUDE | 69.05 | 67  |
| Average | 70.2 | 69.5 |

Appendix Leave-One-Out analysis 
--------------------------------

The methodology in this post is sensitive to outlier models, but it’s unclear how bad the problem is. To understand whether these outliers might be throwing things off substantially, we can recompute the slope of each bucket while excluding one of the efficiency-frontier models, iterating through each efficiency-frontier model one at a time. A naive way to do this would be to remove the model and calculate the slope of the remaining efficiency-frontier models, but we first have to recalculate the efficiency-frontier after removing the model, because other models could be added to the frontier when this happens.

Then we can examine the distribution of slopes produced in that process for each capability threshold. Looking at the slope\_range\_min and slope\_range\_max, gives us (in log-compute) what the slowest and fastest rates of reduction are when doing leave-one-out. If it were the case that particular models were problematic, then this range would be very wide. If outliers were often inflating the slope estimates, then slope\_range\_min would be pretty small compared to the baseline_slope (all models included).

What we actually see is a moderate range in the slopes and that slope\_range\_min is often still quite high. Therefore, I do not think that outlier models are a primary driver of the rapid rate of algorithmic progress documented in this post.

Leave-One-Out (loo) for Confident and Likely compute estimates:

+++ Results table

| **threshold** | **n_frontier** | **baseline_slope** | **slope\\_range\\_min** | **slope\\_range\\_max** | **range_width** | **most\\_influential\\_model** | **max_influence** | **weight** |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| **5** | 7   | 1.196 | 0.958 | 1.349 | 0.390 | GPT-4 (Mar 2023) | 0.238 | 5   |
| **10** | 3   | 1.845 | 0.062 | 7.007 | 6.944 | phi-3-mini 3.8B | -5.162 | 5   |
| **15** | 6   | 1.038 | 0.901 | 1.101 | 0.200 | Phi-4 Mini | 0.138 | 8   |
| **20** | 8   | 0.942 | 0.890 | 1.518 | 0.628 | GPT-4 (Mar 2023) | -0.576 | 9   |
| **25** | 7   | 2.323 | 1.702 | 2.502 | 0.801 | EXAONE 4.0 (1.2B) | 0.621 | 9   |
| **30** | 5   | 1.220 | 1.132 | 1.413 | 0.282 | DeepSeek-V3 | -0.193 | 8   |
| **35** | 5   | 1.413 | 1.330 | 3.976 | 2.646 | DeepSeek-R1 | -2.563 | 8   |
| **40** | 6   | 1.217 | 0.930 | 4.223 | 3.293 | DeepSeek-R1 | -3.006 | 8   |
| **45** | 6   | 4.477 | 3.518 | 5.319 | 1.801 | Grok 3 | 0.958 | 8   |
| **50** | 2   | 0.325 |     |     |     | N/A (n<3) |     | 0   |
| **55** | 2   | 1.051 |     |     |     | N/A (n<3) |     | 0   |
| **60** | 2   | 0.754 |     |     |     | N/A (n<3) |     | 0   |
| **65** | 1   |     |     |     |     | N/A (n<3) |     | 0   |




+++

Appendix: Limitations 
----------------------

### Outlier models

One major limitation of this methodology is that it is highly sensitive to specific outlier models.

On one hand, outlier models that are highly capable but developed with small amounts of compute pose an issue. For instance, early versions of this analysis that directly used all of the compute estimates from Epoch resulted in much larger rates of algorithmic progress, such as 200×, because of a couple outlier models that had (what I now realize are) incorrect compute estimates in the Epoch database, including the Qwen-3-Omni-30B-A3B model and the Aya Expanse 8B model. I investigated some of the models that were greatly affecting the trend lines and manually confirmed/modified some of their compute estimates. I believe that *clearly erroneous* FLOP estimates are no longer setting the trend lines. However, compute estimates can *still be noisy* in ways that are not clearly an error.

Noisy estimates are especially a problem for this methodology because the method selects *the most* compute-efficient model at each capability level. If there is lots of noise in compute estimates, extremely low-compute models will set the trend. Meanwhile, extremely high-compute models don’t affect the efficiency-frontier trend at all unless they were the first model to reach some capability level (less likely due to fewer models setting new capability records, specifically one per capability level). This issue can be partially mitigated by up-weighting the capability levels that have many models setting their frontier (as I do) (single outliers do less to set the trend line for these series), but it is still a major limitation.

This methodology is also sensitive to early models being trained with a large amount of compute and setting the trend line too high. For example, Grok-3 starts the frontier for the AAII ≥45 bucket, but then Claude 3.7 Sonnet was released about a week later, is in the same bucket, and is estimated to use much less compute. Now, it turns out that the slope for the 45 series is still very steep if Grok-3 is removed, but this data point shows how the methodology could lead us astray—there wasn’t actually an order of magnitude of compute worth of algorithmic improvements that happened in that week. One way to mitigate this issue is to investigate leave-one-out bootstrapped analysis, as I do in [this Appendix](https://www.lesswrong.com/posts/yXLqrpfFwBW5knpgc/catch-up-algorithmic-progress-might-actually-be-60-per-year#Appendix_Leave_One_Out_analysis_). This analysis makes me think that outlier models are not a primary driver of the rapid trends reported here.

### Lack of early, weak models

There is a lack of weak models in the dataset before 2023. GPT-4 scores 21.5, but in this dataset, it is the first model to score above the thresholds of 5, 10, 15, and 20. In reality, it is probably the first model to score above 20 and maybe the first model to score above 10 and 15, but the relevant comparison models either do not have compute estimates, or do not have AAII scores, and thus are not in this dataset. For example, GPT-3.5 Turbo (2022-11-30) scores 8.3 but has no compute estimate. This issue is partially mitigated by weighting the 5, 10, and 15 buckets lower, but also the overall results are not very sensitive to the weighting of these particular buckets.

### Post-training compute excluded

The compute data in this analysis is generally only for pre-training compute, not post-training compute. This is *probably* fine because post-training compute is likely a small fraction of the compute used to train the vast majority of these models, but it is frustrating that it is not being captured. Some models, such as [Grok-4](https://x.ai/news/grok-4/), use a lot of post-training compute. I currently believe (but will not justify here) that the amount of post-training compute used in the vast majority of models in this dataset is less than 10% of their pre-training compute and therefore ignorable, and I do not think counting post-training compute would substantially change the results.

### Inference-time compute excluded

When looking at “reasoning” models, this analysis uses their highest-reasoning-effort performance. This makes recent models seem more training-compute efficient because, in some sense, they are trading off training compute for inference compute, compared to earlier models. I don’t think this is a major concern because I think inference costs are mostly not that big of a deal when thinking about AI capabilities improvements and catastrophic risk. I won’t fully explain my reasoning here, but as a general intuition, the absolute cost to accomplish some task is usually quite small. For example, [this paper](https://arxiv.org/abs/2406.01637v1) that uses LLMs to develop cybersecurity exploits arrives at an empirical cost of about $24 per successful exploit. Because inference costs are, empirically, fairly small compared to the budget of many bad actors, it is more relevant whether an AI model can accomplish a task *at all* rather than whether it takes a bunch of inference tokens to do so.

### Some AAII scores are estimates 

For some models (especially older ones), the Artificial Analysis Intelligence Index score is labeled as “Estimate (independent evaluation forthcoming)”. It is unclear how these scores are determined, and they may not be a reliable estimate. The Artificial Analysis API does not clearly label such estimates and I did not manually remove them for secondary analysis. Ideally the capability levels that have these models (probably typically lower levels) would be weighted less, but I don’t do this due to uncertainty about which models have Estimates vs. independently tested scores.

### Comparing old and new models on the same benchmark

There are various potential problems with using the Artificial Analysis Intelligence Index (AAII) instead of, say, the recent [ECI score](https://epoch.ai/benchmarks/eci) from Epoch. Overall, I think AAII is a reasonable choice.

One problem is that AAII assigns equal weight to 10 benchmarks, but this is unprincipled and might distort progress (e.g., because getting 10 percentage points higher of a score on tau bench is easier than doing the same on MMLU—frontier models have probably scored approximately as high as they ever will on MMLU).

Relatedly, AAII likely favors recent models due to heavy influence of agentic tasks and recent benchmarks. Basically nobody tried to train for agentic tool use 2 years ago, nor did they try to optimize performance on a benchmark that didn’t exist yet. I’m not sure there is a satisfactory answer to this problem. But I’m also not sure it’s that big of a problem! It is an important fact that *AI use cases are changing over time*, largely because the AIs are getting capable enough to do more things. It’s good that we’re not still evaluating models on whether they can identify what word a pronoun refers to! Evaluating yesterday’s models by today’s standards of excellence does rig the game against them, but I’m not sure it’s worse than evaluating today’s models on stale and irrelevant benchmarks.

I expect the makeup of AAII to change over time, and that’s okay. If I want to predict, “how cheap will it be in late 2026 to train a model that is as good as GPT-5.2-thinking on the tasks that are relevant to me in late 2026?” then the AAII approach makes a lot of sense! I don’t anticipate my late 2026 self caring all that much about the current (late 2025) benchmarks compared to the late 2026 benchmarks. But this is a different question from “how much compute will be needed a year from now to reach the current models’ capabilities, full stop”.

It’s good to pursue directions like ECI that try to compare across different benchmarks better, but I’m skeptical of it for various reasons. One reason is that I have tried to keep this analysis as intuitive and simplistic as possible. Raw benchmark scores are intuitive, they tell you the likelihood of a model getting questions in \[some distribution sufficiently close to the test questions\] correct. AAII is slightly less intuitive as it’s an average of 10 such benchmarks, but the score still means something to me. In general, I am pretty worried about over-analysis leading us astray due to introducing more places for mistakes in reasoning and more suspect assumptions. That’s why the analysis in this post takes the most simple and intuitive approach (by my lights) and why I choose to use AAII as the capabilities metric.

[^-TCNGzXTeZgQqFa2NB-1]:  

[^-TCNGzXTeZgQqFa2NB-2]:  

[^-TCNGzXTeZgQqFa2NB-3]:  

[^-TCNGzXTeZgQqFa2NB-4]:  

[^-TCNGzXTeZgQqFa2NB-5]:  

[^-TCNGzXTeZgQqFa2NB-6]:  

[^-TCNGzXTeZgQqFa2NB-7]:  

[^-TCNGzXTeZgQqFa2NB-8]:  

[^-TCNGzXTeZgQqFa2NB-9]:  

[^-TCNGzXTeZgQqFa2NB-10]:  

[^-TCNGzXTeZgQqFa2NB-11]: