江苏纬信网站建设,thinkcmf 做企业网站,在wordpress上下载的模板咋用,优化营商环境心得体会个人常见分词器tokenizer
大模型中的分词器#xff1a;BPE、WordPiece、Unigram LM、SentencePiece
Byte Pair Encoding (BPE)
OpenAI 从GPT2开始分词就是使用的这种方式#xff0c;BPE每一步都将最常见的一对相邻数据单位替换为该数据中没有出现过的一个新单位#xff0c;反…常见分词器tokenizer
大模型中的分词器BPE、WordPiece、Unigram LM、SentencePiece
Byte Pair Encoding (BPE)
OpenAI 从GPT2开始分词就是使用的这种方式BPE每一步都将最常见的一对相邻数据单位替换为该数据中没有出现过的一个新单位反复迭代直到满足停止条件。
字节对编码Byte Pair Encoding, BPE是一种最初为通用数据压缩设计的算法在自然语言处理NLP中被重新用作一种子词subword分词方法。它因用于现代NLP模型如OpenAI的GPT和其他基于变换器transformer的架构而广为人知。
在NLP中使用BPE的主要思想是从大量文本语料库开始然后迭代地将出现频率最高的字节或字符对组合起来形成新的、更长的字节或字符序列。这个过程通过合并常见的字符对来减少整个语料库的复杂性并且能够捕捉到一些词汇的内部结构这对于处理词形变化丰富的语言尤其有用。在语言模型的训练过程中BPE允许模型处理未在训练集中直接见过的单词因为它可以通过已知的子词单元来构造这些单词。
WordPiece
bert用的是wordpiece, wordpiece算法可以看作是BPE的变种。不同的是WordPiece基于概率生成新的subword而不是下一最高频字节对。WordPiece算法也是每次从词表中选出两个子词合并成新的子词。BPE选择频数最高的相邻子词合并而WordPiece选择使得语言模型概率最大的相邻子词加入词表。 WordPiece的工作原理如下 从词汇表中的所有单词开始。 使用给定的词汇大小作为限制迭代地选择最佳的单词或字符序列进行合并。 在每次迭代中选择能最大化模型的语言概率的合并。 这个过程会持续直到词汇表达到预设的大小。 Unigram LM
ULM是另外一种subword分隔算法它能够输出带概率的多个子词分段。它和 BPE 以及 WordPiece 从表面上看一个大的不同是前两者都是初始化一个小词表然后一个个增加到限定的词汇量而 Unigram Language Model 却是先初始一个大词表接着通过语言模型评估不断减少词表直到限定词汇量。
SentencePiece
SentencePiece它是谷歌推出的子词开源工具包其中集成了BPE、ULM子词算法。除此之外SentencePiece还能支持字符和词级别的分词。
SentencePiece主要解决了以下三点问题
以unicode方式编码字符将所有的输入英文、中文等不同语言都转化为unicode字符解决了多语言编码方式不同的问题。 将空格编码为‘_’ 如’New York’ 会转化为[‘▁’, ‘New’, ‘▁York’]这也是为了能够处理多语言问题比如英文解码时有空格而中文没有 这种语言区别 优化了速度如果您实时处理输入并对原始输入执行标记化则速度会太慢。 SentencePiece 通过使用 BPE 算法的优先级队列来加速它来解决这个问题以便您可以将它用作端到端解决方案的一部分。