GPUTOK: GPU Accelerated Byte Level BPE Tokenization

本文提出了 GPUTOK,一种基于 GPU 加速的字节级 BPE 分词器,它在保持与 CPU 版本输出一致性的同时,显著提升了长上下文场景下的分词速度,为百万级 token 的大语言模型推理提供了更高效的解决方案。

Venu Gopal Kadamba, Kanishkha Jaisankar

发布于 2026-03-04
📖 1 分钟阅读☕ 轻松阅读

Each language version is independently generated for its own context, not a direct translation.

这篇论文介绍了一个名为 GPUTOK 的新工具,它的核心任务是把“把文字变成机器能读懂的数字”这个过程(专业术语叫分词,Tokenization)从传统的“慢速 CPU"搬到了“高速 GPU"上。

为了让你轻松理解,我们可以把大语言模型(LLM)想象成一个超级大厨,而把输入的文字想象成原材料

1. 现在的痛点:大厨在等切菜工

  • 场景:以前,大厨(GPU)非常强壮,能瞬间炒出一万道菜。但是,在炒菜之前,需要有人把蔬菜切好、洗好、分类(这就是分词)。
  • 问题:以前这个切菜的工作(分词)是由一个单手的切菜工(CPU)在做的。这个切菜工很仔细,但速度很慢,而且一次只能切一棵菜。
  • 后果:当大厨(GPU)准备好要大展身手时,切菜工还在慢吞吞地切。结果就是,大厨大部分时间都在发呆等待,昂贵的显卡资源被浪费了,用户等待回复的时间变长了。特别是当我们要处理像整本书那么长的文章时,这个等待时间简直让人抓狂。

2. GPUTOK 的解决方案:组建“切菜机器人军团”

这篇论文的作者们(纽约大学的学生)想出了一个办法:既然切菜工太慢,那我们就把切菜的工作也交给大厨所在的“超级厨房”(GPU)来做!

他们开发了一个叫 GPUTOK 的工具,它就像是一个由成千上万个微型机器人组成的切菜军团,专门在 GPU 上工作。

它是如何工作的?(核心比喻)

想象一下,要把一段长文字变成机器能懂的“代码块”(Token),规则是:如果两个相邻的词经常一起出现,就把它们合并成一个新词。

  • 传统方法(CPU):像是一个人在排队,先检查第 1 和第 2 个词,合并;再检查第 2 和第 3 个……像蜗牛一样一步步来。
  • GPUTOK 方法(GPU)
    1. 全员出动:它把文字切成小块,派出一万个机器人同时工作。
    2. 并行检查:机器人 A 检查第 1、2 个词,机器人 B 检查第 3、4 个词……大家同时找可以合并的词。
    3. 快速合并:找到可以合并的,大家同时动手,把两个词变成一个。
    4. 重复直到完成:这个过程重复几次,直到所有词都合并完毕。

3. 他们做了哪些“黑科技”?

为了让这个“机器人军团”既快又准,作者们用了几个聪明的招数:

  • 招数一:严格的“排队规则” (GPT-2 兼容性)
    以前的 GPU 分词工具为了求快,有时候会“乱合并”,导致切出来的菜和大厨习惯的不一样(比如把“苹果”和“派”合并成了“苹果派”,但大厨其实想分着吃)。
    GPUTOK 的突破:它虽然用了机器人军团,但严格遵守大厨(GPT-2 模型)的原始规则。它确保机器人合并的顺序和那个慢吞吞的切菜工(CPU)是一模一样的。这样,大厨就不需要重新学习怎么炒菜了,直接就能用。

  • 招数二:聪明的“传送带” (优化内存)
    在合并过程中,词的数量会变少(两个变一个)。这就好比传送带上的箱子变少了,需要把后面的箱子往前挪。
    作者设计了一种双缓冲传送带机制,让机器人挪箱子时不撞车、不等待,效率极高。

  • 招数三:现成的“工具箱” (cuCollections)
    他们没有从零造轮子,而是直接使用了 NVIDIA 提供的现成高效工具(cuCollections),就像用现成的顶级刀具,而不是自己磨刀。

4. 效果怎么样?(成绩单)

作者拿《傲慢与偏见》这种长书做测试,结果非常惊人:

  • 短文章:如果文章很短(比如几百个字),CPU 切菜工其实挺快,因为机器人军团“启动”需要时间,这时候 CPU 反而有优势。
  • 长文章:一旦文章变长(超过 2000 个字),GPUTOK 就像开了挂
    • 比目前最流行的 CPU 工具(tiktoken)快 1.7 倍
    • 比老牌工具(HuggingFace)快 7.6 倍
    • 这意味着,以前处理长文档需要等很久,现在瞬间就能完成。

5. 还有什么小问题?

虽然机器人军团跑得飞快,但作者发现了一个瓶颈:“领工资”的时间太长了
在 GPU 上,每次机器人开始干活前,系统都要花很多时间去“分配内存”(就像每次开工前都要去仓库领工具、发工资)。这部分时间占了总时间的 70%-80%。
未来的改进:如果能让机器人“自带干粮”(使用内存池技术,减少重复分配),速度还能再飞起来。

总结

GPUTOK 就像是为大语言模型配备了一支超级高效的切菜机器人军团。它既保证了切出来的菜(分词结果)和传统方法一模一样(不会搞砸),又极大地缩短了等待时间。

这对我们意味着什么?
以后当我们和 AI 聊天,或者让 AI 读整本小说、写长报告时,等待时间会大幅缩短,AI 的反应会更快,而且能处理更长的内容,而不会让昂贵的显卡资源在“发呆”中被浪费。