目录

通用智算运维平台 (ops-platform)

国产算力通用智算运维平台 · 版本 v2.1.2

面向国产算力的通用智算运维平台。平台启动时自动识别服务器上的算力设备并切换采集与计算链路, 一套代码同时支持 NPU 与 GPU 两类国产算力,集成算力监控、算子工作台、YOLO 训练/推理/标注、 数据集管理、模型压缩与部署等功能。

对外展示口径:页面统一使用「国产算力」「显存」「算力利用率」「底层工具链」等通用说法, 不出现具体厂商与型号。设备类别仅在服务端内部用于能力判断。

🔐 安全提示:仓库不包含任何运行时数据库、SSH 凭据与本地路径信息; 部署后请先修改默认口令,并按需设置 PLATFORM_API_KEY 开启接口鉴权。


项目来源与致谢

本项目是 沐曦算力运维助手 (metax-gpu-ops-agent) 的扩展版。

内容
源项目 metax-gpu-ops-agent — 沐曦算力运维助手 · 基于 MCP 协议的国产 GPU 运维智能体
赛事荣誉 CCF 第八届开源创新大赛 · 开源项目贡献赛道 · 沐曦赛题「国产 GPU AI 创新生态赛」一等奖
开发战队 能工智人
源项目协议 Apache License 2.0

与源项目的关系

源项目 metax-gpu-ops-agent 本项目 ops-platform(扩展版)
定位 面向单一国产 GPU 平台的运维智能体 面向多类国产算力的通用智算运维平台
设备支持 固定适配某一类国产 GPU 自动识别服务器算力设备,统一支持 NPU 与 GPU 两类
设备切换 自动识别 + 页面手动切换,热生效并持久化
功能裁剪 按设备能力自动开关功能入口
展示口径 展示具体型号 全站中性化,不出现厂商与型号
新增模块 算子工作台、标注 PK 台、模型压缩与部署、具身数据转换、三级权限与审计

源项目在 MCP 工具体系、零依赖一键部署与 YOLO 训练流程上的积累,在本项目中得到延续与扩展。 谨向源项目开发者(能工智人战队)与大赛主办方致以谢意。


仓库地址

本项目采用主仓库 + 镜像仓库双托管模式:

角色 平台 地址
主仓库(Primary) GitLink 确实开源(CCF 官方开源平台) https://www.gitlink.org.cn/muluzhe/ops-platform
镜像仓库(Mirror) AtomGit https://atomgit.com/muluzhe/ops-platform

主仓库为唯一权威来源,Issue、PR 与版本发布请提交至主仓库; 镜像仓库仅作同步副本,便于在不同平台访问。

# 克隆主仓库
git clone https://www.gitlink.org.cn/muluzhe/ops-platform.git

# 克隆镜像仓库
git clone https://atomgit.com/muluzhe/ops-platform.git

分支说明

仓库 默认分支
GitLink(主仓库) master
AtomGit(镜像仓库) main

两个仓库内容始终一致,仅默认分支命名不同(沿用各平台自身约定)。

同步方式

AtomGit 平台原生的「仓库镜像」功能仅支持以 GitHub / Gitee 作为同步源,无法直接从 GitLink 拉取, 因此仓库内置同步脚本,完成主仓库 → 镜像仓库的单向同步:

# 首次:配置双远程
git remote add origin  https://www.gitlink.org.cn/muluzhe/ops-platform.git   # 主仓库
git remote add atomgit https://atomgit.com/muluzhe/ops-platform.git          # 镜像仓库

# 同步当前分支与全部标签到两个仓库,并在结束时校验三端一致性
./scripts/sync-mirror.sh

# 只预览将要执行的操作,不实际推送
./scripts/sync-mirror.sh --dry-run

开源许可证

本项目采用 **Apache License 2.0**(OSI 认证许可证)。

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.

要点:

  • ✅ 可自由商用、修改、分发、私用
  • ✅ 提供明确的专利授权,对企业使用友好
  • ⚠️ 需保留版权声明、许可证副本与 NOTICE 文件
  • ⚠️ 修改过的文件需标注变更
  • ❌ 不提供任何担保,作者不承担连带责任

与源项目 metax-gpu-ops-agent 保持同一协议,便于向上游回馈贡献。


目录


功能概览

模块 说明
国产算力监控 实时监控显存占用、算力利用率、温度、功耗;支持历史指标采集与趋势可视化
设备识别与切换 自动识别服务器算力设备;支持页面手动指定,热生效无需重启
算子工作台 通用算子开发全流程(编译/剖析/对拍/基准);设备自研算子的编译、剖析、注册、Tiling 按设备能力提供
训练管理 YOLO-OBB 模型训练,支持训练/验证交替、实时 loss/mAP 指标、模型自动保存
数据集广场 数据集上传、浏览、管理;支持 drone-obb、coco128、coco2017 等多数据集
模型库 模型权重管理,自动按文件名识别任务类型(含 obb 标记旋转框)
标注 PK 台 AI 辅助标注 + 人工标注比对,支持 OBB 旋转框标注,按数据集/模型分组选择
模型压缩 结构化剪枝、知识蒸馏、量化(量化策略按设备能力提供)
模型部署 模型格式转换与推理服务部署(离线模型链路按设备能力提供)
具身数据转换 RLDS/Robomimic/LeBot/AGIBot 格式互转
用户与权限 三级用户分级管理、审批中心、审计日志
MCP 网关 FastMCP 协议网关,支持 MCP 工具调用

国产算力设备适配

1. 自动识别

平台启动时按设备管理工具探测服务器硬件,并校验对应计算运行时是否真实可用:

探测优先级:设备自研生态 → 通用 GPU → 无设备(模拟数据兜底)
选择策略:优先选择计算运行时真正可用的设备;否则取最高优先级的可用设备

启动日志会打印识别结果与本次被关闭的功能:

[start] 检测到可用设备: 1 类
[start] 当前生效: 国产算力 | 采集方式: local | 工具链 3.7.1.5 | 驱动 3.8.30
[start] 按设备能力关闭的功能: ['vendor_kernel_dev', 'vendor_offline_model', 'vendor_quant']

2. 手动切换(页面上操作)

入口 位置 可见范围
监控大盘 页面右上角:设备状态标签 + 「⚡ 切换设备」按钮 所有登录用户
系统设置 「系统 → 系统设置」页首张卡片「国产算力运行模式」 管理员(菜单可见),路由 /settings

弹窗/卡片内选择「自动识别」或「手动指定」,选择目标设备后点「应用」即可热生效,无需重启服务。 「重新识别」按钮用于人工触发重新探测。

下拉选项按中性化口径展示,例如:

国产算力(本机未检测到)                    ← 置灰不可选
国产算力(本机已检测 · 工具链 3.7.1.5)      ← 可切换
自动识别(跟随服务器实际设备)

选择结果会持久化到 workspace/device_backend.json,服务重启后依然生效。

3. 功能按设备能力自动裁剪

平台会依据当前设备能力裁剪功能入口:列表类接口过滤掉不可用项,操作类接口返回统一口径的提示 (如「当前设备不支持自研算子编译。该功能依赖设备自研算子工具链,请在支持该能力的设备上使用; 通用 PyTorch 算子流程不受影响。」),前端同步隐藏或禁用对应入口。

能力 说明 自研生态设备 通用 GPU 设备
monitor 设备监控
train / infer 训练与推理
通用算子流程 编译/剖析/对拍/基准(PyTorch)
vendor_kernel_dev 自研算子语言编译/剖析/注册/Tiling/兼容矩阵
vendor_offline_model 离线模型转换与部署
vendor_quant 设备专有量化工具

通用算子流程对两类设备完全一致:算子源码中的设备调用会被自动适配 (NPU 路径下为恒等变换,行为与历史版本一致)。

4. 环境变量

变量 默认值 说明
ACCEL_BACKEND 空(自动) 部署侧强制指定设备后端,优先级最高且不写盘;可选 auto / native / gpu / gpu_alt(兼容旧名 ascend / metax / nvidia
ACCEL_DEVICE_INDEX 0 训练/推理使用的设备序号
ACCEL_SHOW_VENDOR 0 1 时接口返回真实型号(仅排障用,页面默认不展示)
PLATFORM_ENV production 时,无设备环境不再返回模拟数据(旧名 ACCEL_ENV / ASCEND_ENV 兼容)
ACCEL_BACKEND_CONFIG workspace/device_backend.json 手动选择结果的落盘路径
PLATFORM_WORKSPACE ../workspace 运行数据目录(旧名 ASCEND_OPS_WORKSPACE 兼容)
PLATFORM_API_KEY 接口鉴权密钥(旧名 ASCEND_API_KEY 兼容)
PLATFORM_DEPLOY_ROOT /home/user/ops-platform SSH 远程部署根目录

优先级:环境变量 > 手动选择(持久化) > 自动探测 > 模拟兜底

5. 设备相关接口

方法 路径 说明
GET /api/device/info 当前设备 + 探测结果 + 切换模式(中性化)
GET /api/device/backends 可切换的设备列表
GET /api/device/capabilities 当前设备能力开关
POST /api/device/select 切换设备:{"mode":"manual","backend":"gpu"} / {"mode":"auto"}
POST /api/device/refresh 重新探测本机设备
GET /api/health 健康检查,返回 device_backend / device_family / device_label

6. 扩展新设备

backend/accel/ 已预留扩展位,新增一类设备只需三步(现有后端命名:native.py 自研生态设备、 gpu_smi.py / gpu_smi_alt.py 通用 GPU、mock.py 无设备兜底):

  1. 继承 accel/base.pyAcceleratorBackend,实现 available() / get_devices() / get_processes() / probe() / torch 适配方法(torch_device / torch_prepare / torch_sync / to_device);
  2. accel/registry.py_BUILDERS_PRIORITY 中注册;
  3. capabilities() 中声明该设备支持的功能。

若需要接入历史遗留的后端名,可在 accel/store.pyLEGACY_ALIASES 中登记别名映射。

上层(API、采集器、训练/推理脚本)无需任何改动。


系统架构

┌───────────────────────────────────────────────────────────┐
│                    前端 (React + TypeScript)                │
│   Ant Design 5 · Vite · Monaco Editor · Recharts           │
│   设备上下文 DeviceProvider → 全站统一「国产算力」展示口径       │
└─────────────────────────┬─────────────────────────────────┘
                          │ HTTP / WebSocket (/api · /ws)
┌─────────────────────────▼─────────────────────────────────┐
│                后端 (FastAPI + Python)                      │
│        uvicorn · 端口 8001 · SQLite · APScheduler           │
├───────────────────────────────────────────────────────────┤
│  api.py (主路由)        │  auth.py (认证与权限)             │
│  jobs.py (训练作业)      │  annotate_pk.py (标注 PK)        │
│  resources_api.py       │  embodied_convert/ (数据转换)     │
│  collector.py (指标采集) │  task_monitor.py (任务快照)       │
├───────────────────────────────────────────────────────────┤
│           设备抽象层 accel/  ← 设备无关的唯一入口              │
│  registry 探测与热切换 │ client 统一门面 │ torch_compat 设备适配 │
│  ascend 后端 │ metax 后端 │ nvidia 后端 │ mock 兜底            │
└─────────────────────────┬─────────────────────────────────┘
                          │ 统一设备接口(npu:N / cuda:N)
┌─────────────────────────▼─────────────────────────────────┐
│            国产算力设备 + 驱动 + 计算运行时                    │
│      (设备管理工具:npu-smi / mx-smi / nvidia-smi)          │
└───────────────────────────────────────────────────────────┘

环境要求

硬件

  • 国产算力设备(NPU 或 GPU 均可),支持多卡
  • x86_64 或 aarch64 架构服务器

软件

依赖 要求
Python 3.10+(已在 3.12 验证)
计算框架 PyTorch + 对应设备的运行时(由服务器镜像预装)
设备管理工具 随驱动提供,需在 PATH 中可执行
Node.js 18+(前端构建,已在 Node 24 验证)
npm 9+

⚠️ 不要用 pip 覆盖 torch / torchvision:设备适配版由镜像预装,覆盖后设备将不可用。 平台依赖清单 backend/requirements-accel.txt 已刻意排除这两个包。

已验证环境

环境 设备 工具链 驱动 PyTorch OS
GPU 服务器 64GB 显存 3.7.1.5 3.8.30 2.8.0 Ubuntu 24.04 x86_64
NPU 服务器 910B 系列 64GB HBM CANN 8.5.2 2.7.1 + torch_npu EulerOS / Ubuntu aarch64

部署指南

1. 上传代码

# 解压到目标目录(示例)
unzip ops-platform.zip -d /data/ops-platform/
cd /data/ops-platform

2. 安装后端依赖

cd /data/ops-platform/backend

# 推荐:加速卡平台通用依赖清单(不含厂商专有包,不会覆盖镜像内 torch)
pip install -r requirements-accel.txt

# 前端构建依赖
cd ../frontend && npm install

requirements.txt 是早期昇腾容器环境的完整 freeze(含 CANN 本地 wheel 与大量无关包), 仅供该环境参考;requirements-windows.txt 为最小核心依赖(无设备环境开发调试用)。

若安装 opencv-python 时报 libGL.so.1 缺失(无图形界面服务器常见):

pip uninstall -y opencv-python && pip install opencv-python-headless
# 或补齐系统库:apt-get install -y libgl1

3. 构建前端

cd /data/ops-platform/frontend
npm run build          # 类型检查 + 构建,产物在 frontend/dist/

构建产物由后端静态托管,无需单独部署前端服务。

开发模式(热更新):

npm run dev            # 访问 http://localhost:3002

4. 准备数据目录

cd /data/ops-platform
mkdir -p workspace/datasets workspace/jobs workspace/images
mkdir -p workspace/onnx workspace/om workspace/samples

数据库文件首次启动时自动创建:

  • data/auth.db(用户认证)
  • data/device_metrics.db(设备指标历史,旧文件名自动兼容)
  • data/task_monitor.db(任务快照)
  • workspace/yolo_jobs.dbworkspace/annotate.dbworkspace/market.db

5. 放置数据集与模型

workspace/
├── yolo26n-obb.pt              # OBB 旋转框预训练模型
├── yolo11s.pt                  # YOLO11s 检测模型
└── datasets/
    └── drone-obb-local/        # 航空无人机 OBB 数据集
        ├── data.yaml
        ├── images/{train,val,val_20}/
        └── labels/{train,val_20}/

6. 启动服务

方式一(推荐):一键启动脚本

cd /data/ops-platform
./start.sh

脚本会自动完成:前端产物检查与构建(缺失时)→ 设备识别预检 → 启动服务。

方式二:手动启动

cd /data/ops-platform/backend
uvicorn api:app --host 0.0.0.0 --port 8001

# 后台运行
nohup uvicorn api:app --host 0.0.0.0 --port 8001 > api.log 2>&1 &

# 开发调试(热重载)
uvicorn api:app --host 0.0.0.0 --port 8001 --reload

可选环境变量:

export API_PORT=8001               # 服务端口(start.sh 读取)
export ACCEL_BACKEND=             # 留空为自动识别
export ACCEL_ENV=production       # 无设备时不使用模拟数据

启动成功后日志形如:

[accel] 生效设备后端: gpu (family=gpu, transport=local)
[ops-platform] FastAPI 启动 | 设备后端: 国产算力 | 采集方式: local | 能力: {...}
[collector] 启动,每 5s 采集一次 | 设备: 国产算力 | 采集方式: local
INFO:     Uvicorn running on http://0.0.0.0:8001

7. 访问平台

  • 平台地址:http://<服务器IP>:8001
  • 默认账号:admin
  • 默认密码:admin@123456

⚠️ 首次对外部署前请务必修改默认口令

export PLATFORM_INITIAL_ADMIN_PASSWORD='<强口令>'   # 仅在首次初始化(users 表为空)时生效
export PLATFORM_PASSWORD_SALT='<随机字符串>'          # 口令盐值,建议每套部署不同

已初始化过的实例请登录后在「用户管理」中修改密码。

如需 SSH 端口转发(本地访问远程服务器):

ssh -L 8001:localhost:8001 -i <密钥> <用户>@<服务器地址> -p <端口>
# 然后浏览器访问 http://localhost:8001

使用说明

设备识别与切换

登录后进入「监控大盘」,页面右上角显示当前设备和切换入口:

  1. 点击「⚡ 切换设备」
  2. 选择「自动识别」(跟随服务器实际设备)或「手动指定」
  3. 手动指定时在下列列表中选择目标设备,点「应用」
  4. 切换后监控数据自动刷新,无需重启服务

管理员可在「系统设置 → 国产算力运行模式」中查看更完整的信息(工具链版本、驱动版本、 计算设备编号、当前设备支持的功能清单)。

国产算力监控

进入「监控大盘」,可查看:

  • 显存使用量/总量与占比
  • 算力利用率
  • 设备温度与功耗
  • 设备健康告警(温度/功耗/显存阈值)
  • 近 60 分钟历史指标趋势
  • 运行中与历史任务的资源曲线

算子工作台

进入「算子工作台」:

通用算子流程(所有设备可用)

  1. 在 Monaco 编辑器中编写算子代码(预置算子库可直接选用,代码已按当前设备自动适配)
  2. 「编译」生成算子产物
  3. 「剖析」采集性能数据
  4. 「对拍」执行 CPU vs 设备精度对比
  5. 「基准」多形状性能测试与跨设备对比
  6. 「检测」四层正确性检测(语法/静态/运行时/数值)

设备原生算子流程(仅自研生态设备可用)

  • 设备原生算子语言编辑、编译、剖析、注册、Tiling 生成
  • 兼容矩阵查询、算子样例库、PR/Issue 工单闭环

当前设备不支持时,模式切换处会标注「当前设备不支持」并给出中性提示,通用流程不受影响。

数据集管理

进入「数据集广场」:

  • 浏览已上传的数据集
  • 查看数据集类别、图片数量、标注格式
  • 上传新数据集(需符合 images/train + images/val + data.yaml 结构)

模型库

进入「模型库」:

  • 查看已有模型权重(.pt 文件)
  • 文件名含 obb 自动标记为旋转框任务
  • 下载/删除模型

标注 PK 台

进入「标注 PK」:

  1. 按数据集类型选择数据集
  2. 选择模型(预训练/训练后模型)
  3. AI 自动标注(调用 YOLO 推理)
  4. 人工修正标注框
  5. PK 比对不同模型标注质量

训练指南

提交训练

通过 API 提交训练作业:

import urllib.request, json

payload = {
    "model": "yolo26n-obb.pt",        # 预训练模型
    "data": "/path/to/data.yaml",     # 数据集配置
    "epochs": 50,                     # 训练轮数
    "batch": 8,                       # 批大小
    "imgsz": 640,                     # 图像尺寸
    "model_name": "drone-obb-finetune"
}

req = urllib.request.Request(
    "http://localhost:8001/api/jobs/submit",
    data=json.dumps(payload).encode(),
    headers={"Content-Type": "application/json"}
)
print(urllib.request.urlopen(req).read().decode())

也可以直接在前端「训练管理」页面选择模型、数据集与服务器后提交。

训练监控

  • 前端「训练管理」页面实时查看训练进度与 Loss 曲线
  • API 查询:GET /api/jobs 列出所有作业
  • 日志查看:GET /api/jobs/{job_id}/logs
  • 指标查看:GET /api/jobs/{job_id}/metrics

设备相关注意事项

训练/推理的设备字符串由平台自动适配(自研生态设备为 npu:N,通用 GPU 设备为 cuda:N), 可在「系统设置」的「计算设备编号」中确认。多卡环境下用 ACCEL_DEVICE_INDEX 指定使用的设备。

验证集选择(自研生态设备专项)

注意:CANN 25.5.1 的 aclnnSort 算子存在缺陷,当验证集图片较多(>30 张)时 会在计算 mAP 阶段崩溃(Dst tensor size < src tensor size)。该问题仅影响特定工具链版本。

验证集 图片数 结果
val_mini 1 不崩溃,但指标不可信
val_20 20 不崩溃,指标可信(推荐)
val_subset 100 崩溃 (batch 10/13)
val (完整) 1469 崩溃 (batch 45/184)

推荐使用 val_20(20 张)验证集,在 data.yaml 中设置 val: images/val_20

训练结果参考

drone-obb-local 数据集,50 epochs,val_20 验证集:

Epoch mAP50 mAP50-95
1 0.320 0.235
10 0.648 0.553
20 0.822 0.691
30 0.923 0.803
50 0.948 0.832

常见问题

Q: 页面为什么统一显示「国产算力」?

平台面向国产算力场景,对外展示统一使用「国产算力」「显存」「算力利用率」等通用说法, 不展示具体厂商与型号。设备类别(NPU / GPU)仅在服务端内部用于能力判断与设备字符串生成。

Q: 想确认服务器识别到了哪类设备

查看启动日志的 [start] 当前生效: ... 一行,或访问 GET /api/device/info。 需要临时核对真实型号时,可用 ACCEL_SHOW_VENDOR=1 启动服务后再查询。

Q: 手动切换后功能没变化 / 切换无效

  1. 确认目标设备显示为「本机已检测」,未检测到的选项是置灰不可选的;
  2. 若接口返回「设备类型已由部署环境锁定」,说明部署时设置了 ACCEL_BACKEND 环境变量, 此时页面切换不生效,需调整部署配置;
  3. 切换为热生效,但已加载的模型不会自动迁移设备,重新发起推理/训练即可。

Q: 启动后监控页面显示「模拟数据」

说明平台未探测到可用的设备管理工具。请确认:

  • 驱动已正确安装,且设备管理工具(npu-smi / mx-smi / nvidia-smi)在 PATH 中可执行;
  • 容器环境需正确透传设备(如 MX_VISIBLE_DEVICES / ASCEND_VISIBLE_DEVICES);
  • 生产部署建议设置 ACCEL_ENV=production,使无设备时返回空数据而非模拟数据。

Q: 部分功能菜单显示「当前设备不支持」

这是按设备能力自动裁剪的结果。自研算子编译、离线模型部署、专有量化工具等能力依赖 设备自研算子工具链,仅在支持该能力的设备上提供;监控、训练、推理、通用算子流程不受影响。 如能力判断有误,可在「系统设置」点「重新识别」重新探测。

Q: 启动后端报 ModuleNotFoundError

重新安装依赖:

cd backend && pip install -r requirements-accel.txt

Q: 安装 opencv 报 libGL.so.1: cannot open shared object file

无图形界面服务器缺少 GL 运行库,两种解法任选:

pip uninstall -y opencv-python && pip install opencv-python-headless
# 或
apt-get install -y libgl1

Q: 训练验证阶段崩溃,报 aclnnSort 错误

特定工具链版本的算子缺陷。将 data.yaml 的 val 改为 images/val_20(20 张验证子集)。

Q: 前端页面空白

检查前端是否已构建(frontend/dist/ 目录存在):

cd frontend && npm install && npm run build

Q: 数据/模型库为空

  • 数据集:确认放在 workspace/datasets/<id>/ 下,且包含 images/trainimages/valdata.yaml
  • 模型:确认 .pt 文件放在 workspace/ 目录下,OBB 模型文件名需包含 obb

项目结构

ops-platform/
├── start.sh                     # 一键启动(设备识别预检 + 前端构建 + 启动服务)
├── backend/
│   ├── api.py                   # 主路由(FastAPI app)
│   ├── auth.py                  # 用户认证与权限
│   ├── jobs.py                  # 训练作业管理
│   ├── annotate_pk.py           # 标注 PK 台
│   ├── data_market.py           # 数据集广场
│   ├── native_dev.py            # 自研算子开发流程数据(PR/Issue/样例)
│   ├── collector.py             # 指标定时采集(设备无关)
│   ├── task_monitor.py          # 任务资源快照
│   ├── server_manager.py        # 多服务器 SSH 管理
│   ├── compute_manage.py        # 设备卡数与时段限制
│   ├── compute_agent.py         # 远程节点 agent
│   ├── accel/                   # ★ 设备抽象层
│   │   ├── base.py              #    抽象基类 + 统一数据模型 + 能力声明
│   │   ├── registry.py          #    探测、选择、热切换、torch 预热
│   │   ├── client.py            #    统一门面(上层唯一入口)
│   │   ├── native.py            #    自研生态设备后端
│   │   ├── gpu_smi.py           #    通用 GPU 后端(主用管理接口)
│   │   ├── gpu_smi_alt.py       #    通用 GPU 后端(备用管理接口)
│   │   ├── mock.py              #    无设备兜底
│   │   ├── torch_compat.py      #    训练/推理设备适配
│   │   ├── store.py             #    手动选择持久化(含旧后端名兼容)
│   │   ├── utils.py             #    同步/异步桥接
│   │   └── logging.py           #    诊断输出(stderr,不污染子进程协议)
│   ├── devkit/                  # 自研生态设备采集解析(被 accel/native.py 复用)
│   ├── db/metrics_db.py         # 指标历史存储(device_metrics.db)
│   ├── tools/
│   │   ├── yolo_runner.py       # YOLO 训练/推理(设备无关)
│   │   └── op_runner.py         # 算子运行(设备无关)
│   ├── embodied_convert/        # 具身数据转换
│   ├── requirements-accel.txt   # ★ 通用依赖清单(推荐)
│   ├── requirements.txt         # 昇腾容器完整 freeze(历史参考)
│   └── requirements-windows.txt # 最小核心依赖(无设备环境)
├── frontend/
│   ├── src/
│   │   ├── device/              # ★ 设备上下文与统一展示口径
│   │   │   ├── labels.ts        #    文案唯一来源(国产算力/显存/算力利用率)
│   │   │   ├── DeviceContext.tsx#    全站设备状态与能力
│   │   │   └── DeviceSwitch.tsx #    状态标签 / 切换按钮 / 切换面板
│   │   ├── pages/               # 页面组件
│   │   ├── components/          # 通用组件
│   │   ├── api/                 # API 客户端与类型
│   │   └── App.tsx              # 主应用
│   ├── package.json
│   └── vite.config.ts           # dev 代理 /api、/ws → 8001
├── workspace/                   # 运行时数据
│   ├── datasets/                # 数据集
│   ├── jobs/                    # 训练作业输出
│   ├── device_backend.json      # 设备手动选择记录
│   └── *.db                     # SQLite 数据库
├── data/                        # 指标与认证数据库
└── README.md

主仓库:https://www.gitlink.org.cn/muluzhe/ops-platform 镜像仓库:https://atomgit.com/muluzhe/ops-platform


技术栈

  • 后端:Python 3.12 · FastAPI · uvicorn · SQLite(aiosqlite) · WebSocket · APScheduler · paramiko
  • 前端:React 18 · TypeScript · Ant Design 5 · Vite · Monaco Editor · Recharts · axios
  • AI/训练:PyTorch · Ultralytics YOLO · torch-pruning · OpenCV(headless)
  • 设备抽象accel/ 自适应层,支持自研生态设备与通用 GPU,可扩展新设备
  • MCP:FastMCP 协议网关

版本信息

  • 版本:v2.1.2
  • 日期:2026-09-12
  • 开源许可证:Apache License 2.0
  • 训练模型 mAP50:0.948(drone-obb-local, 50 epochs, val_20)

v2.1.2 变更

  • 开源许可:新增 Apache-2.0 许可证(LICENSE)与来源声明(NOTICE),与源项目保持同一协议
  • 仓库托管:GitLink 设为主仓库,AtomGit 设为镜像仓库,README 补充双托管说明与克隆地址
  • 文档补充:新增「项目来源与致谢」,标注源项目 metax-gpu-ops-agent 及其赛事荣誉 (CCF 第八届开源创新大赛 · 开源项目贡献赛道 · 沐曦赛题「国产 GPU AI 创新生态赛」一等奖)

v2.1.1 变更

  • 文件与目录去品牌化npu/devkit/ · accel/ascend.pyaccel/native.py · accel/metax.pyaccel/gpu_smi.py · accel/nvidia.pyaccel/gpu_smi_alt.py · cann_dev.pynative_dev.py · npu_metrics.dbdevice_metrics.db · cann_dev.dbnative_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,上层调用点零改动接入
  • 新增自动识别:启动时探测服务器算力设备并自动切换采集与计算链路
  • 新增手动切换:监控页「切换设备」按钮 + 系统设置「国产算力运行模式」卡片,热生效并持久化
  • 新增功能能力裁剪:自研算子链路 / 离线模型部署 / 专有量化工具按设备能力自动开关
  • 通用算子流程设备无关化:算子源码按当前设备自动适配,NPU 路径保持恒等变换
  • 展示口径统一:页面统一使用「国产算力」「显存」「算力利用率」等通用说法,不再出现厂商与型号
  • 新增运维脚本start.sh 一键启动、backend/requirements-accel.txt 通用依赖清单
  • 修复:补齐 /api/compute/cards/api/compute/card-limit 等此前缺失的算力管理端点

v2.0.0 变更

  • 初始提交:设备监控、算子工作台、YOLO 训练/推理、数据标注、模型压缩部署、MCP 网关

许可证与来源

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

完整协议文本见 LICENSE,第三方组件声明见 NOTICE

本项目为 metax-gpu-ops-agent扩展版。 源项目系 CCF 第八届开源创新大赛 · 开源项目贡献赛道 · 沐曦赛题「国产 GPU AI 创新生态赛」一等奖作品, 由「能工智人」战队开发。

角色 地址
主仓库 https://www.gitlink.org.cn/muluzhe/ops-platform
镜像仓库 https://atomgit.com/muluzhe/ops-platform
源项目 https://www.gitlink.org.cn/muluzhe/metax-gpu-ops-agent
关于

面向国产算力的通用智算运维平台:自动识别服务器算力设备,统一支持 NPU 与 GPU 两类国产加速卡。集成算力监控、算子工作台、YOLO 训练/推理/标注、数据集管理、模型压缩与部署。本项目为 CCF 第八届开源创新大赛沐曦赛题一等奖项目 metax-gpu-ops-agent 的扩展版。

648.0 KB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号