跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 浅色
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • 深色
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(LCZ-Blue)
  • 不使用皮肤
  • LCZ-Green
  • LCZ-Blue
  • LCZ-Black
折叠
品牌标识

抡锤者

首页 版块 标签
硬件
装备秀
AI 广场 App
  1. 主页
  2. 版块
  3. AI Agent
  4. 说一下为了输出速度忽略缓存命中的一些感受

说一下为了输出速度忽略缓存命中的一些感受

已定时 已固定 已锁定 已移动 AI Agent
7900xtxqwen本地模型
2 帖子 2 发布者 233 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • yi songY
    yi songY
    yi song
    体面乡绅 硕果累累
    编写于 最后由 编辑
    #1

    我在买7900xtx之后,用的是qwen3.8Q4非审查版本。这个版本用在DSH网页端,运行效果是很不错的,我也没觉得速度太慢。

    在DSH桌面版出来之后,想尝鲜,安装了桌面版,导致桌面版和网页端数据互通,污染了网页端的128K上下文。
    影响的效果是:网页端本身可以跑软件修改几十轮200多步,100+Mtok,一些小问题都可以修改。但是桌面版安装之后上下文经常超,说不了两句话就报错上下文不够了。而且用AI修,最多只有64K上下文,这个是DSH桌面版的限制,修不了的。
    因为对话任务很多还需要,我没办法清空,所以一直忍着。

    在半个月前,OpenRouter上有了太空兔这个模型免费用,就用了一周。这期间看strata架构的速度不错,所以也测试了一下,但是内存占用太多,而且也没有非审核模型就没有使用,只做了测试能跑,但我觉得不适合我这种只有一台电脑的用户。

    现在免费羊毛的太空兔没有了,回归本地模型,我就是感觉本地这个特别慢,我开始的时候以为是我用习惯了API,所以阈值变高了,导致现在看不上本地模型。但是这几天下来我总觉得不对。终于发现了问题,我看到我DSH里面的缓存命中只有30%+,但是我印象应该没有这么低,具体多少我看归档的对话发现之前都是90%+。所以这个时候我意识到慢的原因就在缓存命中上。

    今天用了10块钱左右的DeepSeek专门重新搞strata和本地llama,最终得到的结果就是,strata的速度在我的机器上45t/s+(不到50),缓存命中50%,没有特别高。
    删除strata退回到我之前刚安装llama+qwen3.8 27BQ4,缓存命中在95%+。效果明显了,速度也快了,就是能直接出结果了,不用一宿一宿的跑什么都跑不出来了。

    最终是缓存命中真的是太TMD重要了!!!

    所有的性能都要在缓存命中高的前提下再搞速度。

    贴几张我的图
    image.jpeg
    image.jpeg
    image.jpeg

    前几张是慢的,最后一张是修改后在95%+的,效率一下就上来了。

    AI告诉我的几个原因贴在这里,供大家参考。
    🎯 为什么换模型后缓存命中率会暴跌?
    在本地 llama.cpp 环境中,缓存机制比云端 API 更加“脆弱”,核心原因有两点:

    缓存域隔离:DSH 的设计是每个模型(甚至每个提供商)拥有独立的缓存域。当你从本地 Qwen 模型切换到 OpenRouter 的模型时,DSH 会认为你进入了一个全新的缓存域。当你再切回本地模型时,之前的缓存前缀已经作废,KV Cache 需要从头重建。

    llama.cpp 的“全量重算”特性:llama.cpp 的 prompt cache 是基于最长公共前缀的精确匹配。一旦前缀中任何字节发生变化(例如系统提示词中注入了不同的模型名或提供商信息),整个对话历史都会被强制全量重算,而不是只重算变化的部分。在长会话中,这意味着一次模型切换可能触发数万甚至数十万 token 的重新处理,首轮响应会变得极慢,命中率显示也自然暴跌。

    🔍 分步排查与恢复指南
    你可以按照以下顺序逐步操作,通常能恢复到接近之前的命中率:

    第一步:确认是否用回了同一个“缓存域”
    检查你的 DSH 配置,确认当前会话使用的本地模型路径、量化版本、上下文长度参数与之前完全一致。如果之前用的是 qwen3.8-q4-long,切回来时也必须用同一个标识符,而不是新建一个类似的。

    第二步:检查 resume 会话的副作用
    如果你是恢复(resume) 了之前的旧会话,可能会触发 DSH 的一个已知 bug:在 cordis(创造)模式下,会话恢复时 system prompt 的 section 排序可能发生漂移,导致缓存命中率从 ~99% 暴跌到 0.3%~3%。解决方法:尝试新开一个会话,而不是 resume 旧会话,观察第一轮之后的命中率是否恢复正常。

    第三步:检查是否有“后台请求”在踢掉缓存
    这是本地部署中最隐蔽的杀手。DSH 的子代理(subagent)会继承父会话创建时的模型,而不是当前模型。如果你在切换模型期间,某些后台任务或子代理仍然在向 llama.cpp 发送对其他模型的请求,llama.cpp 会驱逐(evict)已加载的本地模型,导致 prompt cache 丢失。请检查终端日志或 DSH 的 /logs,看是否有频繁的模型重新加载记录。

    第四步:用 dsh-model-pin 插件锁死本地模型(强烈推荐)
    安装 dsh-model-pin 插件,强制所有请求(包括子代理和后台任务)只能使用你指定的本地模型。配置为单模型模式后,任何“越界”的请求都会被重定向或拒绝,彻底杜绝因意外模型切换导致的缓存丢失。

    bash

    安装插件

    dsh plugin --profile web add dsh-model-pin

    在 ~/.dsh/profiles/web/cordis.patch.yml 中添加配置

    • id: model-pin
      config:
      providers:
      llamacpp:
      allow: [qwen3.8-q4-long] # 只允许这一个模型
      fallback: qwen3.8-q4-long
      action: redirect
      warnOnSwitch: true

    最后还有一个我的结论,一台电脑不是服务器还是不适合strata,即使速度快,但是影响电脑自身性能很多,只适合服务器调用。

    如果有人有新的方法,可以介绍给我,贴给我,万分感谢。

    1 条回复 最后回复
    1
    • imbiplaza ASUSI
      imbiplaza ASUSI
      imbiplaza ASUS
      谪仙人
      编写于 最后由 imbiplaza ASUS 编辑
      #2

      dsh 在之前0.15版本里面有一个非常严重的Pi ai bug....不懂怎么搞,他不会一直出来,然而之前我搞一个48小时不间断的1000亿Input output ,使用0.15反而没问题,我有特别留意缓存,他是不断不断用完了就马上压缩,再继续,没卡断,我以为可以一直用,

      然而最近不懂怎么,卡在类似的缓存问题, 有时候我设定130k, 他用到150k 都还不要压缩,然后就Hang着等我。。。。

      我现在升级0.2.0版本,类似的问题已经减少很多

      1 条回复 最后回复
      1

      你好!看起来您对这段对话很感兴趣,但您还没有一个账号。

      厌倦了每次访问都刷到同样的帖子?您注册账号后,您下次访问时都将自动回到上次浏览的位置,并可选择接收新回复的通知(通过电子邮件或推送通知)。您还可以收藏帖子、为帖子点赞,以此向其他社区成员表达您的感谢。

      有了你的建议,这篇帖子会更精彩哦 💗

      注册 登录
      回复
      • 在新帖中回复
      登录后回复
      • 从旧到新
      • 从新到旧
      • 最多赞同


      • 登录

      • 登录或注册以进行搜索。
      • 第一个帖子
        最后一个帖子
      0
      • 版块
      • 最新
      • 标签
      • 热门
      • 用户
      • 群组