Eval bug: K2-Horizon models fail to load

该报错通常出现在用 llama.cpp / llama-server / llama-cli 加载 K2-Horizon 系列 GGUF 模型时,因为当前 llama.cpp 主仓库不识别 k2-horizon 这一模型架构,导致加载直接失败。优先排查你使用的 llama.cpp 版本是否已包含 K

快速结论:该报错通常出现在用 llama.cpp / llama-server / llama-cli 加载 K2-Horizon 系列 GGUF 模型时,因为当前 llama.cpp 主仓库不识别 k2-horizon 这一模型架构,导致加载直接失败。优先排查你使用的 llama.cpp 版本是否已包含 K2 Horizon 架构支持。

适用环境:Issue 中确认的环境为 Linux x86_64,CPU 为 Intel Core i9-14900HX,GPU 为 NVIDIA GeForce RTX 4060,GGML 后端为 CUDA,llama.cpp 版本为 0.3.0-dev(build 1,commit 95ef7fc),使用 GNU 15.2.0 构建。模型为 IFM/K2-Horizon-0.9B-GGUF 及 K2-Horizon-7B-Q6_K.gguf。

最快修复方案:暂无确认的一步修复方案。Issue 讨论中明确提到上游 llama.cpp 尚无该架构支持,PR 仍在进行中;可优先尝试使用 MBZUAI-IFM 的 llama.cpp 分支(MBZUAI-IFM/llama.cpp/tree/model/K2Horizon)或等待上游合并支持。

注意事项:使用第三方分支前需自行确认其与当前模型文件的兼容性,分支支持并不等于上游主仓库已支持;Issue 最终被关闭,但评论指出“缺乏支持”这一事实并未因关闭而消失,后续可能仍需关注上游 PR 或相关 discussion 的合并进展。

问题场景

用户在 Linux 环境下使用 llama.cpp 的 llama-cli 或 llama serve 加载 K2-Horizon 系列 GGUF 模型时触发问题。Issue 中分别测试了 K2-Horizon-1B-BF16.gguf 和 K2-Horizon-7B-Q6_K.gguf,均在模型加载阶段失败,llama.cpp 无法完成模型初始化。

报错原文

E llama_model_load: error loading model: unknown model architecture: 'k2-horizon'
E llama_model_load_from_file_impl: failed to load model
E common_fit_params: encountered an error while trying to fit params to free device memory: failed to load model
E llama_model_load: error loading model: unknown model architecture: 'k2-horizon'
E llama_model_load_from_file_impl: failed to load model
E cmn  common_init_: failed to load model 'K2-Horizon-1B-BF16.gguf'
E srv    load_model: failed to load model, 'K2-Horizon-1B-BF16.gguf'
E srv    operator(): operator(): cleaning up before exit...
E srv  llama_server: exiting due to model loading error

原因分析

核心原因是当前 llama.cpp 主仓库不认识 K2-Horizon 的模型架构标识。GGUF 模型在加载时会读取其中的架构字段,llama.cpp 需要内置对应的架构实现才能正确解析和推理;当架构名 k2-horizon 不在已支持列表中时,就会直接报 unknown model architecture 并终止加载。

Issue 评论中引用 Hugging Face 模型卡说明:这些模型需要包含 K2 Horizon 架构支持的 llama.cpp 版本,相关 PR 当时仍在进行中;另有评论确认“目前没有上游支持”。因此这属于上游支持缺失,而不是用户本地配置错误或显卡/驱动问题。

环境排查

  • 确认 llama.cpp 版本与构建 commit,Issue 中为 0.3.0-dev(build 1,commit 95ef7fc)。
  • 确认使用的 GGUF 模型文件是否来自 K2-Horizon 系列,例如 K2-Horizon-1B-BF16.gguf 或 K2-Horizon-7B-Q6_K.gguf。
  • 确认当前 llama.cpp 是否已合并 K2 Horizon 架构支持,可关注上游 PR 与 discussion 的进展。
  • 确认 GGML 后端与 CUDA 环境是否正常,但该报错发生在架构识别阶段,与 CUDA 是否能运行关系不大。
  • 如尝试第三方分支,确认分支名称与代码来源,Issue 中提到的是 MBZUAI-IFM 的 llama.cpp 分支。

解决步骤

  1. 先确认你当前使用的 llama.cpp 是否包含 K2 Horizon 架构支持。如果运行的是主仓库版本,且版本低于或未合并相关 PR,则会出现该报错。
  2. 查看 Issue 评论中提到的 MBZUAI-IFM 分支:https://github.com/MBZUAI-IFM/llama.cpp/tree/model/K2Horizon。该分支被模型卡描述为包含 K2 Horizon 架构支持的 fork。
  3. 如果选择使用该分支,请基于该分支重新构建 llama.cpp,再加载 K2-Horizon 模型测试。注意这属于第三方分支方案,并非上游主仓库的确认修复。
  4. 如果不使用分支,则需要等待上游 llama.cpp 合并 K2 Horizon 支持;可关注相关 PR 以及 Issue 评论中提到的 discussion #28308。
  5. 在问题解决前,不要通过修改模型架构字段或强行绕过架构检查的方式加载,Issue 中没有此类做法得到验证,且可能引发其他加载或推理错误。

验证方法

重新构建并加载模型后,观察日志中是否不再出现 unknown model architecture: 'k2-horizon'。如果模型能进入后续加载阶段并正常启动 llama-server 或 llama-cli,则说明当前使用的 llama.cpp 已包含相应架构支持。若仍然报同样错误,说明所用版本仍未支持 K2 Horizon。

参考来源

ggml-org/llama.cpp #28361

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 27609

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注