3173 字
约 10 分钟
17
S23-A10 · 模型与数据的许可边界:能用、能改、能商用
模型能下载、能跑出结果,不等于能进产品。法务问「这个模型能不能商用」,工程侧只能拿出一个链接和一句「大家都这么用」。许可不是开关,是一组彼此独立的问题,答错任何一个都要到分发那一刻才爆。
1. 许可必须拆成四问
| 问题 | 判据看哪里 | 常见误判 |
|---|---|---|
| 能用来推理吗 | 权重许可 + 使用条款 | "能下载就能用"——下载页允许,条款可能限用途 |
| 能改吗 | 是否允许衍生(微调、蒸馏、量化) | "能改代码"推不出"能改权重" |
| 能再分发吗 | 是否允许转交权重或衍生品 | 内部能跑,推不出能给客户部署 |
| 能商用吗 | 商用条款、用户数/营收门槛 | "开源"被当成"可商用" |
// 选型判定单:四问全过才进候选池
─── inference ─── 条款是否禁该用途
─── modify ─── 是否允许 finetune / quantize(微调即衍生)
─── redistribute ─── 可否交付权重,或只能 API 形态
─── commercial ─── 无门槛,或门槛 = MAU / 年营收
四问的顺序不能颠倒:先做推理,再问改动,最后才谈分发与商用。很多团队直接从第四问开始,结果是在架构已经按某个模型写死之后,才发现它不能对外提供服务。
2. 三类许可与它们对下游的约束
| 类型 | 典型代表 | 对下游的约束 | 工程上的后果 |
|---|---|---|---|
| 宽松 | Apache-2.0、MIT | 保留声明与许可文本 | 只需在分发物里附许可 |
| 传染性 | GPL 系、部分社区许可 | 衍生作品需同许可开放 | 与闭源产品集成时冲突 |
| 研究/社区专用 | 仅研究、非商用、门槛条款 | 用途受限,可能按用户数或营收触发 | 上线前必须换模型或买授权 |
传染性许可的坑在「衍生」的判定:微调权重几乎必然算衍生;调用 API 是否算衍生,取决于条款措辞。选型阶段就要问清。
3. "开源权重"不等于"开源软件"
| 维度 | 开源软件许可 | 开源权重(常见形态) |
|---|---|---|
| 交付物 | 源码 | 二进制参数 + 少量配置 |
| 可审计性 | 可读、可改、可重建 | 训练数据与过程通常不公开 |
| 许可判定 | 版权法框架成熟 | 合同/使用条款成分更重 |
| 商用限制 | 一般不限制用途 | 可能按规模、场景、地域限制 |
| 义务 | 附许可、保留声明 | 附条款、标注来源、遵守用途限制 |
把权重当软件许可处理是最常见的错位:copyleft 约束分发源码,权重条款约束用途与再分发。
4. 训练数据的来源风险与传导
| 来源 | 主要风险 | 传导路径 | 缓解动作 |
|---|---|---|---|
| 网页爬取 | 版权、robots 与站点条款 | 进入权重,输出可能复现原文 | 记录来源清单与抓取时间,做输出过滤 |
| 用户生成内容 | 授权范围不清(是否允许训练) | 条款若未授权,模型本身带瑕疵 | 核查 UGC 条款,剔除未授权部分 |
| 合成数据 | 上游模型许可是否允许生成训练集 | 上游限制会传导到下游模型 | 记录生成所用模型与许可 |
| 采购数据集 | 许可只覆盖内部评估,不覆盖商用 | 商用即违约 | 许可文本与用途逐条对齐 |
传导是这条链上最难的一环:数据限制不写在模型卡上,却沿「数据 → 权重 → 输出 → 产品」一路传下去。做法不是零风险,而是让每一环可追溯。
5. 数据集许可与模型许可彼此独立
| 情形 | 结论 | 原因 |
|---|---|---|
| 模型许可宽松、数据集仅研究用 | 不能直接商用 | 数据集限制未被模型许可覆盖 |
| 模型许可限商用、数据集完全自有 | 仍受限 | 权重条款独立生效 |
| 数据集 CC-BY、模型 Apache-2.0 | 义务叠加 | 署名与许可文本都要满足 |
| 数据集"仅评估"、模型自研 | 商用前须替换数据 | 评估授权不含训练权 |
6. 模型输出的归属与合同意义
输出归属在技术上无法判定(没有可用的相似度阈值),所以它实际由条款与合同决定。
| 条款写法 | 实际含义 | 需要留的证据 |
|---|---|---|
| 输出归使用者 | 可自由使用,但上游不承担侵权责任 | 条款原文与版本 |
| 输出归提供方、授予使用许可 | 可用但受限,常见于免费层 | 授权范围与终止条件 |
| 输出含上游内容时附加限制 | 需过滤或标注 | 过滤策略与命中记录 |
| 未约定 | 默认按版权法,风险最高 | 补充协议 |
所以「我们内部用」经常不构成豁免:内部使用也会产生对外交付物,一旦含输出内容,分发义务就被触发。
7. 分发方式决定义务
| 分发形态 | 是否算分发 | 主要义务 | 风险点 |
|---|---|---|---|
| 纯 API 服务(权重不出门) | 通常不算权重分发 | 服务条款、输出归属 | 条款若限制"提供服务",仍违约 |
| 交付权重给客户部署 | 算 | 附许可、用途限制、衍生标注 | 客户二次分发失控 |
| 嵌入硬件/客户端 | 算,且难以召回 | 附条款、版本锁定、更新通道 | 已出货设备的许可变更无法追溯 |
| 仅内部推理 | 通常不算 | 记录来源与版本 | 内部产物外发即触发 |
8. 最小审查清单
审查不需要平台,需要的是一份能过审计的记录。四个字段缺一不可:来源、版本、许可文本、使用范围。
// model-registry 条目示例:字段名可自定义,字段不可省
- model: MODEL_ID
source: MODEL_URL
version: COMMIT_OR_TAG // 权重与分词器都要锁到同一版本
license: LICENSE_NAME
license_text: licenses/LICENSE_NAME.txt // 留存原文,不只留名字
usage_scope: inference-only // inference-only | finetune | redistribute | commercial
derivative: none // none | lora | distill | quantize
reviewed_by: ROLE_A
reviewed_at: YYYY-MM-DD
// 清单覆盖率检查:找出用了却没有登记的模型
─── 1) 从代码与配置里抽出模型标识 ───
grep -rhoE '(model|model_name)\s*[:=]\s*"?[A-Za-z0-9._/-]+' --include='*.y*ml' --include='*.json' . | sort -u
─── 2) 与登记表比对 ───
comm -23 <(grep -rhoE 'MODEL_ID_PATTERN' . | sort -u) <(grep 'model:' model-registry.yml | awk '{print $3}' | sort -u)
第 2 步的输出就是未登记模型,比任何问卷更能反映真实状态。
9. 上游改许可怎么办
// 只比对登记表里出现过的模型页,不做全网扫描
curl -sL MODEL_URL/LICENSE | sha256sum // 与登记表里的 hash 比对,不一致即复核
// 许可变更的监控与响应
─── 1) 定点监控 ─── 只盯登记表里出现过的仓库/模型页,不盯全网
─── 2) 变更判定 ─── 版本号变化 + 许可文件 hash 变化,两者同时看
─── 3) 影响面 ─── 按 usage_scope 与 derivative 筛出受影响的条目
─── 4) 决策 ─── 锁旧版本、换模型、或取得授权,三选一并记录
锁旧版本是最常见的处置,但只在「仍可合法使用旧版本」时成立——部分变更会追溯适用范围,要看生效与过渡措辞。
10. "内部用"不构成豁免的常见情形
| 情形 | 为什么不算豁免 | 正确做法 |
|---|---|---|
| 内部系统,但输出进了对客报告 | 输出已对外分发 | 按对外分发审查 |
| 内部训练,产出模型对外提供 | 模型分发义务照常触发 | 审查训练数据许可 |
| 内部 POC 转生产 | 用途从研究变为商用 | 上线前重做四问 |
| 员工使用,但客户能看到结果 | 实质是对外服务 | 补条款与来源记录 |
11. 替代方案的评估
| 方案 | 代价 | 何时选它 |
|---|---|---|
| 换模型(同能力、宽松许可) | 重新评测、可能降点效果 | 卡在商用条款,且效果可接受 |
| 换数据源(可商用数据) | 重训成本、效果不确定 | 卡在数据授权,且模型自研 |
| 购买商业授权 | 直接成本,通常按规模计价 | 用量明确、效果已验证 |
把「换模型」的代价算全:评测之外还有提示重写、输出格式变化、工具调用兼容。低估这一项,最后常发现换比买贵。
12. 度量
| 指标 | 口径 | 说明 |
|---|---|---|
| 模型清单覆盖率 | 已登记模型 / 实际使用模型 | 低于 100% 即存在盲区 |
| 许可记录完整度 | 四字段齐全的条目占比 | 缺许可原文等于没记录 |
| 来源不可追溯比例 | 无来源记录的数据集占比 | 决定出事时的界定能力 |
| 许可变更响应时长 | 从发现变更到给出决策 | 反映流程是否存在 |
| 衍生标注率 | 微调/量化产物带标注的比例 | 遗漏会让下游误判 |
13. 排错:审查做了却仍被卡
| 现象 | 更可能的原因 | 处理 |
|---|---|---|
| 法务反复退回同一份材料 | 只给了许可名,没给许可原文与版本 | 附原文 + commit/tag |
| 上线前才发现不能商用 | 四问只答了第一问 | 选型阶段把四问写进决策单 |
| 客户要"来源证明"给不出 | 数据集来源未记录 | 补来源清单,标注不可追溯部分 |
| 换模型后效果掉一截 | 只换了权重,提示与参数没跟着改 | 换模型视为一次完整发布 |
| 权重交付后被二次分发 | 合同未写禁止转交 | 分发形态与条款一起谈 |
14. 边界
| 场景 | 判断 | 理由 |
|---|---|---|
| 闭源商业采购、合同已覆盖用途 | 不再逐条审权重许可 | 合同优先于默认许可 |
| 纯内部研究、不出任何交付物 | 审查可简化到"来源 + 版本" | 分发义务未触发 |
| 输出不对外、仅辅助内部决策 | 记录来源即可,不必逐条对齐 | 风险面在产品侧 |
| 模型完全自研、数据完全自有 | 审查对象变成数据授权链 | 权重许可问题不存在 |
| 一次性评估、用完即弃 | 只记录来源,不建登记表 | 登记成本高于风险 |
简化不等于零:来源与版本任何场景都要留,它是事后界定的唯一依据。
15. 自测
- 四个问题里,哪一个最容易被"开源"这个词掩盖?
- 微调权重为什么几乎必然被视为衍生作品,而调用 API 不一定?
- 模型许可宽松、数据集仅限评估,能不能商用?缺的是哪一环?
- 交付权重与提供 API 服务,义务差异的根源是什么?
- 上游改许可后,"锁旧版本继续用"在什么条件下不成立?
- 内部使用在哪些情形下仍然触发对外分发义务?
S23-A10 · 模型与数据的许可边界:能用、能改、能商用
https://www.clxhxhhr.top/posts/6282/ 评论
0 条
还没有评论,先写一条吧。