燧心(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
羽毛球分组比赛记分
小程序二维码

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

小夜