complete tokenizer
This commit is contained in:
@@ -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,我们可以更好地处理文本数据,提高模型的泛化能力和效果。
|
||||
Reference in New Issue
Block a user