llama.cpp 转化 huggingface 模型失败 解决路径

问题:

./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.jsontokenizer.json 都是与自然语言处理模型中的令牌器(tokenizer)相关的配置文件,但它们包含的信息和用途可能有所不同。

  1. vocab.json:

    • 这个文件通常包含了模型的词汇表(vocabulary),即模型能够理解和生成的所有单词或子词单元的列表。

    • 词汇表文件可能包括每个词汇条目的索引、词汇本身以及相关的统计信息(如频率)。

    • 在基于BPE(Byte Pair Encoding)或其他子词分割算法的令牌器中,vocab.json 文件可能包含了所有合并操作(merges)的列表,这些合并操作定义了如何将字符组合成子词单元。

  2. tokenizer.json:

    • 这个文件可能包含了令牌器的完整配置,包括词汇表、特殊令牌(如[CLS]、[SEP]、[UNK]等)、分割规则、预处理和后处理步骤等。

    • 在某些框架或模型中,tokenizer.json 可能是一个更全面的配置文件,它不仅包含了词汇表信息,还可能包括了如何将文本转换为模型输入的详细说明。

    • 这个文件可能用于保存和加载令牌器的配置,以便在不同的环境中重用相同的令牌化过程。

在实际应用中,vocab.jsontokenizer.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
相关推荐
nju_spy1 天前
ToT与ReAct:突破大模型推理能力瓶颈
人工智能·大模型·大模型推理·tot思维树·react推理行动·人工智能决策·ai推理引擎
KG_LLM图谱增强大模型1 天前
[500页电子书]构建自主AI Agent系统的蓝图:谷歌重磅发布智能体设计模式指南
人工智能·大模型·知识图谱·智能体·知识图谱增强大模型·agenticai
WWZZ20252 天前
快速上手大模型:深度学习12(目标检测、语义分割、序列模型)
深度学习·算法·目标检测·计算机视觉·机器人·大模型·具身智能
世优科技虚拟人2 天前
2026数字展厅设计核心关键,AI数字人交互大屏加速智慧展厅升级改造
人工智能·大模型·数字人·智慧展厅·展厅设计
同学小张2 天前
【端侧AI 与 C++】1. llama.cpp源码编译与本地运行
开发语言·c++·aigc·llama·agi·ai-native
喜欢吃豆3 天前
使用 OpenAI Responses API 构建生产级应用的终极指南—— 状态、流式、异步与文件处理
网络·人工智能·自然语言处理·大模型
楚国的小隐士3 天前
Qwen是“源神”?实际上GLM-4.6才是被低估的黑马
ai·大模型·通义千问·智谱清言
程序员鱼皮4 天前
又被 Cursor 烧了 1 万块,我麻了。。。
前端·后端·ai·程序员·大模型·编程
north_eagle4 天前
RAG 同 Prompt Engineering
大模型·prompt·rag
KG_LLM图谱增强大模型4 天前
[经典之作]大语言模型与知识图谱的融合:通往智能未来的路线图
人工智能·大模型·知识图谱·graphrag·本体论·图谱增强大模型