Uber has developed a robust in-house LLM training infrastructure, Michelangelo, leveraging open-source tools like PyTorch, Ray, Hugging Face, and DeepSpeed. This platform supports both full-parameter fine-tuning and parameter-efficient methods like LoRA and QLoRA. The system has been optimized for throughput and Model Flops Utilization (MFU) through techniques such as DeepSpeed ZeRO-stage-3 CPU Optimizer Offload and flash attention, demonstrating scalability and efficiency on NVIDIA A100 and H10. This post details optimizations to Petastorm for high-throughput and reproducible GPU training, significantly improving GPU utilization to over 60%, reducing end-to-end training time by 86%, and slashing compute costs by nearly 80%. The optimizations include pushing data transformations to worker threads, implementing local disk caching with quota management, and ensuring deterministic data loading by caching row groups and adding a final shuffle step.
All Uber trails