论文题目:Fiddler: CPU-GPU Orchestration for Fast Inference of Mixture-of-Experts Models
论文链接:https://arxiv.org/pdf/2402.07033.pdf
Github:https://github.com/efeslab/fiddler
介绍了一个名为Fiddler的资源高效推理引擎,它专为在资源受限的环境中部署基于专家混合(Mixture-of-Experts, MoE)架构的大型语言模型(LLMs)而设计。
Fiddler通过在CPU上执行专家层的计算,而不是从CPU内存加载专家权重到GPU内存,从而显著减少了CPU-GPU通信的延迟。这种方法特别适用于本地部署的MoE模型,因为在这种设置中,延迟对用户体验至关重要,且模型需要逐个处理请求。
Fiddler设计思想与已有方法对比:
- 在现有的卸载系统中(下图a):
当GPU内存中缺少专家权重时(1),这些权重会从CPU内存复制到GPU内存(2),然后GPU执行专家层(3)。尽管GPU的执行速度快于CPU,但数据移动造成了显著的开销。
- 在Fiddler的方法中(下图b):
当GPU内存中缺少专家权重时,Fiddler会从GPU内存复制激活值到CPU内存(2),然后在CPU上执行专家层的计算(3),最后将计算结果的激活值复制回GPU(4)。这种方法的优势在于,激活值的大小(对于Mixtral-8x7B模型,批大小×4096)远小于权重的大小(每个专家有3个矩阵,大小为4096×14336),从而显著减少了CPU-GPU通信的延迟。
Fiddler设计思想
在评估部分,论文使用了Mixtral-8x7B模型和ShareGPT数据集进行测试,并在两个不同的环境下进行了性能评估。
评估环境1、2
结果显示,Fiddler在所有输入和输出长度的配置下都优于DeepSpeed-MII和Eliseev & Mazur (2023)的方法。与DeepSpeed-MII相比,
Fiddler在第一个环境中快了19.4倍,在第二个环境中快了22.5倍
。与Eliseev & Mazur (2023)相比,Fiddler在
第一个环境中快了8.2倍,在第二个环境中快了10.1倍
。
Fiddler能够在单个具有24GB内存的GPU上运行未压缩的Mixtral-8x7B模型(参数超过90GB),每秒生成超过3个令牌,比现有方法提高了约一个数量级的性能。
最后,论文得出结论,Fiddler是一个重要的步骤,它通过充分利用异构硬件资源,实现了在资源受限环境中对大型MoE模型的快速推理。
