Slice-Level Scheduling for High Throughput and Load Balanced LLM Serving

2024年06月19日
  • 简介
    大型语言模型(LLMs)通过逐个生成文本标记来迭代生成文本序列,随着生成的标记序列长度的增加,内存使用量也会增加。生成长度的不可预测性使得难以估计处理请求所需的时间和内存,这对于有效的请求调度构成了挑战。传统的序列级调度(SLS)以静态分批的方式先到先得地处理请求,其中请求的生成长度较短的被延迟到那些生成长度较长的请求完成生成之后,这会损害计算效率。此外,为了避免内存不足(OOM)错误,SLS会使用小批量的请求分批处理,这限制了吞吐量。最近提出的迭代级调度(ILS)通过连续分批来提高计算效率,及时返回已完成的请求并动态添加新的请求进行处理。然而,许多ILS调度程序限制并行处理请求的数量以避免OOM错误,同时实现快速的推理速度,这会影响吞吐量。此外,现有的SLS和ILS调度程序无法平衡多个部署的LLM实例之间的工作负载。为了解决这些挑战,我们提出了切片级调度(SCLS)。通过将预定义的最大生成长度限制分成多个切片并逐个处理,它为分批请求提供了精确的服务时间和内存使用范围,为有效的调度奠定了基础。实验证明,与SLS和ILS调度程序相比,SCLS可以将吞吐量提高高达315.8%,并通过提出的分批和卸载算法大大减轻负载不平衡。
  • 作者讲解
  • 图表
  • 解决问题
    解决大型语言模型请求调度问题,提高请求处理效率和负载均衡。
  • 关键思路
    提出基于切片级别调度(SCLS)的解决方案,将请求按照预定义的最大生成长度切分成多个切片进行处理,从而提供了精确的服务时间和内存使用范围。
  • 其它亮点
    SCLS相比现有的SLS和ILS调度器,可以提高处理效率达到315.8%,并且通过提出的批处理和卸载算法,可以有效地平衡多个部署的LLM实例的工作负载。
  • 相关研究
    近期的相关研究包括:《Megatron-LM: Training Multi-Billion Parameter Language Models Using Model Parallelism》、《GShard: Scaling Giant Models with Conditional Computation and Automatic Sharding》等。
许愿开讲
PDF
原文
点赞 收藏
向作者提问
NEW
分享到Link

提问交流

提交问题,平台邀请作者,轻松获得权威解答~

向作者提问