STI:通过弹性流水线加速边缘端 NLP 推理
机器学习
2023-02-01 v3
摘要
自然语言处理(NLP)推理正被移动应用日益广泛地采用,其中设备端推理对于关键地保护用户数据隐私和避免网络往返至关重要。然而,NLP 模型前所未有的规模对延迟和内存都造成了压力,在移动设备的两个关键资源之间产生了张力。为满足目标延迟,将整个模型驻留于内存中可尽快启动执行,但会使一个应用的内存占用增加数倍,限制其收益仅在被移动内存管理回收前用于少数几次推理。另一方面,按需从存储加载模型会产生长达数秒的 IO,远超令用户满意的延迟范围;逐层流水线化模型加载与执行也因 IO 与计算延迟间的高度偏斜而无法隐藏 IO。为此,我们提出 Speedy Transformer Inference(STI)。基于最大化模型最重要部分的 IO/计算资源利用率这一核心思想,STI 通过两项新技术调和了延迟与内存的张力。第一,模型分片。STI 将模型参数作为独立可调的分片管理,并分析其对精度的贡献重要性。第二,带预加载缓冲的弹性流水线规划。STI 实例化一条 IO/计算流水线,并使用一个小缓冲区预加载分片以在早期阶段不停滞地启动执行;它依据重要性审慎地选择、调优并组装分片,实现资源弹性执行,最大化推理精度。我们在两款商用 SoC 上构建 STI,并在实际目标延迟范围下、于 CPU 和 GPU 上针对广泛的 NLP 任务进行评估。我们证明 STI 以低 1-2 个数量级的内存交付高精度,优于有竞争力的基线。
引用
@article{arxiv.2207.05022,
title = {STI: Turbocharge NLP Inference at the Edge via Elastic Pipelining},
author = {Liwei Guo and Wonkyo Choe and Felix Xiaozhu Lin},
journal= {arXiv preprint arXiv:2207.05022},
year = {2023}
}
备注
ASPLOS'23