BPE vs WordPiece Tokenization - 何时使用/哪个?

数据挖掘 机器学习 nlp 情绪分析 变压器 机器翻译
2021-09-30 19:25:58

选择 BPE 与 WordPiece 标记化之间的一般权衡是什么?什么时候一个比另一个更可取?两者的模型性能有什么不同吗?我正在寻找一个一般性的整体答案,并以具体示例为后盾。

2个回答

(这个答案最初是评论)

您可以在此处找到算法差异实际上,它们的主要区别在于 BPE 将 the@@放在标记的末尾,而 wordpieces 将 the##放在开头。主要的性能差异通常不是来自算法,而是具体的实现,例如,sentencepiece提供了一个非常快速的 BPE 的 C++ 实现。您可以在 Hugginface 的分词器中找到两者的快速 Rust 实现。

在 noe 的答案中添加更多信息:

BPE 和 WordPiece 之间的区别在于选择符号对以添加到词汇表的方式。WordPiece 不依赖于成对的频率,而是选择使训练数据的可能性最大化的一个。这意味着它从基本词汇表开始训练语言模型并选择具有最高可能性的对(对 = 基本词汇字符 + 最高概率生成的字符)。这对被添加到词汇中,语言模型再次在新词汇上进行训练。重复这些步骤,直到达到所需的词汇。