llama原始模型如何tokenize中文
【代码】llama原始模型如何tokenize中文。
·
加载分词器:
tokenizer = AutoTokenizer.from_pretrained(model_name_or_path)
model = LlamaForCausalLM.from_pretrained(model_name_or_path)
如图所示:
原理:
print('强'.encode('utf-8'))
print('终'.encode('utf-8'))
输出:
b'\xe5\xbc\xba'
b'\xe7\xbb\x88'
def han_to_hex_bytes(han):
# 将汉字“强”转换为UTF-8编码的字节序列
utf8_bytes = han.encode('utf-8')
print(utf8_bytes)
# 将每个字节的二进制表示形式转换为16进制表示形式
hex_bytes = ' '.join([hex(b).zfill(2) for b in utf8_bytes])
return hex_bytes
print(han_to_hex_bytes('强'))
b'\xe5\xbc\xba'
0xe5 0xbc 0xba
我们需要知道"强"的UTF-8编码是什么。UTF-8是一种变长编码,每个字符的编码长度不同。"强"的UTF-8编码是0xE5 0xBC 0xBA。
我们需要用三个UTF-8字节来表示"强"。由于每个UTF-8字节是由8个二进制位组成的,因此三个UTF-8字节总共有24个二进制位。我们可以将"强"的UTF-8编码转换成二进制形式,然后将前三个字节的二进制位拼接起来,得到最终的表示"强"的三个UTF-8字节的二进制形式。
具体来说,"强"的UTF-8编码0xE5 0xBC 0xBA的二进制形式是:
11100101 10111100 10111010
我们将前三个字节的二进制位拼接起来,得到:
111001011011110010111010
更多推荐
所有评论(0)