Eval bug: GSQ-RCO implementation of DSV4.1 does not load

该报错发生在 llama.cpp 加载 DeepSeek-V4.1-Flash-1017-GSQ-RCO-GGUF 量化模型时,模型在读取超参数阶段就失败,还没进入推理。优先怀疑是所下载的 GGUF 量化文件版本过旧,与当前 llama.cpp 的 DSV4.1 结构定义不匹配。

快速结论:该报错发生在 llama.cpp 加载 DeepSeek-V4.1-Flash-1017-GSQ-RCO-GGUF 量化模型时,模型在读取超参数阶段就失败,还没进入推理。优先怀疑是所下载的 GGUF 量化文件版本过旧,与当前 llama.cpp 的 DSV4.1 结构定义不匹配。

适用环境:llama.cpp 0.7.0-dev(build 11937,commit e86f5fd1e);Linux;CUDA 后端;Intel i5-13500 + NVIDIA RTX Pro 2000 Blackwell;模型 ISTA-DASLab/DeepSeek-V4.1-Flash-1017-GSQ-RCO-GGUF,IQ2_XXS 分片(4 个文件)。

最快修复方案:重新下载该模型仓库中修复后的 GGUF 量化文件(对应 HF 提交 a419d74),再用原命令加载。

注意事项:Issue 评论区只确认“模型 HF 页面上的 commit a419d74 已解决该问题”,未说明是否需要同步升级 llama.cpp、也未说明旧分片能否续传增量。旧版量化文件即便硬件够用也无法被当前 llama.cpp 正确解析。

问题场景

用户在 Linux 上使用 llama.cpp 的 server(0.7.0-dev build 11937,CUDA 后端)加载 DeepSeek-V4.1-Flash-1017-GSQ-RCO-GGUF 的 IQ2_XXS 量化模型,并启用了 cpu-moe = true、ngl = all、load-mode = mmap、no-warmup = true 等参数。模型在启动后约 0.5 秒内即加载失败,进程以状态 1 退出。

报错原文

E llama_model_load: error loading model: error loading model hyperparameters: array key not found in model: deepseek41.attention.kv_source_layers
E llama_model_load_from_file_impl: failed to load model
E common_init_: failed to load model '/path/to/model/dir/DeepSeek-V4.1-Flash-1017-GSQ-RCO-IQ2_XXS-00001-of-00004.gguf'
E srv    load_model: failed to load model, '/path/to/model/dir/DeepSeek-V4.1-Flash-1017-GSQ-RCO-IQ2_XXS-00001-of-00004.gguf'
E srv  server_run_i: exiting due to model loading error

原因分析

报错点位于超参数解析阶段:llama.cpp 在模型元数据中查找数组键 deepseek41.attention.kv_source_layers,但该键不存在。这说明当前 llama.cpp 对该模型的 DSV4.1 结构读取方式,与所下载 GGUF 文件内包含的元数据不一致。

结合评论区的结论,最可能的原因是:该 GSQ-RCO 量化文件在生成时缺少或没有写入当前 llama.cpp 所需的超参数键;模型仓库后续通过提交 a419d74 更新了量化文件,才使该问题消失。因此这更可能是模型文件侧的问题,而非显卡内存不足或 CUDA 后端故障——用户也指出,更大的 IQ3_S 量化版本可以正常加载。

关于“是否由 GSQ-RCO 量化方式本身导致”以及“旧文件能否用转换脚本补齐元数据”,Issue 中没有证据,只能作为可能原因,不宜直接下结论。

环境排查

  • 确认 llama.cpp 版本:Issue 环境为 0.7.0-dev(build 11937,commit e86f5fd1e)。
  • 确认模型仓库与文件:ISTA-DASLab/DeepSeek-V4.1-Flash-1017-GSQ-RCO-GGUF,IQ2_XXS,四个分片中的第一个为 ...-IQ2_XXS-00001-of-00004.gguf。
  • 确认模型文件的下载提交版本,核对其是否包含 a419d74 之后的更新。
  • 确认 CUDA 后端与显卡可被 llama.cpp 正常识别(本例为 RTX Pro 2000 Blackwell);排查阶段可临时去掉 cpu-moe、mmap 等参数,缩小变量。
  • Issue 未提供 Python、PyTorch、CUDA 驱动具体版本号,这些不是本次报错的直接证据点,可先不作为首要排查项。

解决步骤

  1. 删除本地已下载的 DeepSeek-V4.1-Flash-1017-GSQ-RCO IQ2_XXS 旧分片,避免续传继续使用旧文件。
  2. 打开模型 HF 页面 ISTA-DASLab/DeepSeek-V4.1-Flash-1017-GSQ-RCO-GGUF,核对提交记录中是否有 a419d74 及之后对量化文件的更新。
  3. 从更新后的仓库重新下载全部分片(Issue 中为 00001 至 00004),确保分片完整且来自同一版本。
  4. 用原参数重新启动 llama.cpp server,指向新的第 1 个分片文件。
  5. 若使用更新文件后仍报同类超参数缺失错误,再考虑同步升级 llama.cpp 到包含对应 DSV4.1 结构支持的版本(可优先尝试)。

验证方法

重新启动后观察日志:不再出现 array key not found in model: deepseek41.attention.kv_source_layers 和 failed to load model,模型加载完成后 server 能正常进入监听状态并可完成一次推理请求,即说明问题已解决。

参考来源

ggml-org/llama.cpp #31263

ISTA-DASLab/DeepSeek-V4.1-Flash-1017-GSQ-RCO-GGUF commit a419d74

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 30588

发表回复

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