Methods with Local Steps and Random Reshuffling for Generally Smooth Non-Convex Federated Optimization

Yury Demidovich, Petr Ostroukhov, Grigory Malinovsky, Samuel Horváth, Martin Takáč +2 more
12/3/2024
math.OCcs.LG

No official code found. Best implementation: postrou/local_steps_rr (0 stars, last commit 2025-02-28).

Abstract

Non-convex Machine Learning problems typically do not adhere to the standard smoothness assumption. Based on empirical findings, Zhang et al. (2020b) proposed a more realistic generalized $(L_0, L_1)$-smoothness assumption, though it remains largely unexplored. Many existing algorithms designed for standard smooth problems need to be revised. However, in the context of Federated Learning, only a few works address this problem but rely on additional limiting assumptions. In this paper, we address this gap in the literature: we propose and analyze new methods with local steps, partial participation of clients, and Random Reshuffling without extra restrictive assumptions beyond generalized smoothness. The proposed methods are based on the proper interplay between clients' and server's stepsizes and gradient clipping. Furthermore, we perform the first analysis of these methods under the Polyak-Ł ojasiewicz condition. Our theory is consistent with the known results for standard smooth problems, and our experimental results support the theoretical insights.

View on arXivView PDF

Code Implementations(1)

Experimental code for article "Methods with Local Steps and Random Reshuffling for Generally Smooth Non-Convex Federated Optimization"

00Python, Jupyter NotebookDec 30, 20231 years ago
federated-learningoptimizationrandom-reshuffling

Similar Papers

Cite this paper

@article{demidovich2024methods,
  title  = {Methods with Local Steps and Random Reshuffling for Generally Smooth Non-Convex Federated Optimization},
  author = {Yury Demidovich and Petr Ostroukhov and Grigory Malinovsky and Samuel Horváth and Martin Takáč and Peter Richtárik and Eduard Gorbunov},
  year   = {2024},
  eprint = {2412.02781},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2412.02781v3}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2412.02781.svg)](https://codeofpaper.com/paper/2412.02781)

Discussion