开源大模型争议:是真开源还是假开源?
引言
人工智能在近几年的飞速发展,不仅打破了很多传统技术和习惯,也让全球围绕大模型生态迎来了全新的赛道之争。尤其是从去年开始,全球互联网大厂掀起了'百模大战',大家耳熟能详的互联网大厂如微软、谷歌、百度、阿里等接连下场,经过半年多的发力,这些科技巨头围绕着大模型生态而面临选择开源大模型还是闭源大模型。面对这个选择,在大模型生态圈掀起了一场引全球人瞩目的大模型开源之争。普通开发者和用户中大部分人是赞成大模型开源的,但是作为大模型厂商更多的是关心如何确保良性的发展而是否选择开源自己的大模型。那么对于大模型是否开源这一个命题,开源大模型是真的开源么?本文就来简单聊聊。
开源的定义
首先回顾一下什么是开源。开源其实是指软件或其他技术产品的源代码是开放的,可以被公众自由访问、使用、修改和分发。这种开放性的核心在于,任何人都可以查看、了解、修改并重新分发这些源代码,前提是遵循相关的开源许可协议。
开源的核心理念就是鼓励协作、共享和持续改进。通过开放源代码,开发者可以共享他们的成果,同时也可以从社区中获得反馈和建议,从而不断改进和优化他们的产品。而且开源也促进了技术的快速传播和普及,使得更多的人能够受益于这些技术。关于开源许可协议,它是开源运动的重要组成部分,它们规定了源代码的使用、修改和分发规则。常见的开源许可协议包括 GNU 通用公共许可证(GPL)、BSD 许可证、Apache 许可证等,这些许可协议通常要求保留原始作者的版权信息,并允许用户以开源的方式分发修改后的代码。
所以说开源是一种基于开放、共享和协作的软件开发模式,它鼓励人们共同参与到软件的开发和改进中来,推动技术的持续进步和普及。
什么是开源大模型?
上面关于开源的介绍之后,再来看开源大模型就容易理解了。开源起源于软件开发领域,全称就是'开放源代码',但是在当前的'百模大战'中,出现了大模型的开源、闭源之争,就引出来了开源大模型。开源大模型,其实就是大模型厂商公开自己模型的源代码和训练数据,任何人都能查看、使用。
但是,根据目前已有的开源大模型,都不是真正的开源大模型,有的可能只是开放了源代码,但没有公开训练数据,与真正的开源还是有很大的差距。在继续下文之前,为了保证阅读体验流畅,我们暂且依习惯将这些开源大模型笼统地称作开源大模型;同时,为方便对比,下文中所有的'软件'特指传统意义上的软件,不包括大模型。
大模型时代首次出现闭源和开源'齐头并进'
为什么说大模型时代首次出现闭源和开源'齐头并进',那是因为比如像 MySQL、Linux、云架构等开源技术,在历史上都一定滞后于当时最先进的技术,但是大模型则是首次出现闭源和开源齐头并进的状态。
出现上述情况的原因在于,关于开源技术,需要感兴趣的开发者能在一起能够有效地去协作,这需要一些基础条件加持,比如高速网络、开源平台等。因为在 Linux 刚开始发展的那个时代,这些条件都不健全(比如能访问到 Linux 代码的人很少、没有好的管理工具等),而且那时候的开源技术只属于少部分极客。但是在现在,网络、开源平台和各类管理工具都已经发展得很完备,所以当下的开源时代,更多人是可以参与建设的,甚至是普通人,也就是现在说的'人人都可参与开源'。
开源和闭源不是绝对对立的
作为普通开发者和创业者来讲,如果对开源不太熟悉,可能觉得开源就是免费,开源和闭源是二者不能共存的关系,也并不是现在有些声音说的:开源一定会赢、或者闭源一定赢的问题。个人觉得开源、闭源都是可以互相转化的,而且转化的维度很宽泛,二者结合很紧密,它们不是对立关系,更多的是相互依存的关系。
下面我会详细提到不同大模型企业,开源、闭源策略不同。比如 OpenAI 最早也是做开源的,比如发了 whisper 这些开源的模型,只是后来他选择了把大模型闭源。又比如,Meta 也做了很多开源的工作,但其内部也有大模型是不开源的。
就像上面所说的开源和闭源是相互依存的关系,开源大模型和闭源大模型也可以互相转化的,比如有一个开源模型,一家企业用自己的语料去微调它,在这个基础之上再做一些优化,最终形成的这个模型是闭源的,可能产生商业价值,而且这'最后一公里'(优化)是收费的,但它仍然算闭源。
大模型到底开源什么?
了解大模型的应该都知道,大模型是基于深度学习技术,通过海量数据进行训练而来的深度学习模型,大模型能够基于自然语言来实现文本的生成和理解,根据输入的数据得到输出,从而完成多类型的通用任务。在大模型的运转方面,主要就是训练和推理两个过程,训练过程就是大模型产生的过程,训练过程的基本原理是在深度学习框架上运行特定的模型架构,然后把训练数据集输入给架构,再通过复杂的计算和多次迭代,最后得到一套想要的权重,而这套权重就是训练后的结果,也叫预训练模型。预训练模型在经过部署之后,以及在得到深度学习框架的支持之下,根据给定的输入内容得到对应的输出结果,这一套流程就是推理过程。
但是需要说的是,在大模型训练和推理过程中,往往所需要的算力和资源的差异很大。在训练过程中,需要很多次的迭代计算,且需要具备海量 GPU 算力做支持,这样才能在合理的时间范围内完成一次完整的训练过程。另外,在推理过程中,需要的算力资源却相对较小,因为推理的时候在消费型 GPU 以及普通的 GPU 上就可以完成一次一般类型的推理。
根据目前情况来看,市面上绝大多数开源大模型开放出来的只是一套权重,也就是预训练模型,如果开发者想要复现该开源大模型的训练过程,需要通过优化数据集、方法等训练出一个更优质的模型,而且需要数据集、训练过程和源代码,但是是大部分开源大模型在开源的时候并未提供上面所需要的这些内容,就算开发者掌握算力也无法复现。拿市面上这些开源大模型类比传统软件,那么这些大模型更像是一个开放了的二进制包(如.exe 文件),只是闭源、免费开放使用的,它其实是一个'免费软件'而不是一个'开源软件'。


