开源是什么?公开源代码、允许自由使用修改和分享
开源(Open Source)原指公开软件源代码、允许他人自由使用、修改和分享的软件开发方式。这个术语起源于软件开发领域,但如今,“开源”已经代表了一种更广泛的价值观,可以称之为“开源方式”:开源的项目、产品或计划,推崇开放交流、协作参与、快速迭代、透明和社区导向。
它的来历
软件的源代码是程序员写的、人能读懂的代码,经过编译后才变成计算机能运行的程序。很多商业软件只提供编译好的程序,不公开源代码,用户无法知道它内部是怎么工作的,也不能修改,这叫闭源或专有软件。上世纪 80 年代,理查德·斯托曼发起了自由软件运动,强调用户运行、研究、修改和分发软件的自由。1998 年,一批开发者提出了“开源”这个更偏重实用和商业友好的说法,并成立了开源促进会(OSI),制定了“开源定义”。
开源许可证
开源并不意味着没有任何规则,而是通过许可证来规定使用的条件。常见的有两大类:宽松型许可证,比如 MIT、Apache 2.0、BSD,几乎允许任何用途,包括闭源的商业使用,只要保留原作者的版权声明;著佐权型(copyleft)许可证,比如 GPL,要求基于它修改并发布的软件也必须以同样的许可证开源。选用开源软件时,了解它的许可证非常重要。
开源的影响
开源软件已经成为现代数字世界的基础设施:Linux 操作系统运行着全球绝大多数的服务器和手机(安卓基于 Linux);Apache、Nginx 等网络服务器支撑着大量网站;Python、Git、Kubernetes、MySQL 等都是开源的。在 AI 领域,PyTorch、TensorFlow 等深度学习框架,以及 Hugging Face 上的大量模型和工具,都推动了技术的快速普及和进步。
AI 时代的“开源”之争
在大模型领域,“开源”这个词的含义引发了不少讨论。很多被称为开源的大模型,实际上只公开了训练好的模型权重,可以下载使用和微调,但没有公开训练数据和完整的训练代码,有的还在许可证中限制了商业使用或用户规模。严格来说,这些更准确的叫法是“开放权重”模型。开源促进会在 2024 年发布了“开源 AI 定义”,要求公开足够详细的训练数据信息、代码和权重。像 OLMo 这样连数据都完全公开的模型,被称为“完全开源”。选用开源模型时,同样需要仔细阅读它的许可证条款。