A Small Cosine Sets the Weight Norm under AdamW and Muon

With weight decay, the weight norm sets the equilibrium effective learning rate (ELR), the step size relative to the weights. In constant-rate runs, each update leans slightly against the weights, and this small negative cosine supplies 94–97% of the weight-norm growth. A momentum model predicts this lean and the equilibrium ELR: 24% lower for Muon than for AdamW, against 23% in one equilibrium run pair.

Train a GPT with AdamW and with Muon at the same learning rate and the same weight decay. At the end of training, Muon takes smaller steps relative to its weights. The step relative to the weight is the effective learning rate (ELR),

\[ \mathrm{ELR} = \frac{\eta\,\lVert U\rVert}{\lVert W\rVert}. \]

Here \(W\) is a weight matrix. \(\eta\) is the learning rate that the schedule sets, which we call the nominal learning rate. \(U\) is the update: the direction that the optimizer computes from the gradients, before scaling by \(\eta\). \(\lVert\cdot\rVert\) is the Frobenius norm, the square root of the sum of the squared entries. Both optimizers in this post apply the same rule,

\[ W \leftarrow (1-\eta\lambda)\,W - \eta U . \]

The step is \(-\eta U\). Weight decay, with coefficient \(\lambda\), separately shrinks \(W\) by \(\eta\lambda W\). AdamW and Muon differ only in how they compute \(U\). For a scale-invariant weight, the ELR measures how fast the function of the network changes. A weight is scale-invariant when the network output does not change if \(W\) is multiplied by a positive number. No matrix in these runs is scale-invariant. In a pre-norm transformer, scale symmetries hold for pairs of matrices such as \((W_{q}, W_{k})\), and not for single matrices (Su, 2026).

Weight decay alone shrinks \(\lVert W\rVert\) by a factor \(e\) every \(1/(\eta\lambda)\) steps. We call this span one timescale. The norm budget of a matrix is what each step adds to \(\lVert W\rVert^2\) and what weight decay removes. After several timescales the budget balances, and the norm stops changing. We call this state the equilibrium. At a constant nominal learning rate of 2.4e-3 with weight decay 0.1, the runs cover 6 timescales and reach equilibrium. Over the last 10% of training, the median ELR is 0.0041 for Muon and 0.0053 for AdamW, so Muon is 23% lower. The weight norm adjusts until weight decay removes what the updates add, so the update size cancels out of the equilibrium ELR. This comparison is one run per optimizer. At the base rate, a second gap appears with a different cause. We discuss it after the equilibrium formula.

At equilibrium, the weight norm sets the ELR. The norm settles where weight decay removes what the updates add. The median cosine between \(U\) and \(W\) is small, −0.02 to −0.06. It still supplies 94–97% of the norm growth in the constant-rate runs with weight decay. A random-walk model with momentum predicts that the cosine is a fixed multiple of the ELR, set only by the momentum coefficient \(\beta\). For AdamW at \(\beta_{1} = 0.9\) the multiple is \(-\beta_{1}/(1-\beta_{1}) = -9\). For the Nesterov momentum of Muon at 0.95 it is −16. Across our 16 runs, the four constant-rate runs with weight decay give medians of −8.0 to −9.4 and −14.0 to −15.7. These are within 13% of the model value. The model gives Muon an equilibrium ELR 24% below AdamW. Single matrix types depart from the model by up to a factor of about 2, and one outlier by more than 5.

Part of this is known. A constant \(\eta\) gives a falling ELR. Weight decay brings the ELR to a rotational equilibrium, in which the norm stops changing (van Laarhoven, 2017; Wan et al., 2020; Li et al., 2020). Kosson et al. (2023) derived the AdamW equilibrium and measured it per layer in GPT-2 124M at a constant rate. In LLM pretraining, Zou (2026) measured a falling ELR for Muon at a constant rate. The Hunyuan team (2026) derived a steady-state angle per step near \(\sqrt{2\eta\lambda}\). It also saw that angle curves under different schedules nearly coincide. This post adds three things. It measures Muon and AdamW in one setup. It splits the per-step norm budget into a square term and a cross term. It predicts the cross term from the momentum coefficients, for any momentum form.

Setup. The network has the GPT-2-small shape: 12 layers and width 768. The MLP is SwiGLU, a gated MLP with three matrices. The normalization layers are RMSNorm, which rescales activations to a fixed size. The attention query, key and value matrices q, k and v are stored as one fused QKV matrix. There is no QK-norm, which would normalize q and k before attention. The blocks hold 113M parameters. The embedding and the output head are separate matrices and add 77M, for 191M in total. The data is FineWeb-edu, a filtered set of educational web text. Training is 25,000 steps of 32,768 tokens, 0.82B tokens in total. That is about 7 tokens per block parameter. In the first 300 steps, the warmup, \(\eta\) rises from near zero to its peak. Gradients are clipped to norm 1.0.

AdamW uses \(\beta = (0.9, 0.95)\). \(\beta_{1} = 0.9\) is the momentum coefficient: each step back, the coefficient of an older gradient is multiplied by \(\beta_{1}\). \(\beta_{2} = 0.95\) averages the squared gradients that AdamW uses to scale each coordinate. Below, \(\beta\) always means the momentum coefficient. Muon (Jordan et al., 2024) uses Nesterov momentum with momentum coefficient 0.95. Nesterov momentum adds the current gradient once more on top of the momentum. Muon then orthogonalizes the result. Five Newton–Schulz iterations, a fixed polynomial map, set the singular values of the update to a fixed range near 1. Muon orthogonalizes q, k and v separately. For an \(m \times n\) matrix, Muon scales the update by \(0.2\sqrt{\max(m,n)}\) (Moonlight scaling, Liu et al., 2025). This scaling brings its update size near that of AdamW. In these runs the Muon update norm is still 0.80–0.88× the AdamW update norm. In the Muon runs, the embeddings, the output head and the RMSNorm scale parameters use AdamW.

The base rate is a peak \(\eta\) of 6e-4. The 4× rate is 2.4e-3. The schedule is constant, or linear decay to zero after warmup. Weight decay is 0.1 or 0. It is decoupled: each step it shrinks \(W\) by \(\eta\lambda W\), outside the normalization of the optimizer. It applies to all parameters, including the RMSNorm scale parameters and the embeddings. There are 16 runs, and four of them have no weight decay. Four runs repeat a base-rate configuration with weight decay, with a second random seed. Their final losses differ by at most 0.004. All other configurations have one seed. One run, AdamW at the 4× rate with linear decay, did not train stably. We leave it out of the claims.

Every 25 steps we log \(\lVert W\rVert\), \(\lVert U\rVert\) and \(\cos(W,U)\) for each of the 84 weight matrices in the 12 blocks. Each block has seven: q, k, v, the attention output projection, and the three SwiGLU matrices. \(\cos(W,U) = \langle W,U\rangle/(\lVert W\rVert\lVert U\rVert)\) treats both matrices as long vectors. \(\langle W,U\rangle\) is the sum of their entrywise products. We do not measure the embeddings, the output head or the RMSNorm scale parameters. Medians are over the 84 matrices. Code and logs are in the repository.

The norm budget

The norm budget lists what each step adds to \(\lVert W\rVert^2\) and what it removes. Apply the rule \(W \leftarrow (1-\eta\lambda)W - \eta U\). The squared norm changes by

\[ \begin{aligned} \lVert W_{t+1}\rVert^2 = {} & (1-\eta\lambda)^2 \lVert W_t\rVert^2 \\ & - 2\eta(1-\eta\lambda)\langle W_t, U_t\rangle \\ & + \eta^2 \lVert U_t\rVert^2 . \end{aligned} \]

Set \(\lVert W_{t+1}\rVert = \lVert W_t\rVert\) and divide by \(\lVert W\rVert^2\). By the definitions of the cosine and the ELR, \(\eta\langle W,U\rangle/\lVert W\rVert^2 = \cos(W,U)\,\mathrm{ELR}\). Assume that \(\mathrm{ELR}^2\) and \(\cos(W,U)\,\mathrm{ELR}\) are of order \(\eta\lambda\), as they are near equilibrium. Drop the terms of order \((\eta\lambda)^2\). Then the norm is stationary when this balance equation holds:

\[ 2\eta\lambda \;=\; \mathrm{ELR}^2 \;-\; 2\cos(W,U)\,\mathrm{ELR} . \]

The left side is the weight-decay shrink per step, as a fraction of \(\lVert W\rVert^2\). Weight decay alone shrinks \(\lVert W\rVert\) by a factor \(e\) every \(1/(\eta\lambda)\) steps. We call \(1/(\eta\lambda)\) steps one timescale. The right side is the norm growth from the update. It has a square term, \(\mathrm{ELR}^2\), and a cross term, \(-2\cos(W,U)\,\mathrm{ELR}\). The cross term is positive when the cosine is negative.

Suppose \(U\) is orthogonal to \(W\). Then the cross term is zero and \(\mathrm{ELR} = \sqrt{2\eta\lambda}\). That is the equilibrium of stochastic gradient descent (SGD) without momentum, where \(U\) is the current gradient. One estimate of the AdamW weight norm makes the same orthogonality assumption and drops the cross term (Su, 2025). These runs test that assumption. The median cosine is negative, and its magnitude is 8–16× the ELR. So the cross term is 16–31× the square term and supplies 94–97% of the norm growth (Figure 1). Without the cross term, the norm growth would be only 3–6% of the weight-decay shrink.

Per-step squared-norm budget for AdamW at a constant learning rate of 6e-4 with weight decay 0.1: weight-decay shrink, cross term and square term over training; and median cosine between weight and update for four constant-rate runs.
Figure 1. First panel: per-step squared-norm budget of the median matrix, as a fraction of \(\lVert W\rVert^2\), for AdamW at a constant \(\eta\) of 6e-4 with \(\lambda = 0.1\). The cross term is close to the total growth. The square term is about twenty times smaller. The total growth stays above the weight-decay shrink, so the norm still grows at the end. Second panel: median \(\cos(W,U)\) in the four constant-rate runs with weight decay. The median is negative throughout. Early values of the 4×-rate runs are below the axis. In the last 10% of training, 3–7% of single (matrix, logged step) pairs are positive for AdamW.

Momentum makes the update lean toward −W

First the intuition. \(W\) is in part the sum of past steps \(-\eta U\). With momentum, the current \(U\) resembles recent updates. So \(U\) has a negative component along \(W\). We call this the lean toward \(-W\).

The random-walk model of the equilibrium analyses cited above makes this quantitative. It treats the gradients as noise. Each stochastic gradient \(g_t\) comes from one random batch. The model assumes that the gradients

  1. have zero mean;
  2. have the same variance at each step;
  3. are not correlated across steps;
  4. are not correlated with \(W\).

The fourth assumption holds when the weight is scale-invariant, because then the gradient is orthogonal to \(W\). No matrix here is scale-invariant, so the fourth assumption can fail. A mean gradient component along \(-W\) would also make the cosine negative. Kosson et al. (2023) saw a small, consistent negative alignment between gradient and weight in GPT-2 124M. We did not measure the cosine between the raw gradient and \(W\).

For AdamW, the update \(U_t\) is an exponential moving average (EMA) of the gradients. Each step back, the coefficient of a gradient is multiplied by \(\beta\): \(U_t = (1-\beta)\sum_{k \ge 0} \beta^k g_{t-k}\). \(U\) is linear in the gradients. Momentum remembers about \(1/(1-\beta)\) steps, and weight decay changes \(W\) very little over that span. So the recent part of \(W_t\) is \(-\eta \sum_{d \ge 1} U_{t-d}\), and older parts are not correlated with \(U_t\). Two updates \(d\) steps apart share gradients. Their expected inner product is \(\beta^d\) times the expected \(\lVert U\rVert^2\). Since \(\sum_{d \ge 1}\beta^d = \beta/(1-\beta)\),

\[ \begin{aligned} \langle W_t, U_t\rangle &\approx -\eta\,\frac{\beta}{1-\beta}\,\lVert U\rVert^2 , \\ \cos(W,U) &\approx -\frac{\beta}{1-\beta}\,\mathrm{ELR} . \end{aligned} \]

The update leans toward \(-W\), so the step \(-\eta U\) points partly along \(+W\), away from the origin. This grows the norm. The derivation does not use weight decay. The cross / square ratio is \(2\beta/(1-\beta)\), and it does not depend on \(\eta\).

For AdamW with \(\beta_{1} = 0.9\), the model predicts \(\cos/\mathrm{ELR} = -9\) and cross / square = 18. The AdamW runs give −9.4 and 19 at the base rate, and −8.0 and 16 at the 4× rate.

Muon in this code uses Nesterov momentum: \(m_t = \beta m_{t-1} + g_t\) and \(U_t \propto g_t + \beta m_t\). The coefficient of the gradient \(k\) steps back is \(a_0 = 1+\beta\), and \(a_k = \beta^{k+1}\) for \(k \ge 1\). With \(U_t \propto \sum_k a_k g_{t-k}\), two updates \(d\) steps apart share gradients with total coefficient \(\sum_k a_k a_{k+d}\). Summing over \(d \ge 1\) gives \(\tfrac12\big[(\sum_k a_k)^2 - \sum_k a_k^2\big]\). Dividing by \(\lVert U\rVert^2\), which is proportional to \(\sum_k a_k^2\), gives the formula below. Only the ratios of the coefficients matter, because Muon rescales \(U\). This step treats orthogonalization as a fixed rescaling. That is an approximation, and Table 1 checks it against the runs.

\[ \frac{\cos(W,U)}{\mathrm{ELR}} \approx -\,\frac{\left(\sum_k a_k\right)^2 - \sum_k a_k^2}{2\sum_k a_k^2} . \]

The EMA coefficients \((1-\beta)\beta^k\) give \(-\beta/(1-\beta)\). Nesterov momentum at \(\beta = 0.95\) gives −16.0, so cross / square ≈ 32. Plain momentum at 0.95 would give −19 and 38. The Muon runs give −15.7 and 31 at the base rate, and −14.0 and 28 at the 4× rate.

Table 1. Norm budget over the last 10% of the constant-rate runs with weight decay 0.1

Runcos(W, U)ELRcos / ELR (model)Cross / square (model)Growth / decay
AdamW, 6e-4−0.0240.0025−9.4 (−9)19 (18)1.09
AdamW, 2.4e-3−0.0430.0053−8.0 (−9)16 (18)1.00
Muon, 6e-4−0.0310.0020−15.7 (−16)31 (32)1.09
Muon, 2.4e-3−0.0570.0041−14.0 (−16)28 (32)1.00

Each entry is a median over the last 10% of training. The cos(W, U) and ELR columns are medians over matrices. The cos / ELR column is the median of per-matrix ratios, so it differs slightly from the ratio of the two median columns. Random-walk model values are in parentheses. Cross / square equals \(-2(1-\eta\lambda)\cos/\mathrm{ELR}\) by definition. Growth / decay is the right side of the balance equation divided by the left side. The base-rate runs cover 1.5 timescales and the 4×-rate runs cover 6.0, where the number of timescales is \(\eta\lambda T\) for a run of \(T\) steps.

The model treats the per-coordinate scaling of AdamW and the orthogonalization of Muon as linear maps. So the agreement is approximate. The median ratio is within 13% of the model value for both optimizers. Per matrix type the agreement is weaker. In the last 10% of these runs, the ratio is about −5 to −15 for AdamW and −8 to −20 for Muon. The gate matrices of the AdamW 4×-rate run are an outlier, near −50. The random-walk model predicts the sign and the median size of the cosine. It does not predict the value for each matrix type.

The two constant-rate runs without weight decay give median ratios of −8.7 (AdamW) and −13.7 (Muon). So weight decay does not cause the median lean. For q and k, weight decay makes the ratio 1.6–2.3× larger. For Muon, part of the median agreement comes from two effects that cancel. Orthogonalization decorrelates successive updates, which lowers the ratio. Positive time correlation in the real gradients raises it again (repository analysis).

Earlier equilibrium analyses note that momentum makes the update non-perpendicular to the weight (Wan et al., 2020; Kosson et al., 2023, Sec. 3). Kosson et al. derive the equilibrium from the total contribution of each gradient over time. Here we derive it from the per-step cosine and measure that cosine. Xiao et al. (2026) report a negative \(\cos(W,U)\) in LLM training.

Put the momentum cosine into the balance equation. The cross term becomes \(2\beta/(1-\beta)\cdot\mathrm{ELR}^2\), so \(2\eta\lambda = \mathrm{ELR}^2\,(1+\beta)/(1-\beta)\), and

\[ \mathrm{ELR} \approx \sqrt{\frac{2\eta\lambda\,(1-\beta)}{1+\beta}} . \]

This is the known AdamW equilibrium (Kosson et al., 2023). Kosson et al. derive it per neuron, for one row of the matrix. Here we apply it to whole matrices. At \(\beta_{1} = 0.9\) it is 4.4× below \(\sqrt{2\eta\lambda}\). At the 4× rate, where the budget balances, it predicts 0.0050 for AdamW, and the run gives 0.0053. For Nesterov momentum the right side is \(1 + 32 = 33\) times \(\mathrm{ELR}^2\), so the ELR is \(\sqrt{2\eta\lambda/33}\). It predicts 0.0038 for Muon, and the run gives 0.0041. The model is 5–7% low for both optimizers.

Because \(\beta\) fixes the cross / square ratio, the equilibrium ELR scales as \(\sqrt{\eta\lambda}\). So 4× the rate predicts 2× the ELR. The runs give 2.1× (AdamW) and 2.0× (Muon), although the base-rate runs have not fully reached equilibrium.

The model also predicts the equilibrium gap. At the same \(\eta\) and \(\lambda\), Muon with Nesterov 0.95 should settle about 24% below AdamW with \(\beta_{1} = 0.9\). The 4×-rate runs give 23%. In those runs, the Muon update norm is 0.85× the AdamW update norm, and the Muon weight norm is 1.05× larger. The weight norm adjusts so that the update size cancels. The two optimizers differ in more than momentum, so this agreement does not isolate momentum. The model further predicts that raising \(\beta_{1}\) from 0.9 to 0.95 lowers the AdamW equilibrium ELR by 30%. We did not test this.

The base rate of 6e-4 shows a second gap with a different cause. These runs cover only 1.5 timescales, so they are not at equilibrium. There Muon is also 20% lower, but the ELR still follows the update size. With Moonlight scaling, the Muon update norm is 0.80× the AdamW update norm, and the weight norms differ by only 3%. The same 20–24% gap appears without weight decay and under linear decay. This gap comes from the update norm, and the equilibrium model does not explain it.

The ELR approximates the angle between \(W\) and \(W - \eta U\) (Kosson et al., 2023). Two definitions are in use: the relative step, which is the ELR here (Su, 2026), and the angular update (Wan et al., 2020; Kosson et al., 2023; discussed by Zou, 2026). Xiao et al. (2026) argue that an angular ELR should keep the \(\langle W,U\rangle\) term. Here the two definitions differ by at most 0.2% at the median. So the inner product has a negligible effect on the angle and a dominant effect on the norm. A model of the norm must keep it. A monitor of the angle can drop it.

The random-walk model is for a constant rate. Under linear decay, the magnitude of cos / ELR is larger: −19 to −36 with weight decay, −13 to −23 without. We fit the median cosine against the median ELR over the last 40% of each stable decay run. The slope is near the constant-rate ratio: −8 to −9 for AdamW, −12 to −14 for Muon. The fit also has an offset of −0.001 to −0.004 that the model does not have. So the ratio grows as the ELR goes to zero. A mean gradient component along \(-W\) could give such an offset, as noted above, but we did not measure it.

The weight norm sets the ELR trend

The known result also appears in these runs. Under a constant nominal learning rate, the ELR falls after warmup (Figure 2). Take step 2000, after the warmup peak, as a reference. At 95% of training, the median ELR is 0.34× its step-2000 value without weight decay, for both optimizers. With weight decay 0.1 it is 0.52×. At the 4× rate with weight decay it is 0.77× (AdamW) and 0.73× (Muon), and the curve levels off. For each matrix, taking logs splits any change in ELR into three terms:

\[ \begin{aligned} \Delta \log \mathrm{ELR} = {} & \Delta \log \eta + \Delta \log \lVert U\rVert \\ & - \Delta \log \lVert W\rVert . \end{aligned} \]

Under a constant schedule the first term is zero. The second term is also small. AdamW divides each coordinate by its own recent gradient scale. Muon sets the singular values of the update to a fixed range near 1, so its update norm stays nearly constant. In both optimizers, each entry of \(U\) thus stays near a fixed size, whatever the gradient size. At 95% of training, the median update norm \(\lVert U\rVert\) of the base-rate constant runs is within 4% of its step-2000 value. Between these two points, the AdamW value rises for short stretches to about 1.1×. The Muon value stays within 1%. The exception is AdamW at the 4× rate, whose update norm falls to 0.91×.

What remains is the weight norm. From step 2000 to 95% of training, the median \(\lVert W\rVert\) grows 3.6× (AdamW) and 3.0× (Muon) without weight decay. With weight decay it grows about 2× at the base rate, and only 1.1× (AdamW) and 1.3× (Muon) at the 4× rate. With a reference at step 1000 or 5000, the ratios change, but the order of the three groups does not.

Under linear decay, the weight norm adds to the schedule. Take the change in log ELR since step 2000. The norm share is the part from the two norm terms, as a fraction of the norm and schedule parts together. At the base rate with weight decay, the norm share is 0.62 at 25% of training and 0.12 at 95% for AdamW. For Muon it is 0.53 and 0.11. So the weight norm sets most of the ELR change early in the run, and the schedule sets most of it late.

Nominal learning rate and median-matrix effective learning rate over 25,000 steps, each divided by its value at step 2000, for constant and linear-decay runs.
Figure 2. Nominal learning rate (gray long dashes) and median ELR over the 84 matrices. Each curve is divided by its value at step 2000; log scale. First panel, constant learning rate: at the base rate the ELR falls for the whole run, with weight decay (solid) and without (colored short dashes). At the 4× rate with weight decay (light colors), it falls least and levels off. Second panel, linear decay to zero at the base rate with weight decay: after step 2000 the ELR falls faster than the nominal learning rate. From mid-training on, the gap between the two curves on the log axis stays about constant. AdamW and Muon nearly overlap.

Inside a fused QKV matrix

Many GPT implementations, for example nanoGPT, store q, k and v as one fused QKV matrix. A norm-based monitor then reports one ELR for all three. Measured separately, k departs from the fused value by more than 25% mainly in layer 0 (Figure 3). With weight decay, the layer-0 ELR of k is 0.28–0.76 of the fused value. It differs between seeds: 0.48 and 0.28 for one configuration. Without weight decay, layer 0 departs in three of four runs (0.42–0.72), and the last two or three layers reach 1.25–1.45. In 6 of 16 runs, k leaves the 0.8–1.25 band in 3 or more layers. Kosson et al. (2023) also saw layers in the first attention block depart from equilibrium in GPT-2 124M.

With weight decay, a monitor on a fused QKV matrix should log k separately at layer 0. Without weight decay, it should also log k separately in the last three layers. Fusing does not change the AdamW update, which is per coordinate. It changes the Muon update only if q, k and v are orthogonalized together.

Ratio of the ELR of k to the ELR of the fused QKV matrix at the end of training, per layer, for all 16 runs, grouped by weight decay.
Figure 3. ELR of k divided by the ELR of the fused QKV matrix at the end of training, per layer, all 16 runs. Shaded band: 0.8–1.25. Departures cluster in layer 0 and, without weight decay, in the last layers. Hollow markers: the one run that did not train stably (AdamW, 4× rate, linear decay).

What the equilibrium predicts

With momentum and weight decay, the random-walk model gives two equilibrium values. For AdamW the ELR is about \(\sqrt{2\eta\lambda(1-\beta_{1})/(1+\beta_{1})}\). For Muon with Nesterov momentum at 0.95 it is about \(\sqrt{2\eta\lambda/33}\). For another momentum form, put its coefficients \(a_k\) into the general formula above. The norm approaches the equilibrium over a few timescales of \(1/(\eta\lambda)\) steps. So the formulas apply only when \(\eta\lambda T\) is several.

At the base rate our runs covered 1.5 timescales, and the norm was still growing at the end. At the 4× rate they covered 6, and the budget balanced. A run with \(\eta = 3\times10^{-4}\), \(\lambda = 0.1\) and 300k steps covers 9. Under a decaying schedule, sum \(\eta\lambda\) over the steps instead. Linear or cosine decay gives about half the constant-rate value. That is about 4.5 for the 300k-step example, and about 0.75 for our base-rate linear runs. Short runs can cover few timescales. muP is a rule that lowers the learning rate of hidden layers as the width grows. If \(\lambda\) stays fixed, these layers can also cover few timescales (Kosson et al., 2025).

Wang and Aitchison (2024) propose to keep this timescale a fixed fraction of training as models and datasets grow. Bergsma et al. (2025) fit the optimal timescale as a power law in tokens per parameter. Yang et al. (2026) use the slower approach to equilibrium at small learning rates to explain a bend in the scaling law of the optimal learning rate. Fixed-norm methods such as nGPT and Hyperball hold \(\lVert W\rVert\) constant, so the weight norm leaves the ELR. Hyperball also fixes \(\lVert U\rVert\), so its ELR changes only with \(\eta\).

This post measures the ELR, not the loss, and reaching equilibrium is not a loss target here. At a constant rate, weight decay 0.1 ended with a higher validation loss than no weight decay (AdamW 3.59 against 3.54, Muon 3.51 against 3.47). Under linear decay, the setting closer to practice, weight decay gave the lower loss (AdamW 3.41 against 3.44, Muon 3.31 against 3.33). D'Angelo et al. (2023) report that weight decay lowers LLM training loss mainly near the end of training, when the ELR is small. In LLM pretraining, runs with matched ELR have nearly the same loss curves (Liu et al., 2026). So the ELR is a useful quantity to track and tune.

For how the effective learning rate enters loss-curve models of the whole schedule, see 给定一条学习率调度,能算出整条 loss 曲线吗? (in Chinese).

The evidence is from one network size, without QK-norm, over 0.82B tokens. Only the four base-rate configurations with weight decay have two seeds. The 4×-rate and no-weight-decay results are single runs. We did not vary \(\beta\) alone, and we did not measure the cosine between the raw gradient and \(W\). With QK-norm, q and k become scale-invariant. A larger network could also change the budget.

Code and raw logs for all 16 runs are at github.com/haosenwang1018/elrstats. A small library there computes \(\lVert W\rVert^2\), \(\lVert U\rVert^2\) and \(\langle W,U\rangle\) for every full matrix. It also does this when FSDP2 or tensor parallelism splits a matrix across GPUs. It can split a fused matrix into q, k and v. Related tools exist. NVIDIA Emerging-Optimizers implements a relative-update rule with per-tensor norms (RelativeUpdateHook, PR #224). OLMo packs per-parameter norms into one all-reduce.

References

  1. S. Bergsma et al., Power Lines: Scaling Laws for Weight Decay and Batch Size in LLM Pre-training, arXiv:2505.13738, 2025.
  2. F. D'Angelo, M. Andriushchenko, A. Varre, N. Flammarion, Why Do We Need Weight Decay in Modern Deep Learning?, arXiv:2310.04415, 2023.
  3. Hunyuan Pretrain Team, From LR to ELR, 2026-08-11.
  4. K. Jordan et al., Muon: An optimizer for hidden layers in neural networks, 2024.
  5. A. Kosson, B. Messmer, M. Jaggi, Rotational Equilibrium: How Weight Decay Balances Learning Across Neural Networks, arXiv:2305.17212, 2023. Sec. 3: with momentum, the per-step update is not orthogonal to the weight. Derives the equilibrium per neuron from total update contributions. The appendices measure GPT-2 124M at a constant rate.
  6. A. Kosson et al., Weight Decay may matter more than muP for Learning Rate Transfer in Practice, arXiv:2510.19093, 2025.
  7. T. van Laarhoven, L2 Regularization versus Batch and Weight Normalization, arXiv:1706.05350, 2017.
  8. Z. Li, K. Lyu, S. Arora, Reconciling Modern Deep Learning with Traditional Optimization Analyses: The Intrinsic Learning Rate, arXiv:2010.02916, 2020. The number of steps to equilibrium scales as \(1/(\eta\lambda)\), stated as a conjecture with experiments.
  9. J. Liu et al., Muon is Scalable for LLM Training, arXiv:2502.16982, 2025.
  10. Z. Liu et al., Effective Learning Rate Governs Loss Dynamics in Language Model Pretraining, arXiv:2608.24814, 2026.
  11. I. Loshchilov et al., nGPT: Normalized Transformer with Representation Learning on the Hypersphere, arXiv:2410.01131, 2024.
  12. Su Jianlin, AdamW 的 Weight RMS 的渐近估计(上), 2025-10-01.
  13. Su Jianlin, 从参数对称性到有效学习率, 2026-10-27.
  14. R. Wan, Z. Zhu, X. Zhang, J. Sun, Spherical Motion Dynamics: Learning Dynamics of Neural Network with Normalization, Weight Decay, and SGD, arXiv:2006.08419, 2020. Defines the angular update; momentum is not always perpendicular to the weight.
  15. X. Wang, L. Aitchison, How to set AdamW's weight decay as you scale model and dataset size, arXiv:2405.13698, 2024.
  16. K. Wen et al., Fantastic Pretraining Optimizers and Where to Find Them II: Hyperball Optimization, arXiv:2606.16899, 2026.
  17. Y. Xiao et al., Hyperball May Not Be a Free Lunch, arXiv:2607.22444, 2026. Reports a negative \(\cos(W,U)\) in LLM training.
  18. Z. Yang, H. Zhang, J. Xu, J. Zhang, On the Nonlinearity of Learning Rate Scaling for LLM Training, arXiv:2606.29158, 2026.
  19. Jiaxuan Zou, Hyperball、effective lr 与峰值加衰减的形状, 2026-08-25.