竞赛指南: YOLO-Master 贡献路径
ncnn 贡献指南见 竞赛指南: ncnn
YOLO-Master 架构见 精读: yolo-master
部署链见 跨赛道: YOLO → 端侧
调研元信息
| 项 |
值 |
| 日期 |
2026-06-22 |
| YOLO-Master commit |
42549d0 (fix(moe): add shared_expert compute + stop_gradient) |
| 环境 |
macOS / Apple Silicon (MPS 可用) |
| 实测状态 |
未实测训练,以源码 + 文档为准 |
| 流水线段 |
Train/Research 为主,Export 涉及 MoE 导出 |
一句话定位
YOLO-Master 是腾讯优图 CVPR 2026 工作(ES-MoE YOLO),~80 文件、6 个 good-first-issue、agent/ 目录为犀牛鸟最友好切入点——用 Python 就能贡献,无需 GPU 训练。
日常类比
想象一个大学实验室发布了一个「智能分诊机器人」的开源原型:核心算法(MoE 路由)需要医学博士才能改,但前台接待系统(agent/)、使用说明书(docs/wiki/)、展示界面(app.py Gradio)任何实习生都能优化。犀牛鸟就是从「前台」做起,逐步理解「后台算法」的过程。
agent/ 目录深度解读 [源码]
架构总览
graph TD
subgraph agent/
A[scripts/] -->|thin wrapper| B[runtime/cli/dispatcher.py]
B --> C[core_handlers.py<br/>train/val/predict/export]
B --> D[multimodal_handlers.py<br/>VLM/LLM inference]
B --> E[moe_tools.py<br/>MoE diagnose/prune]
B --> F[pipeline.py<br/>end-to-end experiments]
G[runtime/evaluation/] --> H[metrics.py]
I[runtime/multimodal/] --> J[fusion.py + visual.py]
K[runtime/open_world/] --> L[taxonomy.py<br/>LVIS 1203 + V3Det 13204]
end
M[SKILL.md] -.->|AI agent 读| B
N[assets/] -.->|prompts + taxonomy| I
关键文件职责
| 文件 |
职责 |
代码量 |
改动风险 |
scripts/run_yolo_master_skill.py |
入口 thin wrapper |
~10 行 |
极低 |
runtime/cli/dispatcher.py |
请求路由中心 |
中 |
中 |
runtime/cli/core_handlers.py |
train/val/predict/export 处理 |
大 |
中高 |
runtime/cli/moe_tools.py |
MoE 诊断 + 剪枝 |
中 |
中 |
runtime/multimodal/runtime.py |
VLM/LLM 调用封装 |
中 |
低 |
runtime/multimodal/fusion.py |
检测 + VLM 融合逻辑 |
中 |
低 |
runtime/open_world/taxonomy.py |
LVIS/V3Det 分类匹配 |
小 |
低 |
SKILL.md |
AI 可读 skill 规范 |
276 行 |
低 |
执行模型
用户/AI 请求 → scripts/ (thin entry) → dispatcher.py (路由)
→ core_handlers (yolo CLI 封装)
→ multimodal_handlers (YOLO + VLM pipeline)
→ moe_tools (诊断/剪枝)
→ pipeline (端到端实验)
Apple Silicon 支持:SKILL.md 明确 mps 为 heavy compute 默认设备,失败自动回退 CPU。
贡献分级
| 级别 |
路径 |
难度 |
需要 GPU? |
犀牛鸟价值 |
| L1 入门 |
agent/ scripts + docs + wiki |
★☆☆☆☆ |
否 |
展示代码组织能力 |
| L2 功能 |
agent/ runtime 新 handler + Gradio app |
★★☆☆☆ |
MPS 够用 |
展示 Python 工程力 |
| L3 诊断 |
MoE 分析工具 (analysis.py/diagnostics.py) |
★★★☆☆ |
推荐 GPU |
展示 ML 理解力 |
| L4 核心 |
ultralytics/nn/modules/moe/ 改进 |
★★★★☆ |
必须 GPU |
展示研究能力 |
| L5 部署 |
MoE → ONNX/ncnn 导出适配 |
★★★★★ |
GPU + 端侧设备 |
跨赛道高价值 |
Good-First-Issue 候选 [Issue]
YOLO-Master 有 19 open issues,6 个标记 good-first-issue:
| # |
标题 |
类型 |
切入建议 |
| #36 |
Routing Collapse observed in v0.1-N via analysis script |
分析/复现 |
用 moe_tools.py 复现 → 写诊断报告 |
| #15 |
About MoE Loss |
问答/文档 |
研读 loss.py → 补充 wiki 说明 |
| #14 |
v0.1 和 v0 模型配置区别 |
文档 |
比较 YAML → 写版本对比表 |
| #5 |
咨询专家数量 |
问答/文档 |
研读路由配置 → 补 FAQ |
| #3 |
YAML 只有主干 MoE 配置,缺颈部 |
配置补充 |
读 modules.py → 提供 neck MoE YAML 示例 |
| #2 |
Expected weight file |
环境/文档 |
写安装 troubleshooting |
非 GFI 但有价值的 issues
| # |
标题 |
价值 |
| #42 |
ONNX 动态计算导出 |
跨赛道核心问题,高难度高价值 |
| #33 |
RK3588 部署 |
NPU 部署实践,设备依赖 |
| #12 |
ONNX-Runtime 部署 |
端侧部署链验证 |
| #9 |
Qualcomm NPU 部署 |
异构计算方向 |
与 Ultralytics 的关系
YOLO-Master 基于 Ultralytics 框架构建:
ultralytics/ (上游框架代码, AGPL-3.0)
├── nn/modules/moe/ ← YOLO-Master 核心创新(10 文件)
├── cfg/models/ ← MoE YAML 配置
└── 其余 ← 标准 Ultralytics
agent/ ← YOLO-Master 独有(技能封装层)
docs/ + wiki/ ← YOLO-Master 独有文档
改 MoE vs 改 Ultralytics 通用层的区别:
| 改动目标 |
PR 去向 |
难度 |
合并概率 |
| MoE 路由/专家/损失 |
Tencent/YOLO-Master |
高 |
中(学术 review) |
| agent/ 新功能 |
Tencent/YOLO-Master |
低 |
高 |
| Ultralytics 通用改进 |
ultralytics/ultralytics |
中 |
看贡献历史 |
| 文档/wiki |
Tencent/YOLO-Master |
极低 |
高 |
MoE 模块速览(含部署风险)[源码]
10 个 MoE 相关文件在 ultralytics/nn/modules/moe/:
modules.py:10+ MoE 变体(ES_MOE → UltraOptimizedMoE → HybridAdaptiveGateMoE…)
routers.py:7 种路由器(BaseRouter → UltraEfficientRouter)
experts.py:8 种专家实现(SimpleExpert → SharedInvertedExpertGroup)
analysis.py:ExpertUsageTracker + RoutingCollapseDetector
diagnostics.py + history.py:运行时诊断记录
pruning.py:MoE → 单专家剪枝
loss.py:MoE 专用损失函数
部署核心风险(link → challenges.md #8):
- MoE 动态路由 = 条件分支 → ONNX/ncnn 静态图不直接支持
- 推荐 workaround:
pruning.py 蒸馏为单专家 → 标准导出链
- 见 跨赛道文档 详细方案
MoE 稳定版本建议 [文档]
来自 docs/plans/moe_stable_version_analysis.md:
| 版本 |
模块 |
推荐用途 |
| v0.6 |
HybridAdaptiveGateMoE |
稳定训练入口(推荐新手) |
| v0.9 |
— |
最高 mAP 但不稳定 |
| v0.10 |
— |
功能最全但复杂度过高 |
第一周行动计划
| 天 |
行动 |
产出 |
| Day 1 |
pip install -e . + MPS 验证 predict |
环境就绪 + 推理可跑 |
| Day 2 |
读 agent/SKILL.md + dispatcher.py |
理解 skill 封装架构 |
| Day 3 |
选 GFI #36 或 #3 复现 |
复现报告 / YAML 示例 |
| Day 4 |
基于复现写 PR(docs/wiki 或 agent/ 修复) |
Draft PR |
| Day 5 |
用 moe_tools.py 跑 diagnose → 写诊断笔记 |
MoE 理解 + 可能的文档 PR |
环境矩阵
| 环境 |
能做什么 |
不能做什么 |
| Mac(Apple Silicon / MPS) |
pip install -e . 安装、MPS 推理 predict、agent/ 代码阅读与修改、Gradio app 运行、文档/wiki PR |
完整训练(MPS 不支持部分 MoE 算子)、多卡 DDP 训练、CUDA profiling |
| Linux + CUDA GPU |
全功能——训练、导出、MoE 诊断/剪枝、INT8 量化对齐、性能基准 |
无明显限制 |
| CPU only |
代码阅读、文档贡献、agent/ 单元测试、predict(低速) |
训练、MoE 路由分析(耗时过长无实用价值) |
已知风险与边界
| 风险 |
影响 |
应对 |
MoE 模块处于快速迭代期(shared_expert / stop_gradient 刚加入) |
你基于当前代码写的 PR 可能因上游重构而冲突 |
贡献前先查最新 commit、选 agent/ 或 docs/ 等低冲突目录 |
| Ultralytics 上游依赖版本锁定不严 |
pip install -e . 可能因 ultralytics 版本升级而报错 |
看 requirements.txt 固定版本,issue 中已有多人反馈 |
| 无 GPU 环境下无法验证训练相关 PR |
评审可能质疑 PR 的有效性 |
在 PR 描述中说明验证范围,使用 predict + 单元测试作为替代验证 |
agent 目录的 SKILL.md 格式未标准化 |
修改 SKILL.md 可能与维护者的格式预期不一致 |
提 PR 前先开 issue 讨论格式方案 |
读完你应能
Mermaid: YOLO-Master 贡献者路径
graph LR
subgraph L1-入门[第1周]
A1[pip install -e .] --> A2[predict on MPS]
A2 --> A3[读 agent/SKILL.md]
A3 --> A4[GFI PR: docs/wiki]
end
subgraph L2-功能[第2-3周]
B1[新 agent handler] --> B2[Gradio 功能]
B2 --> B3[multimodal pipeline]
end
subgraph L3-研究[第4周+]
C1[MoE 诊断/分析] --> C2[路由改进]
C2 --> C3[INT8 量化对齐]
end
A4 --> B1
B3 --> C1
证据等级
| 标签 |
来源 |
[源码] |
/tmp/YOLO-Master commit 42549d0 |
[已有] |
deep-dive-yolo-master.md(架构 + MoE 四代演进)、challenges.md(部署 #8) |
[文档] |
CONTRIBUTING.md(Ultralytics 上游)、agent/README.md、wiki/MoE_Modules_Explanation.md |
[Issue] |
GitHub Tencent/YOLO-Master open issues (2026-06-22 快照) |