# DeepSpeed — Deep Learning Optimization Library by Microsoft > A PyTorch optimization library that enables training and inference of large models with unprecedented scale and speed through ZeRO memory optimization, mixed precision, and kernel fusion. ## Install Save as a script file and run: # DeepSpeed — Deep Learning Optimization Library by Microsoft ## Quick Use ```bash pip install deepspeed deepspeed train.py --deepspeed ds_config.json ``` ## Introduction DeepSpeed is a deep learning optimization library from Microsoft Research that makes distributed training and inference efficient and accessible. It introduced the ZeRO (Zero Redundancy Optimizer) family of memory optimizations that allow training models with trillions of parameters across GPU clusters. ## What DeepSpeed Does - Reduces memory footprint through ZeRO stages that partition optimizer states, gradients, and parameters - Enables mixed precision training with automatic loss scaling and gradient management - Offloads computation and memory to CPU and NVMe for training on limited GPU hardware - Accelerates inference with DeepSpeed-Inference engine and automatic tensor parallelism - Provides DeepSpeed-Chat for end-to-end RLHF training of chat models ## Architecture Overview DeepSpeed integrates with PyTorch as an optimizer and engine wrapper. ZeRO partitions model state across data-parallel ranks in three stages of increasing memory savings. The DeepSpeed engine replaces the standard PyTorch training loop, handling gradient accumulation, precision management, and communication. A JSON configuration file controls all optimization knobs without code changes. ## Self-Hosting & Configuration - Install via pip: `pip install deepspeed` with PyTorch and CUDA toolkit - Create a JSON config file specifying ZeRO stage, batch size, precision, and optimizer - Launch with `deepspeed --num_gpus N train.py --deepspeed ds_config.json` - Enable CPU offloading by setting `offload_optimizer` and `offload_param` in config - Use `ds_report` command to verify system compatibility and installed extensions ## Key Features - ZeRO Stages 1-3 progressively reduce memory usage from optimizer states to full parameter sharding - ZeRO-Offload and ZeRO-Infinity extend training to CPU RAM and NVMe storage - Fused CUDA kernels for Adam optimizer, layer normalization, and softmax - DeepSpeed-Inference with automatic tensor parallelism and quantization - One-line integration with Hugging Face Trainer via deepspeed config argument ## Comparison with Similar Tools - **ColossalAI** — Offers more parallelism strategies but smaller community - **FSDP (PyTorch)** — Native sharding but fewer optimization features and no offloading to NVMe - **Megatron-LM** — Focuses on model parallelism; DeepSpeed handles memory optimization - **Horovod** — Data parallelism only without memory optimization - **Accelerate** — Higher-level wrapper that can use DeepSpeed as a backend ## FAQ **Q: What are the ZeRO stages?** A: Stage 1 partitions optimizer states, Stage 2 adds gradient partitioning, and Stage 3 adds parameter partitioning. Each stage trades communication for memory savings. **Q: Can I use DeepSpeed with Hugging Face?** A: Yes. Pass a DeepSpeed config JSON to the Hugging Face Trainer via the `--deepspeed` argument. **Q: Does DeepSpeed work on a single GPU?** A: Yes. ZeRO-Offload can reduce memory usage on a single GPU by offloading to CPU, enabling training of larger models. **Q: What is DeepSpeed-Chat?** A: DeepSpeed-Chat is an RLHF training system that integrates supervised fine-tuning, reward modeling, and PPO into a single pipeline with DeepSpeed optimizations. ## Sources - https://github.com/microsoft/DeepSpeed - https://www.deepspeed.ai/ --- Source: https://tokrepo.com/en/workflows/3acc4b93-3c92-11f1-9bc6-00163e2b0d79 Author: Script Depot