Spaces:
Running
Running
File size: 1,499 Bytes
751936e ef8594d f4973d4 751936e ef8594d 751936e ef8594d 751936e ef8594d 751936e f4973d4 751936e |
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 26 27 28 29 30 31 32 33 34 35 |
"""
依赖 torch tiktoken
依赖 transformer 4.31.0 及以上,
https://huggingface.co/tangger/Qwen-7B-Chat Qwen官方模型临时下架了,这个是备份
https://github.com/QwenLM/Qwen/blob/main/tokenization_note_zh.md
"""
import os
from transformers import AutoTokenizer
CURRENT_DIR = os.path.dirname(os.path.abspath(__file__))
TOKENIZER_DIR = os.path.join(CURRENT_DIR, "Qwen-7B-Chat")
# 请注意:分词器默认行为已更改为默认关闭特殊token攻击防护。
# tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen-VL-Chat", trust_remote_code=True)
tokenizer = AutoTokenizer.from_pretrained(TOKENIZER_DIR, trust_remote_code=True)
tokenizer.comments = "在gpt4词典基础上,删除了100个多数字token,增加10000中文词token;并优化了special_token的分词"
# https://huggingface.co/Qwen/Qwen-7B-Chat#%E6%A8%A1%E5%9E%8B%E7%BB%86%E8%8A%82%EF%BC%88model%EF%BC%89
# 该词表在GPT-4使用的BPE词表cl100k_base基础上,对中文、多语言进行了优化,在对中、英、代码数据的高效编解码的基础上,
# 对部分多语言更加友好,方便用户在不扩展词表的情况下对部分语种进行能力增强。 词表对数字按单个数字位切分。
def test():
encoding = tokenizer.encode("测试华为手机10086 8个空格")
for token_id in encoding:
token = tokenizer.convert_ids_to_tokens([token_id])[0].decode("utf-8")
print(token_id, ":", token)
if __name__ == "__main__":
test() |