Partial Parameter Updates

June 15, 2026 · View on GitHub

Implements Partial Parameter Updates, a memory- and compute-efficient distributed scheme where each worker trains only a fixed slice of the model.

The method follows the local-SGD / DiLoCo structure: KK workers run HH inner steps in parallel, then a single outer step aggregates their progress. The twist is that worker kk is assigned a fixed index set IktrainI_k^{\text{train}} and computes gradients, allocates optimizer state, and updates parameters only within that set, freezing the rest. This shrinks the backward pass and optimizer memory while the union of the worker slices still covers the whole model. After the inner phase, each worker reports its parameter change as a pseudo-gradient, the changes are averaged per coordinate over only the workers that touched that coordinate, and an outer optimizer applies the result.

gk(t,h)[i]={θ[i]L ⁣(θk(t,h);Xk(t,h)),iIktrain0,otherwiseθk(t,h+1) ⁣[Iktrain]=InnerOpt ⁣(θk(t,h) ⁣[Iktrain],gk(t,h) ⁣[Iktrain])Δk(t)[i]={θk(t,H)[i]θ(t)[i],iIktrain0,otherwiseΔ(t)[i]=1m[i]k=1KΔk(t)[i]θ(t+1)=OuterOpt ⁣(θ(t),Δ(t))\begin{aligned} g_k^{(t,h)}[i] &= \begin{cases} \nabla_{\theta[i]}\, \mathcal{L}\!\left(\theta_k^{(t,h)}; X_k^{(t,h)}\right), & i \in I_k^{\text{train}} \\ 0, & \text{otherwise} \end{cases} \\ \theta_k^{(t,h+1)}\!\left[I_k^{\text{train}}\right] &= \mathrm{InnerOpt}\!\left(\theta_k^{(t,h)}\!\left[I_k^{\text{train}}\right],\, g_k^{(t,h)}\!\left[I_k^{\text{train}}\right]\right) \\ \Delta_k^{(t)}[i] &= \begin{cases} \theta_k^{(t,H)}[i] - \theta^{(t)}[i], & i \in I_k^{\text{train}} \\ 0, & \text{otherwise} \end{cases} \\ \Delta^{(t)}[i] &= \frac{1}{m[i]} \sum_{k=1}^{K} \Delta_k^{(t)}[i] \\ \theta^{(t+1)} &= \mathrm{OuterOpt}\!\left(\theta^{(t)},\, -\Delta^{(t)}\right) \end{aligned}

where tt indexes outer rounds, h=0,,H1h = 0,\dots,H-1 inner steps, kk the worker, and ii a parameter coordinate; IktrainI_k^{\text{train}} is the fixed slice worker kk trains; m[i]={k:iIktrain}m[i] = |\{k : i \in I_k^{\text{train}}\}| counts how many workers update coordinate ii; Δk(t)\Delta_k^{(t)} is worker kk's parameter change after HH steps; and InnerOpt\mathrm{InnerOpt}, OuterOpt\mathrm{OuterOpt} are the local and global optimizers (AdamW and Nesterov SGD in the experiments), the latter consuming Δ(t)-\Delta^{(t)} as a pseudo-gradient.

Reference: Filippova, Katharopoulos, Grangier, Collobert, "Partial Parameter Updates for Efficient Distributed Training", arXiv 2025. https://arxiv.org/abs/2509.22418


Back to the Canon