赞
踩
开源和闭源,两种截然不同的开发模式,对于大模型的发展有着重要影响。开源让技术共享,吸引了众多人才加入,推动了大模的创新。而闭源则保护了商业利益和技术优势,为大模型的商业应用提供了更好的保障。
在回答“大模型的未来会走向哪一边”之前,本文章会梳理开源、闭源、大模型等基本概念,并结合现实生活中的具体事例,并帮你把抽象的语言与概念具像化。最后,我将分享自己的看法。
目录
开源的全称是“开放源代码”英文是Open Source。开源软件是指那些源代码对公众开放的软件,任何人都可以查看、使用、修改和分发其源代码。
当提到开源软件时,有很多例子,以下是一些常见和广泛使用的开源软件:
1. Linux 操作系统: Linux 是一个开源的类 Unix 操作系统内核,许多不同的 Linux 发行版(如Ubuntu、Fedora、Debian)建立在这个内核之上。Linux 提供了一个稳定、可靠、自由的操作系统选择。
在我的电脑macOS中有一个终端(Terminal)应用,你可以在这里使用命令行界面。macOS 的终端支持基于 Unix 的命令,这些命令和 Linux 系统中的命令很相似。你可以使用终端执行一些系统管理任务、安装软件包等,这与在 Linux 中使用命令行非常相似。
2. Apache HTTP 服务器: Apache 是一个开源的用于发布网站的 HTTP 服务器软件。它在全球范围内广泛用于搭建和管理网站。
3. Mozilla Firefox 和 Mozilla Thunderbird: Firefox 是一个开源的网络浏览器,Thunderbird 是一个开源的电子邮件客户端。它们都是由 Mozilla Foundation 开发的,旨在提供开源、自由的网络体验。
4. Python 编程语言: Python 是一种高级编程语言,以其简洁易读的语法而著称。它被广泛用于 Web 开发、数据科学、人工智能等领域。
Python 生态系统中有许多开源库,这些库提供了各种功能,从数据处理到机器学习,再到网络开发。以下是一些常用的 Python 开源库:
NumPy: 提供了用于处理大型多维数组和矩阵的功能,是进行科学计算的基础库。
Pandas: 用于数据分析和处理的库,提供了强大的数据结构,如DataFrame,以及灵活的数据操作和分析工具。
Matplotlib: 用于创建静态、交互式和动态图表的绘图库,适用于数据可视化。
Seaborn: 基于 Matplotlib 的统计数据可视化库,简化了创建各种统计图表的过程。
Scikit-learn: 用于机器学习和数据挖掘的库,提供了各种算法和工具,包括分类、回归、聚类等。
TensorFlow 和 PyTorch: 两个流行的深度学习框架,用于搭建和训练神经网络。
Django 和 Flask: 用于构建 Web 应用程序的 Web 框架。Django 是一个全功能的框架,而 Flask 更轻量级,适用于小型项目和快速开发。
Requests: 用于进行 HTTP 请求的库,使得与 Web 服务进行通信变得简单。
Beautiful Soup: 用于从 HTML 或 XML 中提取信息的库,常用于网页爬虫和数据抽取。
SQLAlchemy: SQL 工具和对象关系映射(ORM)库,用于简化数据库操作。
Celery: 分布式任务队列,用于处理异步任务和定时任务。
Flask RESTful 和 Django REST framework: 用于构建 RESTful API 的库,简化了 API 的开发过程。
Pygame: 用于创建 2D 游戏的库,适用于游戏开发和图形学初学者。
NLTK 和 SpaCy: 用于自然语言处理(NLP)的库,提供了文本处理、分析和语言模型的功能。
这只是 Python 生态系统中众多开源库的冰山一角。根据具体的应用领域,你可能会发现其他更专业化的库,满足你的特定需求。
5. Git 版本控制系统: Git 是一个分布式版本控制系统,用于跟踪项目代码的变化。它是开源的,被广泛用于软件开发中,例如 GitHub(基于云的开源社区) 和 GitLab(自托管)。
6. Android 操作系统: Android 是一个开源的移动操作系统,主要用于智能手机和平板电脑。它是由Google 领导的开放手机联盟(Open Handset Alliance)开发的。
7. MySQL 数据库管理系统: MySQL 是一个开源的关系型数据库管理系统,用于存储和检索数据。它广泛用于 Web 应用程序和其他应用中。
开源还涉及到一种开放和协作的文化。开源的基本理念是通过合作和共享促进软件的发展。开源软件的开发模型鼓励社区参与,任何人都可以贡献代码、报告问题、提出建议等。这种合作方式通常有助于提高软件的质量、安全性和创新性。
“闭源”(只使用不修改) —— 软件不开放源代码,用户只能对产品有使用的权利,没有修改的权利。比如微信、WPS.
开源的概念起源于计算机科学领域,最早的开源项目之一是自由软件基金会(Free Software Foundation)成立的 GNU 项目。GNU 项目的目标是创建一个自由的、类Unix的操作系统。这个项目始于1983年,由理查德·斯托曼(Richard Stallman)发起,他提出了自由软件的理念,强调用户有权利查看、修改和分享软件的源代码。
1991 年,Linus Torvalds公开发布了一个类 UNIX 操作系统内核—— Linux。同时采用了GPL 许可证版权声明。2008 年,GitHub 网站上线了,为开源项目免费提供 Git 存储。
在2008~2009年前后,中国正式参与国际开源项目,中国开发者提交的代码被Linux基金会接受,正式成为了开源资源的贡献者。
2010年代: 在这一时期,中国的开源社区经历了快速的发展。国内一些知名的科技公司,如华为、阿里巴巴、腾讯等,积极参与到国际开源社区中,并且开始在自己的项目中采用开源模式。一些本土的开源项目也逐渐崭露头角。
开源软件也需要有对应的平台载体和规则规范,来满足开发者交流、提交代码、开源项目发展、获取报酬的需求。这几类需求都有对应的平台提供服务。
(1)开源社区
又称开源平台,开发者在平台中提交开源项目、开源代码。并且可以在社区中与其他开发者进行协同开发,或者进行交流的平台。比较知名的开源社区有GitHub、开源中国等。
(2)开源许可证
开源软件使用者,使用开源代码时必须遵守的规则。每种协议对使用者都有不同的约束和要求
常见的协议有BSD、GPL、LGPL、OSL等。
维护者
维护者:也称之为“运营者”,是开源项目的核心成员。维护者主要工作有两个方向:
1. 审核代码并提交,保证开源项目的代码质量;
2. 面向更多的开发者,宣传自己的项目,并且为新加入的开发者提供支持和帮助,让开源项目健康发展。
贡献者
提出issue或PR,或者将其他的PR合并进主干
只要为项目做出了有用的价值都算是“贡献者”
使用者
就是开源项目的“最终用户”。在使用的过程中,使用者会对开源项目提出issue、开发建议以及反馈遇到的BUG等相关问题。
开源:
1. 优势:
- 创新和共享: 开源模式鼓励创新和技术共享,吸引了全球范围内的开发者和研究人员参与,推动了大模型的不断创新。
- 透明度与安全性: 开源软件的透明度高,任何人都可以查看和审查源代码,确保了系统的安全性和可靠性。
- 社区支持与效率: 开源项目通常拥有庞大的社区支持,问题能够迅速得到反馈和解决。
2. 劣势:
- 商业竞争压力: 在开源模式下,商业化的难度可能增加,因为一些核心技术可能会被竞争对手使用。
- 商业模式挑战: 开源项目通常面临如何在商业上持续盈利的挑战,因为产品本身对于大部分用户是免费的。
闭源:
1. 优势:
- 商业利益保护: 闭源模式能够更好地保护商业利益,防止竞争对手直接复制或使用核心技术。
- 掌控技术优势: 公司能够在闭源环境下保持对技术的更大掌控,有更多自主创新的空间。
- 商业模式清晰: 闭源模式通常更容易构建和维持商业模式,因为公司可以控制访问和使用自己的产品。
2. 劣势:
- 效率低、创新受限: 闭源模式可能受到相对封闭的开发环境的限制,创新可能受到一定的局限。
- 缺少社区支持: 闭源项目通常无法获得像开源项目那样庞大的社区支持,解决问题和改进可能相对缓慢。
- 开源: 开源项目通常以服务和支持为基础进行盈利。公司可能提供定制化的支持、培训、咨询服务,并建立付费的企业版或高级版(Github)。另外,一些公司通过提供云服务、托管和支持来获取收入。
- 闭源: 闭源公司通常依赖软件许可证销售、订阅服务或按用户数收费等传统盈利模式。他们可以更直接地从软件的销售和许可中获取收入。
- 开源: 开源项目通常在市场上拥有更广泛的用户基础,因为它们是免费的,并且受到社区的积极参与和支持。然而,市场竞争也更加激烈,因为其他公司可以利用相同的开源项目提供类似的产品或服务。
- 闭源: 闭源公司可能在市场上拥有一定的独特性,因为他们可以通过保护核心技术和功能,建立起一定的市场差异化。然而,他们也需要面对更加严格的竞争,尤其是来自同行业其他闭源公司的竞争。(钉钉/腾讯会议/Zoom,你可以理解为竞品。)
- 开源: 开源项目通常能够建立更加强大的用户生态系统,吸引来自全球的开发者和用户。社区的参与促进了更广泛的创新,用户对产品的反馈和需求也更加直接。
- 闭源: 闭源公司在建立用户生态方面可能受到一定的局限,因为用户对于产品的定制和修改受到了限制。然而,闭源公司可以更直接地掌控用户体验,并提供更一致的支持和服务。
“大模型”指的是深度学习领域中的大型神经网络模型。这些模型通常具有数百万到数十亿的参数,通过大量的数据进行训练,用于解决复杂的任务,如自然语言处理、计算机视觉、语音识别等。其中,最显著的例子就是Chatgpt.
特点:
越来越大的模型规模: 大型神经网络模型的规模不断扩大。从 GPT-3、BERT 到更大规模的模型,参数数量已经达到数十亿甚至数百亿。这些大型模型在自然语言处理、计算机视觉等任务上展现出卓越的性能。
预训练模型的盛行: 预训练模型成为主流。许多大型模型都采用了预训练的方法,先在大规模数据上进行训练,然后在特定任务上进行微调。这种方法使得模型更加通用,适用于多个领域。
多模态和跨模态的研究: 大模型逐渐开始涉足多模态(包括图像、文本、语音等多种数据类型)和跨模态(同时处理多种数据类型)研究。这种趋势拓展了大模型的应用领域,使其能够更全面地理解和生成信息。
领域特定大模型的兴起: 针对特定领域的大型模型逐渐崭露头角,例如在医疗、法律、金融等专业领域的应用。这些模型通过在特定领域的数据上进行训练,提供更有针对性的解决方案。
国内在计算机发展方面可能相对年轻,虽然近年来在人工智能和大模型领域的发展迅猛,但就文心一言和GPT的比较中,还有很大差距。在大模型洪流中,社会可能面临更多机会和挑战。原因复杂,包括但不限于内外有壁、计算机教育欠佳、合作较少等。未来会采取将开源和闭源相结合的混合模式。这样的混合模式可以在保护核心技术的同时,利用开源的优势吸引更多的开发者和用户。但具体发展状况仍受多种因素影响。
对于程序员自己:
在时代的浪花面前,个人的生命仿佛不值一提。但我想说,你必须认清当前高压的环境,并评估个人当前的能力和未来的潜在天花板。由此,你才有生活的希望。AI很厉害也很可怕,但你应该包容看待。你可以不断学习新的知识,训练AI为自己所用。一旦运用高效率的方法,你将节约不必要浪费的时间以及自己的精力,未来会实现迅速地飞跃。
参考文献:https://zhuanlan.zhihu.com/p/564758405
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。