Requests of a Feather Must Flock Together: Batch Size vs. Prefix Homogeneity in LLM Inference
本文介绍了 Feather,一种基于强化学习的前缀感知调度器,它利用轻量级的分块哈希树优化批处理大小与前缀同质性之间的权衡,通过降低 KV 缓存访问开销,相较于现有最先进调度器实现了 2 至 10 倍的大语言模型推理吞吐量提升。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下,你正在经营一个非常繁忙、高速运转的图书馆,其中一位图书管理员(GPU)正试图同时回答来自不同人(请求)的数千个问题。
在大语言模型(LLMs)的世界里,这位图书管理员每生成一个单词,都必须阅读一本巨大的“上下文”书(键值缓存)。该论文指出,当前组织这些问题的方式效率低下,因为它过于关注图书管理员一次回答了多少个问题,而不是这些问题有多相似。
以下是他们提出的解决方案 Feather 的故事,分解为简单的概念:
1. 问题:“拥挤的公交车”与“家庭团体”
目前,大多数系统试图将尽可能多的人塞进一辆公交车(一个“批次”)以提高行程效率。它们采用“先到先得”的规则。
- 问题所在: 如果你把 500 个陌生人塞进一辆公交车,他们都想前往 500 个不同的地方。司机不得不停靠 500 个不同的站点,不断改变方向。这既混乱又缓慢。
- 发现: 作者发现,如果你带上 100 个都住在同一条街上(共享一个“前缀”)的小团体,司机就可以沿着那条街直线行驶而无需停车。尽管公交车没有坐满,但行程要快得多,因为司机不必不停地转动方向盘。
关键洞察: 拥有一群前往同一目的地的小团体,比拥有一群前往不同目的地的大团体更好。这被称为前缀同质性(Prefix Homogeneity)。
2. 旧方法:“爬树者”
现有系统(如 SGLang)试图通过查看一棵巨大而复杂的家谱树(基数树)来寻找这些团体,看看谁拥有共同的祖先。
- 问题: 爬这棵树去寻找匹配项需要消耗计算机“大脑”(CPU)大量的时间和能量。事实上,爬树所花费的时间有时几乎与图书管理员实际回答问题所花费的时间一样长!这就像花了 10 分钟整理乘客,却只开了 10 分钟的车。
3. 解决方案:"Feather"
作者构建了一个名为 Feather 的新调度器,解决了这两个问题。
第一部分:“分块哈希树”(CHT)—— 智能清单
Feather 不使用爬那棵巨大的家谱树,而是采用了一种巧妙的捷径。
- 类比: 想象一下,与其检查一个人姓名的每一个字母,你只需检查其地址的前几个“分块”。
- 工作原理: Feather 将长文本分割成小块(chunks),并为每个块分配一个独特的“指纹”(哈希值)。它维护一份简单的列表,记录当前正在使用哪些指纹。
- 优势: 它可以立即发现:“哦,这个新请求与车上已有的团体拥有相同的指纹。”它的速度如此之快,以至于“CPU 大脑”几乎不需要费神。这就像使用条形码扫描仪,而不是阅读整本书来检查车票。
第二部分:“强化学习”(RL)—— 智能调度员
Feather 不仅能找到相似的团体,还能学习何时停止往公交车上添加人员。
- 困境: 如果你继续往公交车上添加人员,最终可能不得不添加一个住在不同街道的人。如果你添加了他,整个团体就会变得杂乱无章,速度也会下降。
- 学习过程: Feather 就像一个聪明的调度员,通过试错学会了这一点:“如果我再加一个人,我们可能会失去速度。让我们在速度仍然很快时发出这辆车,然后等待下一组。”
- 结果: 它动态地决定启动批次的最佳时机,在让公交车坐满和保持所有人都在同一条街上之间取得平衡。
4. 结果:加速图书馆
当作者测试 Feather 时:
- 速度: 当人们提出相似的问题时,它使系统的速度比当前最佳方法快了 2 到 10 倍。
- 安全性: 如果所有问题都完全不同(没有共享街道),Feather 不会感到困惑;它的表现与旧方法一样好。
- 效率: 它减少了计算机内存中的“交通堵塞”,这意味着图书管理员不必为了取书而频繁地来回奔跑。
总结
Feather 是一种组织 AI 请求的新方法。它不是将尽可能多的请求塞进单个批次,而是将相似的请求分组在一起(就像一个家庭前往同一个目的地),并使用一种超快速、低能耗的方法来寻找这些团体。它学会了何时停止向团体中添加人员,以保持行程顺畅快速。
该论文声称,这种方法无需昂贵的新型硬件,仅通过更智能地组织“交通”,就能显著加快 AI 的响应速度。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。