先看现象。加载自己微调并保存的模型目录,报错提示需要设置 trust_remote_code=True 才能加载自定义结构,可配置文件里明明有 auto_map。

原因不止一个,得分开看。模型目录带自定义 modeling 文件,必须显式授权。还有一种是tokenizer 也需要同样的开关,只开一半无效。

少数情况下是本地目录缺少 config.json 或 tokenizer_config.json。

不容易想到的是,权重大小与 config 里声明的结构不一致。

先启动时显式打开远程代码开关

vllm serve ./my-model --trust-remote-code --max-model-len 4096

随后确认目录里的关键文件齐全

python -c "import os;print(sorted(os.listdir('./my-model')))"

接着用 Transformers 验证模型能否加载

python -c "from transformers import AutoModelForCausalLM as M;print(M.from_pretrained('./my-model', trust_remote_code=True).config.model_type)"

剩下的就是对照 config 里的层数与权重索引检查完整性

python -c "import json;print(json.load(open('./my-model/config.json'))['num_hidden_layers'])"

同一份数据我导出了两份,一份留底,一份拿来试。

恢复的判定其实很直接。服务能完成加载并打印模型参数量,接口请求返回正常回答,日志里不再出现 trust_remote_code 提示。

补一句。信任远程代码等于执行模型目录里的 Python 文件,来源不明的权重不要随手打开这个开关,先看清文件内容再决定。拖得越久,排查成本越高,因为现场状态会被后续操作覆盖。

作者 9823189