Skip to content

Deprecate unused DeepSpeed features #8489

Description

@sfc-gh-truwase

Summary

Tracking issue for retiring unused / unmaintained DeepSpeed features so the runtime, docs, tests, and packaging stay consistent.

Goal: remove code paths that are no longer supported, then sweep the leftover docs, extras, CODEOWNERS, and tests so they cannot be re-enabled by accident.

PRs

PR State Scope
#8490 Merged 2026-09-12 First sweep: compression library, 1-bit Adam/Lamb, 0-1 Adam, MiCS, Nebula (71d316d60, +169 / −8,298)
#8099 Merged 2026-07-01 ZeRO-3 elastic_checkpoint (use Universal Checkpointing). Stage 1/2 unchanged
#8493 Merged 2026-09-14 Sparse Attention
#8504 Merged 2026-09-16 sparse_gradients
#8534 Open LoCo-Zero++ (zeropp_loco_param)
#8535 Open Compression leftovers: 1-bit comm backends, MoQ/eigenvalue, fake-quant kernels, docs/CODEOWNERS/issue template

There is no PR for the full follow-up sweep described below (MoQ + 1-bit comm + PLD + Apex AMP as one bundle). #8535 covers the 1-bit comm and MoQ/eigenvalue leftovers. Progressive Layer Dropping and Apex AMP still have no PR.

Coverage statistics

Line counts are from git diff --numstat. Code = runtime/library sources; tests = tests/; docs = docs/ plus CODEOWNERS / issue templates / CI where noted.

Removed in #8490

Feature Code − Tests − Docs − Net
Compression library 2,430 301 455 −3,166
1-bit / 0-1 Adam optimizers 1,132 1,255 745 −3,131
MiCS ZeRO-3 650 225 34 −909
Nebula checkpoint engine 229 0 0 −229
Runtime wiring (config.py / engine.py / launchers / CODEOWNERS) 264 0 3 −208
Shared docs (config-json, training pages, nav) 0 0 513 −506
Shared tests (config dict, AutoEP MiCS gate, ZeRO) 0 62 0 −19
Helper relocation (recursive_getattr → module_utils) 0 0 0 +39
PR total +169 / −8,298

Follow-up sweep (no dedicated PR)

Local working-tree estimate vs master when this was written: +104 / −2,814. Combined vs pre-#8490: +253 / −11,092.

Feature Code − Tests − Docs − Status
1-bit comm backends 717 676 0 Open in #8535
MoQ / eigenvalue 333 18 212 Open in #8535
Progressive Layer Dropping 40 116 155 No PR
Apex AMP / runtime wiring 383 0 0 No PR (engine amp path)
Docs / CI / packaging 24 0 113 Partially in #8535
ZeRO-3 elastic checkpoint 16 — config-json Done in #8099
Rejection tests 0 +52 0 Split across follow-up PRs

Leftover configs should fail at parse time (DeepSpeedConfigError or ZeRO-3 ValidationError) instead of silently training without the feature.

Features to deprecate

Training / checkpointing

  • Nebula checkpoint engine (deepspeed/nebula, NebulaCheckpointEngine) — #8490
  • MiCS ZeRO-3 sharding (MiCS_Init, mics_shard_size, mics_hierarchical_params_gather) — #8490
  • ZeRO-3 elastic checkpoint (zero_optimization.elastic_checkpoint with stage 3; use Universal Checkpointing). ZeRO-1/2 elastic checkpoints remain. — #8099

Optimizers

  • 1-bit Adam (OneBitAdam) — #8490
  • 1-bit Lamb (OneBitLamb) — #8490
  • 0/1 Adam (ZeroOneAdam) — #8490

Compression / quantization

  • Model compression library (deepspeed.compression, compression scheduler, related tests) — #8490
  • Mixture-of-Quantization (MoQ) / quantize_training / eigenvalue scheduling — #8535

Mixed precision

  • Apex AMP (amp config). Use fp16, bf16, or torch_autocast. No PR.

Training schedule

  • Progressive Layer Dropping (progressive_layer_drop). No PR.

1-bit communication leftovers (optimizers are gone; backends remain)

  • Compressed allreduce backends (deepspeed/runtime/comm/{nccl,mpi,compressed}.py, deepspeed/runtime/compression/cupy.py) — #8535
  • tests/onebit/ and remaining unit tests for those backends — #8535
  • setup.py extras 1bit / 1bit_mpi and requirements/requirements-1bit-mpi.txt — #8535

Docs / repo hygiene

GitHub usage consensus (2026-09-14)

Three independent classifications (Opus, Codex, Grok) over the same GitHub pull agreed on the next deprecation set below.

Method

  • Issues/PRs: unauthenticated /search/issues on 2026-09-14. Primary column is -org:deepspeedai. Relative score vs "zero_optimization" -org:deepspeedai = 1,362.
  • Code: authenticated /search/code on 2026-09-14 via gh. Relative score vs "zero_optimization" -org:deepspeedai = 49,280. Code search over-counts vendored DeepSpeed copies (e.g. DeepSpeed-0.9.5/ inside other repos) and generic identifiers. Treat as ordinal rank, not user counts.
  • Not consensus / do not add from this scan: inference v1/v2, Windows, ZeRO offload, pipeline, DeepCompile, Hybrid Engine, autotuning, DataStates, ZenFlow.

Consensus candidates

Feature Issue query Issues −org Rel. issues Issues in DS repo Code query Code −org Rel. code Status
Sparse Attention "sparse_attention" 358 (158 w/ "mode") 0.26 (0.12) 86 "sparse_attention" 27,264 0.55 Done #8493
sparse_gradients "sparse_gradients" 20 0.015 8 "sparse_gradients" 4,616 0.094 Open #8504
Elastic training "max_train_batch_size" "micro_batch_sizes" 0 0 64 (word “elasticity”) same pair 1,900 0.039 No PR
graph_harvesting "graph_harvesting" 83 0.061 10 "graph_harvesting" 1,052 0.021 No PR (0 tests; config-dump noise)
Legacy curriculum_learning "curriculum_learning" 185 0.14 27 "curriculum_learning" 15,136 0.31 No PR (homonym; superseded by Data Efficiency)
LoCo-Zero++ "zeropp_loco_param" 37 0.027 3 "zeropp_loco_param" 152 0.003 Open #8534

2-of-3 only (not unanimous; do not treat as consensus)

Data Efficiency / Random-LTD, dump_state (debug flag; "dump_state" code search is 164k unrelated hits), disable_allgather, FusedLion.

Other unused / already-deprecated candidates

  • Sparse Attention (deepspeed/ops/sparse_attention, extras_require['sparse_attn']) — #8493
  • sparse_gradients (config-json already calls this essentially deprecated) — #8504
  • Elastic training (elasticity / max_train_batch_size + micro_batch_sizes)
  • graph_harvesting
  • Legacy curriculum learning (superseded by Data Efficiency)
  • LoCo-Zero++ (zero_optimization.zeropp_loco_param) — #8534

Notes

  • Checked items landed in #8490, #8099, or #8493.
  • The original follow-up sweep is not a single open PR. #8535 takes 1-bit comm + MoQ leftovers; PLD and Apex AMP still need a PR.
  • MiCS removal also dropped the AutoEP ZeRO-3 “no MiCS” compatibility gate and its unit test.
  • 1-bit optimizers are gone in Deprecate unused DeepSpeed features #8490; 1-bit communication backends are in Deprecate leftovers of compression library #8535 (coalesced_collectives.py stays for ZeRO-3).
  • deepspeed/compression/helper.py remains as a FutureWarning shim for DeepSpeed-Chat after Deprecate unused DeepSpeed features #8490.
  • Apex AMP removal is still local / un-PRed; PyTorch torch_autocast is unchanged. Local import apex remains only to detect apex.optimizers.FusedAdam for FP16 optimizer wrapping.
  • Stats methodology: Deprecate unused DeepSpeed features #8490 from git diff --numstat 71d316d60^1 71d316d60; follow-up from git diff --numstat origin/master on the working tree at the time; combined vs b726f4edb.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions