LLM 训练推理优化体系
背景:训练和推理的效率挑战
LLM 训练和推理面临显著效率挑战:
- 训练开销大、效率低:GPT-4 训练时长约 90-100 天,GPU 利用率仅 32%-36%,年化故障率高达 6%-11%。代码层面低效主因包括计算效率、显存拷贝和网络传输问题。
- 推理开销大、时延高:Llama 8B 模型推理需 80GB 显存,GPU 数量与性能需平衡,否则通信复杂或内存碎块增多。排查推理显存消耗和在线服务分布式追踪难度大。
现状:传统解决方案和工具的问题
传统工具存在局限:
- GPU 监控:Nvidia Nsight 需重启进程且缺少 CPU Context,PyTorch Profiler 仅支持 PyTorch 且性能影响大。
- RDMA 网络:指标粒度粗,公有云网络性能黑盒。
- 在线推理服务可观测性:OpenLLMetry 等工具支持语言有限,需修改代码。
方法:eBPF 构建零侵扰可观测性
eBPF 技术优势:
- 全栈可观测性:支持 Socket、File、Perf Events 等事件,实现零代码侵入。
- 业内实践:华为、Meta 已探索 eBPF 在 Profiling 和 GPU Profiling 中的应用。
技术挑战:
- 栈合并:合并 Python 和 C/C++ 调用栈以实现全栈剖析。
- 分布式追踪:实现 Network-Centric 分布式追踪。
实践:PyTorch 全栈剖析和追踪
DeepFlow 中的 eBPF AutoProfiling:
- Compute Profiling:实现 CPU 和 GPU 火焰图,全栈剖析 Python、PyTorch、C/C++ 和 CUDA 函数耗时。
- HBM Profiling:剖析 CUDA 显存申请、实时用量和 Host<->Device 拷贝耗时。
- COMM Profiling:使用 eBPF Hook RDMA API 剖析 RoCEv2 网络性能,关键指标包括丢包率、时延和吞吐。
- Distributed Tracing:支持在线推理服务和端侧 ROS2 推理服务,内置和可编程协议识别能力,提取业务属性标签。
探索:Agent 自动优化ML 代码
利用 LLM Agent 自动优化 ML 代码:
- 快速理解全栈函数调用。
- DeepFlow 实现零侵扰全栈可观测性,包括集合通信、网络性能、在线推理服务和分布式追踪,无需修改代码或重启进程。