Misc. bug: llama-server `–ctx-size` is divided by `–parallel` and cannot be increased?

运行 llama-server (版本4621,commit 6eecde3c)加载DeepSeek-V3 Q2_K_XS GGUF模型,指定 --ctx-size 0 或 --ctx-size 163840 并设置 --parallel 6 时触发。

Misc. bug: llama-server `--ctx-size` is divided by `--parallel` and cannot be increased?

Misc. bug: llama-server `–ctx-size` is divided by `–parallel` and cannot be increased?

快速结论:当使用llama-server时,--ctx-size指定的上下文大小会被--parallel参数平分,导致单个推理请求实际可用上下文远小于预期。若试图增大--ctx-size补偿,可能触发GGML_ASSERT断言失败。优先排查llama-server版本是否已支持--ctx-per-slot参数。

问题场景

运行llama-server(版本4621,commit 6eecde3c)加载DeepSeek-V3 Q2_K_XS GGUF模型,指定--ctx-size 0--ctx-size 163840并设置--parallel 6时触发。

报错原文

llama_init_from_model: n_ctx_per_seq (27306) < n_ctx_train (163840) -- the full capacity of the model will not be utilized

// 增加 --ctx-size 到 327680 后:
/home/main/llama.cpp/ggml/src/ggml.c:1578: GGML_ASSERT(view_src == NULL || data_size == 0 || data_size + view_offs <= ggml_nbytes(view_src)) failed

原因分析

server.cpp第1902行存在以下代码:const int32_t n_ctx_slot = n_ctx / params_base.n_parallel;。该逻辑将总的--ctx-size按照--parallel参数平分,导致每个并行槽位(slot)只能使用总上下文的1/parallel。Issue中确认这是代码实现问题,社区在讨论后计划新增--ctx-per-slot参数来覆盖此行为。

环境排查

  • llama-server版本(特别是commit 6eecde3c及附近版本)
  • 确认使用的--parallel参数值
  • 确认模型原生训练上下文长度(n_ctx_train)
  • 记录llama_init_from_model输出的n_ctx_per_seq值

解决步骤

  1. 等待上游修复:该Issue已被标记为stale并关闭,但社区已确认问题并计划在后续版本中通过新增--ctx-per-slot参数解决(参考PR #11213后的改进)。
  2. 临时工作绕过:若必须使用当前版本,可尝试在源码中修改server.cpp第1902行,将n_ctx_slot = n_ctx / params_base.n_parallel改为n_ctx_slot = n_ctx,但需注意这可能与预期行为不一致(每个slot都会分配全部上下文)。
  3. 调整--parallel参数:如果单个推理请求需要更多上下文,可减少--parallel值(例如设为1),使得n_ctx_per_seq = n_ctx。
  4. 避免补偿行为:不要通过增大--ctx-size超过模型原生训练上下文(n_ctx_train)来补偿平分影响,否则会触发GGML_ASSERT(如报错原文所示)。

验证方法

  1. 运行llama-server后检查日志中llama_init_from_model: n_ctx_per_seq的值是否等于预期的--ctx-size
  2. 使用单个推理请求测试上下文占用是否达到设置值(例如长文本生成不报错)。

参考来源

ggml-org/llama.cpp #11681

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

celebrityanime
celebrityanime
文章: 14989

发表回复

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