dsh-model-deploy

前言

DeepSeek Harness (DSH) 的設計理念是“一切皆插件”,旨在通過擴展能力解決具體工程問題。在模型部署環節,一個核心痛點是:模型在開發環境表現良好,但在目標硬件上是否滿足實際性能要求?dsh-model-deploy 旨在通過基準測試回答這個問題。該插件由 ethanrise 維護,專注於 ONNX 模型在本地和遠程真實硬件上的性能評估。

功能

該插件提供從靜態檢查到實際性能測試的完整鏈路:

  • ONNX 靜態檢查:分析模型輸入輸出、形狀、Opset 版本、參數數量、操作符列表、模型大小以及動態輸入檢測。
  • 部署環境探測:檢測操作系統、CPU、內存、NVIDIA GPU 以及 ONNX Runtime 支持的執行提供者。
  • 本地基準測試:基於 ONNX Runtime 在本地執行基準測試,包含預熱、平均延遲、P50/P95/P99 延遲及 FPS。
  • 無代理 SSH 基準測試:將輕量級運行器和模型複製到遠程目標(如 Linux 工作站或 Jetson 設備)的臨時目錄執行測試,收集 JSON 結果後自動清理。
  • 部署門控驗證:根據設定的閾值(如最小 FPS、最大 P95 延遲、最大模型大小)驗證測試結果是否通過。
  • DSH/MCP 工具:提供模型檢查、環境探測、本地基準和遠程 SSH 預檢的集成工具。

安裝

在 DeepSeek Harness 中安裝插件:

  1. 打開 Plugins -> Add plugin。
  2. 輸入插件地址:
    https://github.com/ethanrise/dsh-model-deploy
  1. 重啓 DSH 以完成註冊。

依賴環境

插件運行依賴 Python 運行時。安裝所需的 Python 包:

pip install numpy onnx onnxruntime psutil
  • CPU 推理:使用標準 onnxruntime。
  • GPU 執行:需要安裝兼容的 onnxruntime-gpu 以及對應的 CUDA/cuDNN 庫。如果 GPU 庫加載失敗,插件會報告錯誤而非回退到 CPU。
  • 遠程目標:SSH 連接的目標機器需要安裝 python3, numpy, 和 onnxruntime。

使用

插件提供命令行接口(CLI)和 DSH 集成工具兩種使用方式。

1. 檢查模型

查看模型的靜態信息:

dsh-model-deploy inspect model.onnx

2. 探測環境

查看當前機器的運行時環境:

dsh-model-deploy env

3. 本地基準測試

在本地進行基準測試,指定運行次數:

dsh-model-deploy bench model.onnx --runs 100

4. 設置部署約束

在基準測試中設置門控閾值,例如要求 FPS 不低於 30,P95 延遲不超過 35ms,模型大小不超過 200MB:

dsh-model-deploy bench model.onnx --min-fps 30 --max-p95-ms 35 --max-model-mb 200

5. 遠程基準測試

使用 SSH 別名連接遠程目標進行測試:

dsh-model-deploy remote-bench orin-dev model.onnx --runs 100

DSH 工具

插件註冊的 MCP 工具包括:
* model_inspect
* deployment_environment
* benchmark_local
* ssh_preflight
* benchmark_remote_ssh

參數說明

  • benchmark_local 和 benchmark_remote_ssh 支持 inputShapes 參數(例如 {"images": [1, 3, 640, 640]})和 defaultDynamicDim 用於動態輸入模型。
  • 門控參數包括 minFps, maxP95Ms, maxModelMb 和 requireProvider。
  • 結果報告會顯示 ONNX Runtime 實際使用的執行提供者。如果發生回退(例如 CUDA 可用但加載失敗),會標記 provider_fallback 並記錄原因。
  • SSH 憑據通過標準的 SSH 配置或 ssh-agent 處理,不會作爲參數傳遞。

注意事項

  • 環境檢測而非修改:插件旨在檢測現有環境,不會修改遠程目標機器的系統配置。
  • V0.1 限制:當前版本(V0.1)不支持 TensorRT、Docker、OpenVINO、TFLite、RKNN 和 NCNN 後端。後續版本計劃支持 TensorRT。
  • Python 解釋器選擇:插件會按順序查找可用的 Python 環境:DSH_MODEL_DEPLOY_PYTHON 環境變量指定的解釋器,然後是 python3 或 python,最後是用戶目錄下的 conda/miniforge 環境。

資源

羽毛球分组比赛记分
小程序二维码

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

小夜