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 环境。

资源

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

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

小夜