Skip to content
目录

版本演进、Issue/PR 线索与设计依据

1. v4 时代的架构叙事(与源码互证)

公开资料(如 Hugging Face Blog 上 Transformers.js V4 一文、GitHub Release 4.0.0PR #1382)普遍强调:

  • WebGPU:与 ONNX Runtime 团队协作,浏览器侧可使用 原生 WebGPU Execution Provider,性能相对早期路径有量级提升空间(具体数字随模型与环境变化,以「需 benchmark」表述更稳妥)。
  • 仓库结构:由巨型单文件拆分为 按模型/任务分模块src/models/,与本仓库当前结构一致;根目录采用 pnpm monorepo 以容纳多包与集成。
  • 算子与图:社区讨论中常提及 ORT contrib 算子(如 GroupQueryAttention、MatMulNBits、QMoE 等)用于跟上新架构(MoE、MLA、Mamba 等)—— 对应到 JS 侧即 导出 ONNX 必须与 ORT Web 能力匹配,否则需改导出或换用支持算子。

阅读建议:将 Blog/Release 当作 路线图与设计动机;具体行为以 packages/transformers/srcpackage.json 依赖版本 为准。

2. 与本仓库直接相关的 PR/Issue 类型

Issues 中,高频类别与源码锚点如下:

主题源码锚点典型现象
WebGPUbackends/onnx.jssession.jsdtypes.js(fp16/shader-f16)某设备不支持 fp16、shader 编译失败
WASM 加载ensureWasmLoadedcacheWasmDeno/Worker 中路径或 blob 加载失败
Session 并发webInitChainwebInferenceChainSession already started
量化/精度selectDtypeDataTypeMap输出 NaN、与 Python 不对齐
多模态体积get_pipeline_files text-only 过滤误下 vision 权重、OOM

3. 依赖版本(本分析时刻)

packages/transformers/package.json 中:

  • onnxruntime-web 使用 dev 时间戳版本(滚动更新频繁),
  • onnxruntime-node 固定 1.24.3

这表示:浏览器与 Node 的 ORT 版本策略不完全一致,排障时要分别看两端 changelog。

4. 设计依据一句话清单

  • ONNX + ORT:跨语言、服务端与浏览器同栈,生态与硬件 EP 成熟。
  • Pipeline + Auto 类:降低迁移成本,与 HF Python 心智一致。
  • 多 session:匹配 ONNX 导出与解码循环结构。
  • Web 串行链:规避 ORT Web 并发限制,优先稳定性。
  • dtype 后缀约定:同一 Hub 多份权重,用 API 切换而无需改路径逻辑。

下一篇:常见问题

MIT License.