Continuum: Efficient and Robust Multi-Turn LLM Agent Scheduling with KV Cache Time-to-Live
Hanchen Li, Qiuyang Mang, Runyuan He, Qizheng Zhang, Huanzhi Mao, Xiaokun Chen, Alvin Cheung, Joseph Gonzalez, Ion Stoica
代理 LLM 应用程序将 LLM 生成请求与工具调用交错。 这些工具调用通过在LLM请求之间创建暂停来打破工作流程的连续性,为服务系统带来许多挑战,特别是在多转弯场景下。 每次暂停都可能导致KV缓存驱逐和额外的等待时间,然后输入以下LLM请求的连续批次。 由于每次呼叫都会发生这些暂停,因此随着代理程序的转号增长,这个问题变得越来越严重。 以前的工作要么未能包含来自工具调用的信息,驱逐导致重复预填充或加载的KV缓存,要么忽略了多转程序的连续性,在转弯之间创建等待时间,从而增加每次请求的延迟。 我们介绍了Continuum,这是一个服务系统,通过将工具感知KV缓存超时与程序级调度相结合,优化多转代理工作负载的工作完成时间。 通过预测代理工作流程中的工具调用持续时间,Continuum 选择性地将 KV 缓存固定在 GPU 内存中,并根据总转数进行实时值。 当与程序级先到先发服务相结合时,Continuum可防止调度气泡,保持多转连续性,并优化复杂代理工作流程的吞吐量。 通过建模工具调用和代理程序连续性的可变性,Continuum优于最先进的基线。 我们对Llama-3.1 8B/70B模型对实际代理工作负载(SWE-Bench和BFCL)的评估表明,Continuum显着提高了平均作业完成时间,并且在不同的硬件设置和DRAM卸载方案中保持性能。 预览代码可在: https://github.com/Hanchenli/vllm-continuum
Agentic LLM applications interleave LLM generation requests with tool calls. These tool calls break the continuity of the workflow by creating pauses between LLM requests, bringing many challenges for the serving system, especially under multi-turn scenarios. Each pause potentially causes KV cache eviction and extra waiting time before entering the continuous batch for the following LLM request. Since these pauses happen for each call, this problem becomes increasingly severe as turn number grow...