当大模型推理遇到算力瓶颈,如何进行工程优化?

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 当大模型推理遇到算力瓶颈, 如何进行工程优化 零一万物资深算法专家 李谋
2.
3. Alternate Intro Slide Your Title / A Subtitle Here
4. 目录 1) 大语言模型算力需求及当前增长趋势 2) 大模型结构特征,与传统模型的差异 3) 大模型推理加速挑战与难点 4) 零一万物模型推理服务优化技术 5) 大模型应用场景与业务落地探讨
5. 1 大语言模型算力需求 及增长趋势
6. 大模型发展趋势 模型越来越大 • GPT5的参数量将会达到10万亿级别 • 业界大模型将进入500亿参数的规模 多模态爆发 • 对数据量与算力会有更大规模需求的增长 • Meta最近的算力需求(35万片H100)反映 了多模态对算力几何级数增长的效应 A B C D 垂类大模型兴起 • 自动驾驶、视频、电商、量化、游戏等垂 类客户开始进入企业模型的训练阶段 推理成本优化推动应用爆发 • 未来推理服务在24个月成本继续优化500 倍+的速度,会更进一步增加应用的爆发与 推理服务对算力的需求
7. 算力需求 指数级增长 机器学习时代,每2年翻倍 深度学习时代,每4-6个月翻倍 ChatGPT发布 大模型时代,每2-3个月翻倍 2030年相比2020年通用算力增 长10倍,专用算力增长500倍
8. 2 大模型结构特征 与传统模型差异
9. 大语言模型 vs 传统模型 • • • • 开发环境-动态图 网络结构复杂 参数较少 所有输入计算流程一致 DAG有向无环 生产环境-静态图 + 图融合
10. 大语言模型 vs 传统模型 • 结构简单, Transformer Block串联 • 参数很多 千亿,万亿,十万亿规模 • 不同输入计算流程不一样 • 循环结构,自回归
11. 3 大模型推理加速挑战与难点
12. 大模型推理加速挑战与难点 计算量 算力 内存 参数量 使用成本 集群 能源 局部电力
13. 推理服务降本增效 推理 降本增效 提供服务吞吐 减少硬件成本 GPU 降价 降低延时 增大并发 优化显存 target : max(throughput) while latency <= T 减少GPU 数量
14. 4 零一万物在线推理服务优化技术
15. 总体架构 在线服务 负载分流 动态扩缩 DAG算子编排 服务发现 容错检查 InfraMind 用户理解 向量检索 RAG Prompt改写 人工干预 算子融合 模型并行 KV Cache 分页缓存 CUDA Graph 多实例 推理引擎 Prompt Cache 算子优化 硬件选型 Model Continuous Batching 投机采样 LoRA Tokenizer Attention MatMul Sparse Sampler H卡 L卡 NPU Yi-VL-34B Yi-34B-200K 量化(FP8/INT8/INT4) A卡 Yi-34B-Chat AMD Yi-6B-Chat-4bits 国产芯片 Yi-9B
16. forward 输入长度: 5 输入长度: 6 零 一 万 物 我 零 一 万 物 我 爱 iteration-2 iteration-1 key weights 输入长度: 7 爱 iteration-3 key value weights 零 一 万 物 我 爱 你 value 你 key weights value !
17. Key-Value Cache key-value缓存 减少重复计算,空间换时间
18. forward with key-value cache 输入长度: 5 prefill 输入长度: 1 零 一 万 物 我 iteration-1 weights kvcache 爱 kvcache 输入长度: 1 decode iteration-2 爱 weights kvcache 你 kvcache decode iteration-3 你 weights kvcache !
19. Iteration-Level Batching Iteration-Level Batching 提升硬件利用率 减少请求延时
20. 显存≈并发量 kv_cache size for 1 sequence = head_dim * num_kv_head * num_layers * seq_length * sizeof(half) * 2 对于Yi-34B-16K模型,每个正在处理的输入请求需要申请3.25GB的kv_cache显存。 kv_cache(3.25GB) weights (68GB) kv_cache(3.25GB) kv_cache (3.25GB) num_running_request = 3 intermediate tensor intermediate tensor intermediate tensor prompt-1 prompt-2 prompt-3 Total GPU Memory (80GB)
21. 分页kv_cache内存管理 • 连续的虚拟地址储存在不连续的物理地址,增加显存利用率 • 相同的prompt prefix共享kv cache
22. 算子融合 CUDA Kernel • 多个独立CUDA Kernel,Kernel间隙 • Kernel间张量通过Global Memory传输 matmul • Attention计算过程中多次读取Global Memory • 产生S^2维度的中间矩阵,长序列显存消耗大 mask softmax matmul time Global Memory
23. Flash-Attention • 本质上是算子融合 • 利用SRAM作为临时缓存,加速数据读取 • 延迟减少,显存减少
24. 低精度量化 • 更快的计算指令 (eg. for int8 IMMA, IDP4A ...) • 更少的显存读取 • 更小的显存占用 • 更小的模型权重 (边缘端部署)
25. layernorm RoPE bfp16 weights bfp16 input qkv linear bfp16 weights bfp16 input scale scale quant attention matmul out linear bfp16 output quant fp8 fp8 matmul dequant up linear bfp16 output down linear • FP16 • INT8 • FP8 layernorm act 数据类型 • INT4 • INT2 量化方式 • Weight Only • Weight + Activation • KV Cache • 全网络量化
26. 低精度量化 quantilize && optimize LLM using TensorRT-LLM
27. 张量并行 Y = X*A 列切分 • 每张GPU保存全量输入 • 每张GPU保存部分输出 (AllGather) 行切分 • 每张GPU保存部分输入 • 每张GPU保存部分输出 (AllReduce)
28. 张量并行 Transformer Block每一层 Attention --> MLP 先做列切分,再做行切分 每一层2次AllReduce
29. 多机张量并行 节点内 : NVLINK 节点间 : Infiniband / RoCE 张量并行适合节点内 跨节点TP扩展性下降明显 Context Parallism + Tensor Parallism
30. Prompt Cache (ref : RadixAttention)
31. Prompt Cache (ref : RadixAttention) LRU pool k_cache_ptr k_cache_ptr k_cache_ptr k_cache_ptr k_cache_ptr v_cache_ptr v_cache_ptr v_cache_ptr v_cache_ptr v_cache_ptr ... 你是谁? 你好,我 来自浙江 你好, 你好,早上好 RadixTree 你好, 早上好 你好,我 来自浙江杭 州 利用数据结构保存每个 前缀对应的kv_cache 你是谁 我来自 浙江 杭州
32. 5 大模型业务场景与落地应用探讨
33. 大模型业务场景与落地应用 • 基础大模型 L0 Users Applications API Chat Model • 行业大模型 L1 • 垂类大模型 L2 语言大 模型 SFT && RL Base Model 图像大 模型 多模态 大模型
34. 大模型业务场景与落地应用 • 帮我用英文写封感谢信 • Syntax: ModuleNotFoundError: No module named ‘numpy’ • 《三体》里叶文洁是如何认识伊文斯的? • 比较一下两幅图的不同之处 • 帮我做一份以”和平”为主题的PPT
35. 总结
36. LLM推理加速
37. 大模型落地应用 • github • huggingface • modelscope • wisemodel
38. Speculative Decoding 小模型预测,大模型验证,验证过程是并行计算。 最好情况 vs 最坏情况
39.
40.

Home - Wiki
Copyright © 2011-2024 iteam. Current version is 2.138.0. UTC+08:00, 2024-12-22 09:26
浙ICP备14020137号-1 $Map of visitor$