M+Adam: Low-Precision Training via Additive-Multiplicative Optimization


Abstract

Training with quantized weights can reduce costs but often results in degraded accuracy, especially when optimization is carried out in low precision, without storing high-precision copies. We identify a key failure mode: under low precision, standard optimizers can get stuck and not make progress, especially at large weight magnitudes due to coarse mantissa resolution. To overcome this, multiplicative updates have been previously proposed, in place of additive updates in standard optimizers. While successful under extremely low precision, such as under the logarithmic number system, they suffer from failures near zero and across sign changes. The failure modes of additive and multiplicative updates are therefore complementary. To exploit this, we propose M+Adam, which combines both update types: additive steps handle sign changes and small magnitudes, while multiplicative steps ensure progress at large magnitudes when additive updates are zeroed out under rounding. We prove monotone descent for M+Adam under standard smoothness assumptions. Across LLaMA-style pretraining with 60M–1B models, \(1\)\(8\times\) Chinchilla budgets, and using only BF16, FP8, and FP4 master weights, M+Adam consistently improves low-precision training.

1 Introduction↩︎

Training large language models (LLMs) in full precision (FP32) incurs substantial memory, compute, and energy costs. Modern accelerators are optimized for reduced-precision formats such as FP8 and FP4, via specialized hardware like tensor cores [1]. As a result, most large-scale training pipelines adopt mixed-precision training, executing forward and backward passes in reduced precision [2]. However, they still retain high-precision copies (known as master weights) for optimization, since training directly in low precision results in significant degradation of accuracy and is often unstable [3].

Figure 1: Additive (Adam), multiplicative (Madam), and combined M+Adamupdates under low precision.FP grids under low precision cause additive updates to be lost to rounding at large magnitudes and multiplicative updates to stall near zero, while M+Adamavoids both failure modes.
Table 1: Comparison of update mechanisms and their failure modesacross the studied optimizers.
Adam Madam M+ADAM
Additive updates \(\times\)
Multiplicative updates \(\times\)
Can escape zero \(\times\)
\(\times\)

4pt

Figure 2: M+Adam: additive–multiplicative update

Recently, the precision of master weights has been reduced, e.g. BF16 instead of FP32, using techniques such as stochastic rounding (SR) [4] to keep them unbiased. While this reduces the memory overhead compared to FP32 master weights, they still exhibit degraded convergence or instability relative to full-precision FP32 training. This is because standard optimizers, such as Adam, fail to make progress at large weight magnitudes under low precision (larger quantization bins in Fig.3) , since updates smaller than the local quantization step are rounded to zero.

To overcome this failure mode, alternative optimizers have been proposed based on multiplicative updates, such as Madam [5]. These are effective at taking larger steps at higher magnitudes (larger quantization bins in Fig.3), where standard optimizers with additive updates fail to make progress. Madam has been shown to be effective for training under extremely low precision, without high-precision master weights. For instance, Madam can train under the logarithmic number system (LNS) [6], an extreme case of floating-point system where all the bits are allocated to the exponent, and mantissa is not present. While LNS has optimal hardware utilization in theory, it is not available in standard AI hardware.

Multiplicative methods such as Madam overcome the failure mode of Adam at large magnitudes (larger quantization bins in Fig.1), but they have their own failure modes. They struggle near zero, where relative updates produce small absolute changes and cannot move weights through zero when there is a sign change (Fig. 1).

Figure 3: Overview of M+Adam.(1) Compute the two gradients: the standard weight gradient g=\nabla_w\mathcal{L}(w_t), and gradient with respect to exponent, which evaluates as g^{(e)}=(\ln 2)\,w_t g.(2) Compute the two updates: use gradient g to compute standard additive update u^{(a)} and g^{(e)} for relative multiplicative update u^{(m)}.(3) Combine the two updates: apply the combined update w_{t+1}=w_t+w_t u^{(m)}+u^{(a)} to obtain the next weights.

Our approach: The additive and multiplicative updates thus suffer from complementary modes of failure. Additive updates get rounded to zero at large magnitudes when mantissa resolution is coarse. Multiplicative updates are able to overcome this and make progress at large magnitudes, but they cannot flip signs or escape exact zero initialization.(Fig. 1 and Table 1).

This motivates us to propose M+Adam. It is a new optimizer that combines Adam-style additive updates with Madam-style multiplicative updates for low-precision training, as outlined in Algorithm 2 and Fig. 3. We prove that M+Adamis a monotone descent method under standard smoothness assumptions, making it a valid optimizer.

We demonstrate stable training with BF16, FP8, and NVFP4 master weights across \(60\)M–\(1\)B LLaMA-style models and \(1\)\(8\times\) Chinchilla training budgets. M+Adamtrains stably without needing any stochastic rounding (SR), and improves over AdamW and AdamW+SR, as seen in Table ¿tbl:tab:final-all-1x?.

Together, these results support our central claim: combined additive–multiplicative updates are especially useful when low-precision master weights becomes a dominant source of optimization error.

2 Related Work↩︎

We review prior work on multiplicative optimization and low-precision training most closely related to our approach.

2.1 Multiplicative Updates↩︎

Multiplicative update rules apply relative, scale-invariant parameter changes and have a long history in optimization [7]. In deep learning, Madam [5] adapts this principle as a multiplicative analogue of Adam, showing improved robustness and reduced sensitivity to learning-rate scaling. Recent work revisits multiplicative or hybrid updates in modern settings: [8] study additive–multiplicative hybrids; [6] combine multiplicative updates with a logarithmic number system to enable low-precision training without FP32 master weights; and [9] analyze log-normal multiplicative dynamics under low-precision forward passes. In contrast to log-based Madam approaches, M+Adamremains within the standard floating-point arithmetic.

2.2 Low-precision Training↩︎

Mixed-precision frameworks such as AMP [10] and Transformer Engine [11] accelerate BF16/FP8 arithmetic, but are largely orthogonal to optimizer design and typically rely on FP32 master weights for stable accumulation [2]. Standard additive optimizers such as AdamW can degrade when master weights are stored in reduced precision, since nearest rounding can cancel small model-weight updates [3]. Stochastic rounding preserves small updates in expectation and can mitigate deterministic rounding bias [12]. Kahan-style compensated updates provide another remedy by accumulating lost low-order update residuals in an auxiliary buffer, and have been shown to recover much of the accuracy lost in pure BF16 training [3]. While both stochastic rounding and Kahan compensation can improve accumulation accuracy, they do not change the underlying additive update geometry or address dynamic-range limitations directly.

Several complementary approaches reduce low-precision storage costs without changing the optimizer geometry. LoQT [13] trains most weights in 4-bit precision while maintaining a low-rank 16-bit subspace. A separate line of work compresses optimizer states through 8-bit or 4-bit moment quantization [14], [15]. [16] study stable FP8 LLM pretraining at trillion-token scale with FP32 weights and FP8 forward computation, including quantized optimizer moments, focusing on system-level scaling and mixed-precision pipelines. In contrast, M+Adammodifies the update rule itself through a joint additive–multiplicative formulation, targeting the stability of low-precision weight storage rather than optimizer-state compression.

Recent work [17] explores training with 4-bit weights and activations using micro-scaling formats such as MXFP4, where each block shares a common scale factor. These approaches mainly stabilize low-bit matrix multiplication by managing outliers and representational fidelity during computation. Because low-bit quantization is highly discrete, such systems often keep higher-precision weights and round to the target format before GEMMs. Our work addresses a complementary challenge: stable gradient-based parameter updates when the master weights themselves are stored in BF16, FP8, or NVFP4. Thus, outlier-aware quantization and M+Adamattack different bottlenecks: the former improves low-bit computation, while the latter improves numerical stability across optimization steps.

3 Background↩︎

We briefly review Adam and Madam, the two optimizers that M+Adambuilds upon.

Adam. Adam [18] maintains exponential moving averages of the first and second moments of the gradient and applies adaptive, element-wise additive updates. AdamW [19] decouples weight decay from this adaptive gradient step: \[\text{Adam}(w,g) \;=\; (1-\eta\lambda)w - \eta \frac{\mu}{\sqrt{\nu}+\epsilon}.\]

While effective in full precision, these additive updates can be rounded away in low-precision formats when their magnitudes fall below the local quantization step, which grows with \(|w|\) in floating-point formats such as BF16 or FP8.

Madam. Madam [5] retains Adam’s moment estimates but applies updates multiplicatively: \[\text{Madam}(w,g) \;=\; w \exp\!\Big(-\eta\,\frac{\mu}{\sqrt{\nu} + \epsilon}\Big).\] This yields scale-invariant behavior, with step sizes proportional to \(|w|\), but purely multiplicative updates preserve sign and cannot escape \(w=0\). We illustrate these complementary failure modes of AdamW and Madam in a controlled toy example (Sec. 5.1), which motivates combining local additive updates with multiplicative scale control.

4 M+Adam: Additive–Multiplicative Optimization↩︎

M+Adamis designed for low-precision weight storage, where the optimizer must update weights on a nonuniform floating-point grid. The method combines two complementary update mechanisms: an Adam-style additive branch that acts directly on the weights, and a Madam-style multiplicative branch that applies relative scale changes. This section derives the two branches, explains how they are combined, and presents the corresponding descent result.

4.1 Additive–Multiplicative Updates↩︎

Low-precision floating-point weights have nonuniform resolution: the spacing between representable values grows with the exponent. As a result, purely additive updates can become rounded back to zero at large magnitudes. When \(|w_t|\) is large, an additive update can be smaller than the local quantization bin and disappear after rounding; when \(|w_t|\) is small, however, additive updates remain important because they can update values near zero and change signs. M+Adamis designed around this observation: it combines an Adam-style additive correction with a Madam-style multiplicative scale update.

Let \(g_t=\nabla_w \mathcal{L}(w_t)\) be the gradient of weight \(w_t\). The additive branch is the standard Adam-style update \(u_t^{(a)}\) in the weight space, \[u_t^{(a)} = -\eta_a\,\dfrac{\hat{u}}{\sqrt{\hat{v}}+\epsilon}.\]

A multiplicative update is as follows element-wise: \[w_{t+1}=w_t \exp(a_t)= w_t 2^{a_t/\ln 2},\] where \(a_t\) is an adaptive preconditioned descent direction. Naturally, the update \(a_t\) is based on the gradient \(g_t^{(e)}\) with respect to the exponent. To obtain this, we use the mantissa \(m_t\) and exponent \(e_t\) in floating-point decomposition in the base-2 system: \[w_t = m_t 2^{e_t},\] The corresponding gradient simplifies as \[g_t^{(e)} = \frac{\partial \mathcal{L}}{\partial e} = (\ln 2)\, w_t g_t .\] Thus the gradient \(g_t^{(e)}\) can be expressed without the explicit exponent value, and we use this in our updates.

We then apply adaptive normalization to \(g_t^{(e)}\). In our implementation, the multiplicative branch uses a second-moment accumulator, \[\begin{align} v_t^{(e)} &= \beta_2 v_{t-1}^{(e)} + (1-\beta_2)\bigl(g_t^{(e)}\bigr)^2,\\ \widetilde{u}_t^{(m)} &= -\eta_m \frac{g_t^{(e)}}{\sqrt{\hat{v}_t^{(e)}}+\epsilon}. \end{align}\]

Thus, \(\widetilde{u}_t^{(m)}\) defines the branch’s proposed scale movement: \[\rho_t =\max(|w_t|,\tau_t), \qquad u_t^{(m)} = \operatorname{clip}\!\left(\widetilde{u}_t^{(m)}/ \rho_t\right)\] The threshold \(\tau_t>0\) prevents division by very small weights, and clipping keeps the relative factor well-defined. \[w_t \mapsto w_t + w_t u_t^{(m)}.\]

Finally, M+Adamcombines the multiplicative rescaling with the additive displacement: \[w_{t+1} = w_t+w_t u_t^{(m)}+u_t^{(a)}.\]

This structure directly targets the two failure modes shown in Fig. 1. Additive updates can change signs and update small-magnitude weights, but they may be lost to rounding at large magnitudes. Multiplicative updates preserve relative progress at large magnitudes, but by themselves are sign-preserving and cannot recover exact zeros. By combining both branches, M+Adammaintains scale-aware progress where additive updates are rounded away while retaining the local flexibility needed near zero. Algorithm 2 summarizes the core method. Optionally, clipping is added for more stability, which is not listed in Algorithm 2, as outlined in App. 8.

4.2 Theoretical Analysis↩︎

We analyze the deterministic exact-arithmetic core of Algorithm 2. Let \(\mathcal{L}(w)\) be the weight-space objective, let \(g=\nabla_w\mathcal{L}(w_t)\), and define the base-2 gradient with respect to exponent signal \[g^{(e)}=(\ln 2)w_t g,\] obtained by differentiating \(z\mapsto \mathcal{L}(w_t 2^z)\) at \(z=0\). Algorithm 2 forms a relative multiplicative update \(u^{(m)}\), sets \(s=1+u^{(m)}\), and updates \(w_{t+1}=w_t s+u^{(a)}\). For \(s>0\), writing \(z=\log_2s\) gives the equivalent scale-then-add form \(w_{t+1}=w_t 2^z+u^{(a)}\). We assume the following local smoothness bound in these coordinates: for all \((d,z)\) in a neighborhood of the update, \[\label{eq:scale-add-smooth} \begin{align} \mathcal{L}(w_t 2^z+d) \leq\;& \mathcal{L}(w_t) + \langle g,d\rangle + \langle g^{(e)},z\rangle \\ &+ \frac{L_a}{2}\|d\|^2 + \frac{L_e}{2}\|z\|^2 + L_{ae}\|d\|\,\|z\| . \end{align}\tag{1}\] Here \(L_a\) and \(L_e\) control curvature within the additive and exponent directions, while \(L_{ae}\) controls their interaction.

Theorem 1 (Idealized scale-then-add descent). Assume Eq. 1 holds at \(w_t\). Consider \(w_{t+1}=w_t s+u^{(a)}\), with \(s>0\) element-wise and \(z=\log_2s\). Suppose the branch outputs satisfy, for some \(\eta_a,\eta_m>0\), \[\begin{gather} \langle g,u^{(a)}\rangle\leq -\eta_a\|g\|^2, \qquad \|u^{(a)}\|\leq \eta_a\|g\|,\\ \langle g^{(e)},z\rangle\leq -\eta_m\|g^{(e)}\|^2, \qquad \|z\|\leq \eta_m\|g^{(e)}\|. \end{gather}\] If \[L_a\eta_a+L_{ae}\eta_m<2, \qquad L_e\eta_m+L_{ae}\eta_a<2,\] then \[\label{eq:scale-add-descent} \begin{align} \mathcal{L}(w_{t+1}) \leq\;& \mathcal{L}(w_t) \\ &- \frac{\eta_a}{2} \left(2-L_a\eta_a-L_{ae}\eta_m\right)\|g\|^2 \\ &- \frac{\eta_m}{2} \left(2-L_e\eta_m-L_{ae}\eta_a\right)\|g^{(e)}\|^2 . \end{align}\tag{2}\] In particular, \(\mathcal{L}(w_{t+1})<\mathcal{L}(w_t)\) unless \(g=0\).

The theorem formalizes the local two-branch geometry of Algorithm 2: an additive weight-space displacement and a multiplicative scale change can be composed while preserving descent under the stated alignment and smoothness conditions. The proof is given in Appendix 11.

Figure 4: BF16-stored matrix-fitting diagnostics. Additive and Multiplicative use the optimal learning rate per task and M+Adam uses a shared learning rate across all tasks. (a) Additiveand M+Adamcan change signs to correct sign errors, while Multiplicative is sign-preserving. (b) Multiplicative is zero-absorbing, while Additive and M+Adam recover zero weights through the additive branch. (c) For small weights, Additive and M+Adam reach the BF16-limited floor, while Multiplicative plateaus higher. (d) For large weights, BF16 spacing grows with |w|, so Additive steps can be lost to rounding while Multiplicative updates remain active.

5 Empirical Findings↩︎

We evaluate M+Adamin two stages. First, a controlled BF16-stored matrix-fitting diagnostic isolates the update-level failure modes predicted by our analysis. Second, LLaMA-style pretraining on C4/EN tests whether the same additive–multiplicative geometry improves low-precision training across model scale, token budget, and precision regime. Our main LLM study covers 60M, 130M, and 350M models over \(1\), \(2\), \(4\), and \(8\times\) Chinchilla budgets, and we additionally evaluate 1B models at the \(1\times\) budget across all precision regimes. We consider BF16, FP8, and NVFP4 master-weight storage with BF16 or FP8 compute.

Figure 5: C4/EN perplexity scaling across model sizes and precision regimes.Validation perplexity as a function of Chinchilla ratio for 60M, 130M, and 350M LLaMA-style models. Each paneloverlays tuned AdamW and M+Adamruns across BF16-weight/BF16-compute, BF16-weight/FP8-compute, and FP8-weight/FP8-compute regimes. AdamW with stochastic rounding is included in the BF16/BF16 setting. Lower perplexity is better.

3.5pt

@l l *4>X@ Weights / compute & Optimizer & 60M & 130M & 350M & 1B

FP32 / TF32 & AdamW & 29.047 & 22.615 & 15.955 & 14.011

BF16 / BF16 & AdamW & 29.865 & 23.587 & 19.156 & 15.642
BF16 / BF16 & AdamW + Kahan & 29.275 & 22.859 & 18.758 & 14.854
BF16 / BF16 & AdamW + SR & 29.277 & 22.646 & 18.720 & 14.346
BF16 / BF16 & & 29.035 & 22.032 & 16.607 & 14.139

BF16 / FP8 & AdamW & 30.151 & 23.594 & 19.234 & 16.346
BF16 / FP8 & & 29.201 & 22.136 & 17.905 & 15.690

FP8 / FP8 & AdamW & 31.560 & 24.966 & 21.674 & 17.235
FP8 / FP8 & & 30.484 & 24.284 & 19.395 & 16.712

NVFP4 / FP8 & AdamW & 33.884 & 27.517 & 24.941 & 19.066
NVFP4 / FP8 & & 30.948 & 25.511 & 20.796 & 17.692

Table 2: Scaling-sensitive hyperparameters under low-precision regimes. We list hyperparameters whose approximate-optimal values shift with model scale and/or token budget under the restricted re-tuning protocol. Hyperparameters not listed were found to transfer across the evaluated regimes. We report results for the two precision settings used throughout the paper: BF16 weights with BF16 compute, and BF16 weights with FP8 compute.
Setting Optimizer Scaling-sensitive hyperparameters
BF16 weights + BF16 compute AdamW learning rate, warmup, \(\beta_1\), \(\beta_2\), gradient-norm clipping
multiplicative learning rate, warmup, multiplicative weight decay, \(\epsilon\)
BF16 weights + FP8 compute AdamW learning rate, warmup, \(\beta_1\), \(\beta_2\), gradient-norm clipping
multiplicative learning rate, warmup, \(\beta_1\), multiplicative weight decay, \(\epsilon\)

6pt

Table 3: Optimizer-state footprint for with Apollo-E.Bytes/param counts optimizer states only, not measured peak memory. Apollo-E compresses the additional exponent/multiplicative second-moment state introduced by using a rank-4 approximation.
Optimizer / state State precision 130M 350M
3-4(lr)5-6 Bytes/param PPL Bytes/param PPL
AdamW, BF16 4.000 23.587 4.000 19.156
AdamW, FP32 8.000 22.615 8.000 15.955
, Apollo-E rank 4 BF16 4.754 21.979 4.377 16.550

6pt

5.1 Toy Diagnostic: Isolating Low-Precision Failure Modes↩︎

We begin with a minimal convex diagnostic designed to highlight the complementary strengths of additive and multiplicative optimizers. The task is matrix fitting, \[\mathcal{L}(W)=c \|W-W^\star\|_F^4,\] where each step samples a minibatch of entries uniformly with replacement and \(c\) is a constant. Each optimizer step is computed in FP32, but the updated parameter is immediately rounded through BF16 before the next iteration. Since the objective is otherwise trivial, any failure reflects the interaction between the update geometry and BF16 storage. This directly tests the complementary regimes isolated by the theory. For the evaluation, we perform a gradient step using either Additive or Multiplicative, corresponding to the additive and multiplicative branches of M+Adam, respectively. We disable momentum and adaptive moments and tune the learning rate for simplicity. For M+Adam we have \(\eta_a = \eta_m\), and in the figures, the Additive and Multiplicative baselines have their optimal learning rate for each setting, whereas M+Adam reuses the same learning rate across all settings.

Fig. 4 summarizes four diagnostic regimes. In the sign-flip regime, additive steps are needed to change signs: Additive and M+Adam correct the sign, while Multiplicative remains sign-preserving. In the zero-revival regime, Multiplicative cannot escape from zero because its update is zero-absorbing, whereas Additive and M+Adam recover zero weights through the additive branch. In the small-weight regime, M+Adam retains the additive updates needed to reach the BF16-limited floor. In the large-weight regime, Additive stalls because its updates fall below the local BF16 spacing, while Multiplicative and M+Adam continue to make relative, scale-aware progress. Overall, the toy example isolates the intended complementarity: the additive branch enables sign changes, recovery from zero, and small-magnitude updates, while the multiplicative branch preserves progress when the quantization grid becomes too coarse. Full learning-rate sweeps and exact losses are provided in App. 9.

5.2 Language-Model Pretraining Setup↩︎

We evaluate M+Adamon LLaMA-style autoregressive language-model pretraining on C4/EN. For a model with \(P\) million trainable parameters, the \(1\times\) Chinchilla budget is \(T_{1\times}\approx 20P\times 10^6\) tokens, and the main scaling study evaluates \(n\times\) budgets for \(n\in\{1,2,4,8\}\). This design is important because optimizer rankings can depend on the data-to-model ratio, training horizon, and tuning protocol [20], [21]. The 60M–350M models are evaluated across the full \(1\)\(8\times\) grid. The 1B model is evaluated at \(1\times\) Chinchilla across all precision regimes to test whether the observed gains persist beyond the largest model used in our full scaling sweep.

We study four increasingly aggressive low-precision regimes: , , , , where the notation denotes weight storage / compute precision. BF16/BF16 corresponds to end-to-end BF16 training without FP32 master weights. BF16/FP8 keeps BF16 weights but uses Transformer Engine FP8 GEMMs. FP8/FP8 further stores selected trainable weight matrices persistently in FP8 and uses FP8 compute. NVFP4/FP8 uses true NVFP4 master-weight storage with FP8 GEMMs. For the FP8 master-weight setting, we apply FP8 storage to attention and MLP linear layers, while embeddings, layer norms, and the language-model head remain in BF16. The selected matrices are quantized in blocks with FP16 scales. During training, the optimizer operates under the constraint that these weights are repeatedly quantized to FP8 after updates. In our FP8 experiments, this storage is simulated through explicit quantize/dequantize operations for compatibility with current Transformer Engine kernels.

We compare against AdamW in each regime. In BF16/BF16, we also include two stronger additive baselines: AdamW with stochastic rounding and AdamW with Kahan-style compensated accumulation. Stochastic rounding probabilistically rounds low-precision updates to nearby representable values so that small updates are preserved in expectation [4]. Kahan-style compensated accumulation keeps an auxiliary correction buffer that accumulates low-order update residuals lost to rounding, thereby improving additive update accumulation under BF16 storage [3]. We additionally report an FP32-weight/TF32-compute AdamW reference as a higher-precision point of comparison.

5.2.0.1 Hyperparameter tuning.

We use a coordinate-descent protocol  [20], [21] for each optimizer and precision regime. At \(1\times\) Chinchilla, we sweep learning rate, warmup length, \(\beta_1\), \(\beta_2\), \(\epsilon\), gradient clipping, and decoupled weight decay where applicable. For M+Adam, we additionally sweep the additive and multiplicative learning rates. To control cost at larger budgets and model sizes, we identify the hyperparameters that are scaling-sensitive and re-sweep only those in the remaining regimes, while holding the others fixed. We accept a hyperparameter change only when it improves final validation loss by at least \(\Delta_{\mathrm{loss}}\ge 3\times 10^{-3}\). Full grids, sweep traces, and best configurations are reported in App. 16.

5.3 Scaling Across Budgets and Precision Regimes↩︎

Fig. 5 reports C4/EN validation perplexity for 60M, 130M, and 350M models across \(1\)\(8\times\) Chinchilla budgets. Each panel compares tuned AdamW and M+Adamacross the evaluated low-precision regimes.

Across model sizes, token budgets, and precision regimes, M+Adamconsistently improves over the corresponding AdamW baseline. The gap persists as the Chinchilla ratio increases, showing that the improvement is not merely an early-training effect. The same trend also holds as the precision regime becomes more aggressive. FP8 compute degrades absolute perplexity for both optimizers, and FP8 weights make the problem harder still, but M+Adamretains a clear advantage.

5.4 Main \(1\times\) Chinchilla Results↩︎

Table ¿tbl:tab:final-all-1x? summarizes the main \(1\times\) Chinchilla results across 60M, 130M, 350M, and 1B models. M+Adamimproves over AdamW in every low-precision regime and at every model size. In BF16/BF16, M+Adamreduces perplexity relative to AdamW by \(2.8\%\), \(6.6\%\), \(13.3\%\), and \(9.6\%\) for 60M, 130M, 350M, and 1B models, respectively. It also improves over AdamW+Kahan and AdamW+SR. Kahan compensation and stochastic rounding both help additive updates survive low-precision accumulation, but neither changes the underlying additive update geometry. This suggests that explicitly separating additive and multiplicative update mechanisms may provide benefits beyond improvements to the additive update alone, as in SR or Kahan compensation.

When compute is reduced to FP8 while weights remain BF16, M+Adamcontinues to improve over AdamW, with relative perplexity reductions of \(3.2\%\), \(6.2\%\), \(6.9\%\), and \(4.0\%\). The FP8-weight/FP8-compute regime is more challenging because the optimizer must repeatedly update weights that are quantized to FP8. Even in this setting, M+Adamimproves over AdamW by \(3.4\%\), \(2.7\%\), \(10.5\%\), and \(3.0\%\). The 350M result is especially notable: M+Adamwith FP8 weights and FP8 compute reaches 19.395 perplexity, narrowing the gap to BF16-weight AdamW despite using a coarser weight format.

The NVFP4/FP8 regime amplifies the failure mode of purely additive updates because the representable bins are even coarser. M+Adamgives its largest gains in this setting, reducing perplexity over AdamW by \(8.7\%\), \(7.3\%\), \(16.6\%\), and \(7.2\%\) for 60M, 130M, 350M, and 1B models. These results directly support our central claim: as weight precision becomes more restrictive, additive–multiplicative updates become increasingly valuable.

Finally, the 1B results suggest that the gains extend beyond the 60M–350M sweep: even at \(1\times\) Chinchilla, M+Adamimproves over AdamW across all evaluated precision regimes.

5.5 Hyperparameter Transfer and Scaling Sensitivity↩︎

M+Adamintroduces additional hyperparameters relative to AdamW, especially separate learning rates for the additive and multiplicative branches. A natural concern is whether these require exhaustive re-tuning across model sizes and token budgets. Our coordinate-descent results suggest that they do not: after tuning a base configuration, only a small subset of hyperparameters is sufficiently scaling-sensitive to warrant re-sweeping, while the remaining settings transfer across regimes. For the NVFP4 experiments, we also investigated whether the FP4 block scale should influence the relative contribution of the additive and multiplicative updates, since the block scale changes the effective numerical resolution during training. In practice, we found that using fixed global coefficients for the two update branches is sufficient, and therefore keep this simpler formulation in the final algorithm. Additional analysis of the block-scale effect is provided in  16.

This transferability is consistent with the optimizer design. The multiplicative branch controls relative scale changes, while the additive branch provides local weight-space updates, so a single learning rate does not need to simultaneously handle both scale adaptation and local corrections. Under a matched restricted re-tuning protocol, in which both the baselines and M+Adamre-sweep only the hyperparameters identified as scaling-sensitive (Table 2), M+Adamcontinues to achieve lower validation perplexity across the regimes reported in App. 16. This suggests that the improvements are not simply an artifact of giving M+Adama larger hyperparameter search space, but persist under a comparable tuning budget.

5.6 Optimizer-State Overhead and Apollo-E Compression↩︎

M+Adamremoves FP32 master weights but adds one optimizer state: a second-moment accumulator for the multiplicative branch. Since prior work shows that optimizer states can often be compressed with low-rank approximations [22][24], we test whether this added state can be compressed independently.

Apollo [22] compresses optimizer states using low-rank gradient projections, storing and updating the optimizer statistics in a reduced-dimensional subspace. We apply Apollo only to the exponent/multiplicative second-moment accumulator; we refer to this variant as Apollo-E, where “E” denotes the exponent branch. We use rank \(r=4\) for both 130M and 350M models. The additive AdamW-style branch and the additive–multiplicative update rule are otherwise unchanged. Table 3 shows that Apollo-E keeps the optimizer-state footprint close to BF16-state AdamW while retaining most of M+Adam’s perplexity gains. Detailed Apollo-E variants and rank sweeps are given in App. 15.

6 Limitations and Future Work↩︎

M+Adamfocuses on optimization geometry for low-precision weights rather than optimizer-state compression or systems-level acceleration. The current prototype introduces one additional optimizer state for the multiplicative branch and incurs runtime overhead relative to AdamW, e.g. roughly \(6\%\!-\!9\%\) at 1B scale (App. 14). At lower precision, overhead also comes from simulating FP8/FP4 weight storage through explicit quantize/dequantize steps, since fully native low-bit parameter-update support is still limited in current training stacks. Our Apollo-E results suggest that the additional state can be compressed independently, while fused kernels and native low-precision update paths could further reduce the cost of the multiplicative branch.

Our theoretical analysis studies an idealized additive–multiplicative update and does not fully model practical ingredients such as stochastic gradients, Adam-style moments, clipping, or distributed training. Finally, while we evaluate up to 1B-parameter LLaMA-style models across BF16, FP8, and FP4 regimes, larger-scale studies, longer-horizon FP8/FP8 training, and broader downstream evaluations remain important future work. Another natural direction is to study whether M+Adamcan be combined with stochastic rounding or Kahan-style compensated accumulation.

7 Conclusion↩︎

We present M+Adam, an optimizer that combines additive Adam-style updates with multiplicative Madam-style updates. This is effective under low-precision arithmetic: the additive branch provides local updates, while the multiplicative branch makes scale-aware relative updates in cases when the additive updates are rounded off to zero. Our analysis provides an idealized descent guarantee, and our experiments show that this geometry targets a concrete failure mode of low-precision training. Additive updates can get lost to rounding under coarse quantization, while multiplicative updates struggle with zeros and sign changes; combining them mitigates both failure modes. Across 60M-1B parameter LLaMA-style models, multiple Chinchilla budgets, and BF16/FP8/FP4 regimes, M+Adamconsistently improves over AdamW, with the largest gains in the most aggressive low-precision settings. Overall, M+Adamshows that low-precision training benefits from optimizers aligned with floating-point structure. By directly addressing quantization-induced update failures, it provides a principled step toward end-to-end low-precision training without relying on FP32 master weights.

Impact Statement↩︎

This work aims to advance the field of machine learning by enabling more efficient and stable low-precision training of large neural networks. While improved training efficiency may have downstream environmental and economic implications, we do not foresee any direct negative societal impacts arising specifically from this work.

Acknowledgements↩︎

Sebastian Loeschcke is supported by the Danish Data Science Academy, which is funded by the Novo Nordisk Foundation (NNF21SA0069429) and VILLUM FONDEN (40516). Anima Anandkumar is supported in part by the Bren endowed chair, and the AI2050 Senior Fellow program at Schmidt Sciences. We acknowledge TACC and Caltech HPC for computing resources.

8 Detailed Algorithm↩︎

We provide pseudocode for our method in Algorithm 6. Our presentation treats M+Adamas a weight-space optimizer with two coupled update components: an additive component and a multiplicative component. All operations are performed elementwise.

At each step, we first compute the stochastic gradient \[g = \nabla_w \mathcal{L}(w).\] The additive component follows an Adam-style update in weight space, using first and second moments to form a preconditioned direction and an additive update \(u^{(a)}\). The multiplicative component is designed to capture relative changes in the weights: it starts from the scale-sensitive quantity \[g^{(e)} = (\ln 2)\,w g,\] applies variance normalization, and converts the resulting proposal into a relative multiplicative update \(u^{(m)}\). For optional exponent-step clipping, this relative change can be mapped into a log-base-2 multiplicative increment \[\Delta e = \log_2(1+u^{(m)}).\] The two components are then composed directly in weight space as \[w^{+} = w + w u^{(m)} + u^{(a)}.\]

The additive component keeps Adam-style first and second moments, whereas the multiplicative component uses second-moment normalization only. This design preserves the intended additive–multiplicative behavior while improving numerical stability in finite precision. We also allow optional multiplicative-step clipping, multiplicative weight decay, additive weight decay, and optional final weight clipping. \[\mathrm{clamp}_a(x)=\max(-a,\min(x,a))\] where needed. This differs from standard global gradient-norm clipping: our cap acts on the multiplicative update component itself, rather than on the raw gradient. A small \(\epsilon\) stabilizes divisions in both components, and a small threshold \(\tau>0\) is used when converting multiplicative weight proposals into relative changes near zero.

Figure 6: M+Adam: additive–multiplicative updates

9 BF16-Stored Matrix Fitting to Isolate Low-Precision Failure Modes↩︎

We describe the minimal convex diagnostic used to isolate how update geometry interacts with low-precision weight storage. The goal is explanatory rather than competitive: we remove data and architecture and study only whether an optimizer update survives repeated BF16 storage.

9.0.0.1 Setup.

We minimize \[\min_{W\in\mathbb{R}^{n\times n}} \mathcal{L}(W) = c \|W-W^\star\|_F^4, \label{eq:toy95obj95app}\tag{3}\] We adopt this loss rather than the typical squared error, to prevent gradient descent from converging in a single step. For this reason we also introduce stochastic samples of the entries and calculate the loss as the average of the sampled entries. We pick \(B\) samples uniformly at random with replacement. Each step is computed in FP32, but the parameter is immediately rounded through BF16 before the next iteration: \[\widetilde{W}_{t+1}=\mathrm{Update}(W_t,G_t), \qquad W_{t+1}=\mathrm{RoundBF16}(\widetilde{W}_{t+1}). \label{eq:bf1695roundtrip95app}\tag{4}\] Thus, failures in this experiment come only from the interaction between the update rule and BF16 storage.

9.0.0.2 Update rules.

Additive is a simple additive gradient step: \[u_t^{(a)} = -\eta_a g_t . \label{eq:adam95add95app}\tag{5}\]

For Multiplicative, we first form the coordinate-wise gradient with respect to exponent signal \[g_t^{(e)} = (\ln 2)\,w_t g_t .\] We then apply the multiplicative update \[\widetilde{u}_t^{(m)} = -\eta_m g_t^{(e)},\] \[\rho_t = \max(|w_t|,\tau),\] \[u_t^{(m)} = \operatorname{clip} \left( \frac{\widetilde{u}_t^{(m)}}{\rho_t}, -r_{\max},r_{\max} \right),\] \[w_{t+1} = \operatorname{bf16} \left( w_t+w_t u_t^{(m)} \right).\] We set \(r_{\max}=0.75\) and \(\tau=10^{-8}\).

For M+Adam, we follow the same steps as above but apply both branches: \[w_{t+1} = \operatorname{bf16} \left( w_t+w_t u_t^{(m)}+u_t^{(a)} \right).\]

9.0.0.3 Diagnostic regimes.

We use five regimes, each chosen to expose a specific low-precision failure mode:

  1. Sign flip: success requires changing signs.

  2. Zero revival: success requires escaping exact zero initialization.

  3. Small weights: success requires fine local updates near zero.

  4. Large weights: success requires updates that remain effective under coarse BF16 spacing.

  5. Mixed scales: success requires handling small and large coordinates simultaneously.

  • Sign flip. \[n=4096,\qquad c=1.\] Targets are random signs: \[w_i^\star \in \{-1,+1\},\] and the initialization has the opposite sign: \[w_{0,i}=-w_i^\star.\]

  • Zero revival. \[n=4096,\qquad c=1.\] Targets are random signs: \[w_i^\star \in \{-1,+1\},\] and all weights start exactly at zero: \[w_{0,i}=0.\]

  • Small weights. \[n=4096,\qquad c=10^8.\] Targets are small Gaussian values: \[w_i^\star = 10^{-4} z_i,\qquad z_i\sim\mathcal{N}(0,1),\] and all weights start at zero: \[w_{0,i}=0.\]

  • Large weights. \[n=4096,\qquad c=10^{-7}.\] Targets are positive large-scale values: \[w_i^\star = 900\max(|z_i|,1/900), \qquad z_i\sim\mathcal{N}(0,1),\] so \(w_i^\star\ge 1\). All weights start at \[w_{0,i}=100.\]

  • Mixed scales. \[n=4096.\] The first half uses the small-weights regime: \[i\le 2048:\qquad w_i^\star = 10^{-4}z_i,\quad w_{0,i}=0,\quad c_i=10^8.\] The second half uses the large-weights regime: \[i>2048:\qquad w_i^\star = 900\max(|z_i|,1/900),\quad w_{0,i}=100,\quad c_i=10^{-7}.\]

For fairness, we tune learning rates separately for each optimizer and regime. For the main diagnostic figure, M+Adam sets \(\eta_a=\eta_m\) and uses one fixed shared learning rate across all regimes. The additive component handles sign changes, recovery from zero, and small-magnitude updates, while the multiplicative component controls scale-aware progress at large magnitudes. Fig. 7 shows the best sweep curves.

Figure 7: Learning-rate sweep curves for the BF16-stored matrix-fitting diagnostic.

9.0.0.4 Main observations.

The results support four qualitative conclusions. First, multiplicative-only updates fail when the solution requires sign changes or escaping exact zero initialization; these are structural limitations, not learning-rate artifacts. Second, additive updates are effective for sign changes, zero revival, and local updates, but can be rounded away at large magnitudes because BF16 spacing grows with \(|W_t|\). Third, mixed-scale problems expose a conflict for purely additive updates: a step size that affects large entries can be too coarse for small entries, while a step size that updates small entries may not survive rounding for large entries. Finally, M+Adam avoids the main weakness of either branch alone: the additive component handles local updates, sign changes, and zero revival, while the multiplicative component gives scale-aware progress at large magnitudes.

9.0.0.5 Summary.

This toy problem is intentionally simple, but it provides a plausible mechanism behind the main empirical LLM results. Purely additive updates fail when quantization bins become too wide; purely multiplicative updates fail near zero and across sign changes. M+Adam combines the two geometries, giving relative progress at large magnitudes while retaining the flexibility of additive optimization near zero.

10 Hyperparameter Sensitivity↩︎

We claim reduced hyperparameter sensitivity in BF16. As direct evidence, we report learning-rate sensitivity for optimizers AdamW and M+Adam under the same BF16 training setting and token budget (1\(\times\)Chinchilla), across three model sizes (60M/130M/350M). For AdamW we sweep the global learning rate. For M+Adam we separately sweep the mantissa step size lr\(_m\) and exponent step size lr\(_e\) around the tuned configuration (holding all other hyperparameters fixed as in the sweep tables). We plot the resulting validation losses; for readability under occasional divergence/outliers, the visualization uses a log-scaled view of loss deviations so that stable regions remain visually comparable. These 1D sweeps provide a minimal, direct sensitivity check supporting the claim of improved robustness.

Figure 8: Learning-rate sensitivity in BF16 (AdamW vs.M+Adam). Columns correspond to model sizes (60M, 130M, 350M). The top row shows AdamW validation loss versus learning rate. The bottom row shows M+Adam, where the bottom x-axis sweeps lr_m and the top x-axis sweeps lr_e; bars correspond to the same sweep index for the paired rates. Overall, M+Adam exhibits a stable region across learning-rate choices.

11 Proofs↩︎

11.1 Proof of the Scale-Then-Add Descent Theorem↩︎

Proof of Theorem 1. Since \(z=\log_2 s\), the update can be written as \[w_{t+1}=w_t 2^z+u^{(a)}.\] Applying the local smoothness bound in Eq. 1 with \(d=u^{(a)}\) gives \[\begin{align} \mathcal{L}(w_{t+1}) \leq\;& \mathcal{L}(w_t) + \langle g,u^{(a)}\rangle + \langle g^{(e)},z\rangle \\ &+ \frac{L_a}{2}\|u^{(a)}\|^2 + \frac{L_e}{2}\|z\|^2 + L_{ae}\|u^{(a)}\|\,\|z\| . \end{align}\] Using the descent-alignment and size assumptions yields \[\begin{align} \mathcal{L}(w_{t+1}) \leq\;& \mathcal{L}(w_t) -\eta_a\|g\|^2 -\eta_m\|g^{(e)}\|^2 \\ &+ \frac{L_a}{2}\eta_a^2\|g\|^2 + \frac{L_e}{2}\eta_m^2\|g^{(e)}\|^2 \\ &+ L_{ae}\eta_a\eta_m\|g\|\,\|g^{(e)}\| . \end{align}\] By Young’s inequality, \[\|g\|\,\|g^{(e)}\| \leq \frac{1}{2}\left(\|g\|^2+\|g^{(e)}\|^2\right).\] Therefore, \[\begin{align} \mathcal{L}(w_{t+1}) \leq\;& \mathcal{L}(w_t) -\eta_a\|g\|^2 -\eta_m\|g^{(e)}\|^2 \\ &+ \frac{L_a}{2}\eta_a^2\|g\|^2 + \frac{L_e}{2}\eta_m^2\|g^{(e)}\|^2 \\ &+ \frac{L_{ae}}{2}\eta_a\eta_m \left(\|g\|^2+\|g^{(e)}\|^2\right). \end{align}\] Collecting the coefficients of \(\|g\|^2\) and \(\|g^{(e)}\|^2\) gives \[\begin{align} \mathcal{L}(w_{t+1}) \leq\;& \mathcal{L}(w_t) \\ &- \frac{\eta_a}{2} \left(2-L_a\eta_a-L_{ae}\eta_m\right)\|g\|^2 \\ &- \frac{\eta_m}{2} \left(2-L_e\eta_m-L_{ae}\eta_a\right)\|g^{(e)}\|^2 . \end{align}\] The learning-rate conditions make both bracketed coefficients positive. If \(g\neq0\), then the additive descent term is strictly negative, so \(\mathcal{L}(w_{t+1})<\mathcal{L}(w_t)\). This proves the claim. ◻

Relation to Algorithm 2. Algorithm 2 computes an additive update \(u^{(a)}\) and a relative multiplicative update \(u^{(m)}\). With \[s=1+u^{(m)},\] its core composition is \[\begin{align} w_{t+1} &= w_t+w_t u^{(m)}+u^{(a)} \\ &= w_t s+u^{(a)} . \end{align}\] When \(s>0\) elementwise, this is equivalently \[w_{t+1}=w_t 2^z+u^{(a)}, \qquad z=\log_2 s .\] The theorem analyzes this same scale-then-add map in the local coordinates \((d,z)\), with \(d=u^{(a)}\). The adaptive moments, normalization, thresholding, and clipping in Algorithm 2 determine the concrete branch outputs \(u^{(a)}\) and \(u^{(m)}\); the descent statement only requires these outputs to satisfy the stated alignment and size conditions. Thus the theorem captures the local additive–multiplicative geometry of the algorithm without committing to a particular implementation of the branch preconditioners.

12 Model Architectures↩︎

Table 4: Detailed architecture hyperparameters for each model size we studied.
Model Params Max Seq Len Hidden Dim Inter Dim # Layers # Heads
LLaMA-60M 60M 1024 512 1376 8 8
LLaMA-130M 130M 1024 768 2048 12 12
LLaMA-350M 350M 1024 1024 2736 24 16
LLaMA-1B 1B 1024 2048 5461 24 32

10pt

Figure 9: BF16 End-to-End Training Dataflow with BF16 GEMMs and BF16 Optimizer StatesForward/backward use BF16 activations and BF16 weights; GEMM partial sums accumulate in FP32; gradients and optimizer states are maintained in BF16.
Figure 10: BF16 Training Dataflow with TE FP8 GEMMs and BF16 Optimizer StatesActivations, outputs, and gradients are stored in BF16. Transformer Engine casts GEMM operands to FP8 (delayed scaling) and accumulates partial sums in FP32 before returning BF16 results; optimizer states are maintained in BF16 and applied to update BF16 weights.
Figure 11: BF16 Training with TE FP8 GEMMs and True FP8-Master WeightsActivations, outputs, and backpropagated gradients are stored in BF16. For the GEMM kernels, Transformer Engine casts BF16 operands to FP8 and accumulates partial sums in FP32 before returning BF16 outputs/gradients. For selected Linear/MLP weights, the only weight value is FP8 (q) with FP16 block scales (s); a BF16 compute copy is refreshed by dequantization each step.

13 Memory Comparison↩︎

Table 5: Per-parameter memory accounting in bytes. BF16/FP32/FP8 use 2/4/1 bytes. Persistent counts master weights and optimizer states; With gradient additionally includes a BF16 gradient buffer. SR denotes stochastic rounding when writing updated weights to BF16.
Method Master weights Optimizer states Persistent With gradient
AdamW \(\text{FP32 master }(4)\) \((m,v)\;\text{BF16 }(2\times2)\) \(4+4=8\) \(8+\text{BF16 }g\;(2)=10\)
M+Adam (BF16 master) \(\text{BF16 }(2)\) \((\mu_m,\nu_m,\nu_e)\;\text{BF16 }(3\times2)\) \(2+6=8\) \(8+\text{BF16 }g\;(2)=10\)
M+Adam (FP8 master) \(\text{FP8 }(1)\) \((\mu_m,\nu_m,\nu_e)\;\text{BF16 }(3\times2)\) \(1+6=7\) \(7+\text{BF16 }g\;(2)=9\)
AdamW + SR (BF16) \(\text{BF16 }(2)\) \((m,v)\;\text{BF16 }(2\times2)\) \(2+4=6\) \(6+\text{BF16 }g\;(2)=8\)

Table 5 summarizes the per-parameter memory accounting. In its uncompressed version, M+Adamreplaces FP32 master weights with lower-precision weights, but introduces an additional optimizer state for the multiplicative branch. As a result, the BF16-master version has the same memory footprint as AdamW with FP32 master weights in this accounting, while the FP8-master version is slightly smaller. Thus, M+Adamshould not be interpreted as an optimizer-state memory-reduction method by itself. Its contribution is instead to improve the numerical stability of low-precision weight updates and reduce reliance on FP32 master weights. Our Apollo-E results in App. 15 further suggest that the added multiplicative state can be compressed independently, making optimizer-state compression complementary to the proposed additive–multiplicative update geometry.

14 Compute Resources and Runtime Overhead↩︎

We report representative compute resources and wall-clock runtimes for the main \(1\times\) Chinchilla experiments in Tables 6 and 7. All runs were executed on NVIDIA H200 GPUs using distributed training. The reported wall-clock time measures end-to-end training time for the corresponding final configuration, including forward and backward passes, optimizer updates, evaluation overhead, and logging overhead as used in our training pipeline. Per-update time is computed as wall-clock time divided by the number of optimizer steps.

The overhead numbers compare our current M+Adamimplementation against AdamW within the same training stack and kernel configuration. They should therefore be interpreted as implementation-level overheads rather than intrinsic lower bounds for the additive–multiplicative update rule. In particular, our current implementation simulates some low-precision storage paths, such as FP8/FP4 master weights, through explicit quantize/dequantize operations for compatibility with existing Transformer Engine kernels. These software-simulation steps can introduce additional overhead that would not necessarily remain in a fused or fully native low-precision implementation.

These measurements are intended to quantify the practical overhead of M+Adamand AdamW+SR relative to AdamW in our implementation. They do not include the full research compute used for preliminary experiments, failed runs, debugging, or hyperparameter sweeps. Thus, the total project compute was larger than the compute required to reproduce the final reported configurations.

Table 6: End-to-end runtime and per-update overhead of relative to AdamW at \(1\times\) Chinchilla.We report wall-clock time, seconds per optimizer update, relative overhead, and hardware for the final training configurations.
Model Precision Steps AdamW wall-clock wall-clock AdamW s/upd s/upd Overhead Hardware
350M FP8/FP8 60,000 5h 58m 39s 6h 23m 41s 0.359 0.384 6.98% 4\(\times\)H200
130M FP8/FP8 20,000 1h 10m 30s 1h 15m 28s 0.212 0.226 7.04% 2\(\times\)H200
60M FP8/FP8 10,000 22m 17s 25m 03s 0.134 0.150 12.42% 2\(\times\)H200
350M BF16/FP8 60,000 3h 35m 10s 4h 48m 26s 0.215 0.288 34.05% 4\(\times\)H200
130M BF16/FP8 20,000 1h 29m 55s 1h 41m 10s 0.270 0.304 12.51% 1\(\times\)H200
60M BF16/FP8 10,000 25m 51s 30m 50s 0.155 0.185 19.28% 1\(\times\)H200
350M BF16/BF16 60,000 3h 31m 38s 4h 44m 50s 0.212 0.285 34.59% 4\(\times\)H200
130M BF16/BF16 20,000 1h 30m 11s 1h 44m 20s 0.271 0.313 15.69% 1\(\times\)H200
60M BF16/BF16 10,000 22m 38s 27m 16s 0.136 0.164 20.47% 1\(\times\)H200
1B BF16/FP8 100,000 108h 07m 42s 117h 33m 16s 3.893 4.232 8.72% 4\(\times\)H200
1B BF16/BF16 100,000 103h 29m 15s 109h 55m 08s 3.726 3.957 6.21% 4\(\times\)H200

4pt

Table 6 shows that the overhead of M+Adamdepends on the precision regime and model size. The overhead is smallest in the FP8/FP8 and 1B settings, where the cost of the additional multiplicative branch is relatively small compared to the total training step. In contrast, the BF16/BF16 and BF16/FP8 settings at smaller scales show larger relative overheads, reflecting that the optimizer computation and extra state operations occupy a larger fraction of total runtime when the model is smaller or compute kernels are less dominant.

Table 7: End-to-end runtime and per-update overhead of AdamW+SR relative to AdamW for BF16/BF16 training at \(1\times\) Chinchilla.We report wall-clock time, seconds per optimizer update, relative overhead, and hardware for the stochastic-rounding baseline.
Model Steps AdamW wall-clock AdamW+SR wall-clock AdamW s/upd AdamW+SR s/upd Overhead Hardware
350M 60,000 3h 31m 38s 5h 03m 57s 0.212 0.304 43.62% 4\(\times\)H200
130M 20,000 1h 30m 11s 1h 46m 25s 0.271 0.319 18.00% 1\(\times\)H200
60M 10,000 22m 38s 28m 09s 0.136 0.169 24.37% 1\(\times\)H200

4pt

Table 7 provides the corresponding runtime comparison for AdamW with stochastic rounding in the BF16/BF16 regime. In our implementation, AdamW+SR also introduces nontrivial overhead relative to standard AdamW. This comparison is useful because AdamW+SR is a strong additive baseline for mitigating BF16 round-to-nearest effects, but its runtime cost is not negligible. Together, Tables 6 and 7 show that M+Adamimproves low-precision optimization stability at the cost of additional runtime, while also making clear that stochastic-rounding baselines carry their own systems overhead.

15 Apollo-E Compression for the Multiplicative State↩︎

M+Adamintroduces one additional optimizer state beyond AdamW: the second-moment accumulator used by the multiplicative branch. This state improves the stability of exponent-style updates, but also increases optimizer-state memory. To test whether this overhead is intrinsic to the method, we evaluate Apollo-E, a compressed variant that replaces only this extra multiplicative second-moment state with an Apollo-style approximation. The additive AdamW-style branch is unchanged.

Apollo-E compresses the multiplicative-state normalizer rather than changing the additive–multiplicative update rule. We evaluate two modes: mini, which uses the most aggressive tensor-wise compression, and channel, which uses a channel-wise compressed representation with rank controlling the auxiliary dimension. Larger ranks store slightly more state but can better approximate the dense multiplicative normalizer.

Table 8 reports optimizer-state memory in bytes per trainable parameter. These numbers count tensors stored in the optimizer state only; they do not include model weights, gradients, activations, temporary buffers, CUDA allocator effects, or communication buffers. Thus, the table should be interpreted as optimizer-state accounting rather than measured peak GPU memory.

Table 8: Apollo-E compression of the additional multiplicative state.Apollo-E compresses only the extra multiplicative second-moment state introduced by . Bytes/param counts optimizer-state tensors only and is not measured peak memory.
Model Optimizer / state Bytes/param PPL
130M AdamW, BF16 state 4.000 23.587
130M AdamW, FP32 state 8.000 22.615
130M Apollo-E , mini, rank 1 4.739 22.126
130M Apollo-E , channel, rank 1 4.739 22.085
130M Apollo-E , channel, rank 4 4.754 21.979
130M Apollo-E , channel, rank 8 4.775 21.997
130M Apollo-E , channel, rank 16 4.817 21.995
350M AdamW, BF16 state 4.000 19.156
350M AdamW, FP32 state 8.000 15.955
350M Apollo-E , mini, rank 1 4.362 16.752
350M Apollo-E , channel, rank 1 4.362 16.683
350M Apollo-E , channel, rank 4 4.377 16.550
350M Apollo-E , channel, rank 8 4.397 16.529
350M Apollo-E , channel, rank 16 4.438 16.576

4pt

Apollo-E reduces the optimizer-state overhead of M+Adamto a small increase over BF16-state AdamW while preserving most of the optimization gain. For 130M models, Apollo-E uses roughly \(4.74\)\(4.82\) bytes per parameter, substantially below FP32-state AdamW, while improving perplexity over both BF16-state and FP32-state AdamW. For 350M models, Apollo-E uses only \(4.36\)\(4.44\) bytes per parameter and remains much closer to full M+Adamperformance than to BF16 AdamW. These results show that the additional multiplicative state is not fundamental memory overhead: it can be compressed independently of the additive–multiplicative update geometry.

16 Hyperparameter Ablation↩︎

We report hyperparameter sweep results for the optimizers studied in the main text. Each table is organized as follows: the first row lists the approximately best configuration found in the sweep, and the subsequent rows report one-dimensional ablations that vary a single hyperparameter while holding all others fixed at this reference setting. Reported losses are the final C4/EN validation losses. We consider four precision regimes throughout: (i) BF16 weights + BF16 compute, where model parameters, activations, and optimizer state are stored in BF16; (ii) BF16 weights + FP8 compute, where parameters are maintained in BF16 master weights while Transformer Engine executes GEMMs in FP8; (iii) FP8 weights + FP8 compute, where parameters are stored in FP8 master weights and Transformer Engine executes GEMMs in FP8; and (iv) FP32 weights + TE32 compute, where parameters are stored in FP32 and Transformer Engine executes GEMMs in TE32.

16.0.0.1 FP4 block-scale branch weighting.

For block-scaled FP4/NVFP4 master weights, a dequantized weight in block \(b\) can be written approximately as \(w_i \approx q_i s_b\), where \(q_i\) is the FP4 payload value and \(s_b\) is the block scale. Since \(s_b\) determines the absolute spacing of the FP4 grid in weight space, it provides a simple time-varying signal for format-aware branch weighting. However, this scale has different meanings for the two M+Adam branches. For the additive branch, moving from payload value \(q_i\) to a neighboring value \(q_i^+\) requires an absolute displacement proportional to \(|q_i^+ s_b - q_i s_b| = s_b |q_i^+ - q_i|\), so a block-scale-aware correction can be interpreted as compensating for the absolute resolution of the additive grid. In contrast, the multiplicative branch operates in relative/log-weight space. The relevant adjacent-grid ratio is \(\frac{|q_i^+ s_b|}{|q_i s_b|} = \frac{|q_i^+|}{|q_i|}\), so the block scale cancels. Therefore, in the final implementation we keep the multiplicative branch controlled by a global branch scale rather than directly modulating its learning rate by the local FP4 block scale. Empirically, in a 60M NVFP4 diagnostic sweep, the simple block-scale learning-rate correction did not improve over the corresponding FP4 true-master baseline, so we treat this as an implementation diagnostic rather than an additional component of M+Adam.

16.1 Sweeping Results for AdamW (BF16 weights + BF16 compute)↩︎

Table 9: Hyperparameter ablation for AdamW on 60M on 1\(\times\) Chinchilla Data (BF16 weights + BF16 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta\) \(g_{\text{norm}}\) warmup wd Loss Link
0.90 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.4155
0.87 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.4054
0.90 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.4155
0.95 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.4617
0.98 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.7057
0.87 0.90 \(10^{-10}\) 0.004 1.0 1000 0.5 3.4364
0.87 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.4054
0.87 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.4041
0.87 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.4054
0.87 0.95 \(10^{-20}\) 0.004 1.0 1000 0.5 3.4066
0.87 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.4054
0.87 0.95 \(10^{-10}\) 0.008 1.0 1000 0.5 3.3967
0.87 0.95 \(10^{-10}\) 0.016 1.0 1000 0.5 3.4932
0.87 0.95 \(10^{-10}\) 0.008 0.0 1000 0.5 3.3983
0.87 0.95 \(10^{-10}\) 0.008 1.0 1000 0.5 3.3967
0.87 0.95 \(10^{-10}\) 0.008 2.0 1000 0.5 3.3960
0.87 0.95 \(10^{-10}\) 0.008 1.0 500 0.5 3.4084
0.87 0.95 \(10^{-10}\) 0.008 1.0 1000 0.5 3.3967
0.87 0.95 \(10^{-10}\) 0.008 1.0 2000 0.5 3.4039
0.87 0.95 \(10^{-10}\) 0.008 1.0 1000 0.0 3.4160
0.87 0.95 \(10^{-10}\) 0.008 1.0 1000 0.5 3.3967
0.87 0.95 \(10^{-10}\) 0.008 1.0 1000 1.0 3.5651

4pt

Table 10: Hyperparameter ablation for AdamW on 60M on 2\(\times\) Chinchilla Data (BF16 weights + BF16 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta\) \(g_{\text{norm}}\) warmup wd Loss Link
0.90 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.3486
0.87 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.3358
0.90 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.3486
0.95 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.4005
0.98 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.5797
0.87 0.90 \(10^{-10}\) 0.004 1.0 1000 0.5 3.3740
0.87 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.3358
0.87 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.3340
0.87 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.3358
0.87 0.95 \(10^{-20}\) 0.004 1.0 1000 0.5 3.3371
0.87 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.3358
0.87 0.95 \(10^{-10}\) 0.008 1.0 1000 0.5 3.3163
0.87 0.95 \(10^{-10}\) 0.016 1.0 1000 0.5 3.4010
0.87 0.95 \(10^{-10}\) 0.008 0.0 1000 0.5 3.3335
0.87 0.95 \(10^{-10}\) 0.008 1.0 1000 0.5 3.3163
0.87 0.95 \(10^{-10}\) 0.008 2.0 1000 0.5 3.3156
0.87 0.95 \(10^{-10}\) 0.008 1.0 500 0.5 3.3250
0.87 0.95 \(10^{-10}\) 0.008 1.0 1000 0.5 3.3163
0.87 0.95 \(10^{-10}\) 0.008 1.0 2000 0.5 3.3163
0.87 0.95 \(10^{-10}\) 0.008 1.0 1000 0.0 3.3454
0.87 0.95 \(10^{-10}\) 0.008 1.0 1000 0.5 3.3163
0.87 0.95 \(10^{-10}\) 0.008 1.0 1000 1.0 3.4692

4pt

Table 11: Hyperparameter ablation for AdamW on 60M on 4\(\times\) Chinchilla Data (BF16 weights + BF16 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta\) \(g_{\text{norm}}\) warmup wd Loss Link
0.90 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.2994
0.87 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.2842
0.90 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.2994
0.95 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.3591
0.98 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.4959
0.87 0.90 \(10^{-10}\) 0.004 1.0 1000 0.5 3.3335
0.87 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.2842
0.87 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.2781
0.87 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.2781
0.87 0.98 \(10^{-20}\) 0.004 1.0 1000 0.5 3.2781
0.87 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.2781
0.87 0.98 \(10^{-10}\) 0.008 1.0 1000 0.5 3.2862
0.87 0.98 \(10^{-10}\) 0.016 1.0 1000 0.5 3.3536
0.87 0.98 \(10^{-10}\) 0.004 0.0 1000 0.5 3.2773
0.87 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.2781
0.87 0.98 \(10^{-10}\) 0.004 2.0 1000 0.5 3.2792
0.87 0.98 \(10^{-10}\) 0.004 1.0 500 0.5 3.2890
0.87 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.2781
0.87 0.98 \(10^{-10}\) 0.004 1.0 2000 0.5 3.2726
0.87 0.98 \(10^{-10}\) 0.004 1.0 2000 0.0 3.2741
0.87 0.98 \(10^{-10}\) 0.004 1.0 2000 0.5 3.2726
0.87 0.98 \(10^{-10}\) 0.004 1.0 2000 1.0 3.2901

4pt

Table 12: Hyperparameter ablation for AdamW on 60M on 8\(\times\) Chinchilla Data (BF16 weights + BF16 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta\) \(g_{\text{norm}}\) warmup wd Loss Link
0.87 0.98 \(10^{-10}\) 0.004 1.0 2000 0.5 3.2321
0.87 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.2475
0.90 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.2641
0.95 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.3308
0.98 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.4480
0.87 0.90 \(10^{-10}\) 0.004 1.0 1000 0.5 3.3071
0.87 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.2475
0.87 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.2364
0.87 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.2364
0.87 0.98 \(10^{-20}\) 0.004 1.0 1000 0.5 3.2364
0.87 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.2364
0.87 0.98 \(10^{-10}\) 0.008 1.0 1000 0.5 3.2397
0.87 0.98 \(10^{-10}\) 0.016 1.0 1000 0.5 3.2929
0.87 0.98 \(10^{-10}\) 0.004 0.0 1000 0.5 3.2356
0.87 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.2364
0.87 0.98 \(10^{-10}\) 0.004 2.0 1000 0.5 3.2356
0.87 0.98 \(10^{-10}\) 0.004 1.0 500 0.5 3.2449
0.87 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.2364
0.87 0.98 \(10^{-10}\) 0.004 1.0 2000 0.5 3.2321
0.87 0.98 \(10^{-10}\) 0.004 1.0 2000 0.0 3.2353
0.87 0.98 \(10^{-10}\) 0.004 1.0 2000 0.5 3.2321
0.87 0.98 \(10^{-10}\) 0.004 1.0 2000 1.0 3.2545

4pt

Table 13: Hyperparameter ablation for AdamW on 130M on 1\(\times\) Chinchilla Data (BF16 weights + BF16 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta\) \(g_{\text{norm}}\) warmup wd Loss Link
0.95 0.98 \(10^{-10}\) 0.008 1.0 2000 0.5 3.1607
0.87 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 4.3310
0.90 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.8910
0.95 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.2357
0.98 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 4.7147
0.95 0.90 \(10^{-10}\) 0.004 1.0 1000 0.5 3.2923
0.95 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.2357
0.95 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.2171
0.95 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.2171
0.95 0.98 \(10^{-20}\) 0.004 1.0 1000 0.5 3.2184
0.95 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.2171
0.95 0.98 \(10^{-10}\) 0.008 1.0 1000 0.5 3.2019
0.95 0.98 \(10^{-10}\) 0.016 1.0 1000 0.5 3.3035
0.95 0.98 \(10^{-10}\) 0.008 0.0 1000 0.5 3.2736
0.95 0.98 \(10^{-10}\) 0.008 1.0 1000 0.5 3.2019
0.95 0.98 \(10^{-10}\) 0.008 2.0 1000 0.5 3.2663
0.95 0.98 \(10^{-10}\) 0.008 1.0 500 0.5 3.2084
0.95 0.98 \(10^{-10}\) 0.008 1.0 1000 0.5 3.2019
0.95 0.98 \(10^{-10}\) 0.008 1.0 2000 0.5 3.1607
0.95 0.98 \(10^{-10}\) 0.008 1.0 2000 0.0 3.1942
0.95 0.98 \(10^{-10}\) 0.008 1.0 2000 0.5 3.1607
0.95 0.98 \(10^{-10}\) 0.008 1.0 2000 1.0 3.2797

4pt

Table 14: Hyperparameter ablation for AdamW on 350M on 1\(\times\) Chinchilla Data (BF16 weights + BF16 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta\) \(g_{\text{norm}}\) warmup wd Loss Link
0.90 0.98 \(10^{-10}\) 0.008 1.0 1000 0.5 2.9526
0.87 0.98 \(10^{-10}\) 0.008 1.0 1000 0.5 2.9746
0.90 0.98 \(10^{-10}\) 0.008 1.0 1000 0.5 2.9526
0.95 0.98 \(10^{-10}\) 0.008 1.0 1000 0.5 3.0524
0.98 0.98 \(10^{-10}\) 0.008 1.0 1000 0.5 3.0516
0.90 0.90 \(10^{-10}\) 0.008 1.0 1000 0.5 3.0848
0.90 0.95 \(10^{-10}\) 0.008 1.0 1000 0.5 3.0572
0.90 0.98 \(10^{-10}\) 0.008 1.0 1000 0.5 2.9526
0.90 0.98 \(10^{-10}\) 0.008 1.0 1000 0.5 2.9526
0.90 0.98 \(10^{-20}\) 0.008 1.0 1000 0.5 3.0534
0.90 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 6.4219
0.90 0.98 \(10^{-10}\) 0.008 1.0 1000 0.5 2.9526
0.90 0.98 \(10^{-10}\) 0.016 1.0 1000 0.5 3.0662
0.90 0.98 \(10^{-10}\) 0.008 0.0 1000 0.5 3.0574
0.90 0.98 \(10^{-10}\) 0.008 1.0 1000 0.5 2.9526
0.90 0.98 \(10^{-10}\) 0.008 2.0 1000 0.5 3.0353
0.90 0.98 \(10^{-10}\) 0.008 1.0 1000 0.5 2.9526
0.90 0.98 \(10^{-10}\) 0.008 1.0 2000 0.5 3.0118
0.90 0.98 \(10^{-10}\) 0.008 1.0 1000 0.0 7.1275
0.90 0.98 \(10^{-10}\) 0.008 1.0 1000 0.5 2.9526
0.90 0.98 \(10^{-10}\) 0.008 1.0 1000 1.0 3.0813

4pt

16.2 Sweeping Results for M+Adam(BF16 weights + BF16 compute)↩︎

Table 15: Hyperparameter ablation for M+Adam on 60M on 1\(\times\) Chinchilla Data (BF16 weights + BF16 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta_m\) \(\eta_a\) \(g_{\text{norm}}\) warmup \(\lambda_m\) \(\lambda_e\) Loss Link
0.87 0.98 \(10^{-20}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.3685
0.87 0.98 \(10^{-20}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.3685
0.90 0.98 \(10^{-20}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.3761
0.95 0.98 \(10^{-20}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.4061
0.98 0.98 \(10^{-20}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.5602
0.87 0.90 \(10^{-20}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.4013
0.87 0.95 \(10^{-20}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.3800
0.87 0.98 \(10^{-20}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.3685
0.87 0.98 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.3681
0.87 0.98 \(10^{-20}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.3685
0.87 0.98 \(10^{-20}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.3685
0.87 0.98 \(10^{-20}\) 0.008 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.3688
0.87 0.98 \(10^{-20}\) 0.016 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.4139
0.87 0.98 \(10^{-20}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.3685
0.87 0.98 \(10^{-20}\) 0.004 \(1.6\times10^{-4}\) 1.0 1000 0.1 0.01 3.3683
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times10^{-4}\) 1.0 1000 0.1 0.01 3.3686
0.87 0.98 \(10^{-20}\) 0.004 \(8\times10^{-5}\) 1.0 500 0.1 0.01 3.3765
0.87 0.98 \(10^{-20}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.3685
0.87 0.98 \(10^{-20}\) 0.004 \(8\times10^{-5}\) 1.0 2000 0.1 0.01 3.3666
0.87 0.98 \(10^{-20}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.0 0.01 3.4083
0.87 0.98 \(10^{-20}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.3685
0.87 0.98 \(10^{-20}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.2 0.01 3.3755
0.87 0.98 \(10^{-20}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.0 3.3699
0.87 0.98 \(10^{-20}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.3685
0.87 0.98 \(10^{-20}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.02 3.3685

4pt

Table 16: Hyperparameter ablation for M+Adam on 60M on 2\(\times\) Chinchilla Data (BF16 weights + BF16 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta_m\) \(\eta_a\) \(g_{\text{norm}}\) warmup \(\lambda_m\) \(\lambda_e\) Loss Link
0.87 0.98 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.2878
0.87 0.95 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.3009
0.90 0.95 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.3060
0.95 0.95 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.3516
0.98 0.95 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.5857
0.87 0.90 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.3254
0.87 0.95 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.3009
0.87 0.98 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.2878
0.87 0.98 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.2878
0.87 0.98 \(10^{-20}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.2870
0.87 0.98 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.2878
0.87 0.98 \(10^{-10}\) 0.008 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.2929
0.87 0.98 \(10^{-10}\) 0.016 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.3414
0.87 0.98 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.2878
0.87 0.98 \(10^{-10}\) 0.004 \(1.6\times10^{-4}\) 1.0 1000 0.1 0.01 3.2872
0.87 0.98 \(10^{-10}\) 0.004 \(3.2\times10^{-4}\) 1.0 1000 0.1 0.01 3.2881
0.87 0.98 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 500 0.1 0.01 3.2953
0.87 0.98 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.2878
0.87 0.98 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 2000 0.1 0.01 3.2867
0.87 0.98 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.0 0.01 3.3321
0.87 0.98 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.2878
0.87 0.98 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.2 0.01 3.2997
0.87 0.98 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.0 3.2882
0.87 0.98 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.2878
0.87 0.98 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.02 3.2877

4pt

Table 17: Hyperparameter ablation for M+Adam on 60M on 4\(\times\) Chinchilla Data (BF16 weights + BF16 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta_m\) \(\eta_a\) \(g_{\text{norm}}\) warmup \(\lambda_m\) \(\lambda_e\) Loss Link
0.87 0.98 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.2260
0.87 0.95 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.2403
0.90 0.95 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.2482
0.95 0.95 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.2921
0.98 0.95 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.4824
0.87 0.90 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.2697
0.87 0.95 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.2403
0.87 0.98 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.2260
0.87 0.98 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.2260
0.87 0.98 \(10^{-20}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.2255
0.87 0.98 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.2260
0.87 0.98 \(10^{-10}\) 0.008 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.2327
0.87 0.98 \(10^{-10}\) 0.016 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.2797
0.87 0.98 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.2260
0.87 0.98 \(10^{-10}\) 0.004 \(1.6\times10^{-4}\) 1.0 1000 0.1 0.01 3.2263
0.87 0.98 \(10^{-10}\) 0.004 \(3.2\times10^{-4}\) 1.0 1000 0.1 0.01 3.2260
0.87 0.98 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 500 0.1 0.01 3.2310
0.87 0.98 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.2260
0.87 0.98 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 2000 0.1 0.01 3.2260
0.87 0.98 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.0 0.01 3.2770
0.87 0.98 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.2260
0.87 0.98 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.2 0.01 3.2430
0.87 0.98 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.0 3.2263
0.87 0.98 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.2260
0.87 0.98 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.02 3.2251

4pt

Table 18: Hyperparameter ablation for M+Adam on 60M on 8\(\times\) Chinchilla Data (BF16 weights + BF16 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta_m\) \(\eta_a\) \(g_{\text{norm}}\) warmup \(\lambda_m\) \(\lambda_e\) Loss Link
0.87 0.98 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.1813
0.87 0.95 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.1947
0.90 0.95 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.2058
0.95 0.95 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.2489
0.98 0.95 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.3928
0.87 0.90 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.2315
0.87 0.95 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.1947
0.87 0.98 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.1813
0.87 0.98 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.1813
0.87 0.98 \(10^{-20}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.1811
0.87 0.98 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.1813
0.87 0.98 \(10^{-10}\) 0.008 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.1898
0.87 0.98 \(10^{-10}\) 0.016 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.2317
0.87 0.98 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.1813
0.87 0.98 \(10^{-10}\) 0.004 \(1.6\times10^{-4}\) 1.0 1000 0.1 0.01 3.1817
0.87 0.98 \(10^{-10}\) 0.004 \(3.2\times10^{-4}\) 1.0 1000 0.1 0.01 3.1803
0.87 0.98 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 500 0.1 0.01 3.1834
0.87 0.98 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.1813
0.87 0.98 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 2000 0.1 0.01 3.1806
0.87 0.98 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.0 0.01 3.2383
0.87 0.98 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.1813
0.87 0.98 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.2 0.01 3.2027
0.87 0.98 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.0 3.1815
0.87 0.98 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.1813
0.87 0.98 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.02 3.1803

4pt

Table 19: Hyperparameter ablation for M+Adam on 130M on 1\(\times\) Chinchilla Data (BF16 weights + BF16 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta_m\) \(\eta_a\) \(g_{\text{norm}}\) warmup \(\lambda_m\) \(\lambda_e\) Loss Link
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times10^{-4}\) 1.0 2000 0.1 0.0 3.0925
0.87 0.98 \(10^{-20}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.1358
0.90 0.98 \(10^{-20}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.1711
0.95 0.98 \(10^{-20}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.1592
0.98 0.98 \(10^{-20}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 4.0847
0.87 0.90 \(10^{-20}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.1565
0.87 0.95 \(10^{-20}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.1465
0.87 0.98 \(10^{-20}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.1358
0.87 0.98 \(10^{-20}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.1358
0.87 0.98 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.1381
0.87 0.98 \(10^{-20}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.1358
0.87 0.98 \(10^{-20}\) 0.008 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.1924
0.87 0.98 \(10^{-20}\) 0.016 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 7.0499
0.87 0.98 \(10^{-20}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.1358
0.87 0.98 \(10^{-20}\) 0.004 \(1.6\times10^{-4}\) 1.0 1000 0.1 0.01 3.1263
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times10^{-4}\) 1.0 1000 0.1 0.01 3.1156
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times10^{-4}\) 1.0 500 0.1 0.01 3.1470
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times10^{-4}\) 1.0 1000 0.1 0.01 3.1156
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times10^{-4}\) 1.0 2000 0.1 0.01 3.0932
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times10^{-4}\) 1.0 2000 0.0 0.01 3.2527
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times10^{-4}\) 1.0 2000 0.2 0.01 3.1023
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times10^{-4}\) 1.0 2000 0.1 0.0 3.0925
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times10^{-4}\) 1.0 2000 0.1 0.01 3.0932
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times10^{-4}\) 1.0 2000 0.1 0.02 3.0929

4pt

Table 20: Hyperparameter ablation for M+Adam on 350M on 1\(\times\) Chinchilla Data (BF16 weights + BF16 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta_m\) \(\eta_a\) \(g_{\text{norm}}\) warmup \(\lambda_m\) \(\lambda_e\) Loss Link
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times10^{-4}\) 1.0 2000 0.1 0.0 2.8098
0.87 0.98 \(10^{-20}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 2.9334
0.90 0.98 \(10^{-20}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 2.9703
0.95 0.98 \(10^{-20}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 4.2758
0.98 0.98 \(10^{-20}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 4.4370
0.87 0.90 \(10^{-20}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 3.0165
0.87 0.95 \(10^{-20}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 2.9435
0.87 0.98 \(10^{-20}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 2.9334
0.87 0.98 \(10^{-20}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 2.9334
0.87 0.98 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 2.9480
0.87 0.98 \(10^{-20}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 2.9334
0.87 0.98 \(10^{-20}\) 0.008 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 6.2851
0.87 0.98 \(10^{-20}\) 0.016 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 6.5733
0.87 0.98 \(10^{-20}\) 0.004 \(8\times10^{-5}\) 1.0 1000 0.1 0.01 2.9334
0.87 0.98 \(10^{-20}\) 0.004 \(1.6\times10^{-4}\) 1.0 1000 0.1 0.01 2.9693
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times10^{-4}\) 1.0 1000 0.1 0.01 2.9100
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times10^{-4}\) 1.0 1000 0.1 0.01 2.9100
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times10^{-4}\) 1.0 2000 0.1 0.01 2.8184
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times10^{-4}\) 1.0 2000 0.0 0.01 7.0109
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times10^{-4}\) 1.0 2000 0.1 0.01 2.8184
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times10^{-4}\) 1.0 2000 0.2 0.01 2.8297
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times10^{-4}\) 1.0 2000 0.1 0.0 2.8098
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times10^{-4}\) 1.0 2000 0.1 0.01 2.8184
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times10^{-4}\) 1.0 2000 0.1 0.02 2.8152

4pt

16.3 Sweeping Results for AdamW (BF16 weights + FP8 compute)↩︎

Table 21: Hyperparameter ablation for AdamW on 60M on 1\(\times\) Chinchilla Data (BF16 weights + FP8 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta\) \(g_{\text{norm}}\) warmup wd Loss Link
0.87 0.98 \(10^{-10}\) 0.004 1.0 2000 0.5 3.4062
0.87 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.4184
0.90 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.4278
0.95 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.4695
0.98 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.7007
0.87 0.90 \(10^{-10}\) 0.004 1.0 1000 0.5 3.4432
0.87 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.4184
0.87 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.4142
0.87 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.4142
0.87 0.98 \(10^{-20}\) 0.004 1.0 1000 0.5 3.4114
0.87 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.4142
0.87 0.98 \(10^{-10}\) 0.008 1.0 1000 0.5 3.4294
0.87 0.98 \(10^{-10}\) 0.016 1.0 1000 0.5 3.5628
0.87 0.98 \(10^{-10}\) 0.004 0.0 1000 0.5 3.4124
0.87 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.4142
0.87 0.98 \(10^{-10}\) 0.004 2.0 1000 0.5 3.4134
0.87 0.98 \(10^{-10}\) 0.004 1.0 500 0.5 3.4303
0.87 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.4142
0.87 0.98 \(10^{-10}\) 0.004 1.0 2000 0.5 3.4062
0.87 0.98 \(10^{-10}\) 0.004 1.0 2000 0.0 3.4075
0.87 0.98 \(10^{-10}\) 0.004 1.0 2000 0.5 3.4062
0.87 0.98 \(10^{-10}\) 0.004 1.0 2000 1.0 3.4637

4pt

Table 22: Hyperparameter ablation for AdamW on 60M on 2\(\times\) Chinchilla Data (BF16 weights + FP8 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta\) \(g_{\text{norm}}\) warmup wd Loss Link
0.87 0.98 \(10^{-10}\) 0.004 1.0 2000 0.5 3.3359
0.87 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.3511
0.90 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.3648
0.95 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.4084
0.98 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.5746
0.87 0.90 \(10^{-10}\) 0.004 1.0 1000 0.5 3.3833
0.87 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.3511
0.87 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.3441
0.87 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.3441
0.87 0.98 \(10^{-20}\) 0.004 1.0 1000 0.5 3.3415
0.87 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.3441
0.87 0.98 \(10^{-10}\) 0.008 1.0 1000 0.5 3.3415
0.87 0.98 \(10^{-10}\) 0.016 1.0 1000 0.5 3.4447
0.87 0.98 \(10^{-10}\) 0.004 0.0 1000 0.5 3.3413
0.87 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.3441
0.87 0.98 \(10^{-10}\) 0.004 2.0 1000 0.5 3.3427
0.87 0.98 \(10^{-10}\) 0.004 1.0 500 0.5 3.3557
0.87 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.3441
0.87 0.98 \(10^{-10}\) 0.004 1.0 2000 0.5 3.3359
0.87 0.98 \(10^{-10}\) 0.004 1.0 2000 0.0 3.3369
0.87 0.98 \(10^{-10}\) 0.004 1.0 2000 0.5 3.3359
0.87 0.98 \(10^{-10}\) 0.004 1.0 2000 1.0 3.3653

4pt

Table 23: Hyperparameter ablation for AdamW on 60M on 4\(\times\) Chinchilla Data (BF16 weights + FP8 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta\) \(g_{\text{norm}}\) warmup wd Loss Link
0.87 0.98 \(10^{-10}\) 0.008 1.0 2000 0.5 3.2714
0.87 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.3014
0.90 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.3197
0.95 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.3730
0.98 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.4989
0.87 0.90 \(10^{-10}\) 0.004 1.0 1000 0.5 3.3438
0.87 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.3014
0.87 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.2902
0.87 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.2902
0.87 0.98 \(10^{-20}\) 0.004 1.0 1000 0.5 3.2884
0.87 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.2902
0.87 0.98 \(10^{-10}\) 0.008 1.0 1000 0.5 3.2816
0.87 0.98 \(10^{-10}\) 0.016 1.0 1000 0.5 3.3514
0.87 0.98 \(10^{-10}\) 0.008 0.0 1000 0.5 3.2856
0.87 0.98 \(10^{-10}\) 0.008 1.0 1000 0.5 3.2816
0.87 0.98 \(10^{-10}\) 0.008 2.0 1000 0.5 3.2967
0.87 0.98 \(10^{-10}\) 0.008 1.0 500 0.5 3.2785
0.87 0.98 \(10^{-10}\) 0.008 1.0 1000 0.5 3.2816
0.87 0.98 \(10^{-10}\) 0.008 1.0 2000 0.5 3.2714
0.87 0.98 \(10^{-10}\) 0.008 1.0 2000 0.0 3.2754
0.87 0.98 \(10^{-10}\) 0.008 1.0 2000 0.5 3.2714
0.87 0.98 \(10^{-10}\) 0.008 1.0 2000 1.0 3.3896

4pt

Table 24: Hyperparameter ablation for AdamW on 60M on 8\(\times\) Chinchilla Data (BF16 weights + FP8 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta\) \(g_{\text{norm}}\) warmup wd Loss Link
0.87 0.98 \(10^{-10}\) 0.008 0.0 1000 0.5 3.2350
0.87 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.2664
0.90 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.2886
0.95 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.3466
0.98 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.4553
0.87 0.90 \(10^{-10}\) 0.004 1.0 1000 0.5 3.3219
0.87 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.2664
0.87 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.2470
0.87 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.2470
0.87 0.98 \(10^{-20}\) 0.004 1.0 1000 0.5 3.2455
0.87 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.2470
0.87 0.98 \(10^{-10}\) 0.008 1.0 1000 0.5 3.2404
0.87 0.98 \(10^{-10}\) 0.016 1.0 1000 0.5 3.2883
0.87 0.98 \(10^{-10}\) 0.008 0.0 1000 0.5 3.2350
0.87 0.98 \(10^{-10}\) 0.008 1.0 1000 0.5 3.2404
0.87 0.98 \(10^{-10}\) 0.008 2.0 1000 0.5 3.2427
0.87 0.98 \(10^{-10}\) 0.008 0.0 500 0.5 3.2361
0.87 0.98 \(10^{-10}\) 0.008 0.0 1000 0.5 3.2350
0.87 0.98 \(10^{-10}\) 0.008 0.0 2000 0.5 3.2368
0.87 0.98 \(10^{-10}\) 0.008 0.0 1000 0.0 3.2698
0.87 0.98 \(10^{-10}\) 0.008 0.0 1000 0.5 3.2350
0.87 0.98 \(10^{-10}\) 0.008 0.0 1000 1.0 3.3125

4pt

Table 25: Hyperparameter ablation for AdamW on 130M on 1\(\times\) Chinchilla Data (BF16 weights + FP8 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta\) \(g_{\text{norm}}\) warmup wd Loss Link
0.95 0.98 \(10^{-10}\) 0.008 1.0 2000 0.5 3.1610
0.87 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 4.3639
0.90 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 4.1246
0.95 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.2482
0.98 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 4.5928
0.95 0.90 \(10^{-10}\) 0.004 1.0 1000 0.5 3.3018
0.95 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.2482
0.95 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.2254
0.95 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.2254
0.95 0.98 \(10^{-20}\) 0.004 1.0 1000 0.5 3.2348
0.95 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.2254
0.95 0.98 \(10^{-10}\) 0.008 1.0 1000 0.5 3.2073
0.95 0.98 \(10^{-10}\) 0.016 1.0 1000 0.5 3.3176
0.95 0.98 \(10^{-10}\) 0.008 0.0 1000 0.5 3.2335
0.95 0.98 \(10^{-10}\) 0.008 1.0 1000 0.5 3.2073
0.95 0.98 \(10^{-10}\) 0.008 2.0 1000 0.5 3.2213
0.95 0.98 \(10^{-10}\) 0.008 1.0 500 0.5 3.2026
0.95 0.98 \(10^{-10}\) 0.008 1.0 1000 0.5 3.2073
0.95 0.98 \(10^{-10}\) 0.008 1.0 2000 0.5 3.1610
0.95 0.98 \(10^{-10}\) 0.008 1.0 2000 0.0 3.2002
0.95 0.98 \(10^{-10}\) 0.008 1.0 2000 0.5 3.1610
0.95 0.98 \(10^{-10}\) 0.008 1.0 2000 1.0 3.2762

4pt

Table 26: Hyperparameter ablation for AdamW on 350M on 1\(\times\) Chinchilla Data (BF16 weights + FP8 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta\) \(g_{\text{norm}}\) warmup wd Loss Link
0.87 0.95 \(10^{-10}\) 0.008 1.0 1000 0.5 2.9567
0.87 0.95 \(10^{-10}\) 0.008 1.0 1000 0.5 2.9567
0.87 0.95 \(10^{-10}\) 0.008 1.0 1000 0.5 2.9567
0.90 0.95 \(10^{-10}\) 0.008 1.0 1000 0.5 3.0399
0.95 0.95 \(10^{-10}\) 0.008 1.0 1000 0.5 3.0124
0.98 0.95 \(10^{-10}\) 0.008 1.0 1000 0.5 3.0301
0.87 0.90 \(10^{-10}\) 0.008 1.0 1000 0.5 3.0083
0.87 0.95 \(10^{-10}\) 0.008 1.0 1000 0.5 2.9567
0.87 0.98 \(10^{-10}\) 0.008 1.0 1000 0.5 2.9732
0.87 0.95 \(10^{-10}\) 0.008 1.0 1000 0.5 2.9567
0.87 0.95 \(10^{-20}\) 0.008 1.0 1000 0.5 3.0040
0.87 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 6.4934
0.87 0.95 \(10^{-10}\) 0.008 1.0 1000 0.5 2.9567
0.87 0.95 \(10^{-10}\) 0.016 1.0 1000 0.5 3.0674
0.87 0.95 \(10^{-10}\) 0.008 0.0 1000 0.5 3.0391
0.87 0.95 \(10^{-10}\) 0.008 1.0 1000 0.5 2.9567
0.87 0.95 \(10^{-10}\) 0.008 2.0 1000 0.5 3.0270
0.87 0.95 \(10^{-10}\) 0.008 1.0 1000 0.5 2.9567
0.87 0.95 \(10^{-10}\) 0.008 1.0 2000 0.5 2.9870
0.87 0.95 \(10^{-10}\) 0.008 1.0 1000 0.0 6.7490
0.87 0.95 \(10^{-10}\) 0.008 1.0 1000 0.5 2.9567
0.87 0.95 \(10^{-10}\) 0.008 1.0 1000 1.0 3.0470

4pt

16.4 Sweeping Results for M+Adam(BF16 weights + FP8 compute)↩︎

Table 27: Hyperparameter ablation for M+Adam on 60M on 1\(\times\) Chinchilla Data (BF16 weights + FP8 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta_m\) \(\eta_a\) warmup \(\lambda_m\) \(\lambda_e\) Loss Link
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.3742
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.3774
0.90 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.3834
0.95 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.4155
0.98 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.5928
0.87 0.90 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.4089
0.87 0.95 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.3876
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.3774
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.3774
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.3742
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.3742
0.87 0.98 \(10^{-10}\) 0.008 \(8\times 10^{-5}\) 1000 0.1 0.01 3.3761
0.87 0.98 \(10^{-10}\) 0.016 \(8\times 10^{-5}\) 1000 0.1 0.01 3.4254
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.3742
0.87 0.98 \(10^{-10}\) 0.004 \(1.6\times 10^{-4}\) 1000 0.1 0.01 3.3772
0.87 0.98 \(10^{-10}\) 0.004 \(3.2\times 10^{-4}\) 1000 0.1 0.01 3.3750
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 500 0.1 0.01 3.3877
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.3742
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 2000 0.1 0.01 3.3732
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.0 0.01 3.4136
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.3742
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.2 0.01 3.3785
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.0 3.3726
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.02 3.3725

4pt

Table 28: Hyperparameter ablation for M+Adam on 60M on 2\(\times\) Chinchilla Data (BF16 weights + FP8 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta_m\) \(\eta_a\) warmup \(\lambda_m\) \(\lambda_e\) Loss Link
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.2920
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.2961
0.90 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.3021
0.95 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.3330
0.98 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.4688
0.87 0.90 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.3323
0.87 0.95 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.3084
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.2961
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.2961
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.2920
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.2920
0.87 0.98 \(10^{-10}\) 0.008 \(8\times 10^{-5}\) 1000 0.1 0.01 3.2970
0.87 0.98 \(10^{-10}\) 0.016 \(8\times 10^{-5}\) 1000 0.1 0.01 3.3445
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.2920
0.87 0.98 \(10^{-10}\) 0.004 \(1.6\times 10^{-4}\) 1000 0.1 0.01 3.2963
0.87 0.98 \(10^{-10}\) 0.004 \(3.2\times 10^{-4}\) 1000 0.1 0.01 3.2943
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 500 0.1 0.01 3.3035
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.2920
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 2000 0.1 0.01 3.2930
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.0 0.01 3.3403
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.2 0.01 3.3014
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.0 3.2916
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.02 3.2925

4pt

Table 29: Hyperparameter ablation for M+Adam on 60M on 4\(\times\) Chinchilla Data (BF16 weights + FP8 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta_m\) \(\eta_a\) warmup \(\lambda_m\) \(\lambda_e\) Loss Link
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.2336
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.2336
0.90 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.2404
0.95 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.2692
0.98 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.3810
0.87 0.90 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.2770
0.87 0.95 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.2474
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.2336
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.2336
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.2307
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.2336
0.87 0.98 \(10^{-20}\) 0.008 \(8\times 10^{-5}\) 1000 0.1 0.01 3.2400
0.87 0.98 \(10^{-20}\) 0.016 \(8\times 10^{-5}\) 1000 0.1 0.01 3.2768
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.2336
0.87 0.98 \(10^{-20}\) 0.004 \(1.6\times 10^{-4}\) 1000 0.1 0.01 3.2327
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times 10^{-4}\) 1000 0.1 0.01 3.2342
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 500 0.1 0.01 3.2385
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.2336
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 2000 0.1 0.01 3.2335
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.0 0.01 3.2862
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.2336
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.2 0.01 3.2460
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.0 3.2329
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.2336
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.02 3.2332

4pt

Table 30: Hyperparameter ablation for M+Adam on 60M on 8\(\times\) Chinchilla Data (BF16 weights + FP8 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta_m\) \(\eta_a\) warmup \(\lambda_m\) \(\lambda_e\) Loss Link
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.1879
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.1879
0.90 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.1937
0.95 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.2195
0.98 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.3184
0.87 0.90 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.2380
0.87 0.95 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.2024
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.1879
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.1879
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.1849
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.1879
0.87 0.98 \(10^{-20}\) 0.008 \(8\times 10^{-5}\) 1000 0.1 0.01 3.1982
0.87 0.98 \(10^{-20}\) 0.016 \(8\times 10^{-5}\) 1000 0.1 0.01 3.2311
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.1879
0.87 0.98 \(10^{-20}\) 0.004 \(1.6\times 10^{-4}\) 1000 0.1 0.01 3.1868
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times 10^{-4}\) 1000 0.1 0.01 3.1896
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 500 0.1 0.01 3.1903
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.1879
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 2000 0.1 0.01 3.1890
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.0 0.01 3.2468
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.1879
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.2 0.01 3.2063
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.0 3.1866
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.02 3.1882

4pt

Table 31: Hyperparameter ablation for M+Adam on 130M on 1\(\times\) Chinchilla Data (BF16 weights + FP8 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta_m\) \(\eta_a\) warmup \(\lambda_m\) \(\lambda_e\) Loss Link
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times 10^{-4}\) 2000 0.1 0.01 3.0972
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.1410
0.90 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.1856
0.95 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.1700
0.98 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 4.1064
0.87 0.90 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.1679
0.87 0.95 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.1448
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.1410
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.1410
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.1384
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.1410
0.87 0.98 \(10^{-20}\) 0.008 \(8\times 10^{-5}\) 1000 0.1 0.01 3.1989
0.87 0.98 \(10^{-20}\) 0.016 \(8\times 10^{-5}\) 1000 0.1 0.01 7.1386
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.1410
0.87 0.98 \(10^{-20}\) 0.004 \(1.6\times 10^{-4}\) 1000 0.1 0.01 3.1325
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times 10^{-4}\) 1000 0.1 0.01 3.1187
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times 10^{-4}\) 500 0.1 0.01 3.1535
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times 10^{-4}\) 1000 0.1 0.01 3.1187
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times 10^{-4}\) 2000 0.1 0.01 3.0972
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times 10^{-4}\) 2000 0.0 0.01 3.9269
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times 10^{-4}\) 2000 0.1 0.01 3.0972
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times 10^{-4}\) 2000 0.2 0.01 3.1054
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times 10^{-4}\) 2000 0.1 0.0 3.0977
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times 10^{-4}\) 2000 0.1 0.01 3.0972
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times 10^{-4}\) 2000 0.1 0.02 3.0980

4pt

Table 32: Hyperparameter ablation for M+Adam on 350M on 1\(\times\) Chinchilla Data (BF16 weights + FP8 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta_m\) \(\eta_a\) warmup \(\lambda_m\) \(\lambda_e\) Loss Link
0.90 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 2.8851
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 2.9296
0.90 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 2.9029
0.95 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 4.2848
0.98 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 4.3719
0.90 0.90 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 5.1978
0.90 0.95 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 2.9882
0.90 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 2.9029
0.90 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 2.9029
0.90 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 2.8851
0.90 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 2.8851
0.90 0.98 \(10^{-10}\) 0.008 \(8\times 10^{-5}\) 1000 0.1 0.01 5.7470
0.90 0.98 \(10^{-10}\) 0.016 \(8\times 10^{-5}\) 1000 0.1 0.01 6.7298
0.90 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 2.8851
0.90 0.98 \(10^{-10}\) 0.004 \(1.6\times 10^{-4}\) 1000 0.1 0.01 2.8967
0.90 0.98 \(10^{-10}\) 0.004 \(3.2\times 10^{-4}\) 1000 0.1 0.01 2.9485
0.90 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 2.8851
0.90 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 2000 0.1 0.01 4.4545
0.90 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.0 0.01 6.2177
0.90 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 2.8851
0.90 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.2 0.01 6.4175
0.90 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.0 2.8983
0.90 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 2.8851
0.90 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.02 6.0207

4pt

16.5 Hyperparameter Ablation in Phase II↩︎

Table 33: Hyperparameter ablation for AdamW on 130M on 2\(\times\) Chinchilla Data (BF16 weights + BF16 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta\) \(g_{\text{norm}}\) warmup wd Loss Link
0.95 0.98 \(10^{-10}\) 0.008 1.0 2000 0.5 3.0918
0.87 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 4.5454
0.95 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.1778
0.95 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.1778
0.95 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.1489
0.95 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.1489
0.95 0.98 \(10^{-10}\) 0.008 1.0 1000 0.5 3.1287
0.95 0.98 \(10^{-10}\) 0.008 1.0 1000 0.5 3.1287
0.95 0.98 \(10^{-10}\) 0.008 2.0 1000 0.5 3.1806
0.95 0.98 \(10^{-10}\) 0.008 1.0 1000 0.5 3.1287
0.95 0.98 \(10^{-10}\) 0.008 1.0 2000 0.5 3.0918

4pt

Table 34: Hyperparameter ablation for AdamW on 130M on 4\(\times\) Chinchilla Data (BF16 weights + BF16 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta\) \(g_{\text{norm}}\) warmup wd Loss Link
0.95 0.98 \(10^{-10}\) 0.004 1.0 2000 0.5 3.0604
0.87 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 5.6002
0.95 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.1320
0.95 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.1320
0.95 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.0920
0.95 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.0920
0.95 0.98 \(10^{-10}\) 0.008 1.0 1000 0.5 3.1000
0.95 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.0920
0.95 0.98 \(10^{-10}\) 0.004 2.0 1000 0.5 3.0967
0.95 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.0920
0.95 0.98 \(10^{-10}\) 0.004 1.0 2000 0.5 3.0604

4pt

Table 35: Hyperparameter ablation for AdamW on 130M on 8\(\times\) Chinchilla Data (BF16 weights + BF16 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta\) \(g_{\text{norm}}\) warmup wd Loss Link
0.95 0.98 \(10^{-10}\) 0.004 1.0 2000 0.5 3.0183
0.87 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 6.8238
0.95 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.0942
0.95 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.0942
0.95 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.0448
0.95 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.0448
0.95 0.98 \(10^{-10}\) 0.008 1.0 1000 0.5 3.0565
0.95 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.0448
0.95 0.98 \(10^{-10}\) 0.004 2.0 1000 0.5 3.0490
0.95 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.0448
0.95 0.98 \(10^{-10}\) 0.004 1.0 2000 0.5 3.0183
0.95 0.98 \(10^{-10}\) 0.004 1.0 2000 0.5 3.0183

4pt

Table 36: Hyperparameter ablation for M+Adam on 130M on 2\(\times\) Chinchilla Data (BF16 weights + BF16 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta_m\) \(\eta_a\) warmup \(\lambda_m\) \(\lambda_e\) Loss Link
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times 10^{-4}\) 2000 0.1 0.01 3.0181
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.0470
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.0462
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times 10^{-4}\) 1000 0.1 0.01 3.0344
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times 10^{-4}\) 2000 0.1 0.01 3.0181
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times 10^{-4}\) 2000 0.1 0.0 3.0171

4pt

Table 37: Hyperparameter ablation for M+Adam on 130M on 4\(\times\) Chinchilla Data (BF16 weights + BF16 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta_m\) \(\eta_a\) warmup \(\lambda_m\) \(\lambda_e\) Loss Link
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times 10^{-4}\) 2000 0.1 0.01 2.9602
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 2.9829
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 2.9833
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times 10^{-4}\) 1000 0.1 0.01 2.9731
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times 10^{-4}\) 2000 0.1 0.01 2.9602
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times 10^{-4}\) 2000 0.1 0.0 2.9597

4pt

Table 38: Hyperparameter ablation for M+Adam on 130M on 8\(\times\) Chinchilla Data (BF16 weights + BF16 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta_m\) \(\eta_a\) warmup \(\lambda_m\) \(\lambda_e\) Loss Link
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times 10^{-4}\) 2000 0.1 0.01 2.9189
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 2.9359
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 2.9370
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times 10^{-4}\) 1000 0.1 0.01 2.9284
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times 10^{-4}\) 2000 0.1 0.01 2.9189
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times 10^{-4}\) 2000 0.1 0.0 2.9188

4pt

Table 39: Hyperparameter ablation for AdamW on 350M on 2\(\times\) Chinchilla Data (BF16 weights + BF16 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta\) \(g_{\text{norm}}\) warmup \(\lambda\) Loss Link
0.90 0.98 \(10^{-10}\) 0.008 1.0 1000 0.5 2.9571
0.87 0.98 \(10^{-10}\) 0.008 1.0 1000 0.5 2.9459
0.87 0.98 \(10^{-10}\) 0.008 1.0 2000 0.5 2.9240
0.90 0.98 \(10^{-10}\) 0.008 1.0 2000 0.5 2.9003

4pt

Table 40: Hyperparameter ablation for AdamW on 350M on 4\(\times\) Chinchilla Data (BF16 weights + BF16 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta\) \(g_{\text{norm}}\) warmup \(\lambda\) Loss Link
0.90 0.98 \(10^{-10}\) 0.008 1.0 1000 0.5 2.8997
0.87 0.98 \(10^{-10}\) 0.008 1.0 1000 0.5 2.8982
0.95 0.98 \(10^{-10}\) 0.008 1.0 1000 0.5 2.9441
0.90 0.95 \(10^{-10}\) 0.008 1.0 1000 0.5 2.9785
0.90 0.98 \(10^{-10}\) 0.008 2.0 1000 0.5 2.8933
0.87 0.98 \(10^{-10}\) 0.008 1.0 2000 0.5 2.8844
0.90 0.98 \(10^{-10}\) 0.008 1.0 2000 0.5 2.8709
0.90 0.98 \(10^{-10}\) 0.008 2.0 2000 0.5 2.8187

4pt

Table 41: Hyperparameter ablation for AdamW on 350M on 8\(\times\) Chinchilla Data (BF16 weights + BF16 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta\) \(g_{\text{norm}}\) warmup \(\lambda\) Loss Link
0.90 0.98 \(10^{-10}\) 0.008 1.0 1000 0.5 2.8187
0.87 0.98 \(10^{-10}\) 0.008 1.0 1000 0.5 2.8743
0.90 0.98 \(10^{-10}\) 0.008 2.0 2000 0.5 2.7696

4pt

Table 42: Hyperparameter ablation for M+Adam on 350M on 2\(\times\) Chinchilla Data (BF16 weights + BF16 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta_m\) \(\eta_a\) warmup \(\lambda_m\) \(\lambda_e\) Loss Link
0.87 0.98 \(10^{-20}\) 0.004 \(8\times10^{-5}\) 1000 0.1 0.01 2.8575
0.87 0.98 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1000 0.1 0.01 2.8013
0.87 0.98 \(10^{-10}\) 0.004 \(3.2\times10^{-4}\) 1000 0.1 0.01 2.8385
0.87 0.98 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 2000 0.1 0.01 2.7605
0.87 0.98 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 2000 0.1 0.0 2.7733

4pt

Table 43: Hyperparameter ablation for M+Adam on 350M on 4\(\times\) Chinchilla Data (BF16 weights + BF16 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta_m\) \(\eta_a\) warmup \(\lambda_m\) \(\lambda_e\) Loss Link
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times10^{-4}\) 2000 0.1 0.01 2.7231
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times10^{-4}\) 2000 0.1 0.0 2.7114

4pt

Table 44: Hyperparameter ablation for M+Adam on 350M on 8\(\times\) Chinchilla Data (BF16 weights + BF16 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta_m\) \(\eta_a\) warmup \(\lambda_m\) \(\lambda_e\) Loss Link
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times10^{-4}\) 2000 0.1 0.01 2.7294
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times10^{-4}\) 2000 0.1 0.0 2.6852
0.87 0.98 \(10^{-10}\) 0.004 \(8\times10^{-5}\) 1000 0.1 0.01 2.7568

4pt

Table 45: Hyperparameter ablation for AdamW on 130M on 2\(\times\) Chinchilla Data (BF16 weights + FP8 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta\) \(g_{\mathrm{norm}}\) warmup wd Loss Link
0.95 0.98 \(10^{-10}\) 0.008 1.0 2000 0.5 3.0937
0.95 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.1578
0.95 0.98 \(10^{-10}\) 0.008 1.0 1000 0.5 3.1316
0.95 0.98 \(10^{-10}\) 0.008 0.0 1000 0.5 3.1888
0.95 0.98 \(10^{-10}\) 0.008 1.0 2000 0.5 3.0937

4pt

Table 46: Hyperparameter ablation for AdamW on 130M on 4\(\times\) Chinchilla Data (BF16 weights + FP8 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta\) \(g_{\mathrm{norm}}\) warmup wd Loss Link
0.95 0.98 \(10^{-10}\) 0.008 1.0 2000 0.5 3.0431
0.95 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.0998
0.95 0.98 \(10^{-10}\) 0.008 1.0 1000 0.5 3.0819
0.95 0.98 \(10^{-10}\) 0.008 0.0 1000 0.5 3.1674
0.95 0.98 \(10^{-10}\) 0.008 1.0 2000 0.5 3.0431

4pt

Table 47: Hyperparameter ablation for AdamW on 130M on 8\(\times\) Chinchilla Data (BF16 weights + FP8 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta\) \(g_{\mathrm{norm}}\) warmup wd Loss Link
0.95 0.98 \(10^{-10}\) 0.008 0.0 1000 0.5 2.9992
0.95 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.0544
0.95 0.98 \(10^{-10}\) 0.008 1.0 1000 0.5 3.0205
0.95 0.98 \(10^{-10}\) 0.008 0.0 1000 0.5 2.9992
0.95 0.98 \(10^{-10}\) 0.008 0.0 2000 0.5 3.0040

4pt

Table 48: Hyperparameter ablation for M+Adam on 130M on 2\(\times\) Chinchilla Data (BF16 weights + FP8 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta_m\) \(\eta_a\) warmup \(\lambda_m\) \(\lambda_e\) Loss Link
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times 10^{-4}\) 2000 0.1 0.01 3.0214
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.0492
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.0468
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times 10^{-4}\) 1000 0.1 0.01 3.0362
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times 10^{-4}\) 2000 0.1 0.01 3.0214

4pt

Table 49: Hyperparameter ablation for M+Adam on 130M on 4\(\times\) Chinchilla Data (BF16 weights + FP8 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta_m\) \(\eta_a\) warmup \(\lambda_m\) \(\lambda_e\) Loss Link
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times 10^{-4}\) 2000 0.1 0.01 2.9646
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 2.9851
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 2.9846
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times 10^{-4}\) 1000 0.1 0.01 2.9747
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times 10^{-4}\) 2000 0.1 0.01 2.9646

4pt

Table 50: Hyperparameter ablation for M+Adam on 130M on 8\(\times\) Chinchilla Data (BF16 weights + FP8 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta_m\) \(\eta_a\) warmup \(\lambda_m\) \(\lambda_e\) Loss Link
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times 10^{-4}\) 2000 0.1 0.01 2.9238
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 2.9389
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 2.9374
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times 10^{-4}\) 1000 0.1 0.01 2.9319
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times 10^{-4}\) 2000 0.1 0.01 2.9238

4pt

Table 51: Hyperparameter ablation for AdamW on 350M on 2\(\times\) Chinchilla Data (BF16 weights + FP8 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta\) \(g_{\text{norm}}\) warmup \(\lambda\) Loss Link
0.87 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 6.8527
0.95 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 6.2821
0.95 0.98 \(10^{-10}\) 0.008 1.0 1000 0.5 2.9676
0.87 0.98 \(10^{-10}\) 0.008 1.0 1000 0.5 2.9284
0.87 0.98 \(10^{-20}\) 0.008 1.0 1000 0.5 2.8664
0.95 0.98 \(10^{-20}\) 0.008 1.0 1000 0.5 2.9470
0.87 0.98 \(10^{-20}\) 0.008 1.0 2000 0.5 2.9031

4pt

Table 52: Hyperparameter ablation for AdamW on 350M on 4\(\times\) Chinchilla Data (BF16 weights + FP8 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta\) \(g_{\text{norm}}\) warmup \(\lambda\) Loss Link
0.87 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 6.9507
0.87 0.98 \(10^{-10}\) 0.008 1.0 1000 0.5 2.8563
0.95 0.98 \(10^{-10}\) 0.008 1.0 1000 0.5 2.8070

4pt

Table 53: Hyperparameter ablation for AdamW on 350M on 8\(\times\) Chinchilla Data (BF16 weights + FP8 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta\) \(g_{\text{norm}}\) warmup \(\lambda\) Loss Link
0.87 0.95 \(10^{-10}\) 0.008 1.0 1000 0.5 2.8489
0.87 0.98 \(10^{-10}\) 0.008 1.0 1000 0.5 2.8232
0.95 0.98 \(10^{-10}\) 0.008 1.0 1000 0.5 2.8006
0.95 0.98 \(10^{-10}\) 0.008 1.0 2000 0.5 2.7823
0.95 0.98 \(10^{-20}\) 0.008 1.0 2000 0.5 2.7663

4pt

Table 54: Hyperparameter ablation for M+Adam on 350M on 2\(\times\) Chinchilla Data (BF16 weights + FP8 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta_m\) \(\eta_a\) warmup \(\lambda_m\) \(\lambda_e\) Loss Link
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 2.8449
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 2.8337
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 2.8190

4pt

Table 55: Hyperparameter ablation for M+Adam on 350M on 4\(\times\) Chinchilla Data (BF16 weights + FP8 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta_m\) \(\eta_a\) warmup \(\lambda_m\) \(\lambda_e\) Loss Link
0.90 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 2.7954
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.4313
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 2.7648
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.00 3.9468

4pt

Table 56: Hyperparameter ablation for M+Adam on 350M on 8\(\times\) Chinchilla Data (BF16 weights + FP8 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta_m\) \(\eta_a\) warmup \(\lambda_m\) \(\lambda_e\) Loss Link
0.90 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 6.5851
0.90 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 2000 0.1 0.00 2.7378
0.90 0.98 \(10^{-10}\) 0.002 \(8\times 10^{-5}\) 1000 0.1 0.00 2.6963

4pt

16.6 Hyperparameter Ablation of FP8 master weights with FP8 compute↩︎

Table 57: Hyperparameter ablation for AdamW on 60M on 1\(\times\) Chinchilla Data (FP8 weights + FP8 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta\) \(g_{\text{norm}}\) warmup wd Loss Link
0.87 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.4519
0.87 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.4519
0.90 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.4631
0.95 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.5713
0.98 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.8539
0.87 0.90 \(10^{-10}\) 0.004 1.0 1000 0.5 3.4692
0.87 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.4519
0.87 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.4878
0.87 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.4519
0.87 0.95 \(10^{-20}\) 0.004 1.0 1000 0.5 3.4508
0.87 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.4519
0.87 0.95 \(10^{-10}\) 0.008 1.0 1000 0.5 3.5245
0.87 0.95 \(10^{-10}\) 0.016 1.0 1000 0.5 3.5528
0.87 0.95 \(10^{-10}\) 0.004 0.0 1000 0.5 3.4559
0.87 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.4519
0.87 0.95 \(10^{-10}\) 0.004 2.0 1000 0.5 3.4524
0.87 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.4519
0.87 0.95 \(10^{-10}\) 0.004 1.0 2000 0.5 3.4537
0.87 0.95 \(10^{-10}\) 0.004 1.0 1000 0.0 3.4575
0.87 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.4519
0.87 0.95 \(10^{-10}\) 0.004 1.0 1000 1.0 3.7919

4pt

Table 58: Hyperparameter ablation for AdamW on 130M on 1\(\times\) Chinchilla Data (FP8 weights + FP8 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta\) \(g_{\text{norm}}\) warmup wd Loss Link
0.90 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.2175
0.87 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.2257
0.90 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.2264
0.95 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.4394
0.98 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 4.2699
0.90 0.90 \(10^{-10}\) 0.004 1.0 1000 0.5 3.2543
0.90 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.2264
0.90 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.2175
0.90 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.2175
0.90 0.98 \(10^{-20}\) 0.004 1.0 1000 0.5 3.2214
0.90 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.2175
0.90 0.98 \(10^{-10}\) 0.008 1.0 1000 0.5 3.3212
0.90 0.98 \(10^{-10}\) 0.016 1.0 1000 0.5 3.3830
0.90 0.98 \(10^{-10}\) 0.004 0.0 1000 0.5 3.2432
0.90 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.2175
0.90 0.98 \(10^{-10}\) 0.004 2.0 1000 0.5 3.2255
0.90 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.2175
0.90 0.98 \(10^{-10}\) 0.004 1.0 2000 0.5 3.2166
0.90 0.98 \(10^{-10}\) 0.004 1.0 1000 0.0 3.2195
0.90 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.2175
0.90 0.98 \(10^{-10}\) 0.004 1.0 1000 1.0 3.4953

4pt

Table 59: Hyperparameter ablation for AdamW on 350M on 1\(\times\) Chinchilla Data (FP8 weights + FP8 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta\) \(g_{\text{norm}}\) warmup \(\lambda\) Loss Link
0.90 0.95 \(10^{-20}\) 0.008 1.0 2000 0.5 3.0761
0.87 0.95 \(10^{-10}\) 0.008 1.0 1000 0.5 3.1546
0.90 0.95 \(10^{-10}\) 0.008 1.0 1000 0.5 3.1134
0.95 0.95 \(10^{-10}\) 0.008 1.0 1000 0.5 3.2110
0.98 0.95 \(10^{-10}\) 0.008 1.0 1000 0.5 3.1655
0.90 0.90 \(10^{-10}\) 0.008 1.0 1000 0.5 3.1345
0.90 0.95 \(10^{-10}\) 0.008 1.0 1000 0.5 3.1134
0.90 0.98 \(10^{-10}\) 0.008 1.0 1000 0.5 3.1157
0.90 0.95 \(10^{-10}\) 0.008 1.0 1000 0.5 3.1134
0.90 0.95 \(10^{-20}\) 0.008 1.0 1000 0.5 3.0836
0.90 0.95 \(10^{-20}\) 0.004 1.0 1000 0.5 3.1237
0.90 0.95 \(10^{-20}\) 0.008 1.0 1000 0.5 3.0836
0.90 0.95 \(10^{-20}\) 0.016 1.0 1000 0.5 3.1297
0.90 0.95 \(10^{-20}\) 0.008 0.0 1000 0.5 3.1288
0.90 0.95 \(10^{-20}\) 0.008 1.0 1000 0.5 3.0836
0.90 0.95 \(10^{-20}\) 0.008 2.0 1000 0.5 3.1023
0.90 0.95 \(10^{-20}\) 0.008 1.0 1000 0.5 3.0836
0.90 0.95 \(10^{-20}\) 0.008 1.0 2000 0.5 3.0761
0.90 0.95 \(10^{-20}\) 0.008 1.0 2000 0.0 3.0981
0.90 0.95 \(10^{-20}\) 0.008 1.0 2000 0.5 3.0761
0.90 0.95 \(10^{-20}\) 0.008 1.0 2000 1.0 5.1046

4pt

Table 60: Hyperparameter ablation for M+Adam on 60M on 1\(\times\) Chinchilla Data (FP8 weights + FP8 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta_m\) \(\eta_a\) warmup \(\lambda_m\) \(\lambda_e\) Loss Link
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 2000 0.1 0.01 3.4172
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.4282
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.4282
0.90 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.4426
0.95 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.5539
0.98 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.7322
0.87 0.90 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.4673
0.87 0.95 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.4376
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.4282
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.4282
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.4233
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.4233
0.87 0.98 \(10^{-20}\) 0.008 \(8\times 10^{-5}\) 1000 0.1 0.01 3.4930
0.87 0.98 \(10^{-20}\) 0.016 \(8\times 10^{-5}\) 1000 0.1 0.01 3.5640
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.4233
0.87 0.98 \(10^{-20}\) 0.004 \(1.6\times 10^{-4}\) 1000 0.1 0.01 3.4211
0.87 0.98 \(10^{-20}\) 0.004 \(3.2\times 10^{-4}\) 1000 0.1 0.01 3.4245
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.4233
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 2000 0.1 0.01 3.4172
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 2000 0.0 0.01 3.4204
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 2000 0.1 0.01 3.4172
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 2000 0.2 0.01 3.4263
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 2000 0.1 0.0 3.4172
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 2000 0.1 0.01 3.4172
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 2000 0.1 0.02 3.4171

4pt

Table 61: Hyperparameter ablation for M+Adam on 60M on 4\(\times\) Chinchilla Data (FP8 weights + FP8 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta_m\) \(\eta_a\) warmup \(\lambda_m\) \(\lambda_e\) Loss Link
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 2000 0.1 0.01 3.3085
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.3127
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.3127
0.90 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.3165
0.95 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.4342
0.98 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.5365
0.87 0.90 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.3564
0.87 0.95 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.3207
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.3127
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.3127
0.87 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.3108
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.3127
0.87 0.98 \(10^{-10}\) 0.008 \(8\times 10^{-5}\) 1000 0.1 0.01 3.3260
0.87 0.98 \(10^{-10}\) 0.016 \(8\times 10^{-5}\) 1000 0.1 0.01 3.3361
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.3127
0.87 0.98 \(10^{-10}\) 0.004 \(1.6\times 10^{-4}\) 1000 0.1 0.01 3.3116
0.87 0.98 \(10^{-10}\) 0.004 \(3.2\times 10^{-4}\) 1000 0.1 0.01 3.3295
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.3127
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 2000 0.1 0.01 3.3085
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 2000 0.0 0.01 3.3177
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 2000 0.1 0.01 3.3085
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 2000 0.2 0.01 3.3310
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 2000 0.1 0.0 3.3069
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 2000 0.1 0.01 3.3085

4pt

Table 62: Hyperparameter ablation for M+Adam on 60M on 8\(\times\) Chinchilla Data (FP8 weights + FP8 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta_m\) \(\eta_a\) warmup \(\lambda_m\) \(\lambda_e\) Loss Link
0.90 0.98 \(10^{-10}\) 0.008 \(8\times 10^{-5}\) 1000 0.0 0.01 3.2437
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.2835
0.87 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.2835
0.90 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.2790
0.95 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.3879
0.98 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.5009
0.90 0.90 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.3509
0.90 0.95 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.3031
0.90 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.2790
0.90 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.2790
0.90 0.98 \(10^{-20}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.2802
0.90 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.2790
0.90 0.98 \(10^{-10}\) 0.008 \(8\times 10^{-5}\) 1000 0.1 0.01 3.2468
0.90 0.98 \(10^{-10}\) 0.016 \(8\times 10^{-5}\) 1000 0.1 0.01 3.2681
0.90 0.98 \(10^{-10}\) 0.008 \(8\times 10^{-5}\) 1000 0.1 0.01 3.2468
0.90 0.98 \(10^{-10}\) 0.008 \(1.6\times 10^{-4}\) 1000 0.1 0.01 3.2469
0.90 0.98 \(10^{-10}\) 0.008 \(3.2\times 10^{-4}\) 1000 0.1 0.01 3.2527
0.90 0.98 \(10^{-10}\) 0.008 \(8\times 10^{-5}\) 1000 0.1 0.01 3.2468
0.90 0.98 \(10^{-10}\) 0.008 \(8\times 10^{-5}\) 2000 0.1 0.01 3.2449
0.90 0.98 \(10^{-10}\) 0.008 \(8\times 10^{-5}\) 1000 0.0 0.01 3.2437
0.90 0.98 \(10^{-10}\) 0.008 \(8\times 10^{-5}\) 1000 0.1 0.01 3.2468
0.90 0.98 \(10^{-10}\) 0.008 \(8\times 10^{-5}\) 1000 0.2 0.01 3.2781
0.90 0.98 \(10^{-10}\) 0.008 \(8\times 10^{-5}\) 1000 0.0 0.0 3.2447
0.90 0.98 \(10^{-10}\) 0.008 \(8\times 10^{-5}\) 1000 0.0 0.01 3.2437
0.90 0.98 \(10^{-10}\) 0.008 \(8\times 10^{-5}\) 1000 0.0 0.02 3.2447

4pt

Table 63: Hyperparameter ablation for M+Adam on 130M on 1\(\times\) Chinchilla Data (FP8 weights + FP8 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta_m\) \(\eta_a\) warmup \(\lambda_m\) \(\lambda_e\) Loss Link
0.90 0.98 \(10^{-10}\) 0.004 \(1.6\times 10^{-4}\) 1000 0.1 0.01 3.1898
0.87 0.98 \(10^{-10}\) 0.004 \(3.2\times 10^{-4}\) 1000 0.1 0.01 3.2076
0.87 0.98 \(10^{-10}\) 0.004 \(3.2\times 10^{-4}\) 1000 0.1 0.01 3.2076
0.90 0.98 \(10^{-10}\) 0.004 \(3.2\times 10^{-4}\) 1000 0.1 0.01 3.2037
0.95 0.98 \(10^{-10}\) 0.004 \(3.2\times 10^{-4}\) 1000 0.1 0.01 3.2789
0.98 0.98 \(10^{-10}\) 0.004 \(3.2\times 10^{-4}\) 1000 0.1 0.01 3.3689
0.90 0.90 \(10^{-10}\) 0.004 \(3.2\times 10^{-4}\) 1000 0.1 0.01 3.2513
0.90 0.95 \(10^{-10}\) 0.004 \(3.2\times 10^{-4}\) 1000 0.1 0.01 3.2153
0.90 0.98 \(10^{-10}\) 0.004 \(3.2\times 10^{-4}\) 1000 0.1 0.01 3.2037
0.90 0.98 \(10^{-10}\) 0.004 \(3.2\times 10^{-4}\) 1000 0.1 0.01 3.2037
0.90 0.98 \(10^{-20}\) 0.004 \(3.2\times 10^{-4}\) 1000 0.1 0.01 3.2030
0.90 0.98 \(10^{-10}\) 0.004 \(3.2\times 10^{-4}\) 1000 0.1 0.01 3.2037
0.90 0.98 \(10^{-10}\) 0.008 \(3.2\times 10^{-4}\) 1000 0.1 0.01 3.2495
0.90 0.98 \(10^{-10}\) 0.016 \(3.2\times 10^{-4}\) 1000 0.1 0.01 3.3385
0.90 0.98 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 3.1901
0.90 0.98 \(10^{-10}\) 0.004 \(1.6\times 10^{-4}\) 1000 0.1 0.01 3.1898
0.90 0.98 \(10^{-10}\) 0.004 \(3.2\times 10^{-4}\) 1000 0.1 0.01 3.2037
0.90 0.98 \(10^{-10}\) 0.004 \(1.6\times 10^{-4}\) 1000 0.1 0.01 3.1898
0.90 0.98 \(10^{-10}\) 0.004 \(1.6\times 10^{-4}\) 2000 0.1 0.01 3.1874
0.90 0.98 \(10^{-10}\) 0.004 \(1.6\times 10^{-4}\) 1000 0.0 0.01 3.1959
0.90 0.98 \(10^{-10}\) 0.004 \(1.6\times 10^{-4}\) 1000 0.1 0.01 3.1898
0.90 0.98 \(10^{-10}\) 0.004 \(1.6\times 10^{-4}\) 1000 0.2 0.01 3.2075
0.90 0.98 \(10^{-10}\) 0.004 \(1.6\times 10^{-4}\) 1000 0.1 0.0 3.1913
0.90 0.98 \(10^{-10}\) 0.004 \(1.6\times 10^{-4}\) 1000 0.1 0.01 3.1898
0.90 0.98 \(10^{-10}\) 0.004 \(1.6\times 10^{-4}\) 1000 0.1 0.02 3.1949

4pt

Table 64: Hyperparameter ablation for M+Adam on 350M on 1\(\times\) Chinchilla Data (FP8 weights + FP8 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta_m\) \(\eta_a\) warmup \(\lambda_m\) \(\lambda_e\) Loss Link
0.90 0.95 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 2.9650
0.87 0.98 \(10^{-10}\) 0.004 \(3.2\times 10^{-4}\) 1000 0.1 0.01 3.0310
0.87 0.98 \(10^{-10}\) 0.004 \(3.2\times 10^{-4}\) 1000 0.1 0.01 3.0310
0.90 0.98 \(10^{-10}\) 0.004 \(3.2\times 10^{-4}\) 1000 0.1 0.01 2.9871
0.95 0.98 \(10^{-10}\) 0.004 \(3.2\times 10^{-4}\) 1000 0.1 0.01 3.0151
0.98 0.98 \(10^{-10}\) 0.004 \(3.2\times 10^{-4}\) 1000 0.1 0.01 3.1459
0.90 0.90 \(10^{-10}\) 0.004 \(3.2\times 10^{-4}\) 1000 0.1 0.01 3.0175
0.90 0.95 \(10^{-10}\) 0.004 \(3.2\times 10^{-4}\) 1000 0.1 0.01 2.9818
0.90 0.98 \(10^{-10}\) 0.004 \(3.2\times 10^{-4}\) 1000 0.1 0.01 2.9871
0.90 0.95 \(10^{-10}\) 0.004 \(3.2\times 10^{-4}\) 1000 0.1 0.01 2.9818
0.90 0.95 \(10^{-20}\) 0.004 \(3.2\times 10^{-4}\) 1000 0.1 0.01 3.0006
0.90 0.95 \(10^{-10}\) 0.004 \(3.2\times 10^{-4}\) 1000 0.1 0.01 2.9818
0.90 0.95 \(10^{-10}\) 0.008 \(3.2\times 10^{-4}\) 1000 0.1 0.01 3.0581
0.90 0.95 \(10^{-10}\) 0.016 \(3.2\times 10^{-4}\) 1000 0.1 0.01 3.1782
0.90 0.95 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 2.9650
0.90 0.95 \(10^{-10}\) 0.004 \(1.6\times 10^{-4}\) 1000 0.1 0.01 2.9675
0.90 0.95 \(10^{-10}\) 0.004 \(3.2\times 10^{-4}\) 1000 0.1 0.01 2.9818
0.90 0.95 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 2.9650
0.90 0.95 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 2000 0.1 0.01 2.9633
0.90 0.95 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.0 0.01 2.9620
0.90 0.95 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 2.9650
0.90 0.95 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.2 0.01 2.9900
0.90 0.95 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.0 2.9640
0.90 0.95 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.01 2.9650
0.90 0.95 \(10^{-10}\) 0.004 \(8\times 10^{-5}\) 1000 0.1 0.02 2.9652

4pt

Table 65: Hyperparameter ablation for AdamW on 60M on 1\(\times\) Chinchilla Data (FP32 weights + TF32 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta\) \(g_{\text{norm}}\) warmup \(\lambda\) Loss Link
0.90 0.98 \(10^{-10}\) 0.004 1.0 1000 0.0 3.3689
0.90 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.4191
0.87 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.4211
0.90 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.4191
0.95 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.4289
0.98 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.4664
0.90 0.90 \(10^{-10}\) 0.004 1.0 1000 0.5 3.4257
0.90 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.4191
0.90 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.4157
0.90 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.4157
0.90 0.98 \(10^{-20}\) 0.004 1.0 1000 0.5 3.4154
0.90 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.4157
0.90 0.98 \(10^{-10}\) 0.008 1.0 1000 0.5 3.4562
0.90 0.98 \(10^{-10}\) 0.016 1.0 1000 0.5 3.5441
0.90 0.98 \(10^{-10}\) 0.004 0.0 1000 0.5 3.4176
0.90 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.4157
0.90 0.98 \(10^{-10}\) 0.004 2.0 1000 0.5 3.4169
0.90 0.98 \(10^{-10}\) 0.004 1.0 500 0.5 3.4191
0.90 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.4157
0.90 0.98 \(10^{-10}\) 0.004 1.0 2000 0.5 3.4182
0.90 0.98 \(10^{-10}\) 0.004 1.0 1000 0.0 3.3689
0.90 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.4157
0.90 0.98 \(10^{-10}\) 0.004 1.0 1000 1.0 3.5522

4pt

Table 66: Hyperparameter ablation for AdamW on 130M on 1\(\times\) Chinchilla Data (FP32 weights + TF32 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta\) \(g_{\text{norm}}\) warmup \(\lambda\) Loss Link
0.90 0.95 \(10^{-10}\) 0.004 1.0 1000 0.0 3.1186
0.90 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.1611
0.87 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.1628
0.90 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.1611
0.95 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.1747
0.98 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.1913
0.90 0.90 \(10^{-10}\) 0.004 1.0 1000 0.5 3.1676
0.90 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.1611
0.90 0.98 \(10^{-10}\) 0.004 1.0 1000 0.5 3.1589
0.90 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.1611
0.90 0.95 \(10^{-20}\) 0.004 1.0 1000 0.5 3.1610
0.90 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.1611
0.90 0.95 \(10^{-10}\) 0.008 1.0 1000 0.5 3.2240
0.90 0.95 \(10^{-10}\) 0.016 1.0 1000 0.5 3.3167
0.90 0.95 \(10^{-10}\) 0.004 0.0 1000 0.5 3.1643
0.90 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.1611
0.90 0.95 \(10^{-10}\) 0.004 2.0 1000 0.5 3.1643
0.90 0.95 \(10^{-10}\) 0.004 1.0 500 0.5 3.1673
0.90 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.1611
0.90 0.95 \(10^{-10}\) 0.004 1.0 2000 0.5 3.1610
0.90 0.95 \(10^{-10}\) 0.004 1.0 1000 0.0 3.1186
0.90 0.95 \(10^{-10}\) 0.004 1.0 1000 0.5 3.1611
0.90 0.95 \(10^{-10}\) 0.004 1.0 1000 1.0 3.3078

4pt

Table 67: Hyperparameter ablation for AdamW + SR on 60M on 2\(\times\) Chinchilla Data (BF16 weights + BF16 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta\) \(g_{\text{norm}}\) warmup \(\lambda\) Loss Link
0.90 0.98 \(10^{-10}\) 0.004 1.0 2000 0.2 3.2849
0.90 0.95 \(10^{-10}\) 0.004 1.0 1000 0.2 3.2958
0.87 0.95 \(10^{-10}\) 0.004 1.0 1000 0.2 3.2930
0.90 0.95 \(10^{-10}\) 0.004 1.0 1000 0.2 3.2958
0.95 0.95 \(10^{-10}\) 0.004 1.0 1000 0.2 3.3001
0.98 0.95 \(10^{-10}\) 0.004 1.0 1000 0.2 3.3318
0.90 0.90 \(10^{-10}\) 0.004 1.0 1000 0.2 3.3027
0.90 0.95 \(10^{-10}\) 0.004 1.0 1000 0.2 3.2958
0.90 0.98 \(10^{-10}\) 0.004 1.0 1000 0.2 3.2884
0.90 0.98 \(10^{-10}\) 0.004 1.0 1000 0.2 3.2884
0.90 0.98 \(10^{-20}\) 0.004 1.0 1000 0.2 3.2881
0.90 0.98 \(10^{-10}\) 0.004 1.0 1000 0.2 3.2884
0.90 0.98 \(10^{-10}\) 0.008 1.0 1000 0.2 3.3099
0.90 0.98 \(10^{-10}\) 0.016 1.0 1000 0.2 3.3581
0.90 0.98 \(10^{-10}\) 0.004 0.0 1000 0.2 3.2896
0.90 0.98 \(10^{-10}\) 0.004 1.0 1000 0.2 3.2884
0.90 0.98 \(10^{-10}\) 0.004 2.0 1000 0.2 3.2883
0.90 0.98 \(10^{-10}\) 0.004 1.0 1000 0.2 3.2884
0.90 0.98 \(10^{-10}\) 0.004 1.0 2000 0.2 3.2849
0.90 0.98 \(10^{-10}\) 0.004 1.0 2000 0.0 3.2871
0.90 0.98 \(10^{-10}\) 0.004 1.0 2000 0.2 3.2849
0.90 0.98 \(10^{-10}\) 0.004 1.0 2000 0.4 3.3285

4pt

Table 68: Hyperparameter ablation for AdamW + SR on 60M on 4\(\times\) Chinchilla Data (BF16 weights + BF16 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta\) \(g_{\text{norm}}\) warmup \(\lambda\) Loss Link
0.90 0.98 \(10^{-10}\) 0.004 1.0 2000 0.2 3.2290
0.90 0.95 \(10^{-10}\) 0.004 1.0 1000 0.2 3.2399
0.87 0.95 \(10^{-10}\) 0.004 1.0 1000 0.2 3.2390
0.90 0.95 \(10^{-10}\) 0.004 1.0 1000 0.2 3.2399
0.95 0.95 \(10^{-10}\) 0.004 1.0 1000 0.2 3.2393
0.98 0.95 \(10^{-10}\) 0.004 1.0 1000 0.2 3.2535
0.90 0.90 \(10^{-10}\) 0.004 1.0 1000 0.2 3.2475
0.90 0.95 \(10^{-10}\) 0.004 1.0 1000 0.2 3.2399
0.90 0.98 \(10^{-10}\) 0.004 1.0 1000 0.2 3.2325
0.90 0.98 \(10^{-10}\) 0.004 1.0 1000 0.2 3.2325
0.90 0.98 \(10^{-20}\) 0.004 1.0 1000 0.2 3.2320
0.90 0.98 \(10^{-10}\) 0.004 1.0 1000 0.2 3.2325
0.90 0.98 \(10^{-10}\) 0.008 1.0 1000 0.2 3.2549
0.90 0.98 \(10^{-10}\) 0.016 1.0 1000 0.2 3.3015
0.90 0.98 \(10^{-10}\) 0.004 0.0 1000 0.2 3.2327
0.90 0.98 \(10^{-10}\) 0.004 1.0 1000 0.2 3.2325
0.90 0.98 \(10^{-10}\) 0.004 2.0 1000 0.2 3.2321
0.90 0.98 \(10^{-10}\) 0.004 1.0 1000 0.2 3.2325
0.90 0.98 \(10^{-10}\) 0.004 1.0 2000 0.2 3.2290
0.90 0.98 \(10^{-10}\) 0.004 1.0 2000 0.0 3.2286
0.90 0.98 \(10^{-10}\) 0.004 1.0 2000 0.2 3.2290
0.90 0.98 \(10^{-10}\) 0.004 1.0 2000 0.4 3.2788

4pt

Table 69: Hyperparameter ablation for AdamW + SR on 60M on 8\(\times\) Chinchilla Data (BF16 weights + BF16 compute)
\(\beta_1\) \(\beta_2\) \(\epsilon\) \(\eta\) \(g_{\text{norm}}\) warmup \(\lambda\) Loss Link
0.90 0.98 \(10^{-10}\) 0.004 1.0 2000 0.2 3.1874
0.90 0.95 \(10^{-10}\) 0.004 1.0 1000 0.2 3.1996
0.87 0.95 \(10^{-10}\) 0.004 1.0 1000 0.2 3.1997
0.90 0.95 \(10^{-10}\) 0.004 1.0 1000 0.2 3.1996
0.95 0.95 \(10^{-10}\) 0.004 1.0 1000 0.2 3.1969
0.98 0.95 \(10^{-10}\) 0.004 1.0 1000 0.2 3.2028
0.90 0.90 \(10^{-10}\) 0.004 1.0 1000 0.2 3.2051
0.90 0.95 \(10^{-10}\) 0.004 1.0 1000 0.2 3.1996
0.90 0.98 \(10^{-10}\) 0.004 1.0 1000 0.2 3.1915
0.90 0.98 \(10^{-10}\) 0.004 1.0 1000 0.2 3.1915
0.90 0.98 \(10^{-20}\) 0.004 1.0 1000 0.2 3.1915
0.90 0.98 \(10^{-10}\) 0.004 1.0 1000 0.2 3.1915
0.90 0.98 \(10^{-10}\) 0.008 1.0 1000 0.2 3.2119
0.90 0.98 \(10^{-10}\) 0.016 1.0 1000 0.2 3.2557
0.90 0.98 \(10^{-10}\) 0.004 0.0 1000 0.2 3.1916
0.90 0.98 \(10^{-10}\) 0.004 1.0 1000 0.2 3.1915
0.90 0.98 \(10^{-10}\) 0.004 2.0 1000 0.2 3.1908
0.90 0.98 \(10^{-10}\) 0.004 1.0 1000 0.2 3.1915
0.90 0.98 \(10^{-10}\) 0.004 1.0 2000 0.2 3.1874
0.90 0.98 \(10^{-10}\) 0.004 1.0 2000 0.0 3.1854
0.90 0.98 \(10^{-10}\) 0.004 1.0 2000 0.2 3.1874
0.90 0.98 \(10^{-10}\) 0.004 1.0 2000 0.4 3.2436

4pt

References↩︎

[1]
P. Micikevicius et al., “FP8 formats for deep learning.” 2022, [Online]. Available: https://arxiv.org/abs/2209.05433.
[2]
P. Micikevicius et al., “Mixed precision training,” in International conference on learning representations, 2018, [Online]. Available: https://openreview.net/forum?id=r1gs9JgRZ.
[3]
P. Zamirai, J. Zhang, C. R. Aberger, and C. D. Sa, Revisiting BFloat16 Training.” 2021, [Online]. Available: https://arxiv.org/abs/2010.06192.
[4]
M. P. Connolly, N. J. Higham, and T. Mary, “Stochastic rounding and its probabilistic backward error analysis,” SIAM Journal on Scientific Computing, vol. 43, no. 1, pp. A566–A585, 2021.
[5]
J. Bernstein, J. Zhao, M. Meister, M.-Y. Liu, A. Anandkumar, and Y. Yue, “Learning compositional functions via multiplicative weight updates,” in NeurIPS, 2020.
[6]
J. Zhao et al., LNS-Madam: Low-precision training in logarithmic number system using multiplicative weight update,” IEEE Transactions on Computers, vol. 71, no. 12, pp. 3179–3190, 2022, doi: 10.1109/TC.2022.3202747.
[7]
J. Kivinen and M. K. Warmuth, “Exponentiated gradient versus gradient descent for linear predictors,” Information and Computation, vol. 132, no. 1, pp. 1–63, 1997, doi: 10.1006/inco.1996.2612.
[8]
M. Kirtas, N. Passalis, and A. Tefas, “Multiplicative update rules for accelerating deep learning training and increasing robustness,” Neurocomputing, vol. 576, p. 127352, 2024, doi: 10.1016/j.neucom.2024.127352.
[9]
K. Nishida, E. M. Kıral, K. Bannai, M. E. Khan, and T. Möllenhoff, “Log-normal multiplicative dynamics for stable low-precision training of large networks,” arXiv preprint arXiv:2506.17768, 2025, doi: 10.48550/arXiv.2506.17768.
[10]
PyTorch, “Automatic mixed precision package — torch.amp.” https://pytorch.org/docs/stable/amp.html, 2025.
[11]
NVIDIA, “Using FP8 and FP4 with Transformer Engine.” https://docs.nvidia.com/deeplearning/transformer-engine/user-guide/examples/fp8_primer.html, 2023.
[12]
K. Ozkara, T. Yu, and Y. Park, “Stochastic rounding for LLM training: Theory and practice,” in Proceedings of the 28th international conference on artificial intelligence and statistics, 2025, vol. 258, pp. 4402–4410, [Online]. Available: https://proceedings.mlr.press/v258/ozkara25b.html.
[13]
S. Loeschcke, M. Toftrup, M. Kastoryano, S. Belongie, and V. Snæbjarnarson, LoQT: Low-rank adapters for quantized pretraining,” Advances in Neural Information Processing Systems, vol. 37, pp. 115282–115308, 2024.
[14]
T. Dettmers, M. Lewis, S. Shleifer, and L. Zettlemoyer, “8-bit optimizers via block-wise quantization,” in International conference on learning representations, 2022, [Online]. Available: https://openreview.net/forum?id=shpkpVXzo3h.
[15]
B. Li, J. Chen, and J. Zhu, “Memory efficient optimizers with 4-bit states,” in Advances in neural information processing systems, 2023, vol. 36, pp. 15136–15171, [Online]. Available: https://proceedings.neurips.cc/paper_files/paper/2023/file/3122aaa22b2fe83f9cead1a696f65ceb-Paper-Conference.pdf.
[16]
M. Fishman, B. Chmiel, R. Banner, and D. Soudry, Spotlight“Scaling FP8 training to trillion-token LLMs,” in International conference on learning representations, 2025, [Online]. Available: https://openreview.net/forum?id=E1EHO0imOb.
[17]
R. L. Castro et al., “Quartet: Native FP4 training can be optimal for large language models,” in NeurIPS 2025 (poster), 2025, [Online]. Available: https://openreview.net/forum?id=XMzxZ6h68o.
[18]
D. P. Kingma and J. Ba, Adam: A method for stochastic optimization,” in International conference on learning representations, 2015.
[19]
I. Loshchilov and F. Hutter, “Decoupled weight decay regularization,” in International conference on learning representations, 2019, [Online]. Available: https://openreview.net/forum?id=Bkg6RiCqY7.
[20]
K. Wen, D. L. W. Hall, T. Ma, and P. Liang, Poster“Fantastic pretraining optimizers and where to find them,” in International conference on learning representations, 2026, [Online]. Available: https://openreview.net/forum?id=2J51qUZ0iG.
[21]
A. Semenov, M. Pagliardini, and M. Jaggi, “Benchmarking optimizers for large language model pretraining.” 2025, [Online]. Available: https://arxiv.org/abs/2509.01440.
[22]
H. Zhu et al., APOLLO: SGD-like Memory, AdamW-level Performance,” Proceedings of Machine Learning and Systems, vol. 7, 2025.
[23]
J. Zhao, Z. Zhang, B. Chen, Z. Wang, A. Anandkumar, and Y. Tian, GaLore: Memory-efficient LLM training by gradient low-rank projection,” in Proceedings of the 41st international conference on machine learning, 2024, vol. 235, pp. 61121–61143, [Online]. Available: https://proceedings.mlr.press/v235/zhao24s.html.
[24]
S. Loeschcke et al., TensorGRaD: Tensor gradient robust decomposition for memory-efficient neural operator training.” 2025, [Online]. Available: https://arxiv.org/abs/2501.02379.