小编Inh*_*Yoo的帖子

为什么字节级 BPE 的词汇大小小于 Unicode 的词汇大小?

我最近读了 GPT2,论文中写道:

在添加任何多符号标记之前,这将导致基础词汇量超过 130,000 个。与 BPE 经常使用的 32,000 到 64,000 个标记词汇表相比,这个数字太大了。相比之下,BPE 的字节级版本仅需要大小为 256 的基本词汇表。

我实在是听不懂这句话。Unicode 表示的字符数是 130K,但是如何将其减少到 256 个呢?剩下的约 129K 个字符在哪里?我缺少什么?字节级 BPE 是否允许在不同字符之间复制表示?

我不明白其中的逻辑。以下是我的问题:

  • 为什么词汇量会减少?(从 130K 到 256)
  • BBPE(字节级BPE)的逻辑是什么?

详细问题

谢谢你的回答,但我真的不明白。假设我们有 13 万个独特的角色。我们想要(也是 BBPE 所做的)是减少这个基本(独特)词汇。每个 Unicode 字符可以利用 UTF-8 编码转换为 1 到 4 个字节。BBPE 的原始论文是这样说的(Neural Machine Translation with Byte-Level Subwords):

以字节级别表示文本并使用 256 字节集作为词汇表是此问题的潜在解决方案。

每个字节可以表示 256 个字符(位,2^8),我们只需要 2^17(131072)位来表示唯一的 Unicode 字符。那么,原论文中的256字节是从哪里来的呢?我不知道逻辑以及如何得出这个结果。

我重新整理一下我的问题,更详细一些:

  • BBPE 如何发挥作用?
  • 为什么词汇量会减少?(从 130K 到 256 字节)
    • 无论如何,我们总是需要 130K 的词汇空间。将唯一字符表示为 Unicode 和字节有什么区别?

由于我对计算机体系结构和编程知之甚少,如果我遗漏了什么,请告诉我。

真诚的,谢谢你。

unicode nlp utf-8

8
推荐指数
1
解决办法
2841
查看次数

标签 统计

nlp ×1

unicode ×1

utf-8 ×1