前言¶
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