自 2022 年 11 月 OpenAI 发布 ChatGPT 以来,大语言模型产品(以下简称“大模型”)不断涌现。一些大模型采 用闭源方式运作,如 OpenAI 的 GPT-4、百度的文心大模型;一些大模型选择以开源方式发展,如 Meta 的 Llama、阿里的通义千问。一部分开源大模型厂商也可能保有未披露技术细节的闭源版本的模型。
开源大模型是真的开源么?开源大模型都开放了什么?开源大模型在技术特性、授权模式、商业策略等方面有什么特点?开源大模型与传统意义上的开源软件相比,在开发模式、使用要求上有什么异同?本文将与大家探讨这些问题。
“开源”大模型到底开放了什么?
大模型是基于深度学习技术,通过海量数据训练出的深度学习模型。它能够基于自然语言实现文本的理解和生成,针对输入的数据得到输出,完成多种类型的通用任务。
大模型的运转主要围绕训练和推理两个过程开展。训练过程是大模型产生的过程,其基本原理是在深度学习框架上运行一个特定的模型架构,将训练数据集输入给架构,通过复杂的计算和多轮迭代,得到一套权重。这套权重就是训练的产物,也称为预训练模型。预训练模型经过部署,在深度学习框架的支持下,针对给定的输入(又被称作Prompt
)得到对应的输出,这个过程就是推理:
值得一提的是,大模型训练和推理过程所需要的资源和算力差异巨大。训练过程需要进行很多轮迭代计算,必须要具备海量GPU
算力,才能在合理的时间内完成一次完整的训练。推理过程所需的算力资源则相对小得多,在消费级GPU
甚至普通的CPU
上就能完成一般的推理任务。
如果我们将大模型的产生过程(即训练过程)与传统软件的产生过程(即构建过程)进行一个不太严格的类比,可以得到下图:
可⻅,要想对一个大模型进行复现,需要具备以下要素:
- 代码:实现大模型训练和推理所需的代码,包括模型架构、训练算法、模型推理等核心代码,以及数据处理、评估、流程控制等工具代码。
- 数据集:原始训练用的数据,还可能包含评估、测试等使用的数据,通常是海量的、以无监督数据为主的集合,通过自动化为主的方法得到。
- 训练过程:使用代码和数据集训练模型所需的数据处理步骤、训练参数、环境、训练过程、测试过程 等,使用代码或文本进行描述。
- 权重:训练的结果,也就是深度学习训练过程运行后得到的参数集合,可用于推理。
- 深度学习框架:通常使用市面上已有的、通用的框架,如
PyTorch
、TensorFlow
、PaddlePaddle(⻜桨)
,本质上也是一种代码。
下面,我们来看一下常⻅的“开源”大模型都开放了什么,如下表所示:
可⻅,绝大多数“开源”大模型开放出来的是一套权重,即预训练模型。
开发者如果想复现该模型的训练过程,通过优化数据集、方法等训练出一个更优质的模型,就需要数据集、训练过程、代码,但大部分“开源”大模型的并未提供这些要素,其他开发者即使掌握算力也是无法复现的。
如果类比传统软件,这些大模型更像是开放了一个二进制包(比如.exe
文件),其实是闭源、免费开放使用的,本质是“免费软件” (freeware
)而非“开源软件”(open-source software
)。
因此,也有人根据开放程度,将大模型细分为“开放源码”(open-source
)、“开放权重”(open-weights
)、“封闭权重”(closed-weights
)等几类。
在继续下文之前,为了保证阅读体验流畅,我们暂且依习惯将上面这些大模型笼统地称作开源大模型,并且把引号去掉;同时,为方便对比,下文中所有的“软件”特指传统意义上的软件,不包括大模型。
开源大模型与开源软件的区别
开发模式
对于社区中的开源软件来说,源代码是其核心。开发者通过阅读源代码可以掌握该软件的全部细节,进而可以为该软件开发新的功能、提供测试、修复 Bug 以及做代码评审等。
开发者提交自己的代码到开源项目(上游),合入后就形成了新的版本。这就是开放式协作开发,它是开源软件的基本开发模式,与普通软件的开发过程并没有本质的不同,只是开发人员在地理位置上是分散的,他们依靠一些远程协作平台(如 GitHub、 Gitee 等)以开放式治理的方式进行协作。
但是对于大模型来说,除了源代码以外,数据也是其重要的核心资产。大模型相关的代码大部分是用于数据处理、配置、部署、评估、微调等任务的工具性代码,很多是基于开源的第三方工具链建立的。
那么,开源大模型在不提供数据集和源代码的前提下,是不是就不能进行协作了呢?并非完全如此。基于大模型的实现原理和技术特性,开发者可以通过微调(fine-tuning
)的方式对预训练大模型进行能力扩展,通过额外的数据集进行进一步的训练,优化模型在特定领域的效果,得到一个新的衍生模型。例如,常⻅的有监督微调 (supervised fine-tuning
, SFT
)过程,如下图所示:
微调数据规模可大可小,但通常比原始训练数据集小得多,所以产生一个微调模型所需的算力成本也低得多。
因此,在开源大模型界,出现了一些以主流预训练模型为基础底座衍生的微调大模型,并形成了谱系。
下图是Awesome Chinese LLM项目整理的一份谱系图。
不过,如果我们类比开源软件的模式,这些衍生是一些Fork
,永远不会被合并回上游。
即使我们以上图这样的谱系关系或扩展关系来理解衍生模型与基础模型的关系,他们之间的关系依旧不是稳固的。
例如,当基础模型发布新版时,基于旧版基础模型微调的衍生模型需要重新训练甚至做更多额外的调整才能产出新的衍生模型,原有的微调产物无法像插件那样直接应用于新版大模型,这进一步降低了协作开发的意义。开源软件在这一点上完全不同,大部分开源软件在设计上能够保持向前兼容,基于旧版本的扩展或衍生软件通常都能与原软件的新版本、新特性结合使用,两者保持相对稳定的协同关系。
除了微调之外,开发者还可以通过Embedding
、RAG
等技术,基于预训练大模型做能力的提升,实现更好的应用效果。这些模式基于“开闭原则”(即Open for extension, closed for modification
),与模型是否开放或开源没有太大关系,在这里就不展开讨论了。
无论是大模型还是软件,要想发挥开源的优势,根本上是要吸收开发者对大模型或软件的改进。目前对开源大模型的改进主要是通过微调来实现的,开发者要么无法对模型本身做出本质的改进,要么改进后的模型特性无法合入给原模型(上游),这从开源大模型的 GitHub 仓库的 Pull Requests
数量非常少这一点上也可⻅一斑。
预训练模型的能力仍然完全掌握在原始作者手中,并不会因为模型开放而提升,这与开源软件的开发模式是有本质不同的。这些开源大模型无法实现开放式协作开发,也就无法像开源软件那样获得开放式协作开发带来的好处。
授权模式
开源软件在发布时都会附带有许可证,许可证规定了软件的使用和分发行为,具有法律意义。业内一般认为,由OSI(Open Source Initiative)
组织认证的开源许可证才是真正的开源许可证,采用这些许可证发布的软件才是开源软件。这样的许可证目前有 100 多个,大家常⻅的GPL
、Apache 2.0
、MIT
、BSD
都属于这种。还有一些许可证尽管也规定了源代码免费开放,但往往存在限制性条款(例如对使用范围、使用规模、用户类型等有特别的限制条件),不符合 OSD(Open Source Definition)
的定义,这类许可证一般被称作 “源码可用”许可证(source-available license
),如ELv2
、SSPL
等,采用这类许可证的软件一般不被认为是开源软件。
大模型是新生事物,不像传统软件那样已经在业内形成了约定俗成的模式,也没有相关的权威组织来定义其概念和行为准则。从现有的情况看,已发布的大模型在许可证的选择上,一般采用以下几种方式:
- 使用 OSI 认证的开源许可证:如
Apache 2.0
、MIT
、BSD-3-Clause
许可证。采用这类许可证的大部分是研究机构发布的大模型,通常选用宽松型开源许可证。 - 使用第三方的大模型通用许可证:主要是
RAIL
、OpenRAIL
系列许可证。其中OpenRAIL
系列许可证对用户的限制条件相对较少,具备相当的开放性,但目前还没有被OSI
认可的消息。 - 使用
Creative Commons
开放内容许可证:如CC BY-SA-3.0
、CC BY-SA-4.0
许可证。主要是开放的数据集、或开放模型的数据集部分选用此类许可证。 - 使用大模型所有者定制的许可证:内容各不相同,通常是有条件的免费开放,限制了用户规模、使用场景等。商业机构发布的大模型,大部分都采用此种方式。
从目前的经验看,商业机构发布的开源大模型一般采用定制的许可证,往往存在限制性条款,所以它们并不像开源软件那样是完全公益性的授权。
这些开源大模型更多是利用当前大模型方面无公认标准的现状,借用传统开源软件的概念进行的“自封”,与真正的开源有很大的区别,其背后对应的的是商业模式和策略,下文会进一步探讨。
还可以看到的一点是,有些开源大模型会将源代码、权重(模型本身)等进行分开授权。
例如零一万物的Yi
系列大模型,作者将源代码以Apache 2.0
开源许可证进行授权,而将权重用专⻔撰写的许可证进行授权。这也表明开源大模型的作者了解 OSI 许可证的意义,为了把某些关键权利在保留在自己手中,没有通盘全部采用。也有一些比较尊重行业惯例的作者,并没有称自己的大模型为开源大模型。例如 Google 的Gemma
称自己的模型为“open model”,并没有使用“open-source model”的说法。开放数据集的大模型,在数据集授权方面,大都采用MIT
、Apache 2.0
等开源许可证或CC
系列开放内容许可证授权。
除了上面提到的将不同资源分开授权的例子之外,RAIL
和OpenRAIL
也明确提出了将D
(Data,数据)、A
(App,应用)、M
(Model,模型)、S
(Source code,源代码)分开授权的模式,并通过后缀区分不同资源的许可证,如OpenRAIL-M
、OpenRAIL-S
。
或许这才是大模型资源授权的正确方式。相信随着大模型技术和应用的快速发展,在不久的将来会发展出一系列被业界公认的开放和授权模式。
开源大模型得益于开源软件
开源大模型在没有像开源软件那样彻底开放的情况下,依然能够迅速发展,这其实非常得益于开源软件的土壤。
前文中提到,大模型的训练依赖于数据、硬件、软件三大要素,即大规模数据集、GPU
算力和深度学习框架。而当前主流的深度学习框架作为软件要素几乎都是开源的,如 Google 开源的 Tensorflow
、Meta 开源的 PyTorch
、百度开源的 PaddlePaddle
。并且这三大主流深度学习框架都采用了OSI
认证的开源许可证(Apache-2.0 license
、Modified BSD license
),是名副其实的开源。
得益于基础软件平台相对统一并且开源免费,这使得大模型在有限开源的情况下,依然可以被用户低成本低⻔槛的开发和使用。同时,得益于开源深度学习框架以及相关开源工具链的完整生态,使得大模型创业成为可能。
深度学习框架的开源,形成了广泛的开发者协作贡献,进而形成了蓬勃的技术生态,这促使底层的芯片厂商愿意提供强有力的支持。我们可以看到作为GPU
芯片霸主的 NVIDIA,不遗余力的支持 Pytorch
、 Tensorflow
、PaddlePaddle
等主流开源深度学习框架。这使得开发者开发大模型的⻔槛进一步降低。从这个⻆度讲,Google、Meta、百度等厂商通过早期的对基础平台的开源和持续贡献奠定了如今开源大模型的生⻓的基石。
开源大模型的商业模式
OpenAI 推出的 ChatGPT 以其广泛的受众和惊艳的产品体验,迅速破圈走红,以极大的声势顺速捕获了大量用户,成为此类产品的标杆。各家厂商意识到大语言模型技术对行业可能具有颠覆性的意义,在这种情况下,市场上的玩家陆续推出自己的同类技术和产品,开始谋划和选择适合自己的竞争策略,其中就包含以开源模式参与竞争的厂商。
商业公司为什么将软件开源?
过去,在软件领域保持绝对领先的头部厂商一般不会选择开源路线,典型的例子是 Windows、iOS 等。而厂商对自己的软件开源往往出于以下三个原因:
- 厂商在竞争态势下处于劣势,竞争对手的软件已经成为事实标准,具备了强大的生态,通过常规手段无法撼动对方的地位,而采用开源的方式从开发者生态出发逐步构建特别的竞争优势,以达到与竞对分庭抗礼的目标。如 Android vs. iOS,Chromium/Chrome vs. IE。
- 软件产品属于基础软件(特别是 To B)的类型,具有平台的性质,必须形成极其广泛的采用,建设繁荣的开发者生态,成为事实标准才能达成整个商业模式的成功。如 Redhat、HarmonyOS、TensorFlow。
- 软件产品的直接用户是开发者(To Developer),由于开发者具备亲手改进软件的能力,所以为了迅速打开市场、快速获得产品反馈、形成开发迭代的良性循环,就可能选择开源的模式。特别是在之前已经存在类似竞品的情况下,就更可能采用这种模式。如 VSCode、Flutter。
从历史经验来看,商业公司对软件进行开源除了回馈社区、建立生态,往往还带有一定的商业目的。而对于大模型的开源也不例外。
对 Meta 开源 Llama 的观察
Meta 是率先采用开源的方式参与竞争的国际大厂。其分别于 2023 年 2 月、2023 年 7 月、2024 年 4 月开源了 Llama
、Llama 2
和 Llama 3
。
业界分析,Meta 开源它的大模型,一个原因是有意通过开源来改善或扭转它在美国较差的公众形象。在首次开源的 Llama
大模型中,Meta 在模型卡片(Model Card)里披露了一组关于性别、宗教、种族/肤色、性取向、年龄、国籍、外貌和社会经济地位的偏⻅度评分(这些方面的“政治正确”在美国社会非常重要),这使 Meta 的大模型信息显得更加透明,使普通大众不需要去读论文就能够了解大模型的特性。
很显然,这不是 Meta 开源 Llama 的全部目的,在后续发布 Llama 2
和 Llama 3
时,Meta 都强调了与微软等厂商的合作。特别是在发布 Llama 3
时,Meta 宣布“Llama 3 models will soon be available on AWS, Databricks, Google Cloud, Hugging Face, Kaggle, IBM WatsonX, Microsoft Azure, NVIDIA NIM, and Snowflake, and with support from hardware platforms offered by AMD, AWS, Dell, Intel, NVIDIA, and Qualcomm.
”这几乎涵盖了市面上所有的主要 AI 平台和云服务,以及除 Google TPU 及苹果 M 系列芯片的以外的所有硬件平台。
Meta 公司的主营业务中没有像微软、Google 一样的云服务、操作系统、IDE 等 IT 基础设施产品和服务,其绝大部分业务都是 To C 的。这使得 Meta 没有与竞对关系紧张的包袱以及受平行业务联动的拖累,可以与外部公司大胆合作,所以其做出开源的决策相对更加容易。
对阿里云开源 Qwen 的观察
阿里云是国内最早宣布大模型开源的大厂。不同于 Meta,阿里是一个云计算大厂,阿里云在阿里集团的版图中占据重要位置。阿里云可能具备对大模型的商业竞争格局特别是 To B 领域的竞争格局产生极大影响的能力,它可以依托其云服务提供大模型部署、训练、微调等服务。
阿里云已经发布了基于基于通义系列大模型和三方大模型的一站式大模型服务平台“百炼”,和一系列基于大模型的 PaaS 开发解决方案。在国内大模型厂商里,阿里云并没有占据先发优势,但是其可以借助云的市场份额优势,采用公有云分发大模型服务的模式盈利,所以阿里云可以把 Qwen 开源作为一种生态营造的手段。
除了开源的 Qwen 以外,阿里云十分重视大模型的合作生态。其投资了国内全部五家估值在 10 亿美元以上的大模型初创公司,分别是智谱 AI、零一万物、百川智能、MiniMax 和月之暗面,这与微软的思路十分类似。
开源模式与闭源模式之争
开源是一种开发模式,也是一种分发授权模式。从商业模式的⻆度来讲,是没有优劣之分的。
作为市场上的玩家,各家都会选择最适合自己的发展模式和路线。如 OpenAI、百度选择了闭源路线,而 Meta、阿里云选择了开源的路线。从目前的基本态势来看,闭源大模型在性能、效果等方面仍优于开源大模型。并且闭源大模型厂商在快速丰富自己的产品和服务形态。
如百度不仅拥有文心一言对话式 AI 应用,而且还推出了千帆大模型平台、ModelBuiler、Appbuilder、Agent Builder 等产品和服务,全面覆盖了个人用户、企业级客户、 开发者等用户群。而 OpenAI 也在通过 GPTs 等方式展开一些新的尝试。
根据前文的分析,开源大模型并不等同于开源软件,它无法充分实现多元化的协作开发模式,所以大模型的开源更关乎商业策略,而不是生成方式或技术水平。
这与微软选择与 OpenAI 结盟,而 Google 选择正面竞争是一回事,而作为广大开发者和创业者,更应该考虑如何选择一个最合适的大模型平台,然后专注于应用开发。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。