Copyright 2026 muluzhe
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Copyright 2026 muluzhe
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
通用智算运维平台 (ops-platform)
面向国产算力的通用智算运维平台。平台启动时自动识别服务器上的算力设备并切换采集与计算链路, 一套代码同时支持 NPU 与 GPU 两类国产算力,集成算力监控、算子工作台、YOLO 训练/推理/标注、 数据集管理、模型压缩与部署等功能。
项目来源与致谢
本项目是 沐曦算力运维助手 (metax-gpu-ops-agent) 的扩展版。
与源项目的关系
源项目在 MCP 工具体系、零依赖一键部署与 YOLO 训练流程上的积累,在本项目中得到延续与扩展。 谨向源项目开发者(能工智人战队)与大赛主办方致以谢意。
仓库地址
本项目采用主仓库 + 镜像仓库双托管模式:
分支说明
mastermain两个仓库内容始终一致,仅默认分支命名不同(沿用各平台自身约定)。
同步方式
AtomGit 平台原生的「仓库镜像」功能仅支持以 GitHub / Gitee 作为同步源,无法直接从 GitLink 拉取, 因此仓库内置同步脚本,完成主仓库 → 镜像仓库的单向同步:
开源许可证
本项目采用 **Apache License 2.0**(OSI 认证许可证)。
要点:
NOTICE文件与源项目 metax-gpu-ops-agent 保持同一协议,便于向上游回馈贡献。
目录
功能概览
obb标记旋转框)国产算力设备适配
1. 自动识别
平台启动时按设备管理工具探测服务器硬件,并校验对应计算运行时是否真实可用:
启动日志会打印识别结果与本次被关闭的功能:
2. 手动切换(页面上操作)
/settings弹窗/卡片内选择「自动识别」或「手动指定」,选择目标设备后点「应用」即可热生效,无需重启服务。 「重新识别」按钮用于人工触发重新探测。
下拉选项按中性化口径展示,例如:
选择结果会持久化到
workspace/device_backend.json,服务重启后依然生效。3. 功能按设备能力自动裁剪
平台会依据当前设备能力裁剪功能入口:列表类接口过滤掉不可用项,操作类接口返回统一口径的提示 (如「当前设备不支持自研算子编译。该功能依赖设备自研算子工具链,请在支持该能力的设备上使用; 通用 PyTorch 算子流程不受影响。」),前端同步隐藏或禁用对应入口。
monitortrain/infervendor_kernel_devvendor_offline_modelvendor_quant4. 环境变量
ACCEL_BACKENDauto/native/gpu/gpu_alt(兼容旧名ascend/metax/nvidia)ACCEL_DEVICE_INDEX0ACCEL_SHOW_VENDOR01时接口返回真实型号(仅排障用,页面默认不展示)PLATFORM_ENVproduction时,无设备环境不再返回模拟数据(旧名ACCEL_ENV/ASCEND_ENV兼容)ACCEL_BACKEND_CONFIGworkspace/device_backend.jsonPLATFORM_WORKSPACE../workspaceASCEND_OPS_WORKSPACE兼容)PLATFORM_API_KEYASCEND_API_KEY兼容)PLATFORM_DEPLOY_ROOT/home/user/ops-platform优先级:
环境变量>手动选择(持久化)>自动探测>模拟兜底5. 设备相关接口
/api/device/info/api/device/backends/api/device/capabilities/api/device/select{"mode":"manual","backend":"gpu"}/{"mode":"auto"}/api/device/refresh/api/healthdevice_backend/device_family/device_label6. 扩展新设备
backend/accel/已预留扩展位,新增一类设备只需三步(现有后端命名:native.py自研生态设备、gpu_smi.py/gpu_smi_alt.py通用 GPU、mock.py无设备兜底):accel/base.py的AcceleratorBackend,实现available()/get_devices()/get_processes()/probe()/ torch 适配方法(torch_device/torch_prepare/torch_sync/to_device);accel/registry.py的_BUILDERS与_PRIORITY中注册;capabilities()中声明该设备支持的功能。若需要接入历史遗留的后端名,可在
accel/store.py的LEGACY_ALIASES中登记别名映射。上层(API、采集器、训练/推理脚本)无需任何改动。
系统架构
环境要求
硬件
软件
已验证环境
部署指南
1. 上传代码
2. 安装后端依赖
若安装
opencv-python时报libGL.so.1缺失(无图形界面服务器常见):3. 构建前端
构建产物由后端静态托管,无需单独部署前端服务。
开发模式(热更新):
4. 准备数据目录
数据库文件首次启动时自动创建:
data/auth.db(用户认证)data/device_metrics.db(设备指标历史,旧文件名自动兼容)data/task_monitor.db(任务快照)workspace/yolo_jobs.db、workspace/annotate.db、workspace/market.db等5. 放置数据集与模型
6. 启动服务
方式一(推荐):一键启动脚本
脚本会自动完成:前端产物检查与构建(缺失时)→ 设备识别预检 → 启动服务。
方式二:手动启动
可选环境变量:
启动成功后日志形如:
7. 访问平台
http://<服务器IP>:8001adminadmin@123456如需 SSH 端口转发(本地访问远程服务器):
使用说明
设备识别与切换
登录后进入「监控大盘」,页面右上角显示当前设备和切换入口:
管理员可在「系统设置 → 国产算力运行模式」中查看更完整的信息(工具链版本、驱动版本、 计算设备编号、当前设备支持的功能清单)。
国产算力监控
进入「监控大盘」,可查看:
算子工作台
进入「算子工作台」:
通用算子流程(所有设备可用)
设备原生算子流程(仅自研生态设备可用)
数据集管理
进入「数据集广场」:
images/train+images/val+data.yaml结构)模型库
进入「模型库」:
.pt文件)obb自动标记为旋转框任务标注 PK 台
进入「标注 PK」:
训练指南
提交训练
通过 API 提交训练作业:
也可以直接在前端「训练管理」页面选择模型、数据集与服务器后提交。
训练监控
GET /api/jobs列出所有作业GET /api/jobs/{job_id}/logsGET /api/jobs/{job_id}/metrics设备相关注意事项
训练/推理的设备字符串由平台自动适配(自研生态设备为
npu:N,通用 GPU 设备为cuda:N), 可在「系统设置」的「计算设备编号」中确认。多卡环境下用ACCEL_DEVICE_INDEX指定使用的设备。验证集选择(自研生态设备专项)
推荐使用 val_20(20 张)验证集,在 data.yaml 中设置
val: images/val_20。训练结果参考
drone-obb-local 数据集,50 epochs,val_20 验证集:
常见问题
Q: 页面为什么统一显示「国产算力」?
平台面向国产算力场景,对外展示统一使用「国产算力」「显存」「算力利用率」等通用说法, 不展示具体厂商与型号。设备类别(NPU / GPU)仅在服务端内部用于能力判断与设备字符串生成。
Q: 想确认服务器识别到了哪类设备
查看启动日志的
[start] 当前生效: ...一行,或访问GET /api/device/info。 需要临时核对真实型号时,可用ACCEL_SHOW_VENDOR=1启动服务后再查询。Q: 手动切换后功能没变化 / 切换无效
ACCEL_BACKEND环境变量, 此时页面切换不生效,需调整部署配置;Q: 启动后监控页面显示「模拟数据」
说明平台未探测到可用的设备管理工具。请确认:
npu-smi/mx-smi/nvidia-smi)在 PATH 中可执行;MX_VISIBLE_DEVICES/ASCEND_VISIBLE_DEVICES);ACCEL_ENV=production,使无设备时返回空数据而非模拟数据。Q: 部分功能菜单显示「当前设备不支持」
这是按设备能力自动裁剪的结果。自研算子编译、离线模型部署、专有量化工具等能力依赖 设备自研算子工具链,仅在支持该能力的设备上提供;监控、训练、推理、通用算子流程不受影响。 如能力判断有误,可在「系统设置」点「重新识别」重新探测。
Q: 启动后端报
ModuleNotFoundError重新安装依赖:
Q: 安装 opencv 报
libGL.so.1: cannot open shared object file无图形界面服务器缺少 GL 运行库,两种解法任选:
Q: 训练验证阶段崩溃,报
aclnnSort错误特定工具链版本的算子缺陷。将 data.yaml 的
val改为images/val_20(20 张验证子集)。Q: 前端页面空白
检查前端是否已构建(
frontend/dist/目录存在):Q: 数据/模型库为空
workspace/datasets/<id>/下,且包含images/train、images/val、data.yaml.pt文件放在workspace/目录下,OBB 模型文件名需包含obb项目结构
技术栈
accel/自适应层,支持自研生态设备与通用 GPU,可扩展新设备版本信息
v2.1.2 变更
LICENSE)与来源声明(NOTICE),与源项目保持同一协议v2.1.1 变更
npu/→devkit/·accel/ascend.py→accel/native.py·accel/metax.py→accel/gpu_smi.py·accel/nvidia.py→accel/gpu_smi_alt.py·cann_dev.py→native_dev.py·npu_metrics.db→device_metrics.db·cann_dev.db→native_dev.db(数据文件与数据表均带旧名自动迁移;旧的ASCEND_*环境变量与旧后端名继续兼容)native/gpu/gpu_alt,旧键ascend/metax/nvidia自动映射兼容PLATFORM_*环境变量作为主名称,旧ASCEND_*变量保留兼容回退npu-smi/mx-smi/nvidia-smi)、厂商工具链路径、 框架与语言名(torch_npu/Ascend C/CANN/atc)属外部依赖,必须保留原文否则功能不可用v2.1.0 变更
accel/**:一套代码同时支持 NPU 与 GPU,上层调用点零改动接入start.sh一键启动、backend/requirements-accel.txt通用依赖清单/api/compute/cards、/api/compute/card-limit等此前缺失的算力管理端点v2.0.0 变更
许可证与来源
完整协议文本见
LICENSE,第三方组件声明见NOTICE。本项目为 metax-gpu-ops-agent 的扩展版。 源项目系 CCF 第八届开源创新大赛 · 开源项目贡献赛道 · 沐曦赛题「国产 GPU AI 创新生态赛」一等奖作品, 由「能工智人」战队开发。