前言¶
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 中安裝插件:
- 打開 Plugins -> Add plugin。
- 輸入插件地址:
https://github.com/ethanrise/dsh-model-deploy
- 重啓 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 環境。
資源¶
- 插件目錄:dsh-model-deploy - SkillHub
- GitHub 倉庫:ethanrise/dsh-model-deploy