基于eBPF和Agent构建LLM训练推理优化体系 向阳云杉网络 1.背景:训练和推理的效率挑战2.现状:传统解决方案和工具的问题3.方法:eBPF构建零侵扰可观测性4.实践:PyTorch全栈剖析和追踪5.探索:Agent自动优化ML代码 目录CONTENTS 背景:训练和推理的效率挑战PART 01 •Everything We Know About GPT-4-Klu.ai•GPT4-All Details Leaked•The Llama 3 Herd of Models 148/54*365/16384 = 6%(148+72+19+17+6+6)/54*365/16384 = 11% 训练时间长:数月 GPU数量多:数万 GPU年化故障高:6%~11% 模型参数大:万亿 GPU利用率低:40% 代码层面训练低效的主要原因 计算效率 显存拷贝 •Yanjie Gao(Microsoft Research) et al, ACM ICSE 2024,An Empirical Study on Low GPU Utilization of Deep Learning Jobs.•Yanjie Gao (Microsoft Research) et al, ACM ICSE 2023,An Empirical Study on Quality Issues of Deep Learning Platform. 网络传输 如何知晓你的训练任务是否存在这些问题? Time To First Token (TTFT)Time Per Output Token (TPOT)Model Bandwidth Utilization(MBU) 80GB: 1 GPU640GB: 1 Node x 8 GPU1.28TB:2 Node x 8 GPU GPU并非越少越好 GPU越少,则每个GPU需要加载更多的模型参数。 GPU并非越多越好 GPU越多,则通信越复杂,内存碎块越多。 •LLM Memory Requirements•LLM Inference Performance Engineering: Best Practices 没有银弹,唯有持续观测&优化。 排查LLM推理显存消耗的挑战 Biz vLLM 从推理应用到在线LLM推理服务 云-在线推理服务是一个复杂的分布式服务TTFT、TPOT、时延、吞吐 从大模型到小模型:消费级GPU、CPU协同 Accelerating Model Training in Multi-cluster Environments with Consumer-grade GPUs, SIGCOMM 2024. AI训练和推理的可观测性需求 现状:传统解决方案和工具的问题PART 02 DCGM Prometheus Exporter 发现故障√优化性能X GPU:Nvidia Nsight、PyTorch Profiler 需要手工精心打造插桩、开销 Nsight的问题:需要重启进程、缺少CPU Context。 PyTorchProfiler的问题:只能用于PyTorch;性能影响大;需要改代码、重启进程。 RDMA网络:网卡/交换机指标、拨测 在线推理服务的可观测性:分布式追踪 OpenLIT 方法:eBPF构建零侵扰可观测性PART 03 eBPF的可观测性能力 使用eBPF实现可观测性的优势 业内探索:eBPFProfiling & Tracing 使用eBPF实现持续剖析的技术挑战 如何合并Python Stack和C/C++ Stack #0__select_nocancel()#1pysleep#2time_sleep#3call_function#4PyEval_EvalFrameEx#5fast_function#6call_function#7PyEval_EvalFrameEx#8fast_function#9call_function#10PyEval_EvalFrameEx#11fast_function#12call_function#13PyEval_EvalFrameEx#14fast_function#15call_function#16PyEval_EvalFrameEx#17_PyEval_EvalCodeWithName#18PyEval_EvalCodeEx#19PyEval_EvalCode 例:剖析显存申请和使用量 ①eBPF uprobeHook cuda_malloc获取显存申请调用栈 ②eBPF uretprobeHook cuda_malloc获取申请的显存地址 使用eBPF实现分布式追踪的技术挑战 实践:PyTorch全栈剖析和追踪PART 04 DeepFlow中的eBPF AutoProfiling 1. Compute Profiling PyTorch+nanoGPTCPU & GPU火焰图 PyTorch+nanoGPTCPU & GPU火焰图 2. HBM Profiling CUDA mem-alloc显存申请火焰图 CUDA mem-inuse显存实时用量火焰图 3. COMM. Profiling RDMA网络性能剖析 关键标签: •Client及其关联的K8s Pod、标签•Server及其关联的K8s Pod、标签•ClientQueue Pair•ServerQueue Pair关键指标: •丢包率:即NACK的比例 •时延:ACK的时延•吞吐:通信对的bps、pps等 eBPF Hooks 4. Distributed Tracing 在线推理服务、端侧ROS2推理服务 内置协议识别能力+可编程协议识别能力 探索:Agent自动优化ML代码PART 05 如何快速高效的理解全栈函数 利用LLM Agent自动优化ML代码 利用LLM Agent自动优化ML代码/ 2 DeepFlow:零侵扰实现AI应用的全栈可观测性 THANKS