当前位置:   article > 正文

huggingface Tokenizers 官网文档学习:tokenizer训练保存与使用_huggingface训练自己的tokenizer

huggingface训练自己的tokenizer

前言

本文分享学习 huggingface Tokenizers 库记录。我分成了五大主题:

  • 从头快速训练一个 tokenzier
  • 如何使用预训练好的 tokenzier
  • Tokenization 四大过程详解
  • BERT tokenizer 训练保存编解码全流程
  • 语料库分批加载与处理

从头快速训练一个 tokenzier

准备数据

数据用wikitext-103 (516M of text) ,每行一条文本。下载并解压到本地

wget https://s3.amazonaws.com/research.metamind.io/wikitext/wikitext-103-raw-v1.zip
unzip wikitext-103-raw-v1.zip
  • 1
  • 2
开始训练

以BPE tokenizer为例,主要步骤是:实例化 BPE tokenizerBpeTrainer,调用 tokenizer.train 训练,调用 tokenizer.save 保存成json文件。

from tokenizers import Tokenizer
from tokenizers.models import BPE
from tokenizers.trainers import BpeTrainer
from tokenizers.pre_tokenizers import Whitespace

# Step 1:实例化一个空白的BPE tokenizer
tokenizer = Tokenizer(BPE(unk_token="[UNK]"))

# Step 2:实例化一个BPE tokenizer 的训练器 trainer 这里 special_tokens 的顺序决定了其id排序
trainer = BpeTrainer(
    special_tokens=["[UNK]", "[CLS]", "[SEP]", "[PAD]", "[MASK]"],
    min_frequency=1,
    show_progress=True,
    vocab_size=40000
)

# Step 3:定义预分词规则(比如以空格预切分)
tokenizer.pre_tokenizer = Whitespace()

# Step 4:加载数据集 训练tokenizer
files = [f"./wikitext-103-raw/wiki.test.raw"]
tokenizer.train(files, trainer)

# Step 5:保存 tokenizer 
tokenizer.save("./tokenizer-wiki.json")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

训练完后得到一个json文件,里面长这样:
在这里插入图片描述

加载并使用训练好的tokenizer
# 加载 tokenzier
tokenizer = Tokenizer.from_file("./tokenizer-wiki.json")

# 使用 tokenizer
sentence = "Hello, y'all! How are you 
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/281446?site
推荐阅读
相关标签