💬 NLP
Peek2: Regex-free Byte-level Byte-Pair Encoding Pretokenizer for LLM Inference on Edge Devices
本文介绍了 Peek2,这是一种针对字节级 BPE 的高度优化且无需正则表达式的预分词器,在保持与基于 cl100k 的标准分词器输出完全一致的同时,在边缘设备上实现了高达 2.48 倍的微基准测试吞吐量提升和 1.14 倍的整体编码速度提升。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下,你正试图给朋友寄一封长信,但你的朋友只理解简短、特定的代码词。在寄出信件之前,你必须将句子拆解成这些代码词。这个过程称为分词(tokenization),也是 GPT-3 或 LLaMa 等计算机理解人类语言的方式。
你正在阅读的这篇论文介绍了一种名为Peek2的新工具。以下是其工作原理的简明解释:
问题所在:“正则表达式(Regex)”造成的交通堵塞
目前,大多数计算机使用一种称为**正则表达式(Regex)**的方法将文本拆解为这些代码词。可以把 Regex 想象成俱乐部入口处一位极其严格、复杂的保安。
- 保安手中有一份庞大的规则清单(分支)。
- 当一个人(一个字母)到来时,保安会先对照规则 1 进行检查。如果不匹配,就检查规则 2。如果仍失败,则检查规则 3,依此类推。
- 这种“检查、失败、再检查”的过程非常缓慢,尤其是在笔记本电脑或平板电脑等小型低功耗设备(边缘设备)上。这就像保安每次有人走近时,都要翻动一本巨大的规则书让你等待。
解决方案:"Peek2"捷径
作者们开发了Peek2,这是一种执行该任务的新方法,速度更快且占用内存更少。
Peek2 不再让保安翻阅规则书,而是使用一张作弊表(查找表)。
- “窥视”(The Peek): Peek2 不是逐个字母检查,而是一次查看两个字母(就像提前窥视一样)。
- 分类: 它迅速将这两个字母归入简单的类别(例如:“是空格吗?”、“是数字吗?”、“是字母吗?”)。
- 作弊表: 由于只需查看两个类别,作者们制作了一个微小的 7x7 网格(就像数独棋盘)。你只需查看这两个类别,在网格中找到对应的方格,网格就会立即告诉你下一步该做什么。
类比:
- 旧方法(Regex): 你走到一个迷宫前。你尝试左边的门,锁着。你尝试右边的门,也锁着。你尝试后门,开了,你穿过去。然后,你对队伍中的每个人重复这一过程。
- 新方法(Peek2): 你走到一面墙前,墙上挂着一张巨大的单一地图。你指向自己的位置,地图立即画出一条通往出口的路径。无需猜测,没有锁着的门,只有一条直接的路径。
这为何重要?
论文声称,通过将“迷宫”替换为“地图”,他们使该过程快得多:
- 速度: 在某些测试中,仅在拆解阶段就快了2.48 倍。
- 整体: 当考虑将文本转换为代码词的全部工作时,整体速度提高了约14%。
- 准确性: 它产生的结果与旧方法完全相同。这是一种“即插即用”的替代方案,意味着你可以用新保安替换旧保安,而无需更改其他任何内容或破坏系统。
局限性(注意事项)
论文诚实地说明了该工具不能做什么:
- 针对特定设备: 它是在台式计算机上测试的。作者希望它也能在手机上运行,但尚未证实这一点。
- 针对特定模型: 它适用于使用"cl100k"风格(如 GPT-3 和 LLaMa-3)的模型。它并不能神奇地修复所有现有的 AI 模型。
- 保留缺陷: 旧方法存在一些奇怪的错误(例如错误地拆分单词)。由于 Peek2 被设计为精确复制旧方法的行为,因此它保留了这些相同的错误。要修复这些错误,需要重新训练 AI 模型,这比仅仅更换工具要复杂得多。
简而言之: Peek2 是一种更智能、更快速的文本切分方法,专为 AI 设计,旨在在日常设备上流畅运行,而无需超级计算机。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。