燧心(dsh-npu):DSH 下的 AMD NPU 与 GPU 本地推理

前言

在 DeepSeek Harness(DSH)里接本地模型,常见麻烦不在「能不能跑」,而在跑起来之后:启动器退了、推理进程还在占显存和端口;LM Studio、Ollama 各开一窗;配置散落在多处;ROCm 表面 /health 正常、实际在 CPU 上跑;NPU 与 GPU 往往只能二选一。社区插件 燧心 · Hearthcore(仓库 YarXVI/dsh-npu)把面板、模型槽位、框架与对外端口收进一个 DSH 插件:随 DSH 点火与熄火,退出时通过 Job Object 清理子进程;对外仍是一个 OpenAI 兼容端口,并注册 npu-local provider 供 DSH 模型选择器使用。下文介绍其定位、能力与上手步骤。

这是什么

燧心(包名 dsh-npu,版本 1.0.0)由维护者 YarXVI 发布,许可证 MIT,分类为模型推理。它是 DSH 的本机推理插件:在 AMD Ryzen AI 上通过 FastFlowLM(FLM) 使用 XDNA2 NPU,在 GPU 上通过 llama.cpp(Vulkan / ROCm / CUDA,运行时由插件下载到 runtimes/),并引入第五框架 amd-hybrid,在同一条 DSH 生命周期里让 NPU 与 GPU 按路由、竞速、级联或增强方式协同。README 写明:无云、无遥测、无第三方窗口、无链式启动器;联网推理除非用户另行配置其他 provider,与本插件无关。

核心功能

进程与生命周期

插件用 NpuSupervisor 以 spawn 启动各模型进程,在 Windows 上创建即加入 Job Object(kill-on-close):DSH 退出或被终止时,内核连带结束整棵子进程树。槽位可设 idleSec 空闲自动熄火;面板也可立即「熄火」。不存在外部 exe 链式拉模型、不注册系统服务、不写自启。

单端口 OpenAI 兼容 API

默认绑定 127.0.0.1,前端端口配置项为 frontPort(示例默认 52630;被占用时插件会改用系统分配端口并在面板显示)。支持:

  • POST /v1/chat/completions、POST /v1/completions、POST /v1/embeddings、GET /v1/models
  • 流式 stream:true(SSE);cascade 在升级 GPU 前不吐字,race 仅非流式

第五框架 amd-hybrid

模式 行为 适合
route 翻译/embedding → NPU,代码/长文 → GPU,失败自动换引擎 日常单请求
race 两引擎同发,先给出完整答案者胜(仅非流式) 尾延迟敏感
cascade NPU 先答首段;拒答/截断/退化 → GPU 重答 省 GPU 占用
augment GPU 主答,NPU 并行做检索/翻译/摘要增强 长上下文

README 记载本机实测(同一 prompt、max_tokens=64、temperature=0):route 平均 464 ms,race 345 ms,cascade 1658 ms,augment 1310 ms;原始数据在仓库 bench/bench-result.json。

配置 schema v2

单文件默认路径 ~/.dsh/dsh-npu.json,可用 configFile 或环境变量 DSH_NPU_DATA 改位置。v1 会自动迁移并在同目录留 dsh-npu.json.v1-<时间戳>.bak。槽位 backend 可为 flm、llamacpp-vulkan、-rocm、-cuda 等;apiToken 保存后立即生效,无需重启插件进程。

面板与自检

侧栏入口:插件 → 燧心 · 本地推理(三页签)。面板 API 挂在 DSH 同源 /plugins/dsh-npu/panel(旧路径 /npu/* 仍为别名),提供 state、config、health、models、hybrid/status、runtime/download 等路由;「自检」对应 health.items[] 共 10 项探测。

安装与启用

依赖:Node ≥ 20;使用 NPU 需自行安装 FastFlowLM。GPU 侧不需要 Ollama。

官方 README 给出三种安装方式:

# 方式一:插件市场
#   DSH → 插件 → 发现 → 添加索引源:https://yarxvi.github.io/dsh-npu/market/index.json → 安装「燧心 · 本地推理」

# 方式二:git(锁定提交,可复现)
dsh plugin add git+https://github.com/YarXVI/dsh-npu.git#<commit>

# 方式三:本地开发(link)
dsh plugin add link:./plugins/dsh-npu

插件以当前 DSH 进程权限运行;安装前应在 GitHub 阅读源码与 MIT 许可证,确认符合你的环境与安全要求。

典型用法(约 5 分钟)

  1. 打开 插件 → 燧心 · 本地推理。
  2. 设置 → 运行环境:填写 flm.exe 绝对路径,或使用「自动查找」(有界扫盘,不扫全盘)。
  3. 模型 → 后端:点「安装 Vulkan 运行时」(约 35 MB),或仅使用 NPU。
  4. 概览 → 一键点火:启动代理、注册 provider、把模型暴露给 DSH 模型选择器。
  5. 在 DSH 里选择 npu-local 下的模型对话;在 设置 → 混合推理 切换 route / race / cascade / augment。

README 推荐的默认槽位组合示例:NPU 对话 qwen3.5:0.8b、翻译 hy-mt2-flash:1.8b、embedding embed-gemma:300m(挂在 chat 槽 embed:true)、GPU 主答 Qwen2.5-1.5B-Instruct-Q4_K_M.gguf(Vulkan)。换机器时可将配置里的 dataRoot 指到外置盘或旧目录,模型文件不必搬家。

适用场景与注意

适合:已在 DSH 生态内开发智能体或本地对话,机器带 AMD Ryzen AI NPU 和/或可跑 llama.cpp 的 GPU,希望一个入口、一份 dsh-npu.json、一个 OpenAI 端口,且强调「DSH 关则推理进程不留」的用户。

注意:

  • 面板显示「未找到 flm.exe」时,FLM 便携版通常不在 PATH,需填绝对路径。
  • ROCm 后端若很慢,README 提示可能静默回退 CPU;应在面板后端行查看 --list-devices 探测结果。
  • 混合推理需要 NPU 槽位与 GPU 槽位(llama.cpp 运行时 + gguf)均就绪;自检会指出缺失项。
  • 社区目录页(如 skillhub.cn)为独立索引,与 DeepSeek / 幻方无官方从属关系;星标与版本以你安装时的仓库为准。

结尾

燧心把 AMD NPU(FLM)与 GPU(llama.cpp)收进 DSH 插件生命周期:按需点火、空闲或退出时熄火、对外一个 OpenAI 兼容端口,并用 amd-hybrid 在四种模式下协同双引擎。进一步了解可查看社区目录页与 GitHub 仓库:

  • 目录页:https://www.skillhub.cn/plugins/YarXVI/dsh-npu
  • GitHub:https://github.com/YarXVI/dsh-npu
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye