🚀Jittor 生态发展战略:基于 PyPI 下游包工作量分析
Jittor 生态发展战略:基于 PyPI 下游包工作量分析
数据基础:对 PyTorch 下游 13,475 个 GitHub 仓库进行了系统评估,采集了代码规模(SLOC)、Git 提交数、贡献者数、PyPI 被依赖数、GitHub Stars 等多维指标,综合计算工作量评分。
目标:为 Jittor 框架的生态发展提供数据驱动的优先级建议。
一、方法论
1.1 工作量评估
通过 GitHub API 对 13,475 个 PyTorch 下游包采集了以下指标:
| 指标 | 说明 | 权重 |
|---|---|---|
| 估算 SLOC | GitHub 语言字节占比 → 估算代码行数 | 30% |
| Commit 数 | Git 提交次数,反映迭代投入 | 25% |
| 贡献者数 | 独立贡献者数量 | 20% |
| 最近活跃度 | 90 天内是否有推送 | 15% |
| 项目成熟度 | 项目存在时间 | 10% |
综合得分为 0-100+ 分,分数越高工作量越大。
1.2 影响力评估
使用 PyPI package_dependents(PyPI 上声明 requires: 该包 的包数量)作为真实影响力的指标。
⚠️ 注意:GitHub 的
repository_dependents通常被大量 fork 和教程项目污染(如 ultralytics/thop 的 GitHub 依赖数因 YOLO 生态膨胀至 10K+,但真实 PyPI 依赖数仅 43)。本报告全部使用 PyPI 依赖数。
二、PyTorch 生态全景
2.1 分类统计
将 13,475 个包按功能分类:
| 分类 | 仓库数 | 总 Stars | 总 PyPI 依赖 | 平均工作量 |
|---|---|---|---|---|
| NLP/LLM | 138 | 528K | 879K | 21.2 |
| 计算机视觉 | 162 | 291K | 202K | 22.6 |
| 训练效率 | 33 | 134K | 198K | 30.7 |
| MLOps | 93 | 96K | 190K | 21.7 |
| 模型服务 | 96 | 148K | 169K | 21.8 |
| 音频/语音 | 127 | 302K | 20K | 20.7 |
| 图神经网络 | 29 | 41K | 16K | 23.7 |
| 数据加载 | 55 | 8K | 14K | 19.8 |
| 评估/基准 | 203 | 103K | 9K | 22.3 |
| 模型分析 | 12 | 7K | 1K | 17.9 |
| 边缘/端侧 | 29 | 26K | 342 | 25.9 |
2.2 工作量分布
| 区间 | 数量 | 占比 | 说明 |
|---|---|---|---|
| 70+(顶级) | 40 | 0.3% | transformers, langchain, vllm 等 |
| 50-70 | 268 | 2.1% | 中型框架/工具 |
| 30-50 | 2,086 | 16.3% | 小型库 |
| 10-30 | 10,366 | 81.2% | 微型包/工具 |
81% 的 PyTorch 生态包工作量很小(10-30 分),这意味着 Jittor 不需要投入大量人力就能复刻大部分基础设施。
三、Jittor 现状分析
3.1 基本信息
| 指标 | 数值 |
|---|---|
| GitHub Stars | 3,219 |
| 核心贡献者 | ~5 人 |
| 版本 | 1.3.10.0 |
| 依赖 | numpy, tqdm, pillow, astunparse(极简) |
| 已有模块 | nn, optim, sparse, distributions, linalg, attention |
3.2 核心优势
- JIT 编译:运行时编译优化,对不规则计算(图、稀疏矩阵)有天然优势
- Meta-operator:算子融合,减少内存拷贝
- 轻量依赖:不依赖 PyTorch 的庞大 C++ 栈
- 统一前端:同一套 Python 代码可以跑在 CUDA/CPU/不同后端
3.3 生态短板
对比 PyTorch,Jittor 缺少:
- 模型分析工具(thop, torchstat 等)
- 评估基准库(FID, torchmetrics 等)
- 图神经网络高层 API(PyG 等)
- 端侧部署工具链
- 音频/语音处理库
四、战略建议:五步走
第一步:1 周内上马「模型分析三件套」
目标:消除用户使用 Jittor 的第一道门槛——「我想看模型有多少参数/FLOPs,但 thop 不支持 Jittor」。
| 包名 | 原版 SLOC | PyPI 依赖 | 复刻成本 | 优先级 |
|---|---|---|---|---|
| thop (FLOPs 计算) | 1,706 | 43 | 半天 | 🔴 P0 |
| torchstat (模型统计) | 1,030 | 4 | 半天 | 🔴 P0 |
| torchsummaryX (层级摘要) | 325 | 11 | 2 小时 | 🔴 P0 |
为什么先做这些:
- 代码量极小(300-1700 行),纯 Python
- 只读取网络结构(
model.named_parameters()),不涉及核心算子 - 每个训练者都需要,是最基础的工具
- 可以作为 Jittor 生态的「入门贡献」示例
实现方式:改写原版的 torch.xxx 调用为 jt.xxx,核心逻辑不变。
第二步:2 周内做「评估指标工具」
目标:SE4AI 方向的刚需——用户不需要为了评估模型再装 PyTorch。
| 包名 | 原版 SLOC | PyPI 依赖 | 复刻成本 | 优先级 |
|---|---|---|---|---|
| pytorch-fid (FID 分数) | 975 | 22 | 1 天 | 🟡 P1 |
| clean-fid (改进 FID) | 2,479 | 14 | 2 天 | 🟡 P1 |
| torchmetrics Top 10 指标 | ~5K(精简版) | 24 | 1 周 | 🟡 P1 |
为什么重要:
- 今天 rant radar 有人因为 label leakage 浪费 3 天训练,说明「训练前验证 + 训练中评估」是真实痛点
- Jittor 如果自带评估工具,形成完整训练闭环
- FID/SSIM/PSNR 等指标实现简单(调用预训练网络提取特征 + 统计计算)
第三步:4 周内攻克「图神经网络 + 神经 ODE」
目标:这是 Jittor 的天然主场,用性能优势建立差异化。
| 包名 | 原版 SLOC | PyPI 依赖 | 复刻成本 | 优先级 |
|---|---|---|---|---|
| torchdiffeq (神经 ODE) | 5,218 | 145 | 1 周 | 🟢 P2 |
| torchsde (随机微分方程) | 8,207 | 50 | 1-2 周 | 🟢 P2 |
| PyG 精简版 (GCN/GAT/GraphSAGE) | ~10K(精简) | 15K+ | 2-4 周 | 🟢 P2 |
为什么是天然主场:
- Jittor 的 JIT 编译对不规则计算(图、稀疏矩阵)有天然优势
- torchdiffeq 核心是 RK4/Dopri5 数值积分 + autograd,Jittor 直接支持
- PyG 在 PyTorch 上跑图网络有 Python 开销瓶颈,Jittor 如果 benchmark 快 2-3 倍,这就是差异化竞争力
- 学术界对 GNN + 神经 ODE 的需求持续增长
第四步:跟进「音频/语音」赛道
目标:语音 agent 是 2026 年热点(PyTorch ExecuTorch 就在做这个)。
| 包名 | 原版 SLOC | PyPI 依赖 | 复刻成本 | 优先级 |
|---|---|---|---|---|
| vocos (vocoder) | 3,140 | 33 | 3 天 | 🔵 P3 |
| torch-audiomentations | 8,404 | 29 | 1 周 | 🔵 P3 |
| faster-whisper (ASR 加速) | 4,846 | 368 | 1-2 周 | 🔵 P3 |
| whisper-timestamped | 6,505 | 22 | 1 周 | 🔵 P3 |
为什么:
- 语音 pipeline(ASR + 增强 + 合成)是完整的垂直场景
- Jittor 的 JIT 编译可以替代 CTranslate2 做 Whisper 加速
- 如果有完整的语音 pipeline,就能吸引做语音的团队
第五步:定位「端侧部署」
目标:长期差异化,PyTorch 有 ExecuTorch 但很重。
- 开发
jittor2onnx导出工具 - 利用 JIT 编译器直接生成高效推理代码
- 针对 ARM/RISC-V 等异构平台优化
五、优先级总览
高影响力
│
┌───────────────┼───────────────┐
│ │ │
│ 第一步 P0 │ 第三步 P2 │
│ 模型分析 │ GNN/ODE │
│ (1周,3人天) │ (4周,3人月) │
│ │ │
───┼───────────────┼───────────────┼─── 工作量
│ │ │
│ 第二步 P1 │ 第四步 P3 │
│ 评估工具 │ 音频/语音 │
│ (2周,2人周) │ (4周,2人月) │
│ │ │
└───────────────┼───────────────┘
│
低影响力
放弃的包(工作量太大,跟框架绑定太深)
| 包名 | 原版 SLOC | 放弃理由 |
|---|---|---|
| DeepSpeed | 278K | 重度依赖 PyTorch C++ 扩展和 CUDA kernel |
| bitsandbytes | 31K | 自定义 CUDA 量化 kernel,跟 PyTorch 绑死 |
| Megatron-LM | 348K | NVIDIA 专属优化,复刻成本等同重写框架 |
| LangChain/LLM Index | 380K-1M | 应用层框架,不是基础设施 |
六、量化预期收益
如果按计划完成前四步:
| 阶段 | 新增包 | 新增 PyPI 覆盖 | 累计工作量 | 时间 |
|---|---|---|---|---|
| 第一步后 | 3 | ~1,100 个包的基础设施需求 | ~3 人天 | 1 周 |
| 第二步后 | +3 | ~40 个评估场景 | ~2 人周 | 2 周 |
| 第三步后 | +3 | ~16K 个 GNN/ODE 场景 | ~3 人月 | 4 周 |
| 第四步后 | +4 | ~400 个音频场景 | ~2 人月 | 4 周 |
总投入:约 4 个月,2-3 人团队。 预期效果:覆盖 PyTorch 生态中 ~17,500 个包的底层依赖需求,建立 Jittor 在 GNN/ODE/端侧的差异化竞争力。
七、结论
Jittor 不需要复刻 PyTorch 的全部生态。正确的策略是:
- 先做 5 分钟能复刻的工具包(thop/fid/stat)—— 消除入门门槛
- 再做自己有技术优势的领域(GNN/ODE)—— 建立差异化
- 最后切入增量市场(语音/端侧)—— 抢占新赛道
- 放弃重 C++ 扩展的包(DeepSpeed/bitsandbytes)—— 不值得
核心原则:低垂果实先摘,差异化领地深耕,框架绑定太深的放弃。
本报告基于 2026 年 3 月对 13,475 个 PyTorch 下游包的系统评估,数据覆盖 GitHub API(代码规模、提交历史、贡献者)和 PyPI API(依赖关系、包元数据)。