complete tokenizer

This commit is contained in:
KMnO4-zx
2024-08-11 21:45:57 +08:00
parent 001a87bdfa
commit f63e6895fa

View File

@@ -182,4 +182,39 @@ print(encoding.ids)
2使用 transformers 库加载 Tokenizer
首先我们
我们可以使用 transformer 库中的 `PreTrainedTokenizerFast` 来加载训练好的 Tokenizer。
```python
# 使用 transformers 库加载 Tokenizer
from transformers import PreTrainedTokenizerFast
# tokenizer_file 是训练好的 Tokenizer 文件路径
fast_tokenizer = PreTrainedTokenizerFast(tokenizer_file="tokenizer_test/llama-bpe-tokenizer.json", pad_token="<pad>", bos_token="<s>", eos_token="</s>", unk_token="<unk>")
fast_tokenizer.encode('how old are you?'), fast_tokenizer.decode(fast_tokenizer.encode('how old are you?'))
# ([2680, 1575, 1354, 2458, 34], 'how old are you?')
```
在这个例子中,我们使用 transformers 库中的 `PreTrainedTokenizerFast` 类加载训练好的 Tokenizer并使用 `encode()``decode()` 方法对文本进行分词和解码。
最后,我们可以将其保存为一个 `AutoTokenizer` 可以直接加载的格式。
```python
fast_tokenizer.save_pretrained("tokenizer_test/llama-bpe-tokenizer")
```
3使用 transformers.AutoTokenizer 加载 Tokenizer
```python
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("tokenizer_test/llama-bpe-tokenizer")
text = "I am 18 years old!"
tokenizer.encode(text), tokenizer.decode(tokenizer.encode(text))
# ([44, 1286, 1481, 1749, 1575, 4], 'I am 18 years old!')
```
OK到这里我们已经完成了 BPE Tokenizer 完整的训绋和使用流程。通过训练一个 Tokenizer我们可以更好地处理文本数据提高模型的泛化能力和效果。