文章目录
- 1 tokenization是什么
- 2 Tokenization方法简介
-
- 2.1 单词级的Tokenization
- 2.2 子词Tokenization技术
- 2.3 举例说明
-
- 2.3.1 字符级别
- 2.3.2 词语级别
- 2.3.3 子词级别
- 3 训练自己的Tokenizer
-
- 3.1 下载数据集
- 3.2 huggingface的Tokenizer实现
- 3.3 my-tokenizer.json字段说明
- 3.4 验证一下tokenizer的结果
- 3.5 使用AutoTokenizer
-
- 3.5.1 tokenizer_config.json
- 3.5.2 加载使用分词器示例一
- 3.5.3 加载使用分词器示例二
- 4 问题及解决
-
- 4.1 untagged enum ModelWrapper
- 5 参考附录
1 tokenization是什么
任何一段文本,输入给模型,都是要转换成一串embedding。
这个过程简单概括为:
(1)分词,并把词转换为token(即词的ID)
(2)token转换成embedding
而tokenization就是在做这第一步。
而对于第二步就是常见的Embedding查表操作,即根据token_id的值,去Embedding矩阵中查找第token_id行的数据作为embedding。
对于以下文本:你好,我的小名是小明
2 Tokenization方法简介
子词Tokenization(可以理解为分词)在很多SOTA NLP模型上得到广泛的使用,包括BERT和GPT-3。
它能很有效的处理未登陆词。
2.1 单词级的Tokenization
假设我们有一个训练数据集。
我们从这个训练数据集中构建一个词表。
为了构建该词表,我们将数据集中的