ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

开源不等于随便用:商用前必须逐条核对的许可边界

开源不等于随便用:商用前必须逐条核对的许可边界

开源不等于随便用:商用前必须逐条核对的许可边界

【免费下载链接】Timestral-209M项目地址: https://ai.gitcode.com/hf_mirrors/mistralai/Timestral-209M

Timestral-209M 的权重可以免费下载,README 里也明说"Models have been released under a Modified MIT license"。但如果你把"MIT"三个字当成通行证,直接把它塞进定价系统或交付给客户的私有化部署包里,风险恰恰藏在那句"Modified"里。本文只做一件事:把 LICENSE 这份不到十行的文本,连同 README.md、config.json 和权重文件本身,逐条拆成可以交给法务核对的边界条件。

一、先对齐"开源"的对象:这个仓库里只有权重,没有代码

打开仓库根目录,实际文件只有六个:LICENSE、README.md、config.json、model.safetensors、timestral-hourglass.png和.gitattributes。没有一行推理代码,没有setup.py,也没有pyproject.toml。

这与 README 的说明一致:

  • 模型能力由权重 + 配置描述,config.json 里定义了patch_size: 32、d_model: 768、24 层block_schedule、21 个quantile_knots以及context_length: 32768;
  • 真正的运行代码是另一个发布物,README 的 Install 段给出的命令是pip install git+https://github.com/mistralai/timestral.git,而不是某个 PyPI 包名。

这个区别不是文字游戏。LICENSE 第 5 行的授权对象写得很明确:

...to any person obtaining a copy ofthe weights of this model and associated documentation files (the "Model"), to deal in the Model without restriction...

也就是说,这份许可覆盖的是"权重 + 随附文档",它没有覆盖训练代码、推理库、微调脚本、SDK。推理库如果单独发布,就自带一份独立的许可文本,条款可能完全不同(哪怕是 Apache-2.0 与这份 Modified MIT,在专利授权、再分发义务上的要求也不一样)。

因此商用尽调的第一步不是读条款,而是列出你到底引入了几个法律客体:

客体本仓库中是否存在依据
模型权重是(LFS 大文件)model.safetensors
模型配置/超参是config.json
随附文档是README.md、LICENSE
推理代码timestral包否README 指向独立 Git 仓库安装
模型名称与商标否(未授权)LICENSE 全文无商标条款

把"我下载了一个 MIT 模型"当成结论,通常就是在这一步出错的:你引入的是两份许可、两个合规判断,而不是一个。

二、逐条读:这份 Modified MIT 改了哪两处

抛开免责声明,LICENSE 实质上只有两个条件句。

条件 1(署名):"The above attribution notice and this permission notice shall be included in all copies or substantial portions of the Model."

即Attribution notice: 2026 - Mistral AI与整份许可文本,必须随每一份副本或模型的实质性部分一起保留。注意"substantial portions"这个措辞:量化成 int8、裁剪层数、转换成 ONNX、打包进 Docker 镜像,都属于持有"实质性部分",都需要把许可文本带过去。

条件 2(营收闸门):这是真正的"Modified"所在。

You are not authorized to exercise any rights under this license if the global consolidated monthly revenue of your company (or that of your employer) exceeds $20 million (or its equivalent in another currency) for the preceding month.

它的句式不是"超过门槛请付费",而是"超过门槛则无权行使本许可项下的任何权利"。区别很大:前者是可补票的计价问题,后者是授权基础直接消失,属于断崖而非斜坡。

值得单独指出的是,这条末尾写的是 "This restriction in(b)applies to the Model and any derivatives...",但整份文件的编号体系是1.与2.,并不存在(b)。这是起草时留下的编号错位——不影响条款实质(上下文唯一指向营收条款),但在正式采购评审里应当作为"要求授权方书面澄清"的一条记录,而不是自行脑补。

此外这份文本还存在三个共性缺失:无版本号、无生效日期、无管辖法律与争议解决条款。它们不改变你的义务,但决定了你必须自己锚定"当时拿到的是哪一份文本"(见第五节)。

三、营收门槛的四个判定维度

条款只有一句话,但要做成内部合规规则,必须拆成四个可执行的判断。

谁:your company (or that of your employer)。主体是公司整体,不是项目、不是产品线、也不看你这条业务是否盈利。对个人开发者,雇主超线即视为自己超线——这直接把"用公司电脑顺手做个 side project"排除在安全区之外。对集团客户,判断基准是并表主体(global consolidated),子公司单独核算没用。

何时:for the preceding month。这是滚动的前一个月,不是上一财年、不是历史峰值。含义是授权状态会随月份翻转:本月合规、下月因一笔大额确认收入越线,授权基础当月即失效。任何"年初评估过一次就够了"的流程设计都是错的,必须进月度复查清单。

多少:2,000 万美元,且允许"等值其他货币"。文本没有指定折算汇率与折算日,实操中应固定为"月末中间价"之类的内部口径并留痕,避免事后争议。

范围:the Model and any derivatives, modifications, or combined works based on it, whether provided by Mistral AI or by a third party。三个关键词都要注意:

  • derivatives / modifications:微调、继续预训练、量化、蒸馏出的学生模型,都在射程内,不存在"魔改一层就洗白";
  • combined works:把权重和你的业务系统打包在一起交付,属于结合作品;
  • whether provided by ... a third party:从任何镜像站、任何二次分发者处下载,条款照旧适用。这一点对使用 HF 镜像、内网制品库的团队尤其关键——换下载源不改变授权来源。

四、三种用法,在这份许可下差异在哪里

很多团队习惯按"内部自用 / 对外服务 / 二次分发"三档来分级管控,这套框架在这里依然适用,但结论可能反直觉。

用法典型形态这份许可下的关键约束
企业内部使用内网预测服务、BI 看板、补货建议仍需满足营收门槛;无"内部使用例外"条款
对外提供服务SaaS 预测 API、嵌进客户系统的功能除营收门槛外,署名与许可随附义务需覆盖交付物
二次分发私有化交付、镜像站、SDK/终端内置每一份副本都要带LICENSE原文与归属声明

第一行是多数人的盲区。不少模型许可(以及 GPL 一类著佐权许可)会对"纯粹的私有使用"给出豁免或降低要求,但这份文本里没有任何内部使用例外:授权对象是 "deal in the Model",营收越线后是 "not authorized to exercise any rights"。字面阅读下,连内网跑一次推理都失去许可依据。

第二行要注意交付物的形态。若你的产品把预测结果作为功能交付,权重仍在你自己机房,通常不构成权重的再分发,但署名义务的落点需要产品、法务一起定(例如"关于本产品使用的开源组件"页面)。若客户要求私有化部署,权重文件进入了客户环境,就是copies,LICENSE必须随包交付,且客户自身的营收状况将影响其是否有权使用——这一点必须在合同里向客户披露,否则风险会回流到你身上。

第三行是镜像与制品管理的问题。本仓库的 .gitattributes 把*.safetensors等二进制走 Git LFS,意味着"仓库内容"与"仓库里的权重"是两层东西;而LICENSE是普通文本文件,跟着 git 历史走。做二次分发时,正确做法是把权重与许可文本作为一个不可分割的制品(artifact)一起签发,而不是只同步权重文件。

关于蒸馏:把 Timestral 的输出当作特征去训练自有模型,是否构成combined work,文本未定义。这属于必须书面澄清的问题,不要用工程直觉替代法律判断。

五、把"哪个版本、哪份许可"钉死:可核查的工程证据

合规争论最常见的死法是"说不清当时用的是哪一版"。这个仓库恰好提供了几个可以直接写进台账的锚点。

其一,四个尺寸共用同一份许可。同家族的 5M / 28M / 123M / 209M 四个仓库,LICENSE内容完全一致(MD5 均为5bd5d3d2d1686e6982326ef0b5f5d74c)。所以"换个更小的模型是不是就宽松了"这个问题,答案是明确的否——参数规模与法律条款无关。这也顺带解释了为什么不能只看 README 的license: other字段:Hub 元数据只是标签,LICENSE才是文本。

其二,权重有可校验的哈希与体积。model.safetensors 在未拉取 LFS 对象时只有 134 字节的指针文本,内容是可校验的:

oid sha256:1456effb9927e3daa8c7234f10497e3424233869245a9c72b8ecebaf7ad2b7fa size 837271648

837,271,648 字节对应 209M 参数,约 4 字节/参数,说明发布的是 fp32 权重。这有两个直接用途:一是台账里记 SHA256 而不是文件名(同名文件完全可能被替换);二是容量规划时按 fp32 估算,量化后的新文件属于modifications,需要重新登记并继续携带许可。

其三,用 commit 锚定条款快照。本仓库当前 HEAD 为9874d252ab0aae16f7f7c999f98f98d6ad7d8365,且LICENSE、README.md、config.json是在同一次提交中首次加入的。合规归档应至少保存:commit hash、LICENSE原文、权重 SHA256、下载时间与下载源。可以这样自查:

git rev-parse HEAD md5sum LICENSE head -c 200 model.safetensors # 未拉取 LFS 时确认指针与 oid git lfs ls-files -l # 确认权重对象是否真的落地

最后一条命令在只做了浅克隆或镜像同步的环境里经常会"空手而归"——这提醒一件事:git clone成功不等于拿到了权重,也不等于你持有了一份可被审计的制品。

其四,文档不是合同,但会被当成承诺。README 是随附文档,属于associated documentation files的一部分。以本仓库为例,209M 的架构描述(24 层、d_model768)与 config.json 完全对得上;但同家族 28M 的 README 写的是 "embedding dimension 256",其config.json的d_model却是 384。这类文档与配置的偏差在技术选型阶段就会被下游引用,尽调时应当确立一条规矩:参数口径以config.json与实际权重为准,README 只作为使用说明,并在内部评估报告中注明差异,避免日后被拿来做"宣传不符"的文章。

六、法务评审前,先自己回答五个问题

把上面所有条款压缩成五个必须先有答案的问题,答不上来就不要进评审会:

  1. 上月全球合并营收是多少?谁出数、按什么汇率折算、谁签字。并表范围内有哪些主体、外包与派遣人员如何认定,一并写清。没有这个数字,后面四条都无法判定。
  2. 我们引入的是权重,还是权重 + 代码?分别对应哪份许可、哪份文本、哪个版本?代码侧许可是否包含专利授权与再分发义务?
  3. 我们的形态是内部使用、对外服务,还是分发副本?若涉及交付给客户,客户的营收状态由谁核查、合同里如何披露、LICENSE与归属声明由谁随包交付?
  4. 我们会做哪些modifications?量化、微调、蒸馏、剪枝、打包成 ONNX/TensorRT 引擎,逐项列出,并确认每一项都继续携带许可文本、都继续受营收条款约束。
  5. 越线之后的 Plan B 是什么?商业授权需要主动去谈,且文本写明由 Mistral AI "sole discretion" 决定是否授予;另一条路是改用其托管服务。这两条都需要提前准备,而不是等到月中越线再启动。

七、几个容易被跳过的边界

没有专利与商标授权。LICENSE 通篇是版权许可,不含明示专利授权,也没有授予 "Mistral" / "Timestral" 名称或标识的使用权。对外宣传写"基于 Mistral 官方模型"之前,先确认这不构成商标性使用。

AS IS 是实打实的风险转移。免责段排除了适销性、特定用途适用性与不侵权担保,也排除了任何间接损失。时序模型的预测误差会直接落到补货、定价、容量规划上,这份许可不提供任何兜底,精度验证与降级预案必须自己做。

第三方权利条款是双向的。README 末尾那句"You must not use this model in a manner that infringes, misappropriates, or otherwise violates any third party's rights, including intellectual property rights",约束的是使用者。把你的业务数据喂进模型、把预测结果对外输出时,数据授权链是否完整,责任在你这边。

授权状态是随时间变化的,且没有补救期。营收条款让授权从"有"到"无"只需要一个月的数据,文本未给出任何 cure period(补救期)。这意味着合规动作必须是事前的月度流程,而不是事后解释。

开源在这里的真实含义是"源代码与权重可获取、条款公开可读",而不是"权利无限制"。Timestral-209M 的边界其实写得很清楚:署名要保留、营收有闸门、衍生作品一并受限、越线只能去谈商业授权或改用托管服务。把这几条抄进你的合规台账,比在事故之后重新读一遍 LICENSE 便宜得多。

【免费下载链接】Timestral-209M项目地址: https://ai.gitcode.com/hf_mirrors/mistralai/Timestral-209M

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进