DeepSeek-V3/R1 推理系统:揭秘高效并行处理策略
大浪资讯(2023年3月1日)—— 深度学习领域的一颗新星,DeepSeek,近日在知乎平台发布了《DeepSeek-V3/R1 推理系统概览》一文,详细阐述了如何通过大规模跨节点专家并行(Expert Parallelism/EP)技术来提升系统性能,包括增大batch size、隐藏传输耗时以及实现负载均衡。
优化目标:高吞吐量与低延迟
DeepSeek官方明确指出,DeepSeek-V3/R1推理系统的优化核心在于实现更大的吞吐量和更低的延迟。
大规模跨节点专家并行(Expert Parallelism/EP)
DeepSeek-V3/R1拥有庞大的专家数量,每层模型中仅有8个专家被激活。这种高度稀疏的结构要求系统必须具备巨大的overall batch size,以确保每个专家都能获得足够的expert batch size,从而实现高效的处理。为此,DeepSeek采用了大规模跨节点专家并行(Expert Parallelism/EP)策略。
专家并行策略详解
DeepSeek采用多机多卡间的专家并行策略,具体措施如下:
- Prefill阶段:部署4节点,配置32个冗余路由专家,每张卡分配9个路由专家和1个共享专家。
- Decode阶段:部署18节点,配置32个冗余路由专家,每张卡分配2个路由专家和1个共享专家。
计算通信重叠
为了最大化吞吐量,DeepSeek通过双batch重叠策略来减少通信开销。在prefill阶段,计算和通信交错进行,一个batch的计算可以掩盖另一个batch的通信耗时。在decode阶段,通过将attention部分拆分为两个stage,实现了更高效的计算通信重叠。
负载均衡
DeepSeek注重负载均衡,以避免性能瓶颈和资源浪费。具体措施包括:
- Prefill Load Balancer:优化核心问题在于不同DP实例的请求个数和长度不同,导致计算和发送量不均。优化目标是通过均衡计算量和发送量,避免部分GPU处理时间过长。
- Decode Load Balancer:同样针对不同DP实例的请求数量和长度不均的问题,优化目标是均衡KVCache占用量和请求数量。
- Expert-Parallel Load Balancer:针对MoE模型中某些专家计算负载过重的问题,优化目标是均衡每个GPU上的专家计算量,最小化所有GPU的dispatch接收量的最大值。
参考架构图与实际统计数据
DeepSeek-V3/R1使用H800 GPU,采用与训练一致的精度,并实现了高效的负载管理。在24小时内,系统峰值占用278个节点,平均占用226.75个节点。假设GPU租赁成本为2美元/小时,总成本约为87072美元/天。
实际统计数据
- 输入token总数为608B,其中342B tokens(56.3%)命中KVCache硬盘缓存。
- 输出token总数为168B,平均输出速率为20~22 tps。
- 每台H800的吞吐量:prefill任务输入吞吐约73.7k tokens/s,decode任务输出吞吐约14.8k tokens/s。
收入与成本分析
假设所有tokens均按照DeepSeek R1的定价计算,理论上一天的总收入为562027美元,成本利润率高达545%。然而,实际收入会因定价策略、服务占比和夜间折扣等因素有所降低。
定价信息
DeepSeek R1的定价如下: - $0.14/百万输入tokens(缓存命中) - $0.55/百万输入tokens(缓存未命中) - $2.19/百万输出tokens
结语
DeepSeek-V3/R1推理系统的技术创新和优化策略展现了其在深度学习领域的强大实力。随着技术的不断进步,我们有理由相信,DeepSeek将为行业带来更多惊喜。