问题:
./main -m ./models/book_q4_K_M -n 128
报错:
terminate called after throwing an instance of 'std::out_of_range' what(): unordered_map::at
解决方案:
python convert.py models/llama3-8B/ --vocab-type bpe
报错:
Found vocab files: {'spm': None, 'bpe': PosixPath('models/llama3-8B/vocab.json'), 'hfft': PosixPath('models/llama3-8B/tokenizer.json')} Loading vocab file PosixPath('models/llama3-8B/vocab.json'), type 'bpe' Vocab info: <BpeVocab with 128000 base tokens and 256 added tokens> Special vocab info: <SpecialVocab with 280147 merges, special tokens {'bos': 128000, 'eos': 128009, 'pad': 128009}, add special tokens unset>
(py310) root@quin-ubuntu:~/code/llama.cpp# ls models/llama3-8B/
config.json LICENSE model-00003-of-00004.safetensors README.md tokenizer.json
generation_config.json model-00001-of-00004.safetensors model-00004-of-00004.safetensors special_tokens_map.json
ggml-model-f16.gguf model-00002-of-00004.safetensors model.safetensors.index.json tokenizer_config.json
发现没有 vocab.json 文件
复制 token.json 重命名为 vocab.json
vocab.json
和tokenizer.json
都是与自然语言处理模型中的令牌器(tokenizer)相关的配置文件,但它们包含的信息和用途可能有所不同。
vocab.json:
这个文件通常包含了模型的词汇表(vocabulary),即模型能够理解和生成的所有单词或子词单元的列表。
词汇表文件可能包括每个词汇条目的索引、词汇本身以及相关的统计信息(如频率)。
在基于BPE(Byte Pair Encoding)或其他子词分割算法的令牌器中,
vocab.json
文件可能包含了所有合并操作(merges)的列表,这些合并操作定义了如何将字符组合成子词单元。tokenizer.json:
这个文件可能包含了令牌器的完整配置,包括词汇表、特殊令牌(如[CLS]、[SEP]、[UNK]等)、分割规则、预处理和后处理步骤等。
在某些框架或模型中,
tokenizer.json
可能是一个更全面的配置文件,它不仅包含了词汇表信息,还可能包括了如何将文本转换为模型输入的详细说明。这个文件可能用于保存和加载令牌器的配置,以便在不同的环境中重用相同的令牌化过程。
在实际应用中,
vocab.json
和tokenizer.json
的具体内容和格式可能取决于所使用的框架和模型。例如,在Hugging Face的Transformers库中,tokenizer.json
文件通常包含了令牌器的所有配置信息,而vocab.json
可能只是词汇表的一部分。如果你遇到需要使用这些文件的情况,你应该查阅相关模型或框架的文档,以确保你理解每个文件的确切用途和内容,并正确地使用它们。如果你的模型或脚本期望找到
vocab.json
文件,但你只有tokenizer.json
,你可能需要检查这两个文件是否可以互换,或者是否需要对脚本进行调整以适应现有的文件。
cp models/llama3-8B/tokenizer.json models/llama3-8B/vocab.json
重新转换:
# 转换模型
python convert.py models/llama3-8B/ --vocab-type bpe
# 量化模型
./quantize models/llama3-8B/ggml-model-f32.gguf ./models/book-Q4_K_M.gguf Q4_K_M
# 运行模型
./main -m ./models/book-Q4_K_M.gguf -n 128