快速结论:该报错发生在 llama.cpp 新版本中启用 MTP(Multi-Token Prediction)头部加载 Gemma 4、Qwen 等模型时,模型加载阶段因资源分配或参数断言失败而崩溃。优先排查 llama.cpp 构建版本是否包含修复提交 73159c3(PR #28183),并尝试更新到该修复之后的版本。
适用环境:Issue 已确认环境为 Linux x86_64 系统,使用 CUDA 后端(GGML CUDA),显卡型号为 RTX 5070 Ti + i9 14900K(网友补充 RTX 5090 同样复现)。模型涉及 Gemma 4 系列、Qwen 3.6 9B、Gemma4 12B、Qwen3.8 27B 等。
最快修复方案:暂无“一步修复”的配置变更方案;Issue 评论确认问题由 PR #28159 的提交 9d81721 引入,已在 PR #28183 的提交 73159c3 中修复。请更新 llama.cpp 到包含提交 73159c3 的版本(该提交已合入主线)。
注意事项:该修复方案来自 Issue 评论者的复现与验证,属于已确认的代码回归修复。若更新后仍存在问题,需检查是否使用了过旧的模型量化版本或自定义编译参数。
问题场景
用户在使用 llama.cpp(版本 0.3.0-dev,build 10744,commit 1f3d31873)时,尝试加载 Gemma 4 系列模型(包括 e4b 和 26b MoE 变体)并启用 MTP(Multi-Token Prediction)功能。模型加载过程中程序崩溃,触发断言失败并生成 GDB 回溯日志。同一问题也影响 Qwen 3.6 9B、Gemma4 12B、Qwen3.8 27B 等其他模型,只要尝试使用 MTP 头部加载就会失败。将 MTP 作为 sidecar 模型加载同样失败,但 sidecar 加载 dflash2 模型则正常。
报错原文
llama_init_from_model: failed to initialize the context: failed to allocate buffer for kv cache
common_speculative_init_result: failed to create MTP context
/opt/llama.cpp/src/llama-model.cpp:1227: GGML_ASSERT(hparams.n_layer_nextn < hparams.n_layer_all) failed
Eval bug: Error on loading Gemma 4 family with the new updates
原因分析
根据 Issue 评论中的复现与定位,可能原因如下:
该问题并非仅针对 Gemma 4,而是由最新 MTP PR(#28123)引入的代码回归。问题根源定位在提交 9d81721(对应 PR #28159)中的改动,该改动导致带有 MTP 头部的模型在加载时无法正确初始化 KV cache 缓冲区,或在参数检查时触发断言失败(hparams.n_layer_nextn < hparams.n_layer_all)。即使显存充足,也会因加载逻辑中的资源分配或参数校验错误而失败。
环境排查
- llama.cpp 版本:确认是否为包含问题提交 9d81721 的构建版本;对比 build 10744(commit 1f3d31873)与修复后的版本差异。
- 操作系统:Linux x86_64(Issue 中确认)。
- GGML 后端:CUDA(需确认 CUDA 驱动版本与 llama.cpp 编译时使用的 CUDA 版本匹配)。
- 显卡:RTX 5070 Ti / RTX 5090(评论中确认),需检查显存是否充足(本 Issue 中显存足够仍触发错误)。
- 依赖版本:需确认使用的模型 GGUF 文件中是否包含 MTP 头部,以及量化版本(如 unsloth 量化)是否兼容当前 llama.cpp 版本。
解决步骤
- 更新 llama.cpp 到包含提交 73159c3(PR #28183)的最新主线版本。该提交已修复 PR #28159 引入的 MTP 加载回归问题。
- 若使用自定义构建,请重新拉取最新源码并重新编译,确保构建版本晚于修复提交日期。
- 如果无法更新版本,可优先尝试不带 MTP 功能加载模型,或者将 MTP 模型作为 sidecar 加载(但评论显示 sidecar 方式同样失败,因此建议优先更新版本)。
- 更新后,重新加载带有 MTP 头部的 Gemma 4 或 Qwen 模型,确认是否还出现 KV cache 分配失败或 GGML_ASSERT 断言错误。
验证方法
更新 llama.cpp 并重新加载原报错模型(启用 MTP 功能)。若模型能够正常加载并进入推理阶段,不再输出 failed to allocate buffer for kv cache 或 GGML_ASSERT 错误,即说明问题已解决。Issue 评论者也在修复后确认“all works good now”。
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。
![[Bug]: asyncio.CancelledError in aiohttp transport bypasses retry logic, logging, and exception mapping](https://www.chat-gpts.plus/wp-content/uploads/2026/09/22100-91b73b02-768x403.jpg)

