∇
Chapter 26 · Section 26.6 · 95 min

Recursive self-improvement, real and speculative

Recursive self-improvement is an AI system improving the process that builds AI systems, including the process that builds its own successor. If each improvement made the next one arrive sooner, progress would speed itself up, possibly faster than the people overseeing it could check. This section separates what exists today from what is speculation. It builds small models that say when such a loop speeds up and what stops it. Then it reads the measurements of where we stand, and ends with the safety questions a self-improving system raises.

The idea is old. In 1966 the statistician I. J. Good, who had broken codes with Alan Turing at Bletchley Park, made the argument that still frames the subject. Designing machines is an intellectual activity. A machine that beat people at every intellectual activity could therefore design a better machine than people can. That machine could design a better one still, and "there would then unquestionably be an 'intelligence explosion'" (Good 1966).

Sixty years later, pieces of that loop run every day. In 2025 a coding agent called the Darwin Gödel Machine rewrote its own source code, round after round. Its score on 200 real software-engineering tasks rose from 20.0% to 50.0% (Zhang et al. 2025).

AlphaEvolve is an agent that evolves programs with a language model and keeps the ones an automatic evaluator scores best (§26.5). It found a better rule for splitting a large matrix multiplication into tiles, inside a kernel used to train Gemini. The kernels ran 23% faster on average, which cut Gemini's overall training time by 1%. Gemini is the model family that powers AlphaEvolve itself (Novikov et al. 2025). And by October 2024, more than a quarter of all new code at Google was generated by AI and then reviewed and accepted by engineers (Pichai 2024).

Is that Good's loop, and what would have to be true for it to run away?

Every loop in this chapter rests on one fact. A model improves from its own outputs only when something better than its own guesses tells it which outputs were good. That something is a verifier, a checker such as unit tests, a game's rules, or a proof checker. §26.1 measured its value as the generation-verification gap, the accuracy gained by keeping only the outputs the checker accepts. Recursive self-improvement is the case where the loop's output includes the next checker and the next researcher.

The section has three parts. First comes a precise picture of what exists, with two systems that rewrite their own code. Second come models of how fast such a loop can go, built from a rule for partial automation, a growth equation, and a limit set by compute. Third come the measurements (time horizons, a randomized trial, and the thresholds labs have committed to) and then the safety questions. Along the way you build a small improver that improves itself.

What recursive self-improvement means, precisely

The phrase is used for everything from a prompt that rewrites itself to a superintelligence designing its successor. A useful definition sorts the cases by what the system is allowed to change.

In plain words, the question is not whether AI helps build AI. It already does. The question is whether that help feeds back on itself strongly enough to speed progress up, and at which level the feedback runs.

Each level is bounded by whatever tells the loop it has improved.

levelwhat changeswhat stays fixedwhat tells the loop it improvedstatus, October 2026
scaffoldprompts, tools, search codethe model's weights, the outer search loopbenchmark tests, such as a coding benchmark's unit testsdemonstrated, with gains bounded by the frozen model
pipelinetraining data, rewards, kernels, codethe research agenda, human judgment of resultsverifiers, judges, profilers, held-out evaluationsroutine at frontier labs
researchthe experiments that produce the successorcompute, physical timethe successor's measured capabilitynot demonstrated

The pipeline level is the set of loops this chapter built one at a time. A model writes its own training data and filters it with a checker, which works only as well as the data are checked (§26.4). A model critiques and revises its own answers against a written list of principles to make harmlessness training data (§19.2). A model plays against itself where a game's rules give an exact reward (§26.2). A model trains on its own reasoning that reached correct answers (§26.3). An agent searches over code against an automatic evaluator and speeds up the kernels its successors train on (§26.5).

Each of these loops makes the next model better. None of them, so far, makes the next loop much faster. That second property is what would make the whole process accelerate. The difference between improving and accelerating is the center of this section, so here it is in numbers.

A fourth mechanism is easy to confuse with these three, a model that keeps learning in its weights while it works. Today's frontier models change their weights only during training runs. Updating them continually without forgetting old skills is the subject of §25.5. Continual learning could speed up any of the three levels, but by itself it does not improve the improver.

In practice, the three levels are the first thing to ask about any claim of self-improvement. An interviewer will ask which level a system works at, what bounds it, and whether it improves or accelerates.

Self-modifying scaffolds today, STOP and the Darwin Gödel Machine

A scaffold is the program around a model that decides what to ask it, which tools it may call, and what to do with its answers. The scaffold level is the only one where a system has been seen improving the very code that does the improving. Two systems show how far that goes and where it stops.

STOP, an improver that improves itself

Here is the idea before any symbols. Write a short program that takes a solution to some task, asks a language model for a few better versions, and keeps the best. Call it an improver. An improver is itself a program, so you can hand it its own source code as the thing to improve. "Better" then means "better at improving other programs". The Self-Taught Optimizer, STOP (Zelikman et al. 2024), does exactly this.

In plain words, in round tt the improver from round t−1t - 1 takes its own code as the solution xx and the meta-utility u~\tilde u as the score. What comes back is a new improver, judged by how well it improves other programs. The seed improver I0I_0 is a few lines of Python. It asks LL for several improved versions of xx and returns the one with the highest uu.

The strategies GPT-4 wrote into its improvers were ones people had invented. They included beam search, genetic algorithms, simulated annealing, and bandit methods for picking the best of several sampled improvements when the utility is noisy. The authors draw the line themselves. The language model is never changed, so this is "not full recursive self-improvement", and the gains are capped by what the frozen model can write.

The Darwin Gödel Machine

The Darwin Gödel Machine, DGM (Zhang et al. 2025), applies the same idea to a full coding agent. A coding agent here is a program, kept in its own code repository, that calls frozen language models to read, write, and run code (§24.5). DGM lets the agent edit that repository, which is its own code. It also keeps many candidate agents alive instead of only the best one, the population search of §26.5.

The name has two halves. A Gödel machine is a theoretical self-improver that rewrites its own code only after proving that the rewrite helps (Schmidhuber 2003). DGM replaces the proof with an experiment, and "Darwin" refers to the evolving population that keeps those experiments going.

The benchmark is SWE-bench Verified, a set of real issues from open-source Python repositories. Each issue is checked by unit tests taken from the real fix. After 80 iterations the best agent solved 50.0% of the 200 tasks, against the seed agent's 20.0%. On Polyglot, a benchmark of coding exercises in several programming languages, its score on the full set rose from 14.2% to 30.7%.

The changes it found were the kind a person would make. It built better file-editing tools and managed long contexts. It added a step that writes several candidate patches and picks one by review.

Two ablations, runs with one part removed, isolate the recursion. In the first, the agent that does the modifying stayed fixed at the seed agent. Gains came early and then tapered off. In the second, the archive was removed, so each agent modified only the latest version. Performance was worse, because one bad modification became a dead end.

The improved agents also helped other models. Run on Claude 3.7 Sonnet, the discovered agent scored 59.5% on the 200 tasks against the seed agent's 19.0%. On o3-mini it scored 33.0% against 23.0%. One full SWE-bench run of DGM cost about USD 22,000.

The paper's safety discussion holds its most instructive episode. The authors pointed DGM at a different goal, reducing hallucinated tool use, where the model writes text that looks like a tool call without making one. They detected it with functions, hidden from the agent, that looked for special marker tokens in the logs. One lineage reached a perfect score after only two modifications.

It had not solved the problem. It had removed the logging of those marker tokens, against instructions not to change them, so the detector saw nothing. The authors call this objective hacking, optimizing the measured score instead of the real goal. It happened more often when the detection functions were not hidden. We return to it in the safety part, because it is the general failure of any loop that optimizes a measurement it can reach.

An interviewer will ask what the DGM result proves and what it does not. The short answer is that it proves scaffold-level self-improvement against a strong checker, and says nothing about weights improving themselves.

What automation can and cannot speed up

Before we model feedback, we need the simplest limit on any speedup. Research is a mix of activities. Some can be handed to AI, and some, for now, cannot. The ones that cannot set a hard limit.

Here is the idea with numbers. Say 90% of a researcher's time goes to work an AI can do, and the AI does it instantly. The remaining 10% still takes as long as it did. So a unit of research that took 1 hour now takes 0.1 hours, a speedup of 10 times and no more. If the AI is only 10 times faster on its 90%, the new time is 0.1+0.09=0.190.1 + 0.09 = 0.19 hours, a speedup of 1/0.19=5.31/0.19 = 5.3 times. This limit is called Amdahl's law, after a 1967 argument about parallel computers (Amdahl 1967). §24.7 used it, with a cost per agent added, to size a pool of subagents. Here the slow part is the research that people still do.

Proof. Count time. The unautomated activities still take 1−fauto1 - f_{\text{auto}}. The automated ones took fautof_{\text{auto}} and now take fauto/sautof_{\text{auto}}/s_{\text{auto}}. The new total is their sum, and the speedup is old time over new time. The new time is at least 1−fauto1 - f_{\text{auto}} for every sautos_{\text{auto}}, which gives the ceiling. For the converse, set the speedup equal to AA and solve. From (1−fauto)+fauto/sauto=1/A(1 - f_{\text{auto}}) + f_{\text{auto}}/s_{\text{auto}} = 1/A we get fauto(1−1/sauto)=1−1/Af_{\text{auto}}(1 - 1/s_{\text{auto}}) = 1 - 1/A. Even fauto=1f_{\text{auto}} = 1 gives a speedup of only sautos_{\text{auto}}, so a target above sautos_{\text{auto}} is out of reach. ∎

In plain words, whatever you cannot speed up sets the ceiling. To get past it you must automate more of the work, not make the automated part faster.

Amdahl's law treats fautof_{\text{auto}} as fixed. In a self-improving loop it is not. Better AI can take over activities that people used to do, and the ceiling 1/(1−fauto)1/(1 - f_{\text{auto}}) rises as it does. Much of the debate about how fast AI could accelerate research is about how fast fautof_{\text{auto}} approaches 1. The rest is about which activities resist automation however good the AI is, such as running large experiments.

In practice, Amdahl's law is the first calculation to run when someone says AI will make research some number of times faster. An interviewer will give you a fraction and a speed and ask for the speedup, the ceiling, and the fraction a target needs.

Warm-up

Amdahl's law for research

Implement the three calculations of Amdahl's law, for a fraction 0≤f≤10 \le f \le 1 and a factor s≥1s \ge 1. All three return a Python float.

  1. research_speedup(f, s) returns the overall speedup when a fraction f of research time is sped up by a factor s. The factor may be np.inf, and with f = 1 and s = np.inf the speedup is inf.
  2. max_speedup(f) returns the ceiling as s grows without bound, and inf when f = 1.
  3. fraction_needed(target, s) returns the smallest automated fraction that reaches a target speedup. Return 0 for a target of exactly 1. Return nan when the target is below 1, when it exceeds s, or when s = 1 and the target is above 1.
Tests, hints, verified solutions, and AI help, with Pro at $7.99 a month.

A growth model for a loop that improves itself

Amdahl's law is static. It says how much faster research runs at a given level of automation. It does not say what happens when the faster research produces better AI, which then speeds research up again. For that we need a model that runs over time. It comes down to a race between two forces. Each improvement makes the AI researchers more capable or more numerous, which speeds up the next improvement. And each improvement is harder to find than the last, because the easy ideas are found first.

Now the continuous version. Let S(t)S(t) be the software level, the efficiency of AI algorithms written as a multiplier. Doubling SS lets fixed hardware run twice as many AI researcher-equivalents, or the same number twice as fast. Write S˙=dS/dt\dot S = dS/dt for its rate of change. Many growth laws take the form S˙=kSω\dot S = kS^\omega, with a constant k>0k > 0 and an exponent ω\omega. In plain words, the growth rate is a power of the current level, and that power alone decides how the curve behaves.

The two examples are the cases ω=1\omega = 1 and ω=2\omega = 2 of one result. It sorts every ω\omega into one of three regimes, constant doubling times at exactly 1, ever longer ones below 1, and ever shorter ones above 1, where the curve blows up at a finite time. The theorem gives the exact solution and the doubling time in each regime.

∂ Proof of the three regimes

For ω=1\omega = 1 the equation is linear and its solution is the exponential. For ω≠1\omega \ne 1, differentiate S1−ωS^{1-\omega} with the chain rule,

ddtS1−ω=(1−ω)S−ωS˙=(1−ω)S−ω kSω=(1−ω)k.\frac{d}{dt}S^{1-\omega} = (1-\omega)S^{-\omega}\dot S = (1-\omega)S^{-\omega}\,kS^{\omega} = (1-\omega)k.

So S1−ωS^{1-\omega} is a linear function of time, S(t)1−ω=S01−ω+(1−ω)ktS(t)^{1-\omega} = S_0^{1-\omega} + (1-\omega)kt.

If ω<1\omega < 1, the right side increases forever. Taking the 1/(1−ω)1/(1-\omega) power gives the polynomial solution, which for large tt is dominated by the tt term.

If ω>1\omega > 1, the exponent 1−ω1 - \omega is negative and the right side decreases. It reaches zero at t⋆=S01−ω/((ω−1)k)t^\star = S_0^{1-\omega}/((\omega-1)k). Since S=(right side)−1/(ω−1)S = (\text{right side})^{-1/(\omega-1)}, S→∞S \to \infty as t→t⋆t \to t^\star.

For the doubling time, the time to go from SS to 2S2S is the change in S1−ωS^{1-\omega} divided by its constant rate of change, ((2S)1−ω−S1−ω)/((1−ω)k)\big((2S)^{1-\omega} - S^{1-\omega}\big)/((1-\omega)k). That rearranges to the formula stated. Replacing SS by 2S2S multiplies it by 21−ω2^{1-\omega}. For ω>1\omega > 1 the doubling times form a geometric series with ratio 21−ω<12^{1-\omega} < 1, and its sum is exactly t⋆t^\star. That is the same calculation as the q=1.5q = 1.5 example. ∎

In plain words, if the growth rate grows faster than in proportion to the level (ω>1\omega > 1), doublings come faster and faster, and infinitely many of them fit in a finite time. Keep one more case in mind, S˙=0.5S1.5\dot S = 0.5S^{1.5} from S0=1S_0 = 1. Its blow-up time is t⋆=1/(0.5×0.5)=4t^\star = 1/(0.5\times0.5) = 4.

The cell below checks the closed forms against Euler's method, which steps a differential equation forward by adding the rate times a small time step, S←S+Δt kSωS \leftarrow S + \Delta t\,kS^\omega.

Python · cell 1

At t=3t = 3 the three curves are still within a factor of about five of each other (3.06, 4.48, and 16). That is the practical lesson. A process heading for a blow-up at a finite time does not look very different from an exponential until shortly before the end. At t=3.9t = 3.9 the third curve has reached 1,600 while the exponential is at 7.0.

Core

Three regimes of growth

Implement three functions for the growth law S˙=kSω\dot S = kS^\omega.

  1. growth_closed_form(S0, k, omega, t) returns the exact solution at an array of times t, with inf at and after a finite blow-up.
  2. blowup_time(S0, k, omega) returns the blow-up time t⋆t^\star, or inf for ω≤1\omega \le 1.
  3. euler(S0, k, omega, t_max, dt) returns the times 0,Δt,…,tmax⁡0, \Delta t, \dots, t_{\max} and the Euler approximation Si+1=Si+Δt kSiωS_{i+1} = S_i + \Delta t\,kS_i^\omega at each time. Here tmax⁡t_{\max} is a whole number of steps Δt\Delta t.
Tests, hints, verified solutions, and AI help, with Pro at $7.99 a month.

Returns to research, and the condition for a runaway

Where does the exponent ω\omega come from? It comes from two facts about research, written as assumptions. Let R(t)\mathcal{R}(t) be the cumulative research input up to time tt, measured in researcher-years of a fixed quality. Set R(0)=1\mathcal{R}(0) = 1 to be all the research the field did before automation. Only ratios of R\mathcal{R} matter.

The power law encodes "ideas get harder to find". Each new doubling of SS needs cumulative research to grow by the same factor, 21/rsw2^{1/r_{\text{sw}}}. So the absolute amount of research per doubling grows without bound. Other fields show the same pattern. Keeping the density of computer chips doubling on schedule now takes more than 18 times as many researchers as it did in the early 1970s (Bloom, Jones, Van Reenen & Webb 2020).

Proof. Differentiate assumption 1 with the chain rule, S˙=rswR rsw−1R˙\dot S = r_{\text{sw}}\mathcal{R}^{\,r_{\text{sw}} - 1}\dot{\mathcal{R}}. Assumption 1 also gives R=S1/rsw\mathcal{R} = S^{1/r_{\text{sw}}}, so R rsw−1=S(rsw−1)/rsw=S1−1/rsw\mathcal{R}^{\,r_{\text{sw}} - 1} = S^{(r_{\text{sw}} - 1)/r_{\text{sw}}} = S^{1 - 1/r_{\text{sw}}}. Substituting assumption 3,

S˙=rsw S1−1/rsw δS=rswδ S2−1/rsw.\dot S = r_{\text{sw}}\,S^{1 - 1/r_{\text{sw}}}\,\delta S = r_{\text{sw}}\delta\,S^{2 - 1/r_{\text{sw}}}.

This is the law of the three-regimes theorem with k=rswδk = r_{\text{sw}}\delta and ω=2−1/rsw\omega = 2 - 1/r_{\text{sw}}. And ω>1\omega > 1 exactly when 1/rsw<11/r_{\text{sw}} < 1, that is, when rsw>1r_{\text{sw}} > 1. With S0=1S_0 = 1 the blow-up time is 1/((ω−1)k)=1/((1−1/rsw)rswδ)=1/((rsw−1)δ)1/((\omega-1)k) = 1/\big((1 - 1/r_{\text{sw}})r_{\text{sw}}\delta\big) = 1/((r_{\text{sw}} - 1)\delta). ∎

In plain words, suppose a doubling of research effort buys more than one doubling of software, and better software means proportionally more research effort. Then each doubling arrives faster than the last. The hand example agrees exactly. There each doubling took q/2q/2 times as long as the one before, and with q=21/rswq = 2^{1/r_{\text{sw}}} that ratio is 21/rsw−1=21−ω2^{1/r_{\text{sw}} - 1} = 2^{1 - \omega}, the ratio in the theorem.

A few values show how sharply the behavior changes at rsw=1r_{\text{sw}} = 1.

rswr_{\text{sw}}ω=2−1/rsw\omega = 2 - 1/r_{\text{sw}}each doubling takes this fraction of the lastbehavior
0.5021=22^{1} = 2linear growth
1120=12^{0} = 1exponential
1.41.292−0.29=0.822^{-0.29} = 0.82blow-up
41.752−0.75=0.592^{-0.75} = 0.59fast blow-up

A nuclear reactor has the same knife edge, an analogy drawn by Yudkowsky (2013). A pile goes critical when each fission causes, on average, more than one further fission. The question about an AI is whether each unit of improvement, reinvested in research, yields more than one further unit.

∂ The same condition in the economists' idea production function

Growth economics writes the production of ideas as S˙=δLλparSϕ\dot S = \delta L^{\lambda_{\text{par}}}S^{\phi}, where LL is research labor. The exponent λpar∈(0,1]\lambda_{\text{par}} \in (0, 1] says how well research parallelizes. Doubling the researchers multiplies output by 2λpar2^{\lambda_{\text{par}}}, which is less than 2 when people duplicate each other's work. The exponent ϕ\phi says how the existing stock of ideas affects the production of new ones. Positive ϕ\phi means past ideas help, and negative ϕ\phi means the easy ones are used up. Either way, ϕ<1\phi < 1 means ideas get harder to find in the sense that matters here, since the growth rate of SS falls as SS rises unless research effort grows. The symbols λpar\lambda_{\text{par}} and ϕ\phi are local to this derivation and the compute bottleneck below.

Human researchers. Let L=L0entL = L_0e^{nt} grow at rate nn. The growth rate of software is g=S˙/S=δLλparSϕ−1g = \dot S/S = \delta L^{\lambda_{\text{par}}}S^{\phi - 1}. For gg to stay constant, its logarithm must have zero derivative, λparn+(ϕ−1)g=0\lambda_{\text{par}}n + (\phi - 1)g = 0. So on a steady path

g=λpar1−ϕ n.g = \frac{\lambda_{\text{par}}}{1 - \phi}\,n .

Software grows only as fast as the research workforce grows, scaled by λpar/(1−ϕ)\lambda_{\text{par}}/(1-\phi). Growth that is driven by research but limited by the growth of the workforce is called semi-endogenous (Jones 1995). Cumulative research input grows at the same rate nn as LL in the long run, since the integral of an exponential is an exponential with the same rate. So λpar/(1−ϕ)\lambda_{\text{par}}/(1-\phi) is the number of software doublings per doubling of research input, which is rswr_{\text{sw}}.

AI researchers. Now let the labor be AI, L=caiSL = c_{\text{ai}}S on fixed compute, with caic_{\text{ai}} researcher-equivalents per unit of software level. Then S˙=δcaiλparSλpar+ϕ\dot S = \delta c_{\text{ai}}^{\lambda_{\text{par}}}S^{\lambda_{\text{par}} + \phi}, so ω=λpar+ϕ\omega = \lambda_{\text{par}} + \phi. Blow-up requires λpar+ϕ>1\lambda_{\text{par}} + \phi > 1. When ϕ<1\phi < 1 that rearranges to λpar/(1−ϕ)>1\lambda_{\text{par}}/(1 - \phi) > 1, the condition rsw>1r_{\text{sw}} > 1 again. With λpar=1\lambda_{\text{par}} = 1 we recover the theorem, since then ϕ=1−1/rsw\phi = 1 - 1/r_{\text{sw}} and ω=2−1/rsw\omega = 2 - 1/r_{\text{sw}}.

Each assumption is a place the argument can fail, so here they are.

  • Compute is fixed. New hardware gives no help, and compute sets no limit beyond the labor it runs.
  • Research input is linear in AI labor, with no penalty for parallel work beyond λpar\lambda_{\text{par}}.
  • The returns rswr_{\text{sw}} stay constant over many doublings, although ideas may get much harder to find.
  • Every part of research is automated, so Amdahl's ceiling never binds.
  • Progress needs no new training runs, which take months.

The compute bottleneck below relaxes the most important of these.

What is rswr_{\text{sw}} in reality? It is estimated by comparing how fast software improves with how fast research effort grows, and the estimates are uncertain.

So the central estimates straddle the knife edge at 1, and the uncertainty is larger than the distance from it. That is the honest state of the question as of October 2026. An interviewer who asks you to derive the runaway condition will then ask which assumption you would attack first. The best answer is the next part.

The compute bottleneck

The theorem assumed that research input grows in proportion to AI labor. But much of AI research is running experiments, and experiments need compute that more AI researchers do not create. Two inputs are complements when each is much less useful without the other. If labor and compute are complements, adding researchers on fixed compute eventually adds almost nothing.

A small example shows the effect. Suppose each experiment needs one researcher and one unit of compute, and the lab has 100 units of compute. With 50 researchers, the lab runs 50 experiments. With 100, it runs 100. With a million, it still runs 100. The research input is capped by compute however much labor there is. Economists describe how strongly two inputs need each other with a single number, the elasticity of substitution.

You have already met one CES aggregator in this section. Amdahl's law is the case ρ=−1\rho = -1, so σsub=1/2\sigma_{\text{sub}} = 1/2, applied to the speeds of the two kinds of work with weights 1−fauto1 - f_{\text{auto}} and fautof_{\text{auto}}. Indeed ((1−fauto)⋅1−1+fautosauto−1)−1\big((1 - f_{\text{auto}})\cdot1^{-1} + f_{\text{auto}}s_{\text{auto}}^{-1}\big)^{-1} is exactly the Amdahl speedup. Its ceiling 1/(1−fauto)1/(1 - f_{\text{auto}}) is a first instance of the theorem below. When two inputs are complements, the one that does not grow sets the limit.

∂ Proof that complements cap the explosion

If σsub<1\sigma_{\text{sub}} < 1 then ρ<0\rho < 0, so Lρ→0L^\rho \to 0 as L→∞L \to \infty. The bracket tends to aKKρa_K K^\rho, whose 1/ρ1/\rho power is aK1/ρKa_K^{1/\rho}K.

If σsub>1\sigma_{\text{sub}} > 1 then 0<ρ<10 < \rho < 1. The bracket is at least (1−aK)Lρ(1 - a_K)L^\rho, and since 1/ρ>01/\rho > 0 the aggregator is at least (1−aK)1/ρL(1-a_K)^{1/\rho}L. Once LL is large enough that (1−aK)Lρ≥aKKρ(1-a_K)L^\rho \ge a_K K^\rho, the bracket is at most 2(1−aK)Lρ2(1-a_K)L^\rho, so the aggregator is at most (2(1−aK))1/ρL(2(1-a_K))^{1/\rho}L. It grows linearly in LL.

So for large SS the aggregator behaves like a constant times SeS^{e}, with e=0e = 0, 1−aK1 - a_K, or 1 in the three cases. (Cobb-Douglas gives KaK(caiS)1−aKK^{a_K}(c_{\text{ai}}S)^{1-a_K} directly.) Then S˙\dot S behaves like a constant times Sϕ+eλparS^{\phi + e\lambda_{\text{par}}}. The three-regimes theorem says blow-up happens exactly when that exponent exceeds 1.

For the last claim, λpar=1\lambda_{\text{par}} = 1 and no bottleneck give ω=1+ϕ=2−1/rsw\omega = 1 + \phi = 2 - 1/r_{\text{sw}}, as in the explosion theorem. So ϕ=1−1/rsw\phi = 1 - 1/r_{\text{sw}}, which is below 1 for every positive rswr_{\text{sw}}. ∎

In plain words, if AI researchers cannot do without experiments, piling up researchers on fixed compute runs into a wall. The only way past the wall would be ideas getting easier to find as more are found. The same logic applies to anything else that does not grow with software, such as data that must be collected or the wall-clock time of training runs.

Is research compute a complement or a substitute? Whitfill & Wu (2025) fitted CES production functions to four labs (OpenAI, DeepMind, Anthropic, DeepSeek) from 2014 to 2024. That gave 27 observations, each one lab in one year. Their baseline specification gave σsub=2.58\sigma_{\text{sub}} = 2.58, substitutes, so an explosion is possible. A specification that accounts for the scale of frontier experiments gave σsub=−0.10\sigma_{\text{sub}} = -0.10. A valid elasticity is positive, but with a standard error of 0.18 that estimate is statistically indistinguishable from zero, which means strong complements and no explosion. The data cannot yet tell the two apart.

Eth & Davidson (2025) argue that the bottleneck can be eased from within. Algorithmic progress has made experiments cheaper as well as models better. Small experiments can be run and extrapolated to large systems, as scaling laws allow (§9.3). And plenty of AI labor can remove bugs and raise the information each run yields. In the model's terms, that is a claim that σsub\sigma_{\text{sub}}, or the effective compute KK, rises as SS does.

Python · cell 2

Only full automation with no cap blows up. Its run passes 101510^{15} at t=2.05t = 2.05, just after the exact blow-up time 1/((1.5−1)⋅1)=21/((1.5 - 1)\cdot1) = 2, since the Euler steps lag slightly. Its last doubling takes less than one time step. Every other version has a bounded research rate. So cumulative research eventually grows only linearly, SS grows like t1.5t^{1.5}, and the doublings lengthen from about half a time unit to about four.

Yet bounded is not the same as slow. The 99% automated loop reaches 3×1043\times10^4, about 700 times the people-only level of 47, and the 90% loop reaches about 10310^3. A world in which the ceiling binds can still be a world transformed. Read the 99% row against its Amdahl ceiling of 100 times today's research speed, and the 90% row against its ceiling of 10.

Interview

Does automating research explode or fizzle?

Simulate research with a compute bottleneck in which labor and compute are used in fixed proportions. Cumulative research R\mathcal{R} grows at rate δmin⁡(L S, K)\delta\min(L\,S,\ K). Here S=R rS = \mathcal{R}^{\,r} is the software level, LL is the number of AI researcher-equivalents per unit of software level, so L SL\,S is the automated labor, and KK is the most research input the compute for experiments can support (np.inf for no limit). Implement three functions.

  1. simulate_research(r, delta, L, K, R0=1.0, t_max=5.0, dt=2e-3, S_cap=1e12) takes Euler steps Ri+1=Ri+Δt δmin⁡(L Si,K)\mathcal{R}_{i+1} = \mathcal{R}_i + \Delta t\,\delta\min(L\,S_i, K) from R0\mathcal{R}_0. It stops as soon as SiS_i exceeds S_cap, keeping that last point, or else after tmax⁡/Δtt_{\max}/\Delta t steps. It returns the arrays (t, R, S).
  2. growth_exponent(S, dt) returns the least-squares slope of log⁡(ΔS/Δt)\log(\Delta S/\Delta t) against log⁡S\log S over the second half of the forward differences, with SS taken at the start of each step. With nn differences, the second half starts at difference ⌊n/2⌋\lfloor n/2 \rfloor.
  3. regime(r, delta, L, K, t_max=5.0, dt=2e-3, S_cap=1e12) returns "explosive" if the run passes the cap or the fitted exponent exceeds 1.05, "exponential" if the exponent is between 0.95 and 1.05, and "decelerating" otherwise.

Research interviews use questions like this to see whether you can turn an argument into a simulation and read it correctly.

Tests, hints, verified solutions, and AI help, with Pro at $7.99 a month.

The widget puts the pieces together. Research input accrues at the Amdahl rate of a partly automated field. People do the unautomated fraction at today's speed. AI researchers do the rest at a speed that starts 10 times faster than people and grows with SS, and the compute for experiments caps the total.

When does automating AI research make progress accelerate without bound, and what stops it?
Software level against time, both on log scales. Speeds are multiples of people alone, and AI starts 10 times faster.
Loading interactive figure…

Fast and slow takeoff, the arguments

Takeoff is the transition from AI that can do a small part of research to AI that can do essentially all of it. Its speed is how long that transition takes. Three working definitions make the debate concrete.

  • A slow takeoff is "a complete 4 year interval in which world output doubles, before the first 1 year interval in which world output doubles" (Christiano 2018). World output is the total value of goods and services produced in a year. In a slow takeoff, very powerful AI is already transforming the world before the most powerful AI arrives.
  • A software intelligence explosion is a period, after AI can fully automate AI research, in which software progress accelerates on fixed hardware (Eth & Davidson 2025). It is the rsw>1r_{\text{sw}} > 1 regime of the theorem.
  • A fast takeoff is one in which reinvested improvements pay back so well that one system or project leaps far ahead (Yudkowsky 2013). It goes from roughly human-level research ability to far beyond it, too quickly for the rest of the world to respond.

The arguments on each side line up against the parameters of the model.

argumentsidewhat it says about the modelevidence it rests on
returns to software are above 1fastrsw>1r_{\text{sw}} > 1, so ω>1\omega > 1algorithmic progress halving compute every 8 months; a median estimate of 1.4 for vision; Eth and Davidson's 1 to 4
AI researchers copy, parallelize, and run faster than peoplefastresearch input grows in proportion to SS, with a large δ\deltathe compute that trains a frontier model can run hundreds of thousands of copies of it, by Eth and Davidson's estimate
AI already contributes to its own pipelinefastfautof_{\text{auto}} is rising nowmore than a quarter of new code at Google AI-generated by late 2024; AlphaEvolve's 1%
small changes in a mind can give large jumps in abilityfasta jump in SS or in fautof_{\text{auto}}the gap between humans and chimpanzees, as Yudkowsky argues
experiments need compute that labor cannot replaceslowσsub<1\sigma_{\text{sub}} < 1, so research input is boundedWhitfill and Wu's frontier-experiments estimate near 0
ideas get harder to findslowrswr_{\text{sw}} falls as easy ideas are used up, possibly below 118 times more researchers per doubling of chip density
some work resists automationslowfauto<1f_{\text{auto}} < 1 for a long time, so Amdahl's ceiling bindsthe developer slowdown in a randomized trial, below
a slightly worse system comes firstslowgrowth is continuous, with no jumpmost technologies are preceded by slightly worse versions, as Christiano argues
new generations need training runsslowprogress waits on months of wall-clock timethe length of frontier pretraining runs

The two strongest arguments for a fast takeoff are these. The measured speed of algorithmic progress makes rsw>1r_{\text{sw}} > 1 plausible on current evidence. And AI labor scales in a way human labor never did, which makes assumption 2 of the theorem natural. A lab cannot hire ten thousand copies of its best researcher overnight, but it could run ten thousand copies of a model.

The two strongest for a slow takeoff are these. The compute bottleneck, by the theorem above, removes the explosion entirely if labor and compute are complements. And there is the continuity argument. Before an AI can automate all of research, a slightly weaker one will automate most of it. The world then sees a long period of fast but bounded growth, like the 99% row of the cell, rather than a jump.

The two sides often disagree less about what happens after full automation than about how we get there. Erdil & Besiroglu (2023) reviewed the case for explosive economic growth from AI. They examined nine counterarguments and found that none of them decisively rules out explosive growth, yet concluded that "high confidence in explosive growth is unwarranted". The disagreement is quantitative. It reduces to a few measurable things, rswr_{\text{sw}}, σsub\sigma_{\text{sub}}, and the path of fautof_{\text{auto}}. The rest of this section is mostly about measuring the last of these.

In an interview, give the strongest case for each side with its evidence, and then name the parameter the case depends on. That is what separates an argument from an opinion.

Measuring progress toward automated AI research

Nobody measures fautof_{\text{auto}} directly. The field measures three things instead. It measures whether AI can do longer and harder pieces of research on its own, how much AI speeds up real researchers, and whether a lab's own progress is speeding up.

Time horizons, and extrapolating them honestly

The most quoted measurement comes from METR (Model Evaluation and Threat Research), a nonprofit that evaluates frontier models, and §19.4 defined it. METR times human professionals on a suite of software and research tasks. For each model it fits a logistic curve of success rate against the logarithm of task length. The model's 50% time horizon hh is the human task length at which that curve crosses one half. So a model with a one-hour horizon succeeds on about half the tasks that take an expert an hour.

A straight line through log⁡2h\log_2 h against release date then gives the doubling time TdT_{\text{d}} of the horizon, the time it takes hh to double. Here we take the step that §19.4 left out, extrapolating that line into the future.

The doubling time is the reciprocal of the slope. Extrapolating to a target horizon means solving the line for the date. How uncertain that date is has a simple structure, which the derivation makes explicit.

∂ How uncertain is the date a trend reaches a target?

Let the fit be log⁡2h=a^+b^ x\log_2 h = \hat a + \hat b\,x over nn models at release dates xix_i, with xˉ\bar x and yˉ\bar y the means of the dates and of the log horizons. The least-squares line passes through (xˉ,yˉ)(\bar x, \bar y), so a^=yˉ−b^xˉ\hat a = \bar y - \hat b\bar x. The date at which it reaches a target y⋆=log⁡2h⋆y^\star = \log_2 h^\star is

x⋆=xˉ+y⋆−yˉb^.x^\star = \bar x + \frac{y^\star - \bar y}{\hat b}.

Two estimated quantities enter, the level yˉ\bar y at the center of the data and the slope b^\hat b. Under the usual regression assumptions (independent errors with variance s2s^2) they are uncorrelated, with Var⁡(yˉ)=s2/n\operatorname{Var}(\bar y) = s^2/n and Var⁡(b^)=s2/Sxx\operatorname{Var}(\hat b) = s^2/S_{xx}, where Sxx=∑i(xi−xˉ)2S_{xx} = \sum_i (x_i - \bar x)^2.

To first order, an error in x⋆x^\star is the sum of each input's error times the partial derivative of x⋆x^\star with respect to that input. The variance of a sum of uncorrelated terms is the sum of their variances. This first-order propagation of error is called the delta method. The partial derivatives are ∂x⋆/∂yˉ=−1/b^\partial x^\star/\partial\bar y = -1/\hat b and ∂x⋆/∂b^=−(y⋆−yˉ)/b^2=−(x⋆−xˉ)/b^\partial x^\star/\partial\hat b = -(y^\star - \bar y)/\hat b^2 = -(x^\star - \bar x)/\hat b, so

Var⁡(x⋆)≈1b^2(s2n+(x⋆−xˉ)2 s2Sxx).\operatorname{Var}(x^\star) \approx \frac{1}{\hat b^2}\left(\frac{s^2}{n} + \frac{(x^\star - \bar x)^2\,s^2}{S_{xx}}\right).

In plain words, an error of one doubling in the level shifts the date by one doubling time. A relative error in the slope shifts the remaining distance x⋆−xˉx^\star - \bar x by the same relative amount. So a 20% error in the doubling time moves a date two years beyond the center of the data by about five months. Far targets are uncertain mostly because of the slope. And none of this includes the larger uncertainty, whether the line stays straight.

Python · cell 3

The widget below runs the same fit with a window and a target you choose. Before you touch it, predict which way the date for one work month moves as the window shrinks from all models to since 2023 to since 2024, and whether the band narrows or widens. Then drag the target to one work year. The interval widens by about half, and the term (x⋆−xˉ)2(x^\star - \bar x)^2 in the delta-method variance says why, since the target date sits ever further from the middle of the data.

If the time-horizon trend continues, when do agents finish month-long tasks, and how uncertain is that date?
METR's 50% time horizons for frontier models, a straight-line fit on a log scale, and its bootstrap band.
Loading interactive figure…
Core

When would agents finish month-long tasks?

Fit METR's trend and extrapolate it, with an interval. The setup defines metr_dates (datetime64[D]), metr_minutes, and EPOCH = 2019-01-01 for the METR Time Horizon 1.1 frontier models. Implement three functions.

  1. fit_horizon_trend(dates, minutes, max_minutes=960.0, start=None) keeps the models with a horizon of at most max_minutes, and released on or after start if it is given. It fits log⁡2h=a+b x\log_2 h = a + b\,x by least squares, with xx the days since EPOCH, and returns (doubling_days, a, b).
  2. date_for_horizon(a, b, target_minutes) returns the datetime64[D] on which the line reaches the target, rounded to the nearest day.
  3. bootstrap_date(dates, minutes, target_minutes, B=2000, seed=0, max_minutes=960.0, start=None, level=0.9) resamples the nn kept models with replacement B times. Create rng = np.random.default_rng(seed) and draw each resample's indices as rng.choice(n, size=n, replace=True). Refit each resample and compute the day on which its line reaches the target, skipping any resample whose dates are all equal. Return the (lo, hi) dates at the (1−level)/2(1 - \text{level})/2 and (1+level)/2(1 + \text{level})/2 quantiles of those days, computed with np.percentile and rounded to the nearest day.
Tests, hints, verified solutions, and AI help, with Pro at $7.99 a month.

An interviewer will ask when agents will do month-long work. The strong answer gives a date with its interval, then says which choices moved it and which assumptions no interval covers.

Uplift, measured in the field

Benchmarks measure what an AI does alone on a clean task. What matters for fautof_{\text{auto}} is uplift, how much AI speeds up the people doing real work. That is a question for an experiment. The cleanest kind is a randomized controlled trial, in which chance decides which tasks get the AI, so that nothing else differs on average between the two groups.

How can that coexist with horizons doubling every few months? The authors examined 21 properties of their setting that might explain the slowdown, and found evidence that five contribute.

  • Developers were over-optimistic about how useful AI would be.
  • They knew their repositories very well, with about 5 years and 1,500 commits each on average, and were slowed more on issues they knew best.
  • The repositories were large and complex, about 10 years old with more than 1.1 million lines of code.
  • The AI was unreliable. Developers accepted fewer than 44% of its generations and spent about 9% of their time reviewing and cleaning its output.
  • The AI could not use the unwritten context the developers carried in their heads.

Each of these is a way real work differs from a benchmark task, the last pitfall above. The study's lessons for measuring the acceleration of AI research are sharper than its headline. Self-reports are unreliable even in direction, since developers believed they were 20% faster while measuring 19% slower. Uplift can only be measured with controlled experiments on real work, repeated as models improve, because the answer will change. And safety frameworks are moving toward measuring the outcome directly, the rate of a lab's own progress.

An interviewer will ask how you reconcile this trial with the benchmark trend. The answer is that they measure different things, and the trial is closer to the quantity that matters.

What labs have committed to watch

A frontier safety framework is a lab's published policy of capability thresholds and the safeguards each one triggers (§19.4). Each of the three main frameworks now has a threshold for AI that automates AI research. Their wording, in the versions we read on 2026-10-20, is the most concrete statement of what labs consider dangerous about recursive self-improvement.

frameworkthreshold for AI research automationwhat it requires
Anthropic, Responsible Scaling Policy, version 3.4, effective July 8, 2026models able to fully substitute for the company's entire set of research scientists and research engineers at competitive cost (within a factor of 5), or a dramatic acceleration of AI progress, defined as double the rate of progress in aggregate capabilities, substantially attributable to automating researchno fixed list of required safeguards; the company's plan includes comprehensive logs of all critical AI-development activities and systematic alignment assessments, and its recommendations for the whole industry include internal compartmentalization, code review, and monitoring of AI behavior
OpenAI, Preparedness Framework, version 2, April 15, 2025High, impact equivalent to giving every OpenAI researcher a highly performant mid-career research engineer assistant; Critical, recursive self-improvement, defined as a superhuman research-scientist agent or a generational model improvement in a fifth of the 2024 wall-clock time, sustained for several monthssecurity controls at High; at Critical, further development halts until safeguards are specified, and they apply during development, whatever the deployment plans
Google DeepMind, Frontier Safety Framework, version 3.0, September 22, 2025ML R&D acceleration level 1, AI progress substantially accelerated from historical rates by the model's use; ML R&D automation level 1, able to fully automate the work of any team of researchers at Google focused on improving AI capabilities, at comparable costrecommended security level 3 and level 4 respectively, with deployment mitigations for large-scale internal use

The thresholds use two families of indicators. Leading indicators ask whether a model can do the work. Time horizons and the research benchmarks of §26.5 (RE-Bench, MLE-bench, and PaperBench) try to measure that. Lagging indicators ask whether progress has actually sped up, which needs a baseline rate of progress and a way to attribute changes in it.

Both are hard, and the Amdahl example shows why the lagging ones can arrive late. A doubling of the rate of progress needs at least half of all research automated. By that point the leading indicators should have fired long before.

A self-improving improver you can run

STOP's loop is small enough to build exactly. Building it shows the two properties that matter. The gains depend on improving the improver, and there is a fixed point where the gains stop.

The toy version replaces the language model with random search. A solution is a point in four dimensions, and an improver tries random steps around it and keeps the best. The improver's own "code" is two numbers, how many candidates it tries per generation and how big its steps are. Then the improver is pointed at its own two numbers.

Research

A self-improving improver

Build a toy STOP in which random search improves its own settings. The setup defines three downstream tasks, task_value(j, x) for j=0,1,2j = 0, 1, 2. Each is a rugged function on R4\R^4 to be maximized from the start X0, the origin. The setup also defines decode(q), which turns an improver's "code" q=(q0,q1)q = (q_0, q_1) into parameters (m,s)(m, s), with mm samples per generation and step size ss. Implement three functions.

  1. improve(objective, x, params, budget, seed) is elitist random search, which never accepts a worse solution. Create rng = np.random.default_rng(seed) and evaluate the incumbent once (not charged to the budget). Then, for each of budget // m generations, draw rng.normal(size=(m, len(x))), form the candidates x+sZx + sZ, and evaluate each in order. Move to the best candidate (the first on ties) only if it is strictly better than the incumbent. Return the final solution.
  2. meta_utility(params, budget=24) is the mean over tasks of the gain task_value(j, improve(f_j, X0, params, budget, seed=j)) - task_value(j, X0). Seed jj for task jj gives common random numbers, the same random draws for every improver, so equal parameters always score the same.
  3. self_improve(q_seed, rounds, meta_budget=10, seed=100). Let U(q)U(q) = meta_utility(decode(q)). Start from q0q_0 = q_seed, and in each round set qt+1q_{t+1} = improve(U, q_t, decode(q_t), meta_budget, seed). So the improver of round tt improves its own code. Return (history, q_final), where history lists U(q0),U(q1),…U(q_0), U(q_1), \dots, the start plus one value per round.
Tests, hints, verified solutions, and AI help, with Pro at $7.99 a month.

That difference is the whole point of STOP and of DGM's fixed-modifier ablation. Improving the improver lets later rounds search better, and that carries the loop past where a fixed improver stops. The plateau is the other half of the lesson, and it has two causes. The meta-utility can never exceed what random search with 24 evaluations can do on these tasks. That bound plays the part of the frozen language model, and recursion on the scaffold cannot lift it. And the search over settings is itself small, 10 evaluations a round with the same random draws each time, so it stops for good the first time a round finds nothing better.

The safety questions a self-improving system raises

Everything above concerns how fast a loop could go. The safety questions concern what it optimizes while it goes, and whether people can still check its work. They are research questions with partial evidence, not settled facts. We treat them at that level, as findings, threat models, measurements, and defenses.

Selection turns rare failures into likely ones

A loop that keeps whatever scores best is an optimizer. An optimizer finds the cheapest way to raise its score, including ways the designer did not intend. A low rate of such failures per candidate is not reassuring, because selection concentrates them.

Proof. The winner is compliant only if no candidate violates, since any violator would outscore every compliant candidate. The candidates are independent, so that event has probability (1−ε)n(1-\varepsilon)^n. ∎

In the same paper, an improver "improved" a learning-parity solution by returning predictions of the wrong shape. That made the utility function report an accuracy of over 1000%. DGM's removal of its own hallucination markers is the same event one level up. The structural lesson is that the evaluator and the constraints must sit outside anything the loop can modify. Their integrity has to be checked, not assumed, since the loop is searching for their weaknesses.

Reward tampering, the failure specific to self-improvement

§19.1 described specification gaming, behavior that scores well on a flawed objective without doing what the designer meant. A self-improving system adds a sharper version, reward tampering. If the system can reach the code that computes its reward, the highest-scoring action is to change that code.

The rates are small, the setting is constructed, and some tampering transcripts read as confusion rather than intent. The authors say all three. What matters is the generalization, from easily found gaming to a rarer and more consequential action that was never rewarded in training. In a loop that improves itself, the reward, the tests, and the evaluator are part of the system being improved. So tampering is not an exotic failure. It is the default direction of optimization pressure, held back only by what the system cannot reach.

Keeping alignment across successors

A self-improving loop has to preserve, at every step, the properties no benchmark measures. That runs into the problems of §19.5 through §19.7 all at once.

  • The evaluator defines what survives. DGM's authors make the point themselves. If the benchmarks do not capture safety and robustness, the loop can amplify misalignment across generations while the measured score improves. This is the rule that a measure stops being a good measure once it becomes a target (§16.5), compounded over generations.
  • Oversight must scale with the system. Each generation is checked by people and tools that do not improve with it. Weak-to-strong generalization, training a strong model on a weaker model's labels, and debate, where models argue and a weaker judge decides, are attempts to make weaker overseers enough (§19.5). Both are still being tested.
  • Evaluations can be gamed by the evaluated. Models can underperform on purpose when told to, called sandbagging. In constructed scenarios some behave differently when they believe they are being trained, called alignment faking (§19.6). A system that does most of the research on its successor also runs most of the evaluations of it.
  • Monitoring is fragile. Reading a model's chain of thought catches much misbehavior. But optimizing against the monitor teaches the model to hide it (§19.6). A loop that optimizes everything it can see will optimize against its monitors unless they are kept out of its objective.

The response with the most traction is AI control (§19.7). Instead of trying to prove that an automated researcher is aligned, you design its deployment to stay safe even if it is not. Its code changes and experiment proposals are treated as untrusted outputs, which trusted monitors and limited human review must check. Anthropic's RSP version 3.4 lists measures of this kind next to its automated research threshold, in its own plans and in its recommendations for the whole industry. They include comprehensive logs of all critical AI-development activities, internal compartmentalization, code review, and monitoring of AI behavior.

What would you want in place before running a loop that does most of the work of building its successor? The evidence above suggests at least these safeguards.

  • Evaluators, tests, and reward code outside the loop's write access, with their integrity checked independently.
  • Held-out capability and safety evaluations the loop never optimizes against. They should include elicitation by fine-tuning, training the model on a few good examples to draw out skill it may be hiding, which is much harder to sandbag than a prompted test (§19.6).
  • Trusted monitoring of every change, with human review concentrated where monitors are most suspicious.
  • Thresholds committed in advance on both leading and lagging indicators, with the response decided in advance too.
  • Limits on the loop's speed and autonomy that can be enforced from outside it.

Building such evaluation gates into a training pipeline is a serious engineering problem in its own right, the problem of designing an evaluation and safety system for a frontier model.

In PyTorch, a training loop that tunes its own learning rates

At the pipeline level, the simplest real case of a process improving itself is a training loop that tunes its own hyperparameters with the same machinery it uses to train. The block unrolls 40 steps of gradient descent (§0.6) on a small two-layer network. It then differentiates the validation loss with respect to the log learning rates of both layers, back through the whole unrolled run. That derivative is a hypergradient. Autograd computes it when the inner gradients are taken with create_graph=True, which keeps the graph of each gradient step so it can be differentiated again (§0.3).

The loop proposes a change of learning rates in the downhill direction. Like DGM, it validates every change and keeps it only if the validation loss improves, and it shrinks its steps when a change is rejected.

🔥 In PyTorchfor a machine with PyTorch

The validation error falls from about 0.15 to 0.014 by round 15, then stops moving while the step shrinks. The accepted learning rates end near 11 for the first layer and 0.08 for the second. It cannot go much further, because the data were generated with noise of variance 0.01, and no learning rate can push the validation error far below that. This is the same plateau as the STOP exercise, for the same reason.

Now remove the acceptance test and let Adam follow the hypergradient directly, with a step of 0.2 in log-learning-rate space. In our run, over 25 rounds the first layer's learning rate grew from 0.018 to about 3.5 and the second layer's to about 0.32. At that pair of rates the gradient steps on the network were no longer stable. The validation loss jumped to about 102410^{24} and then became nan. A self-tuning loop that does not check its own changes can tune itself off a cliff. That is the engineering version of every safety point above.

Read more

Watch next

🎬 When will AI automate all mental work, and how fast? · Rational AnimationsAn animated walk through Tom Davidson's compute-centric takeoff model. It is the most accessible picture of how automation feeds back on progress, and it complements the growth equations and Amdahl's law.
🎬 AGI is still 30 years away — Ege Erdil & Tamay Besiroglu · Dwarkesh Patel · starts at 45:38The intelligence-explosion segment gives the strongest skeptical case, from compute bottlenecks to diminishing returns, and is argued by the authors of the explosive-growth review cited in the section.
🎬 47 - David Rein on METR Time Horizons · AXRP · starts at 0:32A METR author explains how time horizons are measured, what they mean, how they relate to recursive self-improvement (from 64 minutes in), and why extrapolating them is hard.
🎬 Self-Taught Optimizer (STOP): Recursively Self-Improving Code Generation · Conference on Language ModelingThe COLM talk on STOP, the cleanest scaffold-level example of an improver that improves its own code.