开源llama.cpp Releases·原文 2026年9月14日

llama.cpp修复nemotron-h加载时除零崩溃,改为报告元数据错误

在b10947版本中,针对nemotron-h模型,当predict层的expert_feed_forward_length与n_expert_used同时为 0 时,NextN/MTP尾部循环会触发除零并直接SIGFPE,现在改为报告格式错误的元数据。

AI解读:这次修复针对的是一个很具体的崩溃:llama.cpp在加载某些nemotron-h检查点时,会在NextN/MTP尾部循环里用n_ff除以n_expert_used来推导专家FFN大小。如果某一层不是MoE,这两个数组元素本来就可能是 0,两个 0 一除就直接SIGFPE,进程死在加载阶段,连一句错误提示都没有。

改动把这种除零变成可读的报错,告诉用户元数据有问题,而不是让程序静默崩溃。受影响的人是那些手里有这类nemotron-h检查点、想在llama.cpp上跑的人:之前只能看到一个段错误,现在至少知道是模型元数据不对。

这不算功能更新,属于防御性修复。它不改变模型能跑多快或多准,只是把“程序莫名死掉”换成“你的元数据不合法”。

llama.cpp发布b10947版本,其中包含一个针对nemotron-h模型的修复:NextN/MTP尾部循环在expert_feed_forward_length没有为该层提供值时,会用n_ff/n_expert_used推导专家FFN大小。

这两个值来自逐层数组,在非MoE层上合法地可能是 0。如果一个检查点的predict层同时把这两个值存为 0,就会发生除零,加载时以SIGFPE崩溃,且没有任何错误信息。

该提交(#28779)改为报告格式错误的元数据,而不是让进程直接死掉。

信息来源

llama.cpp Releases原始来源