老王在南城根开了一家面馆,招牌牛肉面的汤底配方是他压箱底的宝贝。街坊来学艺,他不好拒绝,又怕配方被人改了名字拿去开店。于是他给每份菜谱都附了一张“使用须知”:可以做什么、必须做什么、出事谁负责。开源世界的“商用许可”,就是代码和模型的那张使用须知。MIT 像“配方随便用,别抹我名字”;Apache 像“配方给你,还白纸黑字承诺不告你偷学手法”;GPL 则像“你改完卖给别人,必须把改法也公开”。选错了规矩,轻则被人指着招牌骂,重则整间店被迫交出去。这篇文章把三种主流许可掰开揉碎讲清楚,帮你在“吸引帮厨”和“守住配方”之间找到平衡。

岗位关联

对 AI 从业者而言,读懂许可协议是商业化起步的第一课——你的护城河,一半靠技术,一半靠协议。

目录
  1. 可视化演示
  2. 许可基础概念
  3. MIT协议解析
  4. Apache协议解析
  5. GPL协议解析
  6. 协议选择策略
  7. AI专属风险
  8. 合规与防控
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

\u5BF9\u6BD4MIT/Apache/BSD/GPL/\u5546\u4E1A\u8BB8\u53EF\u7684\u6743\u9650\u5DEE\u5F02\uFF0C\u5361\u7247\u4E2D\u7EFF\u8272\u4E3A\u5141\u8BB8\u9879\u3001\u7EA2\u8272\u4E3A\u9650\u5236\u9879\u3002

本节配有交互动效(进入视口后自动加载,约 3KB)。

\u5F00\u6E90\u8BB8\u53EF\u4E0E\u5546\u7528\u6743\u9650\u5BF9\u6BD4 MIT/Apache/BSD\u5BBD\u677E\u8BB8\u53EF\uFF1A\u5141\u8BB8\u5546\u7528\u3001\u4FEE\u6539\u3001\u5206\u53D1\uFF0C\u4EC5\u8981\u6C42\u4FDD\u7559\u7248\u6743\u58F0\u660E GPL\u4F20\u67D3\u6027\u8BB8\u53EF\uFF1A\u4FEE\u6539\u540E\u5FC5\u987B\u4EE5\u540C\u6837\u6761\u6B3E\u5F00\u6E90\uFF0C\u5546\u7528\u96C6\u6210\u9700\u8C28\u614E\u8BC4\u4F30 \u5546\u4E1A\u8BB8\u53EF\uFF1A\u4ED8\u8D39\u83B7\u53D6\u4F7F\u7528\u6743\uFF0C\u9650\u5236\u5206\u53D1\u548C\u4FEE\u6539\uFF0C\u4F46\u63D0\u4F9B\u4E13\u4E1A\u652F\u6301 License = Permissions - Restrictions \u9009\u62E9\u8BB8\u53EF\u9700\u7EFC\u5408\u8003\u8651\u5546\u4E1A\u6A21\u5F0F\u3001\u793E\u533A\u751F\u6001\u548C\u6CD5\u5F8B\u5408\u89C4\u8981\u6C42

许可基础概念

老王经营着“老王面馆”,手里捏着一摞手写菜谱,有人想学,他却不敢轻易给——“给了你,你拿去开分店,还把我名字抹了怎么办?”于是他给每张菜谱都订了一页“使用须知”:可以做、不许做、出了事谁负责。开源协议,就是代码和模型世界里的那份“使用须知”。

一份开源许可,本质上是一个法律授权包。主流开源协议都遵循开源促进会(OSI)的十条定义,核心承诺一致:允许任何人免费使用、复制、修改、再分发。但“允许用”不等于“没规矩”。许可证通常由三块拼成:授权范围(能不能商用、能不能闭源衍生)、附加条件(要不要署名、要不要同样开源)、免责声明(出问题谁担责)。

商用边界是最容易被忽视的一块。所有主流协议都允许商用,差别在于“商用后的产品能不能闭源”。MIT 和 Apache 允许你把改过的代码打包成闭源商业软件卖钱;GPL 则要求你分发时必须连源码一起给出。理解这一差异,得先分清知识产权的四件套:著作权管代码文字,专利管算法实现,商标管项目名称,商业秘密管未公开的配方。

许可=授权(使用,修改,分发,商用)+义务(署名,传染)−担保(质量,侵权)\displaystyle \text{许可} = \text{授权(使用,修改,分发,商用)} + \text{义务(署名,传染)} - \text{担保(质量,侵权)}

1. 授权项:许可赋予使用者复制、修改、分发乃至商用的权利,这是开源的底线。

授权={使用,修改,分发,商用}\text{授权} = \{\text{使用}, \text{修改}, \text{分发}, \text{商用}\}

2. 义务项:权利不是白拿的,通常伴随署名保留或衍生品开源等义务。

义务={署名,同协议开源,不滥用商标}\text{义务} = \{\text{署名}, \text{同协议开源}, \text{不滥用商标}\}

3. 担保项:许可方明确声明不对代码质量与侵权风险做担保,出事自负。

担保=∅(免责)\text{担保} = \varnothing \quad(\text{免责})

老王的使用须知写得越清楚,来学艺的人心里越踏实。你看一份 LICENSE 文件,别只扫一眼“开源”两个字,要像看使用须知一样,把授权、义务、担保三栏都过一遍,再决定这锅汤能不能下。

MIT协议解析

老王想了一个最省事的办法:把“红烧牛肉面配方”抄了一份贴到门口,附一行字——“配方随便用,卖了钱算你的;但别把'老王'两个字涂掉,出了事也别赖我。”这就是 MIT 协议的气质。

MIT 是世界上最流行的宽松协议之一,全文不到二百字,核心逻辑极简:许可人授予复制、修改、分发、商用等全部权利,唯一的硬性义务是保留原版权声明和免责声明。没有专利条款,没有传染性,没有强制开源。

对企业而言,MIT 意味着“用着放心”:你可以把 MIT 库改完打包进闭源商业产品,不欠任何人情。正因如此,jQuery、Node.js 生态里大量工具包都选 MIT——目的是让采用成本降到零,换取最大规模的社区扩散。

RMIT={商用,修改,分发,闭源衍生},义务={保留版权声明}\displaystyle R_{\mathrm{MIT}} = \{\text{商用}, \text{修改}, \text{分发}, \text{闭源衍生}\}, \quad \text{义务} = \{\text{保留版权声明}\}

1. 权利全集:商用、修改、分发、闭源衍生全部允许,不做任何限制。

RMIT={商用,修改,分发,闭源衍生}R_{\mathrm{MIT}} = \{\text{商用}, \text{修改}, \text{分发}, \text{闭源衍生}\}

2. 唯一义务:复制与分发时必须保留原版权声明和免责声明。

义务={保留版权声明与免责声明}\text{义务} = \{\text{保留版权声明与免责声明}\}

3. 无担保:软件按现状提供,作者不对任何损害负责。

担保=无\text{担保} = \text{无}

老王把配方贴出去以后,街坊学了去开店,还真没人删他名字——因为删名字的人会被所有人戳脊梁骨。MIT 用最小义务换来最大信任,这正是它成为开源世界“通用语”的原因。

Apache协议解析

老王又琢磨:光给配方不够,万一有人学会我“独门火候控制法”,回头还拿这个手法申请专利来告我徒弟怎么办?于是他加了一条承诺:我书面保证,事后绝不拿自己的独门手法起诉你;但你也别冒充我家招牌。Apache 协议就是这个思路。

Apache 2.0 是商用领域最受欢迎的宽松协议之一。它在 MIT 的“全部放行”之上,多出一块关键内容:明确、不可撤销的专利授权(协议第 3 条)。只要你是善意使用,许可人及其贡献者不会以专利为由起诉你。此外还包含商标保护条款——你可以用项目,但不能暗示项目方给你背书。

Apache 2.0 在 2004 年发布,吸收了早期协议的经验,条款更完善,兼容性更好。Kubernetes、Hadoop、TensorFlow 早期大量组件都采用它。对于要放进商业产品的开源组件,Apache 2.0 几乎是企业法务最喜欢的答案:宽松、护身、无传染。

RApache=RMIT∪{专利授权}∖{商标使用权}\displaystyle R_{\mathrm{Apache}} = R_{\mathrm{MIT}} \cup \{\text{专利授权}\} \setminus \{\text{商标使用权}\}

1. 继承 MIT 权利:商用、修改、分发、闭源衍生全保留。

RApache⊇RMITR_{\mathrm{Apache}} \supseteq R_{\mathrm{MIT}}

2. 专利授权:许可方授予使用其专利实施该软件的永久授权。

新增={专利授权(不可撤销)}\text{新增} = \{\text{专利授权(不可撤销)}\}

3. 商标保护:使用者不得用项目商标暗示官方合作或背书。

扣减={商标使用权}\text{扣减} = \{\text{商标使用权}\}

老王这份“带保证书的配方”,让徒弟们学得安心,也让冒用招牌的人有所忌惮。商用选 Apache,就等于给产品买了一份免费的法律意外险。

GPL协议解析

老王还有一道压箱底的“独家牛肉酱”,他说:配方可以给你,但你把酱改过之后卖给别人,就必须把改法也教给大家。听起来苛刻,却是 GPL 的哲学——用著作权反制著作权,保证自由永远传递下去。

GPL(GNU General Public License)是最著名的强 copyleft 协议。它的核心机制是“传染条件”:如果你修改了 GPL 代码,并对外分发衍生作品,那么整个衍生作品必须以 GPL 协议开源。注意关键词有两个——“修改”和“分发”:只在公司内部运行使用,不对外分发,就不会触发传染。

传染的边界在法律上一直有讨论:静态链接通常被视为衍生作品,动态链接也有争议;弱 copyleft 的 LGPL 则允许闭源应用动态链接库。AGPL 更进一步,把“通过网络提供服务”也视为分发,专门封堵 SaaS 时代的漏洞。Linux 内核、Git 都是 GPL 家族的捍卫者。

分发(衍生作品)  ⇒  以GPL开源(完整源码)(传染触发)\displaystyle \text{分发}(\text{衍生作品}) \;\Rightarrow\; \text{以GPL开源}(\text{完整源码})\quad(\text{传染触发})

1. 修改 GPL 代码:对源码进行修改形成衍生作品。

衍生作品=修改(GPL 代码)\text{衍生作品} = \text{修改}(GPL\ \text{代码})

2. 对外分发:把衍生作品交付给第三方使用或销售。

触发条件: 对外分发的布尔值为真\text{触发条件: 对外分发的布尔值为真}

3. 开源义务:衍生作品整体以 GPL 提供源码。

义务={衍生作品以GPL开源}\text{义务} = \{\text{衍生作品以GPL开源}\}

老王的牛肉酱轻易不外借,就是怕接的人太多、改得面目全非,最后打着他的旗号砸了招牌。GPL 也一样,它用“分享必须延续”的规则,守住了一个代码生态不被私有化吞掉。

协议选择策略

老王现在要开分店了,他做了一个决定:招牌牛肉面的核心汤底配方锁进保险柜;普通小菜的教学视频用最宽松的方式放出去吸引粉丝;门店加盟手册单独签授权。一个店,三套规矩——这就是开源策略的本质。

选择协议本质是平衡三个目标:吸引社区贡献、保留商业控制、控制合规成本。社区开发者更愿意贡献给宽松协议项目(MIT/Apache),因为不担心贡献被锁死;但核心算法如果也宽松放出去,竞品拿去闭源反而打你。常见解法是 Open Core:核心模块闭源或商业授权,外围插件与 SDK 用 Apache 2.0 开源。

如果担心云厂商把开源产品直接托管成 SaaS 白嫖,可以选用 SSPL、Elastic License 等“源码可用但有限制”的协议;如果目标是打造一个标准生态、不靠软件本身赚钱,宽松协议是最优解。把三个目标打成分数,就能做定量决策。

S=α⋅A社区+β⋅C控制−γ⋅F合规(α+β+γ=1)\displaystyle S = \alpha \cdot A_{\text{社区}} + \beta \cdot C_{\text{控制}} - \gamma \cdot F_{\text{合规}} \quad (\alpha + \beta + \gamma = 1)

1. 社区吸引 A:协议越宽松,贡献者进入门槛越低。

A社区=宽松度评估A_{\text{社区}} = \text{宽松度评估}

2. 商业控制 C:协议对衍生闭源、转售的限制能力。

C控制=闭源衍生许可度C_{\text{控制}} = \text{闭源衍生许可度}

3. 合规成本 F:强传染协议带来的审计与法律负担。

F合规=传染性风险成本F_{\text{合规}} = \text{传染性风险成本}

老王的保险柜、教学视频、加盟手册各司其职:保险柜保住立身之本,公开视频换来口碑,加盟手册带来收入。选协议不是挑一个“最好的”,而是为每一层资产配一把合适的锁。

AI专属风险

老王的面馆升级成了“AI 面馆”:除了菜谱,还卖“机器调的酱料包”和“预制菜原料”。这时候问题来了——菜谱的规矩能管住酱料和原料吗?AI 时代,代码协议的边界第一次被拉爆。

最典型的是模型权重。开源协议约束的是“代码”这种表达形式,而模型权重是训练出来的参数文件,属于另一类资产,需要单独授权。Meta 的 Llama 系列用自定义社区许可,规定月活超 7 亿的大厂必须另行申请;Stable Diffusion 的权重许可证也限制了用途。你不能因为 repo 里挂了 MIT 就说权重随便商用。

训练数据的合规更麻烦:每个数据集的版权、肖像权、爬虫条款各不相同,一个模型可能吃进数亿条数据,数据溯源要求极高。再加上 AI 算法本身可能踩中别人的专利,代码、权重、数据、专利四张“授权单”必须一张张核对。

RiskAI=Lcode+Lweight+∑d∈Dpd\displaystyle \mathrm{Risk}_{\mathrm{AI}} = L_{\text{code}} + L_{\text{weight}} + \sum_{d \in \mathcal{D}} p_d

1. 代码协议风险:依赖的每个开源库都自带许可义务。

Lcode=∑依赖库义务L_{\text{code}} = \sum \text{依赖库义务}

2. 权重协议风险:模型权重声明的商用范围与附加条件。

Lweight=权重许可证条款L_{\text{weight}} = \text{权重许可证条款}

3. 数据溯源风险:每个数据集的来源合法性与授权粒度。

pd=数据集 d 的侵权概率p_d = \text{数据集 } d \text{ 的侵权概率}

老王现在出餐前要核三样单据:菜谱授权、酱料授权、原料进货单,缺一样就不敢开店。做 AI 产品同理:代码、权重、数据各有一本账,别让一份 LICENSE 给你“一叶障目”的错觉。

合规与防控

老王的面馆每年要过卫生检查:墙上的食品经营许可证、冰箱里的原料溯源票据、员工的健康证,一样不能少。开源合规就是一个团队的“卫生大检查”,只不过检查的是每一行代码的来路。

第一步是建立软件物料清单(SBOM),相当于给产品开一份“配料表”:每个依赖包叫什么、什么版本、什么协议,全部登记在案。然后配合自动化扫描工具(如 FOSSA、Snyk)持续监测,一旦发现新依赖引入了 GPL 或自定义限制协议,立刻告警。

发现违规的标准处置流程是“隔离—替换—备案”:先把问题模块从主干隔离,评估它的作用与替代方案,能用宽松协议库替换就替换,必须保留时再评估是否将对应模块开源。同时定期给工程师上合规课,杜绝“从网上随手 ctrl+c 一段无头代码”的习惯——无头代码就是没有授权单的原料。

合规评分=已审计组件总组件×已修复违规总违规\displaystyle \text{合规评分} = \frac{\text{已审计组件}}{\text{总组件}} \times \frac{\text{已修复违规}}{\text{总违规}}

1. 审计覆盖率:已纳入 SBOM 审计的组件占全部组件比例。

覆盖率=已审计组件总组件\text{覆盖率} = \frac{\text{已审计组件}}{\text{总组件}}

2. 违规修复率:已处置的违规占发现违规的比例。

修复率=已修复违规总违规\text{修复率} = \frac{\text{已修复违规}}{\text{总违规}}

3. 乘积效应:覆盖率或修复率任一为零,合规得分为零。

评分=覆盖率×修复率\text{评分} = \text{覆盖率} \times \text{修复率}

老王常说:“检查不是找麻烦,是怕招牌砸了。”合规部门不是卡你上线的绊脚石,而是帮你守住招牌的质检员。定期过一遍授权清单,面馆才能十年不倒。

AI 应用场景

AI 创业公司的基座模型选型

阶段:商业化筹备期

解决的问题:创业团队想用开源大模型做垂直应用,直接照搬 GitHub 的做法,看“开源”二字就上,结果月活涨上来后被条款反噬。要像核对菜谱授权一样,先读清楚权重协议的商用许可(能否商用、用户规模上限、是否要求回传),再决定基座。

具体案例:某 AI 法律助手创业团队最初选了 Meta Llama 2,商用需符合其社区许可(月活超 7 亿需另行申请)。他们预估产品日活有限,选 Llama 2 成本低;但出海后用户暴涨,被迫评估换用 Apache 2.0 协议的 Mistral 或购买商业授权。提前用“商用条款检查表”就能避免这个翻车。

企业软件供应链合规审计

阶段:产品上线前的质量门禁

解决的问题:研发随手引入开源依赖,仓库里躺着一堆 GPL 代码,产品闭源分发时被版权方发函。传统做法靠人肉翻 README,低效且漏检;AI 时代用 SBOM + 自动扫描,先把依赖清单建好,再用规则引擎卡住传染性协议。

具体案例:某 SaaS 公司在发布 v2.0 前用 FOSSA 扫描,发现一个内部工具链的间接依赖带 GPL-3.0,立即用 Apache 2.0 的替代库替换,避免了整个产品的开源义务。

开源商业化(Open Core)双轨运营

阶段:生态增长与变现

解决的问题:团队想靠开源积累社区,又怕被云厂商白嫖。用“老王三套规矩”的思路:核心推理引擎闭源,模型微调工具链用 Apache 2.0 开源,企业版加权限与审计功能收费。

具体案例:某 MLOps 创业公司把数据标注插件用 MIT 开源吸引贡献者,核心实验管理平台闭源销售。一年后社区贡献了 200+ 插件,商业版收入占比 70%。

Python 演示

python38 行
"""开源协议商用决策助手"""PERMISSIVE = {"MIT", "Apache-2.0", "BSD-3-Clause"}STRONG_COPYLEFT = {"GPL-2.0", "GPL-3.0", "AGPL-3.0"}SCORES = {    "MIT": (9, 3, 1),    "Apache-2.0": (8, 6, 2),    "GPL-3.0": (5, 2, 7),}  def license_score(community, control, compliance, alpha=0.4, beta=0.4, gamma=0.2):    """综合评分: S = alpha*社区吸引 + beta*商业控制 - gamma*合规成本"""    return alpha * community + beta * control - gamma * compliance  def check_commercial(lic, distribute_derivative=False):    """给出开源协议的商用结论"""    if lic in PERMISSIVE:        return "可闭源商用, 无传染性"    if lic in STRONG_COPYLEFT:        if distribute_derivative:            return "分发衍生品须开源, 闭源商用受限"        return "内部使用不触发传染, 可闭源"    return "自定义条款需法务审核"  def main():    print("开源协议商用体检报告")    for lic, scores in SCORES.items():        result = check_commercial(lic, distribute_derivative=True)        s = license_score(*scores)        print("[%s] 综合评分 S = %.2f | %s" % (lic, s, result))  if __name__ == "__main__":    main()
目的:这是一个开源协议商用决策助手,输入协议名即可输出商用结论,并用加权公式打出综合分,帮助团队快速筛选许可。
  1. PERMISSIVE = {"MIT", "Apache-2.0", "BSD-3-Clause"}注册宽松协议白名单,像把“可以随便用的菜谱”放进同一组抽屉。
  2. STRONG_COPYLEFT = {"GPL-2.0", "GPL-3.0", "AGPL-3.0"}登记强传染协议黑名单,见到它们必须多留一个心眼。
  3. def license_score(community, control, compliance, alpha=0.4, beta=0.4, gamma=0.2):实现正文第五节的综合评分公式,权重可随团队战略调整。
  4. if lic in PERMISSIVE:宽松协议直接放行,返回“可闭源商用”。
  5. if distribute_derivative:判断对外分发是否发生,这是 GPL 传染的扳机开关。
  6. license_score(*scores)把元组解包成三个参数传给评分函数,优雅完成打分。

常见误区

误区我在 GitHub 上看到“开源”两个字,就觉得这个项目免费,随便抄进公司产品里卖钱都没问题。

正解主流开源协议都允许商用,但“能商用”和“能闭源商用”是两回事。GPL 下你分发闭源衍生品就违约;很多现代项目还改用 SSPL、Elastic License 等限制条款。就像老王给你看菜谱,不等于把店都送你,细则全在那页使用须知上。

为何常见:“免费可用”先入为主,大家只盯着开源二字,忽略了仓库里 LICENSE 文件的具体条款。

误区MIT 这么宽松,引用代码时把原版权声明注释删掉应该没关系,反正没人查。

正解MIT 唯一的硬性义务就是保留版权声明和免责声明。删除声明意味着你不再符合协议授权条件,法律上构成侵权,原作者可以主张停止使用并索赔。宽松不等于没有义务,招牌上的“老王”二字不能抹。

为何常见:“宽松”被误读成“没有义务”,忽略了极简协议里那唯一的底线条款。

误区只要我的软件用了 GPL 库,不管怎么用,整个软件都必须开源。

正解传染触发需要同时满足“修改 GPL 代码”和“对外分发衍生作品”。纯内部运行不触发;独立进程通信通常不算衍生。静态链接一般视为衍生,而弱传染的 LGPL 允许动态链接闭源。关门自己炖一锅,没人管你;端出去卖,就得把配方公开。

为何常见:把“使用”和“分发”两个动作混为一谈,忽略了 copyleft 触发的前提条件。

误区模型权重放在 GitHub 上带 MIT 协议,权重就完全自由、可随便商用。

正解开源协议约束的是“代码”这一表达形式;权重是训练出来的参数数据,需要单独授权。Meta Llama 的社区许可、Stable Diffusion 权重条款都独立于代码协议。看权重文件自己的 LICENSE,别被仓库里那份代码协议带偏。

为何常见:习惯把“repo 里有个 LICENSE”当成全局保护伞,忽略了 AI 资产已经从单一代码扩展为代码、权重、数据三类。

面试题

Q1. 以下哪个开源协议对衍生作品的开源要求最严格?

单选题 · mid

  • A.MIT 宽松可闭源
  • B.Apache 附带专利
  • C.GPL 强制传染开源← 正确答案
  • D.BSD 同样属宽松

答案:C。GPL 属强传染 copyleft,修改并分发衍生作品就必须以 GPL 开源;MIT、Apache、BSD 都是宽松协议,允许闭源衍生。就像老王的菜谱:宽松协议是“拿走随便改”,GPL 则是“改完必须教回来”。

Q2. MIT 协议使用者必须履行的唯一义务是?

单选题 · easy

  • A.公开全部衍生代码
  • B.保留原版权声明← 正确答案
  • C.按年缴纳授权费用
  • D.禁止复用于商业

答案:B。MIT 全文极短,核心义务仅一条——保留原版权声明和免责声明。它不要求开源衍生代码、不收费、不禁止商用。删掉声明就等于失去授权,招牌上的名字不能抹。

Q3. Apache 2.0 相对 MIT 协议的独有优势是?

单选题 · mid

  • A.没有传染性风险
  • B.专利授权条款← 正确答案
  • C.强制开源全部源码
  • D.禁止修改源代码

答案:B。Apache 2.0 第 3 条明确提供专利授权,保护使用者不被许可方事后以专利起诉,这是商用公司最看重的条款。MIT 没有专利条款。Apache 同样宽松无传染,因此 A、C、D 均不成立。

Q4. GPL 协议的“传染性”在什么情况下触发?

单选题 · mid

  • A.内部运行参考
  • B.修改并对外分发← 正确答案
  • C.下载阅读源码
  • D.付费购买拷贝

答案:B。copyleft 触发需要同时满足“修改 GPL 代码”和“对外分发衍生作品”。内部使用、个人学习都不触发。分发才是那扇门——一旦开店卖改良菜谱,就得把配方公开。

Q5. 以下哪些属于宽松型(permissive)开源协议?

多选题 · easy

  • A.MIT 协议← 正确答案
  • B.GPL 协议
  • C.BSD 协议← 正确答案
  • D.LGPL 协议

答案:AC。MIT 和 BSD 是典型宽松协议,允许闭源商用衍生;GPL 是强传染 copyleft,LGPL 是弱传染。选协议先分阵营,就像先分清“分享菜谱”和“传艺收徒”的区别。

Q6. 某公司用 MIT 库开发了一款完全闭源的商业软件,下列说法正确的是?

单选题 · hard

  • A.整个产品必须开源
  • B.保留原库版权声明← 正确答案
  • C.需向作者支付费用
  • D.不得对外销售盈利

答案:B。MIT 允许闭源商用衍生,这是企业大量选用它的原因。唯一义务是保留原版权声明。它不强制开源、不收费、不禁止销售,因此 A、C、D 均错。

Q7. AGPL 与 GPL 最核心的区别是?

单选题 · mid

  • A.网络服务也触发传染← 正确答案
  • B.完全禁止商业使用
  • C.自动附带专利授权
  • D.仅限个人学习参考

答案:A。普通 GPL 只在“分发”时触发传染,SaaS 模式下软件不出售、只通过网络提供服务,GPL 管不到。AGPL 补上这个漏洞:即使只通过网络提供服务也视为分发。云上白嫖老王的手艺,AGPL 专门治这个。

Q8. 关于 AI 模型权重(weights)的许可,下列说法正确的是?

多选题 · hard

  • A.权重自动适用代码协议
  • B.权重需单独设定条款← 正确答案
  • C.自定义许可常限商用← 正确答案
  • D.GPL 必然覆盖全部权重

答案:BC。开源许可证约束的是“代码”这种表达,参数权重是另一类资产,通常单独授权。Meta Llama、Stable Diffusion 都用独立条款限制商用。协议不是万能保护伞,酱料和菜谱要分开看授权单。

Q9. 开源协议中“传染性(copyleft)”指的是?

单选题 · easy

  • A.病毒程序代码扩散
  • B.衍生品需同协议开源← 正确答案
  • C.协议到期自动续约
  • D.收费规则层层叠加

答案:B。copyleft 的核心是借著作权反向约束:用了我的代码,改进后对外分发时必须同样协议开源。像老王的“教学菜谱”——学了我的手法出去开店,就得把你的手法也教给别人。

Q10. 为 AI 产品选择开源许可时应权衡哪些维度?

多选题 · extreme

  • A.社区贡献吸引力← 正确答案
  • B.商业控制保留度← 正确答案
  • C.合规与法务成本← 正确答案
  • D.集群 GPU 采购预算

答案:ABC。综合评分 S = α×社区吸引 + β×商业控制 − γ×合规成本,三个维度正是决定开源策略的三角。GPU 预算是硬件采购问题,与协议选择无关。选协议本质是平衡“吸引帮厨”与“守住配方”。