说到开源软件,很多人脑子里会浮现这样一幅画面:一群穿格子衫的工程师把代码往网上一丢,写着“随便用,不收钱”。真实的“开源”世界更像一个大食坊——这里每天都有人无偿分享自己祖传的菜谱(代码),但每张菜谱上都盖着不同的食规印章(许可证)。有的食规写着“你用我的菜谱做的菜,新菜谱也得挂出来给所有人看”,这就是GPL;有的写着“用可以,但每道菜里都要捎上我的名字”,这就是Apache;还有些大厨(比如用Llama协议的Meta)会写上“小食肆随便用,但想开连锁店,得来谈商业授权”。 AI从业者如今捧着Llama、Qwen、Mistral这些“名厨菜谱”去烹饪(训练、微调、部署模型),如果只盯着菜好不好吃,却没看食规印章,轻则被要求下架整改,重则赔上千万赔偿金。本文就用“菜谱江湖”这条线索,把GPL、Apache、商业限制这些印章的刻痕逐一拓印下来,给你一张完整的合规活页清单。

岗位关联

对于AI工程师和算法研究员来说,读懂这些许可证条款,就像读懂食材包装上的保质期——它能决定你的模型能不能顺利商用、能不能对客户交付,也决定了你在企业内部做技术选型时,能不能一眼看穿“免费”背后的法律义务。

目录
  1. 可视化演示
  2. 开源许可生态
  3. GPL传染性约束
  4. Apache专利授权
  5. 商业限制条款
  6. 代表性模型许可
  7. 合规检查清单
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

三步展示LLM许可证合规:五许可证限制对比(GPL/Apache/Llama/Qwen/Mistral)、GPL传染性copyleft链式传播、商业部署合规检查流程(识别→分类→限制→评估→审批)。

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

五许可证限制对比 GPL:强copyleft,传染性最强(90%) Apache:专利授权,商用友好(30%) restriction = copyleft + comm_limit 大模型许可证生态从强copyleft到宽松商用形成光谱分布。

开源许可生态

大食坊的墙上钉着一块木牌,上面刻着大食坊的规矩:“凡入坊共享菜谱者,须自备食材,盈亏自负。”这就是开源许可证的雏形。现实中,开源软件基金会(OSI)认证了上百种许可证,但真正常见的不超过十种。AI工程师从HuggingFace下载模型权重时,看到的“License“一栏往往就写着这些名字——它们的本质,是给代码使用权、修改权、再分发权这三种”做菜自由“设定了不同的条件。就像菜谱上写着”免费看,但想照做卖钱得注明出处”,每种许可都是一种法律契约,你点下载按钮那一刻,就相当于在食规上按了手印。

开源许可生态大致可分为三个群落:以MIT、BSD、Apache为首的“宽松派”,特点是允许自由使用、修改、再分发,只需保留版权声明;以GPL、LGPL为首的“强保护派”,要求衍生作品必须同样开源——这就是传说中的“传染性”;还有近年兴起的“商业友好派”,如Elastic License、SSPL以及大模型界常见的 Llama Community License,它们的核心特征是允许免费商用但附带规模门槛或其他限制条件。

技术选型时,模型能否进入产品、能否卖给客户、能否闭源修改,都取决于坐落在“宽松—严格”光谱上的哪个位置。谱系最左端是MIT,几乎零义务;中间是Apache和BSD,要求署名和专利授权;右端是GPL,要求开源传播;再往右是SSPL等“源可用(source-available)”许可证,它们挂着“开源”的名头,但实质上设置了一条条商用红线。

大食坊的菜谱有千百张,但落到AI生产环境里,真正决定“能不能把大模型装进自家产品卖给客户”的,往往只有GPL、Apache、商业限制这三枚印章。下一节,我们就从最“刺头”的GPL说起——它传染起来可不止是“跑肚拉稀”那么温和。

许可自由度=使用权+修改权+再分发权附随义务(署名+开源传播+商业限制)\text{许可自由度} = \dfrac{\text{使用权}+\text{修改权}+\text{再分发权}}{\text{附随义务(署名+开源传播+商业限制)}}
许可自由度的直觉理解:自由度是“你能做多少事”与“你要守多少规矩”的比值。规矩越多,自由度越低。
  1. 使用权(Use)允许你下载、运行、调用模型或代码,这是所有许可证的底线。
    Use=运行权\text{Use} = \text{运行权}
  2. 修改权(Modify)允许你改模型结构、微调参数、定制代码,宽松派大多放行。
    Modify=派生作品权\text{Modify} = \text{派生作品权}
  3. 再分发权(Redistribute)允许你把原版或修改版转手给第三方,这一项最容易触发GPL传染。
    Redistribute=发布权\text{Redistribute} = \text{发布权}
  4. 附随义务(Obligations)署名、保留许可文本、开源修改版、满足商业限制——每一项都在分母上扣分。
    Obligations=∑约束条款\text{Obligations} = \sum\text{约束条款}

GPL传染性约束

大食坊有个规矩:如果你用某张盖着“GPL“印章的菜谱做了一道菜,端到集市上卖,那么你的菜谱也必须交出来,公之于众。这规矩在食客圈里争议极大——有人说过瘾,有人骂街。但它的逻辑是:我的菜谱是我祖辈的心血,我选择公开,你用它做饭,那你的新菜谱也承载了我的智慧,自然也该公开。GPL(GNU General Public License)就是这个逻辑的法律化:它是一种”传染性”许可证,核心诉求是保证软件自由永远传递下去。

GPL传染性的技术判定几乎都围绕“分发”(distribution)展开。你在公司内部调用GPL代码、跑模型、改权重,自娱自乐不给人用,这不算分发;可一旦你把集成了GPL代码的模型打包卖给客户,或者放在公网上让别人下载,这就触发了传染条件——你的商业代码需要以GPL方式开源。对AI大模型而言,这意味着:你若把GPL代码写进训练框架并随模型一起分发,模型权重与训练代码将面临极大的开源披露压力。这就像一个做川菜的师傅,用了别人的秘制豆瓣酱,自己研发的“独门红油”也得连锅端上桌。

GPL在技术实现上有一个重要分水岭——程序集成的链接方式。静态链接(把GPL代码编译进你的二进制文件里)几乎必然构成衍生作品,强制传染;动态链接(运行时才调用GPL组件,如通过API调用)在法理界尚有争议,但多数律师会持保守态度认为传染性依然存在。大模型场景中常见的是“通过API调用别人部署的GPL服务”,这种情况一般不构成分发,因为代码没有发生转移。

对你是个AI工程师的现实启示是:训练框架(如PyTorch、Transformers)中若混入了GPL代码,且模型以可下载形式对公众开放,那模型权重本身是否成为“衍生作品”虽然尚无判例,但风险极高。大部分商业公司遇到GPL组件的第一反应是“绕着走”,用Apache或MIT版本替代——毕竟,谁也不想把花了千万训练的模型拱手开源。

传染触发条件=分发衍生作品∧基于GPL代码创作\text{传染触发条件} = \text{分发衍生作品} \land \text{基于GPL代码创作}
传染触发条件的直觉理解:只有当“你把用GPL代码做出来的东西发出去了”这两个条件同时成立,传染才会启动;如果只是内部用,就不会传染。
  1. 分发(Distribute)GPL的传染开关,你向第三方提供副本即触发。
    Distribute:向第三方提供拷贝\text{Distribute}: \text{向第三方提供拷贝}
  2. 衍生作品(Derivative Work)你的代码与GPL代码构成整体创作,而非独立共存。
    Derivative:实质性融合GPL代码\text{Derivative}: \text{实质性融合GPL代码}
  3. 传染生效(Copyleft)衍生作品必须以GPL许可证发布。
    Copyleft:强制同等许可开源\text{Copyleft}: \text{强制同等许可开源}

Apache专利授权

比起GPL的“狂暴传染”,Apache许可证温和得像一个“祖传秘方特赦令”。大食坊里张大厨把他家的“秘制高汤”菜谱贴了出来,不仅写着“随便用”,还附了一条额外声明:“这道汤里用了我家的祖传药材配方(专利),但你们安心用,我特此声明绝不告你们侵权。”这就是Apache 2.0许可证的杀手锏——它明确包含一项专利授权条款(Patent Grant),对软件中的专利权进行“事先赦免”,任何使用者都自动获得专利许可,不用担心哪天被原作者一纸诉状告上法庭。

Apache 2.0的另一个显著特点是“宽容但不免责”。它要求再分发时保留原始版权声明、许可证文本和NOTICE文件,也就是说,你可以在别人的菜谱上随便加自己的配料,但萝卜必须归萝卜,务必把原作者的旗号挂在招牌上。大模型的场景中,很多公司将模型权重、训练代码、Fine-tune脚本一起以Apache 2.0开源,既释放了商用红利,又锁定了署名义务——这就是为什么你在很多大模型项目页能看到一大段版权声明。

但Apache的“特赦令”也不是无条件的。首先,专利授权只覆盖贡献者自己持有的专利;其次,如果你反过来用Apache代码去专利诉讼对方,你的授权会被撤销(这是专利报复条款)。在AI领域还有一层衍生问题:模型权重是否属于“源代码”?Apache许可证的文字主要针对代码,对权重、数据集等资源是否适用,业界仍有灰色地带。

在开源大模型领域,Apache 2.0往往是企业的心头好。Mistral AI在早期发布的7B模型采用的就是Apache 2.0——技术圈一片欢呼,因为这意味着可以在商用产品中自由集成,无需担心专利暗雷。下一节我们就要仔细看看,像Mistral、Llama、Qwen这些大模型厂商,在蹭完了Apache的便利之后,又如何在商业化的十字路口上布下了各自的收费关卡。

Apache专利授权:∀p∈贡献者专利,授予使用者p之实施许可\text{Apache专利授权}: \forall p \in \text{贡献者专利}, \text{授予使用者} p \text{之实施许可}
专利授权的直觉理解:Apache自动给每个使用者发一张“安全通行证”,证明代码里的专利技术你可以放心用;但别拿这张证反过来告别人。
  1. 贡献者专利(Contributor's Patents)代码提交者持有的、覆盖代码内容的专利。
    ∀p∈Contributor Patents\forall p \in \text{Contributor Patents}
  2. 实施许可(License to Practice)允许你制造、使用、销售、进口该专利技术。
    Grant:use, make, sell, import\text{Grant}: \text{use, make, sell, import}
  3. 专利报复(Patent Retaliation)若你起诉别人专利侵权,你的Apache授权自动终止。
    Retaliation:诉讼⇒授权终止\text{Retaliation}: \text{诉讼} \Rightarrow \text{授权终止}

商业限制条款

大食坊里,张记菜馆的招牌菜“红烧狮子头”菜谱公开了,但底下有一行蝇头小楷:“本菜谱仅限月营业额10万元以下的小食肆使用,超过此规模须与张记签订商业授权。”这就是近年来大模型许可证中最具争议的“商业限制条款”——表面上代码开源、权重可下载,但商用有一道无形的闸门。模型开源生态的玩家们正纷纷在开源与商业之间画出一条条各有算盘的“水位线”。

商业限制条款的玩法各具特色。最著名的当属Meta的Llama Community License:它允许商用,但有一条“月度活跃用户超过7亿”的条款——一旦你的产品月活超过7亿,就必须向Meta申请商业授权。这条线画得极为精明,因为目前几乎没有任何一家创业公司能快速达到7亿月活,可一旦你成了“超级应用”,Meta就有权介入分成。另一些模型采用“非商业用途”限制,只能用于研究演示,商用需单独谈——这类通常被OSI视为“非开源”许可证。

Qwen的许可证演变更能说明问题。Qwen早期版本采用Apache 2.0,完全无商业限制;后来Qwen2.5等版本换用了自定义的“Qwen License“,要求月活过亿的企业主动申请商用许可,同时还要求”多语言模型场景下需额外确认“。这些条款的共性是:把”免费商用“的门槛从”无门槛“变成了”按规模分层收费”。

商业限制条款是AI工程师在技术选型时必须直视的红灯。今天你基于Llama微调了一个客服机器人,放进自家SaaS产品里,可能完全合法;但如果明天你的产品爆火,月活逼近千万甚至亿级,就要小心——这条“免费”的路可能突然变成了收费天堑。合规的意义不在于现在能用,而在于“未来长到多大还能安全地用”。

商用许可判定={允许商用,月活≤Tthreshold需商业授权,月活>Tthreshold\text{商用许可判定} =\begin{cases}\text{允许商用}, & \text{月活} \leq T_{threshold} \\\text{需商业授权}, & \text{月活} > T_{threshold}\end{cases}
商用门槛判定的直觉理解:每个模型给了一个“免费翻台率上限”,超过这个数,就得找版权方买个“加盟许可”。
  1. 门槛阈值(Threshold)Llama是7亿MAU,Qwen是1亿MAU,各有各的算盘。
    Tthreshold=700Mor100MT_{threshold} = 700M \quad \text{or} \quad 100M
  2. 例外条款(Exceptions)部分语言、地区、行业可能有特殊豁免。
    Exceptions:特定领域豁免⊆条款集\text{Exceptions}: \text{特定领域豁免} \subseteq \text{条款集}
  3. 授权终止(Termination)违反限制条款,许可证自动失效。
    Violation⇒License终止\text{Violation} \Rightarrow \text{License}_{\text{终止}}

代表性模型许可

大食坊里最热闹的当属三家招牌:李记的“绝味狮子头”(Llama)、钱记的“蜀香小面”(Qwen)、还有洋师傅M记的“意式披萨”(Mistral)。这三家的菜谱公开方式各有门道,也正是当前开源大模型许可证格局的缩影。搞清楚它们的差异,AI工程师才能真正做到“翻菜下锅,心中有数”。

Meta的Llama系列采用的是自定义的“Llama Community License“。它不满足OSI对”开源“的严格定义,本质上是”源可用+附条件商用“。Llama 2允许商用但附带月活7亿门槛,Llama 3继续沿用类似的社区协议。Meta的策略很明确:尽可能广泛地让开发者使用Llama生态,以对抗OpenAI和Google的封闭模型,但为超大规模商业应用留好”收费后门”。

阿里巴巴的Qwen系列则走过一条从宽松到收紧的路径。最早的Qwen-7B采用Apache 2.0,完全放任自由;从Qwen2开始,阿里启用了自定义的“Qwen License“,对月活过亿的商用场景亮出了”需要申请“的底牌,但同时承诺对绝大多数中小开发者保持免费。Mistral AI则在一众欧洲创业公司中走了一条”混合路线“:Mistral 7B和小尺寸模型完全以Apache 2.0开放,旗舰模型Mistral Large保留为商业产品。这种”开源引流,旗舰收费”的策略,正成为越来越多模型厂商的模板。

对做AI应用的同学来说,选择哪个模型底座,等于选择了一整套未来的合规义务。试想你的产品现在用Mistral 7B做语义搜索,那合规负担几乎为零;若换成Llama并推给百万级用户的大客户,那就得在合同的"License Compliance"栏里多写几行字。开源模型不是公共草坪,每一块草地都挂着各自的入园须知牌。

模型许可谱系=Apache⏟Mistral 7B≺自定义社区许可⏟Llama/Qwen≺纯商业许可⏟Mistral Large\text{模型许可谱系} = \underbrace{\text{Apache}}_{\text{Mistral 7B}} \prec \underbrace{\text{自定义社区许可}}_{\text{Llama/Qwen}} \prec \underbrace{\text{纯商业许可}}_{\text{Mistral Large}}
模型许可谱系的直觉理解:从完全自由到完全商业,各家模型像摆在货架上的调料,从“免费试吃”到“整瓶购买”,对应着不同的商用代价。
  1. 宽松端(Permissive)Mistral 7B、部分Qwen版本,标注Apache/MIT。
    Permissive:署名即可商用\text{Permissive}: \text{署名即可商用}
  2. 中间态(Conditional)Llama系列,附加月活阈值约束。
    Conditional:MAU≤700M\text{Conditional}: \text{MAU} \leq 700M
  3. 商业端(Commercial)模型权重仅授权非商用或需付费。
    Commercial:付费授权或禁止商用\text{Commercial}: \text{付费授权或禁止商用}

合规检查清单

大食坊的老掌柜每次推出新菜前,都要按墙上的“食安十查”逐项核对:菜谱来源是否清楚、是否用了禁用食材、新增的佐料是否超量。这个习惯放到AI工程里,就是“合规检查清单”——一套系统性的许可证合规审计流程。它是技术团队、法务部门、安全团队协作的产物,也是避免“模型好用、授权翻车”的最后防线。

合规检查应从源头做起。AI工程师从HuggingFace下载模型时,第一眼就要看Model Card上的License标签,然后去官方仓库核对该许可证的原文,特别留意版本号与附加条款。第二个关键步骤是“分发义务确认”:判断这个模型是否会集成到对外发布的产品中,还是仅作内部研究。如果是前者,就要确认模型许可证强制的义务——署名?保留版权声明?开源衍生模型?绑定商业授权?逐条打勾确认。

全链路追踪是大型企业的标配做法。一个实际产品可能组合了多个模型:Embedding用Qwen、对话用Llama、代码生成用Mistral,此外训练框架(如DeepSpeed、vLLM)还各有各的许可证。合规团队需要构建一张“许可证物料清单”(License BOM),把每个组件的许可证、版本、分发方式记录下来,一旦关键组件的许可证变更,能第一时间定位影响面。

对一个AI工程师而言,跑通这条合规检查链并不需要你成为律师,但需要你有“供应链安全”的思维习惯。就像你做饭前习惯检查一下食材有没有过期,部署模型前花十分钟审一下许可证,能帮你避免未来数以千万计的赔偿或下架风险。毕竟,菜做得再香,如果食客吃完集体中毒,这家店也就开到头了。

合规状态=⋀i=1n(组件i的许可证义务⊆企业履行能力)\text{合规状态} = \bigwedge_{i=1}^{n} \left(\text{组件}_i 的许可证义务 \subseteq \text{企业履行能力}\right)
合规状态的直觉理解:整个系统的合规程度取决于最严格的那个组件;就像一根链条的强度由最薄弱的那一环决定。
  1. 组件遍历(Components)把整个系统拆解成一个个独立元件,逐一检查。
    ∀Componenti∈System\forall \text{Component}_i \in \text{System}
  2. 义务判定(Obligations)每个组件的许可证都有特定的附带条件。
    Obligationi=Licensei(署名, 开源, 付费)\text{Obligation}_i = \text{License}_i(\text{署名, 开源, 付费})
  3. 合取逻辑(Conjunction)所有组件的义务都必须满足,一个不满足即全盘不合规。
    Compliance=⋀i=1nOKi\text{Compliance} = \bigwedge_{i=1}^{n} \text{OK}_i

AI 应用场景

企业大模型选型评审

阶段:模型选型与采购

解决的问题:AI团队想在客服产品中引入大模型,候选是Llama、Qwen、Mistral。传统做法是“哪个跑分高用哪个”,但不同许可证的商用限制和专利授权差异可能导致未来融资尽调或客户合同时暴雷。通过许可证合规预审,团队快速锁定Mistral 7B(Apache 2.0)为首选底座,并对Llama设置“月活红线预警”。

具体案例:某SaaS创业公司的AI客服机器人项目,技术选型阶段用官方许可证文本配合合规检查清单比对,最终决定使用Apache 2.0的Mistral 7B搭建MVP,同时在架构中预留模型替换接口,以便未来客户对模型有更高要求时无缝迁移到商业授权的Qwen-Max。

模型二次分发合规审查

阶段:模型微调与再发布

解决的问题:将开源模型微调后打包成行业专属模型(如医疗问答、法律文书)卖给客户,面对的问题是“能不能闭源微调模型”。GPL系组件一旦混入训练或推理栈,将强制要求开源衍生模型;商业限制条款则对销售规模设限。合规审查帮团队提前剔除高危组件。

具体案例:某医疗AI公司采用Llama微调出“病历摘要模型”,计划以API形式卖给医院。合规审查发现Llama许可协议无传染性条款(模型权重不算代码),但月活7亿红线与医疗场景的规模化扩张存在潜在冲突,最终决定在合同中注明商业授权触发条件,并准备好与Meta商务接洽。

Python 演示

python48 行
import re def load_license_rules(path):    """加载许可证规则库(模拟,实际可接入SPDX)。"""    rules = {        "MIT": {"obligations": ["保留版权声明"], "copyleft": False, "commercial_limit": None},        "Apache-2.0": {"obligations": ["保留版权声明", "保留NOTICE", "披露修改"], "copyleft": False, "commercial_limit": None},        "GPL-3.0": {"obligations": ["开源衍生作品", "保留版权声明", "提供源代码"], "copyleft": True, "commercial_limit": None},        "Llama-Community": {"obligations": ["保留版权声明", "月活>7亿需商业授权"], "copyleft": False, "commercial_limit": 700_000_000},        "Qwen-License": {"obligations": ["保留版权声明", "月活>1亿需申请授权"], "copyleft": False, "commercial_limit": 100_000_000},    }    return rules  def audit_components(components, monthly_active_users):    """逐项审计组件清单,返回合规报告。"""    rules = load_license_rules("rules.json")    report = []    all_pass = True    for name, license_id in components:        rule = rules.get(license_id)        if rule is None:            report.append({"component": name, "status": "UNKNOWN", "message": "未知许可证,需人工核查"})            all_pass = False            continue        risk_messages = []        if rule["copyleft"]:            risk_messages.append("传染性许可证,若分发需开源衍生作品")        if rule["commercial_limit"] and monthly_active_users > rule["commercial_limit"]:            risk_messages.append(f"月活超限,需商业授权 (限{rule['commercial_limit']})")        if not risk_messages:            report.append({"component": name, "status": "PASS", "message": "合规"})        else:            all_pass = False            report.append({"component": name, "status": "REVIEW", "message": "; ".join(risk_messages)})    return {"all_pass": all_pass, "report": report}  if __name__ == "__main__":    components = [        ("embedding-model", "Apache-2.0"),        ("chat-llm", "Llama-Community"),        ("training-framework", "MIT"),    ]    result = audit_components(components, monthly_active_users=800_000_000)    print("合规审查结果:", "通过" if result["all_pass"] else "需整改")    for item in result["report"]:        print(f"- {item['component']}: {item['status']} - {item['message']}")
目的:一个极简的许可证合规审计器,输入组件清单和产品月活,输出每个组件的合规状态与风险提示。
  1. load_license_rules("rules.json")— 构建许可证规则库,把每个许可证的传染病、商用门槛抽象成结构化字段。
  2. components = [...]— 定义AI系统的组件物料清单,相当于“食材清单”。
  3. rule["copyleft"]— 检查该许可证是否带传染性,如果为真就标记为“需审查”。
  4. monthly_active_users > rule["commercial_limit"]— 用产品月活去卡各个许可证的商用门槛。
  5. all_pass— 汇总所有组件的检查结果,任何一个组件不合规,整体就不能过关。

常见误区

误区很多AI初学者看到“开源模型”几个字,就认定“只要不把模型本身卖了,怎么用都行”。于是直接把Llama微调后放进商业产品,不做任何许可证审查,等到融资尽调被问住才发现问题。

正解“开源”是一个法律概念,不是“免费”的同义词。开源只意味着源代码或权重对外可见,再分发和使用仍要遵守具体许可条款。就像餐厅公开了招牌菜谱,但不代表你可以拿它开连锁店。不同许可证对商用有截然不同的约束:Apache明确放行,Llama附带月活门槛,GPL则要求衍生品一并开源。

为何常见:因为“开源”和“免费”在公众语境中长期被混用,而多数开发者第一次接触开源是通过GitHub上的小项目,从未认真阅读License文本,形成了路径依赖。

误区有人在训练脚本里import了一个GPL工具库,立刻惊恐地把整个模型仓库设为私有并准备删除,认为“碰了GPL代码,模型权重就算衍生作品,必须全部开源”。

正解GPL传染性的触发条件是“分发衍生作品”。仅仅是内部使用、内部调用,不构成分发,不会触发传染。且模型权重是否算“源代码”、是否属于“衍生作品”,尚无明确判例。但保守做法仍是避免在核心产品中引入GPL组件——毕竟打官司的成本远超换库的成本。

为何常见:开发者对GPL的威名敬畏有加,但缺乏对“分发”这一关键法律术语的准确理解,容易把风险过度泛化,忽视实际使用场景的区分。

误区初创团队常觉得“月活7亿的条款跟我有什么关系,我这辈子都到不了那个量级”。于是掉以轻心,从未在技术方案中记录模型许可证的约束条件。

正解虽然月活7亿对初创团队是天文数字,但商业限制条款不只是“月活一项”。Llama协议中还有“不得用模型生成违法内容”“不得用模型训练其他大模型”等限制。另外,一旦你的产品被大公司收购,月活可能瞬间跨越阈值,许可证合规就变成收购尽调中的致命伤。

为何常见:人们天然倾向于用“当前规模”去评估条款风险,而忽略了“增长会改变条款适用性”这一动态性。

误区有人认为Apache 2.0是“最宽松”的许可证,“连署名都不用保留,随便改随便卖”。

正解Apache 2.0要求再分发时保留原始版权声明、许可证副本、NOTICE文件,并且如果你修改了代码,需要明确披露修改内容。更重要的是,Apache包含专利授权与专利报复条款,虽然它没有GPL那种强传染性,但法律义务仍然存在且不可忽略。

为何常见:与GPL的“咄咄逼人”相比,Apache的使用体验确实“隐形”,导致开发者误以为它没有要求。实际上,宽松许可证是把义务重心从“开源传播”转移到了“署名与责任”上。

误区有人认为“许可证约束的是代码,模型权重只是一堆数字,不受版权法保护”。

正解大模型权重通常包含人类的创造性选择(如网络结构、训练过程中形成的参数分布),在多数法域可被视为受版权保护的“作品”,因此许可证可以对其施加约束。近年来License条款中明确写入“模型权重”的使用范围(如Llama的权重要求保留版权声明),说明业界已将权重纳入契约范围。

为何常见:因为代码和模型权重在技术形态上差异巨大,开发者自觉或不自觉地把“代码著作权”和“模型参数权属”割裂开来,忽视许可证文本中对“模型”的定义范围。

面试题

Q1. 以下哪种许可证具有“传染性”(Copyleft)特征?

单选题 · easy

  • A.MIT License
  • B.Apache 2.0
  • C.GPL 3.0← 正确答案
  • D.BSD 3-Clause

答案:C。GPL强制要求衍生作品以同等许可证开源,这是“传染性”的典型特征。MIT、Apache、BSD都属于宽松许可证,不要求衍生作品开源。类比大食坊里,只有GPL这张菜谱要求“用了我的菜谱,你的新菜谱也得公开”,其他菜谱只需署名即可。

Q2. Llama Community License中的“7亿月活”条款属于哪种限制?

单选题 · mid

  • A.专利报复限制
  • B.商业使用限制← 正确答案
  • C.版权署名限制
  • D.代码开源限制

答案:B。Llama协议中月活超过7亿后,需要向Meta申请商业授权,这属于商业使用限制。它和GPL的开源限制不同——Llama不强制开源衍生模型,但会对大规模商用设门槛。就像菜谱免费给,但若你的饭店客流量超过阈值,就得来谈加盟费。

Q3. Apache 2.0许可证相比MIT许可证,多出的关键内容是什么?

单选题 · easy

  • A.强制开源衍生代码
  • B.专利授权条款← 正确答案
  • C.禁止商业使用
  • D.要求付费购买

答案:B。Apache 2.0包含明确的专利授权条款,给予使用者对代码中专利的实施许可,而MIT没有专利授权相关条款。这正是Apache被称为“法律上最完备的宽松许可证”的原因。它相当于额外给使用者发了一张“不会因使用该代码而被诉专利侵权”的安心卡。

Q4. 以下哪些行为会触发GPL许可证的“传染”条件?

多选题 · mid

  • A.在公司内部服务器上运行GPL软件
  • B.将包含GPL代码的产品出售给客户← 正确答案
  • C.在开源项目中引用GPL库并随开源项目一起分发← 正确答案
  • D.仅阅读GPL代码并参考其设计思路

答案:BC。GPL传染的核心触发条件是“分发衍生作品”。向客户出售产品、将GPL库与自有代码一起分发都构成传播,需要以GPL开源。但内部运行和阅读研习不构成分发,不会触发传染。类比大食坊:你在后厨试做菜没人管,但把菜端出去卖就得披露菜谱。

Q5. 某公司用Llama微调出医疗问答模型,通过API向医院按月收费。根据Llama协议,哪项判断正确?

单选题 · hard

  • A.任何规模的医疗场景都禁止商用
  • B.只要月活不超过7亿,就可以直接商用← 正确答案
  • C.必须开源微调后的模型权重
  • D.只要不公开API,就没有任何限制

答案:B。Llama协议允许商用,限制条件是月活超过7亿需商业授权。API服务形式本身不改变许可证的适用性,也没有强制开源衍生权重的条款。但需注意,通过API服务属于“使用”而非“分发”,这不影响商用判定。真正需要关注的是月活规模是否触及阈值。

Q6. 关于Qwen自定许可证与Apache 2.0的区别,下列说法正确的有?

多选题 · hard

  • A.Qwen许可证要求月活过亿需申请授权← 正确答案
  • B.Apache 2.0有专利授权条款,Qwen许可证没有
  • C.Qwen许可证要求开源所有衍生模型
  • D.两者都允许修改模型并用于商业← 正确答案

答案:AD。Qwen自定许可证的商用门槛是月活过亿需主动申请,与Apache的完全开放不同。Qwen许可证不强制开源衍生模型,而Apache 2.0包含专利授权条款、Qwen许可证未涉及。但两者都允许商业使用和模型修改,区别在于“是否设有规模门槛”和“是否自带专利保障”。

Q7. 某公司A将Apache 2.0代码集成到自己产品中,随后起诉公司B侵犯专利。根据Apache 2.0专利报复条款,下列后果正确的是?

单选题 · mid

  • A.A对B的诉讼自动失效
  • B.A获得的Apache软件授权自动终止← 正确答案
  • C.B必须赔偿A的诉讼费用
  • D.A需要额外支付专利授权费

答案:B。Apache 2.0的专利报复条款规定,任何针对Apache授权作品的专利诉讼发起者,其Apache授权自动终止。这是防止“用一份许可证获得技术,再反过来用专利打击他人”的保险机制。就像拿了张“免费通行证”,却用它堵别人的路,那通行证就会被收回。

Q8. 开源计划(OSI)对“开源”定义的核心理由是?

单选题 · easy

  • A.代码必须免费获取
  • B.许可证必须允许自由使用、修改、分发← 正确答案
  • C.代码作者必须放弃版权
  • D.必须有GPL传染性

答案:B。OSI的开源定义(OSD)要求许可证允许自由使用、修改、再分发,且不限制商业用途。它不是要求“免费”,也不要求放弃版权,更不是强制GPL——事实上很多OSI认证的许可证(如MIT、Apache)都是宽松派。开源核心是“自由”,而非“免费”。

Q9. 以下属于开源大模型许可证中“商业限制条款”常见形式的有?

多选题 · mid

  • A.月活用户数阈值← 正确答案
  • B.禁止用于训练其他大模型← 正确答案
  • C.强制公开模型权重
  • D.特定行业(如医疗)须付费← 正确答案

答案:ABD。商业限制条款的常见形式包括月活阈值(Llama的7亿)、用途限制(禁止生成违法内容、禁止训练竞品模型)和行业限制(特定行业需付费)。但这些条款不要求公开模型权重——那属于GPL的copyleft义务,而非商业限制。注意区分“商用约束”和“开源传播”是两类不同性质的条件。

Q10. 合规检查清单中,"License BOM"的核心作用是什么?

单选题 · extreme

  • A.记录模型训练的超参数配置
  • B.追踪系统中每个组件的许可证信息并管理风险← 正确答案
  • C.替代产品需求文档进行项目管理
  • D.用于保存客户的合同副本

答案:B。License物料清单(BOM)是合规审计的核心工具,它将系统中每个组件(模型、代码库、训练框架)的许可证、版本、分发方式、义务状态结构化记录下来。类比大食坊的“食材溯源台账”,一旦某味食材出现问题,能立刻定位哪些菜受到了影响。它和模型超参数、项目文档、客户合同是完全不同的用途。