现场是这样的。把自定义模型转成 gguf 时报架构不支持,提示 unknown architecture,config 里明明有写模型类型。
中间走过弯路,把「权重目录缺少必要文件」当成主因,改完现象没变。
原因不止一个,得分开看。转换脚本版本太旧,没有该架构的映射;config 里的模型类型是自定义值;模型是多模态结构,需要单独处理投影层。
更新转换脚本到最新版本
git pull && pip install -r requirements.txt
然后按当前脚本支持的架构核对 config
python -c "import json;print(json.load(open('model/config.json'))['architectures'])"
随后用标准参数执行转换
python convert_hf_to_gguf.py ./model --outtype f16 --outfile model-f16.gguf
转换后用二进制加载验证
./llama-cli -m model-f16.gguf -p "你好" -n 16
那几天正好在做别的变更,先把时间线对齐才敢动手。
排查用的命令都是临时敲的,没有写成脚本,事后才整理。
怎么算真的好了,看的是同一批现象。转换成功产出 gguf 文件,能正常加载并生成连贯文本。
这里还有个坑。自定义架构往往需要先改脚本里的映射表,直接改 config 里的架构名只会得到能转换但推理错乱的文件。如果同一现象隔几天又出现,说明根因没找到,别当偶发处理。