ORCA:基于持续批处理的LLM推理性能优化技术详解

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 大语言模型(LLMs)的批处理优化面临诸多挑战,尤其是由于推理过程的迭代性导致的资源利用不均问题。ORCA系统通过引入迭代级调度和选择性批处理技术,有效解决了这些问题,大幅提高了GPU资源利用率和系统吞吐量,相比FasterTransformer实现了最高37倍的性能提升。

大语言模型(LLMs)推理过程中的批处理优化面临显著挑战,这主要源于其推理过程的迭代特性。核心问题在于批处理中的各个请求完成时间存在差异,这导致资源释放和新请求整合的复杂性显著提高,特别是在处理不同完成阶段的请求时。当批处理中序列的生成长度差异较大时,GPU资源利用率往往不够理想。如下图所示,序列1、3和4中,结束符号(EOS)之后的白色区块直观地展示了GPU资源的闲置状态,凸显了当前批处理方法的效率损失。

ORCA系统创新性地提出了持续批处理概念,通过引入迭代级调度和选择性批处理机制,有效解决了大语言模型批处理中的关键技术挑战。

特性1 — 迭代级调度

下图详细展示了基于迭代级调度的ORCA系统架构及其工作流程。ORCA系统对外提供标准化接口(支持HTTPS或gRPC协议)用于处理推理请求。系统将接收到的请求存储于请求池中,由调度器进行统一监控和管理。调度器的核心职责包括:从请求池中筛选请求、调度执行引擎执行模型迭代、接收引擎输出的标记序列,并据此更新请求池状态。执行引擎负责进行张量运算,支持跨多GPU和多机器的并行处理能力。与传统批处理方法不同,ORCA的调度器能够在每次迭代中动态调整处理请求的组合,提供了更灵活的请求处理机制。当某个请求处理完成后,系统将其从请求池中移除,并通过接口返回响应结果。这种方法突破了传统批处理必须等待所有请求完成全部迭代的限制。

特性2 — 选择性批处理

选择性批处理技术通过在张量运算中实现差异化的批处理策略,显著提升了模型处理的灵活性。这种创新方法特别适用于处理形状不规则的输入张量场景,这类张量通常难以直接合并为统一的大规模张量进行批处理。在非注意力机制的矩阵乘法运算和层归一化等操作中,选择性批处理采用将不规则张量重构为无批处理维度的二维结构的方式,实现统一的大规模矩阵计算。这种优化策略的可行性基于这些操作的逐标记处理特性,使得来自不同请求的标记可以等同处理。但是对于需要请求专属键值对的注意力机制操作,系统采用分离式批处理策略,确保每个请求独立处理。注意力操作完成后,输出结果会重新合并为统一张量用于后续处理。ORCA通过K/V管理器持久化存储先前注意力操作产生的键值对,使增量请求能够在多轮迭代中复用这些信息。

分布式架构设计

ORCA系统在Transformer模型并行化方面融合了两种关键技术:层内并行与层间并行。层内并行技术(这也是FasterTransformer采用的方法)主要针对矩阵乘法运算(包括线性变换和注意力机制)及其参数在多GPU间进行分配。而层间并行则致力于在多个GPU之间分配Transformer层。ORCA采用均衡分配策略,确保每个GPU负责处理相同数量的Transformer层。例如,对于一个4层GPT模型,可以先划分为2个层间并行分区,每个分区再细分为3个层内并行分区,最终形成6个GPU的协同计算架构。

FasterTransformer是NVIDIA开发的开源优化库,专注于加速Transformer模型,支持BERT、GPT-2、GPT-J和T5等主流架构。目前,FasterTransformer的技术演进已转移至TensorRT-LLM平台。

ORCA执行引擎采用分布式执行策略,将工作进程分配到不同物理机器上,每个工作进程负责管理一个或多个控制GPU的CPU线程。在具体实现中,每个工作进程专注于处理模型的特定层间分区,而线程数量则由层内并行度决定。当系统为一批请求调度模型迭代时,引擎主控程序首先向第一个工作进程(Worker1)传递必要的计算信息,包括标记序列和控制指令。Worker1随后将这些信息分发给其管理的GPU控制线程,触发相应的GPU计算内核。同时,Worker1采用非阻塞方式将控制指令转发给下一个工作进程(Worker2)。最后一个工作进程在确保其GPU任务全部完成后,负责汇总输出标记并将结果返回给引擎主控程序。这种架构设计实现了跨设备、跨机器的高效分布式计算。

调度算法设计

ORCA调度器采用基于到达时间的优先级机制,在最大批处理大小约束下动态选择请求进行处理。系统在首次调度请求时会预分配存储键值对所需的内存空间。调度过程中

Select

函数确保严格遵循请求的时间优先级进行批次选择。调度器通过评估最大标记数需求,动态验证新请求的内存资源可用性。在确认内存充足的情况下,系统保证为请求的完整生命周期预留必要的键值对缓存空间。整个调度机制采用并发处理模式,支持请求的动态添加和完成请求的及时移除。

ORCA调度器通过任务流水线化技术优化工作进程执行效率。系统不采用传统的串行批次处理模式,而是维持并发运行批次数与工作进程数的动态平衡。这种策略确保了工作进程的持续高效运转。例如在三工作进程配置下,最大批处理大小为二的场景中,调度器可以同时处理多个批次(如AB、CD、EF)。在调度第一个批次(AB)后,系统立即安排后续两个批次(CD和EF)的处理,无需等待AB批次的完成。当AB批次处理完成后,如果这些请求仍具有时间优先性,则会被重新纳入调度流程。这种机制显著提升了系统的资源利用率和整体吞吐性能。

性能评估

得益于创新的迭代级调度和选择性批处理机制,ORCA系统在保持相同延迟水平的前提下,实现了相比FasterTransformer高达37倍的吞吐量提升,展现了显著的性能优势。

论文:

https://avoid.overfit.cn/post/b9a179b6cee448dba7ace15ac95cfe59

作者:Don Moon

相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
目录
相关文章
|
21天前
|
缓存 算法 关系型数据库
MIT韩松团队长上下文LLM推理高效框架DuoAttention:单GPU实现330万Token上下文推理
麻省理工学院韩松团队提出DuoAttention框架,旨在提高大型语言模型(LLM)处理长上下文的效率。该框架通过区分检索头和流式头,仅对检索头应用全键值缓存,减少内存消耗和计算时间,同时保持模型长上下文处理能力。实验结果显示,DuoAttention在多种模型架构上显著提升了推理效率,为LLM的实际应用提供了新可能。
50 14
|
25天前
|
自然语言处理 算法
RAG真能提升LLM推理能力?人大最新研究:数据有噪声,RAG性能不升反降
随着大型语言模型(LLM)在自然语言处理领域的广泛应用,检索增强生成(RAG)技术因能引入新知识和减少幻觉而受到关注。然而,RAG对LLM推理能力的实际提升效果仍存争议。中国人民大学的一项研究表明,RAG虽能辅助LLM推理,但在处理含噪信息和深度推理时面临挑战。为此,研究团队提出了DPrompt tuning方法,旨在解决噪声问题并提升RAG性能。
48 12
|
20天前
|
缓存 自然语言处理 API
Ascend推理组件MindIE LLM
MindIE LLM是基于昇腾硬件的大语言模型推理组件,提供高性能的多并发请求调度与优化技术,如Continuous Batching、PageAttention等,支持Python和C++ API,适用于高效能推理需求。其架构包括深度定制优化的模型模块、文本生成器和任务调度管理器,支持多种模型框架和量化方式,旨在提升大规模语言模型的推理效率和性能。
|
24天前
|
自然语言处理 资源调度 并行计算
从本地部署到企业级服务:十种主流LLM推理框架的技术介绍与对比
本文深入探讨了十种主流的大语言模型(LLM)服务引擎和工具,涵盖从轻量级本地部署到高性能企业级解决方案,详细分析了它们的技术特点、优势及局限性,旨在为研究人员和工程团队提供适合不同应用场景的技术方案。内容涉及WebLLM、LM Studio、Ollama、vLLM、LightLLM、OpenLLM、HuggingFace TGI、GPT4ALL、llama.cpp及Triton Inference Server与TensorRT-LLM等。
110 7
|
1天前
|
JSON 人工智能 算法
探索大型语言模型LLM推理全阶段的JSON格式输出限制方法
本篇文章详细讨论了如何确保大型语言模型(LLMs)输出结构化的JSON格式,这对于提高数据处理的自动化程度和系统的互操作性至关重要。
|
2月前
|
前端开发 机器人 API
前端大模型入门(一):用 js+langchain 构建基于 LLM 的应用
本文介绍了大语言模型(LLM)的HTTP API流式调用机制及其在前端的实现方法。通过流式调用,服务器可以逐步发送生成的文本内容,前端则实时处理并展示这些数据块,从而提升用户体验和实时性。文章详细讲解了如何使用`fetch`发起流式请求、处理响应流数据、逐步更新界面、处理中断和错误,以及优化用户交互。流式调用特别适用于聊天机器人、搜索建议等应用场景,能够显著减少用户的等待时间,增强交互性。
606 2
|
2月前
|
机器学习/深度学习 人工智能 运维
企业内训|LLM大模型在服务器和IT网络运维中的应用-某日企IT运维部门
本课程是为某在华日资企业集团的IT运维部门专门定制开发的企业培训课程,本课程旨在深入探讨大型语言模型(LLM)在服务器及IT网络运维中的应用,结合当前技术趋势与行业需求,帮助学员掌握LLM如何为运维工作赋能。通过系统的理论讲解与实践操作,学员将了解LLM的基本知识、模型架构及其在实际运维场景中的应用,如日志分析、故障诊断、网络安全与性能优化等。
97 2
|
2月前
|
机器学习/深度学习 数据采集 人工智能
文档智能 & RAG 让AI大模型更懂业务 —— 阿里云LLM知识库解决方案评测
随着数字化转型的深入,企业对文档管理和知识提取的需求日益增长。阿里云推出的文档智能 & RAG(Retrieval-Augmented Generation)解决方案,通过高效的内容清洗、向量化处理、精准的问答召回和灵活的Prompt设计,帮助企业构建强大的LLM知识库,显著提升企业级文档管理的效率和准确性。
|
22天前
|
机器学习/深度学习 人工智能 自然语言处理
深挖大模型幻觉!哈佛大学最新报告:LLM等价于众包,只是在输出网络共识
大型语言模型(LLM)如ChatGPT正改变人机交互,但在生成看似真实的错误信息方面存在“幻觉”问题。这种现象源于LLM依赖统计概率而非语义理解,导致在处理争议或冷门话题时易出错。研究显示,LLM的准确性高度依赖于训练数据的质量和数量。尽管如此,LLM仍具巨大潜力,需持续优化并保持批判性使用。
44 12
|
25天前
|
人工智能 自然语言处理
大模型在装傻!谷歌苹果最新发现:LLM知道但不告诉你,掌握知识比表现出来的多
在AI领域,大模型(LLM)展现出了惊人的进步,但在谷歌和苹果的最新研究中,发现这些模型有时会故意“装傻”,即使已知正确答案也不告知用户。这种“隐藏智慧”现象揭示了大模型可能具备超出表面表现的深层能力,对AI评估与应用提出了新挑战,同时也带来了设计更高效模型的新机遇。论文链接:https://arxiv.org/pdf/2410.02707
38 11