基于Transformer的生成式大型语言模型(LLM)在自然语言处理(NLP)的广泛应用中展现了强大的优势。尽管众多应用程序因LLM的广泛应用而受益匪浅,但高昂的训练和实施成本往往令大多数开发人员望而却步。为了应对这一挑战,OpenAI、Google和百度等顶级AI公司推出了语言模型即服务(LMaaS),通过API为开发人员提供对LLM的访问权限。
LMaaS场景下的挑战
在LMaaS场景中,开发人员向LLM服务发送用户输入消息和特定指令。为提高服务质量(QoS)并支持更多客户,服务提供商不断寻求缩短响应时间并提高吞吐量的方法。然而,现有的系统(如TensorFlow Serving和Triton Inference Server)在处理查询时存在效率低下的问题。这些系统采用先到先得(FCFS)的查询执行方式和固定的批处理大小,限制了GPU的并行计算能力,并可能导致内存不足(OOM)问题。
连续批处理方案及其局限
有观点建议采用连续批处理来应对上述问题,即动态地删除已完成的请求并添加新请求。然而,这种方法往往依赖于保守的GPU内存管理技术,牺牲了GPU的并行处理能力来限制吞吐量。尽管这有助于减少内存占用,但模型量化和修剪等策略可能会降低生成输出的质量。
Magnus系统:优化LMaaS中的批处理服务
中国的一个人工智能研究团队提出了Magnus系统,该系统巧妙地利用应用程序级和用户级语义信息以及用户输入的长度来预测请求生成长度。Magnus由四个核心部分组成:批处理调度程序、自适应批处理程序、服务时间估算器和生成长度预测器。
测试验证Magnus系统的性能
在NVIDIA V100 GPU上运行的ChatGLM-6B实例测试中,Magnus系统展现出了显著的性能提升。与基线方法相比,Magnus将请求吞吐量提高了234%,并将响应时间缩短了89.7%。这一显著的性能增强证明了利用生成长度预测来优化LMaaS中批处理服务的有效性。