以 Qwen2.5-0.5B 模型为例,看一下具体都有哪些文件。
首先将 Hugging Face 上的模型拉下来 git clone https://huggingface.co/Qwen/Qwen2.5-0.5B
,如果模型太大的话,可以执行 git clone https://huggingface.co/Qwen/Qwen2.5-0.5B --depth 1
,只下载最新版本的模型就行了。
下载完能看到有以下文件:
config.json
merges.txt
tokenizer_config.json
generation_config.json
model.safetensors
tokenizer.json
LICENSE
README.md
vocab.json
其中最重要的就是 model.safetensors
了,保存了神经网络所有的参数,也是体积最大的文件。
config.json
、generation_config.json
中保存了模型的一些基础信息。
再来看一下几个跟文本的 tokenization 相关的文件,分别包含了以下内容:
vocab.json
token 与其序号的对应关系merges.txt
合并后的 token 字符串,比如词根teach
,对应的单词在这个文件中有6行对应的:Ġteach er
、Ġteach ing
、Ġteach ers
、Ġteach es
、Ġteach ings
、. teacher
tokenizer_config.json
tokenizer 的配置,包含了训练中用到的一些特殊字符的 token,比如<|im_start|>
、<|endoftext|>
tokenizer.json
包含了词表、merges 和特殊 token
如果仔细看一下 vocab.json
文件的内容,并不能找到中文字符对应的 token,但是 Qwen 模型是支持中文的,这是怎么处理的呢,原来这里还多加了一层编码。比如中文的“有”字,在文件中对应的字符是 ä¼ļ
对应的序号是 36993
,可以通过 tokenizer.convert_ids_to_tokens
方法来进行转换