SentencePiece:pieces、字节编码、Unicode字符【LLaMA-7b的分词器共32002个piece】【Chinese-LLaMA-Alpaca中文分词器共20000个piece】

SentencePiece 首先将所有输入转换为 unicode 字符。这意味着它不必担心不同的语言、字符或符号,可以以相同的方式处理所有输入;

  1. 空白也被当作普通符号来处理。Sentencepiece显式地将空白作为基本标记来处理,用一个元符号 “▁”( U+2581 )转义空白,这样就可以实现简单地decoding;

  2. Sentencepiece 可以直接从 raw text 进行训练;

  3. 支持 BPE 和 UniLM 训练方法。

一、Chinese-LLaMA-Alpaca合并分词器代码

"""
词表扩充
-在通用中文语料上训练了基于sentencepiece的20K中文词表并与原版LLaMA模型的32K词表进行合井
-排除重复的token后, 得到的最终LLaMA词表大小为49953
- 需要注意的是, 在fine-tune阶段Alpaca比LLaMA多一个pad token, 所以中文Alpaca的词表大小为49954
脚本运行方式如下:
python merge_tokenizers.py \ 
--llama_tokenizer_dir llama_tokenizer_dir \ 
--chinese_sp_model_file chinese_sp_model_file
"""

import os
import re
os.environ["PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION"]="python"
from transformers import LlamaToken

猜你喜欢

转载自blog.csdn.net/u013250861/article/details/132249411