论文Hermes:Memory-Efficient Pipeline Inference for Large Models on Edge Devices被IEEE International Conference on Computer Design (CCF-B) 会议接收,恭喜学远
论文主题内容介绍
研究背景
近年来,随着人工智能和深度学习(Deep Learning)技术的快速发展,基于Transformer架构的大模型(Large-Scale Models)在边缘端的开发应用变得越来越广泛。但随着Transformer大模型参数规模的爆炸式增长,在边缘端部署这些模型面临着越来越严峻的内存挑战,即大型模型的内存使用量远远超过了典型边缘设备的内存容量。
解决方案
(1)为了减少内存开销(Memory Overhead)并解决流水线停顿(Pipeline stall)问题,我们开发了一种名为PipeLoad的内存高效流水线执行机制,以层为粒度简化加载和推理过程。该机制结合了内存的动态管理,及时销毁已计算完成的模型权重所占的内存空间,从而大大减少了模型推断的内存使用量。
(2)在PipeLoad机制的基础上,我们引入了Hermes框架。这是一个适用于在边缘设备上进行大型模型推理的框架,囊括了用于评估层效率、部署最佳执行计划、执行PipeLoad的方法,旨在将在资源受限环境下优化模型执行所必需的各种要素(如内存使用、延迟和执行策略)进行协作。
设计概述
(1)Hermes框架:该框架由三部分组成。层分析器(Layer Profiler)可以评估每个层的性能和内存利用率。流水线执行规划器(Pipeline Planner)利用剖析到的数据,通过我们制定的算法设计出最佳的流水线执行策略。最后,流水线执行引擎(Execution Engine)会依据这一策略,执行PipeLoad机制。
(2)PipeLoad流水线:该机制中有三类核心代理,即多个加载代理, 一个推理代理和一个守护代理。加载代理并行工作,将模型层从磁盘加载到内存中,从而减少推理延迟。推理代理同时在CPU中顺序执行这些加载层的计算,保证模型的预测准确性,并最大限度地减少流水线停滞。守护代理在内存中维护已加载层的队列,检测内存使用情况,并在特定时间点销毁特定层的内存空间,以减少内存开销。三类代理通过信号机制相互通信,从而促进了整个流水线的实现。
实验结果
我们对四个基于Transformer框架的模型进行了实验,包括BERT-Large、GPT-2-Base、ViT-Large 和GPT-J。这四个模型的大小从几百兆字节到十几个千兆字节不等。通过全面的性能和内存占用评估,对于BERT和ViT模型,PipeLoad的推理速度比PipeSwitch提高了4.24倍,内存消耗比PipeSwitch低86.7%;对于GPT风格的模型,PipeLoad的推理速度比PipeSwitch提高了2.58倍,内存消耗比PipeSwitch低90.3%。
韩学远个人介绍
- 本科毕业学校:上海交通大学
- 研究方向:云计算、深度学习大模型
- 荣誉奖励:
- 2020-2021学年上海交通大学巴黎卓越工程师学院ARDIAN进步奖
- 2020-2021学年上海交通大学本科生优秀奖学金C级
- 2022-2023学年上海交通大学本科生优秀奖学金B级