PAYATHON 2026

Apache 2.0 分割模型的 pretrained weights 能否免费商用?

技术老齐

结论:不能仅凭 Apache 2.0 就认定预训练权重可以免费商用

Apache 2.0 允许商业使用,不收取许可证费用。但仓库采用 Apache 2.0,并不代表其中所有预训练权重都已获得完整的商用授权。使用前,还要确认许可证是否涵盖目标权重,以及训练数据和上游预训练模型是否有额外限制。Apache License 2.0

对 SegNeXt 和 PP-LiteSeg,建议这样处理:

  • SegNeXt 官方 README 在声明 Apache 2.0 的同时,也注明商用请联系作者。使用前应就具体权重和用途取得书面澄清。
  • 使用 Cityscapes 训练的权重,在没有额外授权的情况下,不应直接用于商业产品。Cityscapes 的公开许可明确限制数据集及其衍生作品的商业使用,并将训练模型列为衍生作品的例子。
  • 如果无法取得覆盖所需用途的授权,可以更换为来源清楚、许可明确允许商用的权重,或使用具备相应权利的数据重新训练。

相关说明见 SegNeXt 官方说明和 Cityscapes 官方许可。

仓库许可证是否涵盖权重?

是否涵盖,取决于发布者声明的授权范围。

Apache 2.0 授权的是按该许可证发布的作品,并未规定代码仓库链接的所有外部文件都自动适用同一许可。因此,无论权重放在仓库内、GitHub Release,还是外部下载地址,都要查看具体的许可声明。Apache 2.0 第 1、2 条

核查时应查看:

  • LICENSE、NOTICE、README 是否明确提到模型权重;
  • model card、Release 页面或下载页面是否另列许可;
  • 是否有涉及第三方模型、数据集的说明,或要求商用联系作者的声明。

如果发布者明确声明代码和权重均按 Apache 2.0 授权,且拥有作出这些授权所需的权利,就可以在遵守条款的前提下商业使用。仅凭仓库首页的 Apache 2.0 标识,通常还不足以确认权重的商用许可。

数据集的非商业限制会不会影响权重?

要看数据集条款如何约定,以及这些约定如何对使用者生效。训练数据的许可证不一定自动成为权重的许可证;权重没有附带原始图片,也不代表数据集限制就不再相关。

Cityscapes 官方页面底部的 License agreement 对此有明确约定:

  • 第 3 项允许分发无法还原数据集的抽象衍生作品,并以训练模型为例;
  • 第 4 项禁止将数据集或任何衍生作品用于商业目的。

这里允许分发模型,但仍禁止商业使用。对于受这套条款约束的 Cityscapes checkpoint,在取得相应商业授权前,项目中应避免将其纳入商业产品。Cityscapes License agreement

法律适用仍需具体判断。例如,某个权重是否在著作权法意义上构成衍生作品,数据集协议是否直接约束未下载原始数据的下游用户,都取决于具体事实和适用法律。给权重标注 Apache 2.0,无法单凭这一标注消除上游权利或合同问题。数据集提供方在协议中使用“衍生作品”一词,也不代表各司法辖区都会作出相同的法律认定。

SegNeXt 和 PP-LiteSeg 应该分别怎样处理?

SegNeXt:先澄清商用说明及其范围

SegNeXt 官方仓库同时提供了不同数据集对应的权重,并在 README 的许可部分写道:

For commercial use, please contact the authors.

这项说明与 Apache 2.0 声明并列,需要确认它针对的是代码、权重,还是其他授权安排。应向作者核实,但不能据此直接认定所有商用都必须付费。SegNeXt 官方 README

联系维护者时,应提供权重下载地址、文件名和产品用途,请其确认许可范围及上游限制,并说明授权依据。如果涉及数据集权利,还需要取得相应权利人的许可。

PP-LiteSeg:按具体 checkpoint 核查

PaddleSeg 仓库采用 Apache 2.0。其 release/2.10 分支中的 PP-LiteSeg 文档分别列出了 Cityscapes 和 CamVid 模型,同一模型名称下的权重可能有不同的训练来源。PaddleSeg LICENSE、PP-LiteSeg 模型说明

Cityscapes 训练版本需要处理前述非商业限制。其他版本也应分别核查训练数据和初始化权重的授权,不能仅因数据集名称不同就认定可以商用。

实际项目中的解决步骤

  1. 记录仓库 commit、权重下载地址和 SHA-256,将具体文件作为审批对象,避免作出“SegNeXt 可商用”这样的宽泛结论。
  2. 保存对应版本的许可证、模型说明和下载页面。声明含糊或相互矛盾时,取得书面澄清。
  3. 追溯 backbone 预训练、分割训练和后续微调所用的数据与权重,分别核对使用限制。
  4. 说明产品的实际用途,区分服务器推理、随软件分发权重、向客户提供 SDK 等场景,确保授权覆盖实际交付方式。
  5. 对授权未覆盖的部分,获取额外许可、更换权重,或重新训练。涉及条款解释争议时,请负责该产品的法务审核具体材料。

核查命令示例

在已下载的项目根目录中,可以先用以下命令查找许可声明和权重加载配置:

# 记录代码版本
git rev-parse HEAD

# 查找许可、数据集和商用相关说明
rg -n -i \
  'apache|license|commercial|non-commercial|cityscapes' \
  -g '*.md' -g '*LICENSE*' -g '*NOTICE*' .

# 查找初始化权重和恢复训练配置
rg -n \
  'pretrained|init_cfg|load_from|resume_from|resume_model' \
  -g '*.py' -g '*.yml' -g '*.yaml' .

# 将占位路径替换为实际权重路径,计算文件摘要
shasum -a 256 /path/to/model.pdparams

这些命令可以帮助查找材料、确认文件身份,但搜索不到限制并不代表已获得商用授权。还要检查下载页面、继承配置,以及训练代码实际加载的文件。

重新训练和交付时的注意事项

重新训练时,应确认没有继续加载许可不明或受限的 checkpoint,包括 backbone 初始化权重和断点恢复文件。可以从随机初始化开始,也可以使用已经核实允许相应用途的预训练权重。

在自有数据上继续 fine-tune,不会自动解除原权重的限制。量化、剪枝或导出 ONNX 也不会带来新的商用授权。重新训练所用的数据,同样需要明确允许相应的训练、部署及交付用途。

对确实按 Apache 2.0 获得授权、且需要对外分发的代码或权重,应按第 4 条提供许可证副本、保留适用声明、标明文件修改;如果存在 NOTICE,还应保留其中适用的归属信息。Apache 2.0 不要求公开商业产品的全部源码,但分发时仍需履行这些义务。Apache 2.0 第 4 条

备注:内容仅供参考。