← 最新论文
🤖 machine learning

FlashTrie: A GPU-Accelerated Constrained Beam Search for Generative Retrieval

FlashTrie 是一个通过采用位压缩字典树布局和协作式 CUDA 内核来消除 CPU 瓶颈,从而优化生成式检索中受限束搜索的 GPU 加速系统,在大型商业搜索应用中实现了高达 24 倍的加速和 0.71% 的营收提升。

原作者: Dakshitha Anandakumar, Anurag Mukkara, Wenxiang Hu, Jiusheng Chen, M Akash Kumar, Ting Ye, Qiang Lou, Jian Jiao

发布于 2026-07-14
📖 1 分钟阅读☕ 轻松阅读

原作者: Dakshitha Anandakumar, Anurag Mukkara, Wenxiang Hu, Jiusheng Chen, M Akash Kumar, Ting Ye, Qiang Lou, Jian Jiao

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象一下,你是一个超级聪明的机器人,正试图根据刚刚听到的一个问题,写出一份秘密代码列表(比如“DocID: 4592”)。但这里有一个限制:你只能编写那些确实存在于一本拥有 8 亿条有效条目的巨大、预先批准的电话簿中的代码。如果你猜了一个不在书中的代码,就算失败。

很长一段时间以来,机器人都是通过向一位非常快速、非常有条理的图书管理员(运行在标准计算机芯片或 CPU 上)询问来完成这项工作的,让它检查每一个猜测。但随着猜测列表的增长,图书管理员不堪重负。检查电话簿变成了一场交通拥堵,导致速度变慢。机器人必须一步一步地排队等待,看它的猜测是否被允许。

FlashTrie 出现了。微软和英伟达的研究人员决定解雇这位图书管理员,并将整本 8 亿条条目的电话簿直接移入机器人的超高速、高带宽内存(GPU)中。但他们不仅仅是移动了这本书;他们重新构建了它。

“位填充”电话簿的魔力

把旧的电话簿想象成一个巨大的图书馆,其中的每一本书都存放在一个巨大的、浪费了很多空间的空房间里。FlashTire 缩小了这些书的体积。它使用了一种被称为“位压缩”(bit compression)的聪明技巧,将信息紧紧挤压在一起,就像高效地打包行李一样,能将 8 亿个关键词压缩到仅 3.1 GB 的空间内。这个体积足够小,可以完全放入机器人的高速内存中,因此它永远不需要等待缓慢的外部硬盘来获取页面。

协作之舞

在旧系统中,机器人会做一个猜测,询问图书管理员进行检查,等待答案,然后做出另一个猜测,如此循环。这是一个孤独的、顺序的过程。

FlashTrie 改变了游戏规则。它使用了一个“协作式 CUDA 核函数”(cooperative CUDA kernel),这就像一个拥有 512 名舞者(线程)在舞池中完美同步协作的巨大舞池。

  • 扩张(The Expansion): 它不再是一个人检查一个猜测,而是数百名舞者同时检查数千个猜测。
  • 验证(The Validation): 它们使用“并行二分查找”(一种超快速的查找方式)来查看猜测是否与电话簿匹配。
  • 修剪(The Pruning): 如果一个猜测不好,它们会立即将其丢弃。如果是好的,它们就会保留。

因为一切都发生在舞池(GPU)上,而不需要机器人在每一步之后都停下来与主计算机(CPU)交谈,整个过程变得异常迅速。

结果:速度与智慧

团队在 8 亿个关键词 的库上测试了该系统。

  • 速度: 当他们增加猜测的数量(即“束宽/beam width”)到 1,000 时,旧的 CPU 系统大约需要 46 毫秒,并且随着列表增长而变慢。FlashTrie 则将时间保持在 3 毫秒 以内(具体而言,平均为 1.91 毫秒,且最慢的 1% 也低于 3.31 毫秒)。
  • 提升: 这意味着 FlashTrie 比高度优化的 CPU 版本快了高达 24 倍
  • 质量: 至关重要的是,变快并不意味着牺牲准确性。FlashTrie 找到的正确代码与慢速系统一样多。事实上,由于 FlashTrie 非常快,机器人可以在不突破时间限制的前提下,检查 600 个猜测 而不仅仅是 200 个

现实世界的影响:金钱测试

研究人员不仅在计算机实验室进行了测试。他们在一个真实的、实时的商业搜索引擎(即你可能用来寻找信息的搜索工具)中测试了 FlashTrie。他们在不同国家进行了为期 16 天 的实验。

  • 通过使用 FlashTrie 来检查更多猜测,搜索引擎展示了更好的广告。
  • 这带来了 0.71% 的收入增长(广告带来的收益)。
  • 同时,对于英文查询,点击率增加了 0.17%;对于非英文查询,点击率增加了 0.20%
  • 重要的是,广告质量并未下降;“缺陷率”(显示的错误广告)保持不变。

FlashTrie 不是什么

值得注意的是,这篇论文明确指出了哪些方法在此处不起作用或是不需要的。研究人员明确排除在 GPU 上使用旧式的“基于指针的”(pointer-based)库,因为它们会导致过多的混乱并减慢舞者的速度。他们还表明,如果只是简单地将旧系统移动到 GPU 而不重新设计数据结构(例如使用“线性探测/Linear-probe”方法),其速度会比他们的新方法慢 71 到 209 倍。这种提速来自于电话簿的具体设计和这种“舞蹈”方式,而不仅仅是使用了更快的硬件。

底线

FlashTrie 证明了你不必在速度和准确性之间做选择。通过重新设计如何存储“电话簿”以及如何进行“检查”,他们将一个缓慢的、顺序的瓶颈变成了一个快速的、并行的派对。这使得机器人能够在大脑中进行更大规模的思考(检查更多选项)并保持极高的速度,同时仍能满足实时互联网搜索所需的严格时间限制。该系统的代码将在评审过程结束后向公众发布,以便他人尝试这种全新的搜索方式。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →