vLLM 报模型架构 failed to be inspected,先读 inspection 子进程的异常
模型检查失败不等于架构不支持。真实 Jetson 案例涉及 PyTorch/Triton 导入路径;先核对最早异常和实际环境,再按硬件与版本契约重建,避免随意改 architectures。
加载一个已知架构的模型,却遇到:
Model architectures ['LlamaForCausalLM'] failed to be inspected.
这表示 vLLM 没有完成架构检查。模型模块导入时,依赖、编译扩展或初始化代码也可能失败;最后的架构提示只是外层结果。
官方 issue #12219提供了一个具体案例:Jetson AGX Orin 的开发版 vLLM 0.6.6.post2.dev264+g813f249f,配合 PyTorch 2.5.1 和自行安装的 Triton。堆栈进入了 PyTorch Inductor 的 AttrsDescriptor 检查,先产生 dataclass 类型异常,最后才显示 inspection 失败。报告者随后升级 PyTorch/Triton,仍报告没有解决。因此不能把“升级到 2.6”写成这个 issue 已验证的通用修复。
向上找子进程的第一条异常
保留启动日志中 Error raised in subprocess 前后的完整异常链。重点区分:模块找不到、共享库符号缺失、Python 类型错误,以及确实没有受支持架构。仅复制最后一行会丢掉这个区别。
在实际启动服务的解释器中记录依赖位置:
python -m pip show vllm torch triton transformers
python -m pip check
再查看版本与架构:
import sys
import platform
from importlib.metadata import version
print("python:", sys.executable)
print("machine:", platform.machine())
for package in ("vllm", "torch", "triton", "transformers"):
print(package, version(package))
包未安装时这个诊断片段会在对应项抛错,也是一条需要核对的线索。源代码 checkout 的版本、wheel 的版本和真实导入路径可能不同,不能只凭 pip show 一项认定构建一致。
用同一环境单独检查失败模块
对于上述 Llama 检查路径,可在允许执行模型库导入的隔离环境运行:
python -c 'import vllm.model_executor.models.llama'
这会执行模块的导入代码;它不是纯静态文件检查。其他架构应换成堆栈中实际失败的模块,而不是一律导入 Llama。
如果导入已经失败,先处理那个异常。核对目标 vLLM 发布版的 PyTorch、Triton、CUDA 与 CPU 架构要求,在新的项目环境重新构建兼容组合。尤其是 Jetson/aarch64,不能直接套用 x86_64 的 wheel 命令。保留原环境及构建记录,别在唯一可用环境中反复卸载核心依赖。
若导入成功、模型仍报 inspection 失败,再核对 checkpoint 的 config.json、实际 architectures 和目标版本的支持模型清单。清单版本必须与运行版本对应,不拿 0.8.5 清单替开发版作兼容保证。
不要为让注册器“认出来”,直接把 architectures 改成另一个类,也不要未经审查启用远程模型代码。这样可能绕到错误实现,改变权重解释。
验收顺序是模块导入、同一 checkpoint 的最小加载、固定小输入推理。三项分别记录;导入通过只能证明这一层已过,不证明模型格式、显存和运行算子都兼容。


