我最近读了 GPT2,论文中写道:
在添加任何多符号标记之前,这将导致基础词汇量超过 130,000 个。与 BPE 经常使用的 32,000 到 64,000 个标记词汇表相比,这个数字太大了。相比之下,BPE 的字节级版本仅需要大小为 256 的基本词汇表。
我实在是听不懂这句话。Unicode 表示的字符数是 130K,但是如何将其减少到 256 个呢?剩下的约 129K 个字符在哪里?我缺少什么?字节级 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字节是从哪里来的呢?我不知道逻辑以及如何得出这个结果。
我重新整理一下我的问题,更详细一些:
由于我对计算机体系结构和编程知之甚少,如果我遗漏了什么,请告诉我。
真诚的,谢谢你。