当前位置: 首页 > news >正文

开源还是封闭?人工智能的两难选择

这篇文章于 2024 年 7 月 29 日首次出现在 The New Stack 上。人工智能正处于软件行业的完美风暴中,现在马克·扎克伯格 (Mark Zuckerberg) 正在呼吁开源 AI。

关于如何控制 AI 的三个强大观点正在发生碰撞:

1 . 所有 AI 都应该是开源的,以实现共享和透明。

2 . 保持 AI 闭源,并允许大型科技公司控制它。

3 . 制定 AI 使用法规。

有几个事实使这场辩论变得棘手。首先,如果你有模型的源代码,你对模型的行为方式完全一无所知。AI 的开放性需要的远不止提供源代码。其次,AI 有很多不同的风格,可用于解决广泛的问题。从用于欺诈检测和定向广告的传统 AI 到用于创建聊天机器人的生成式 AI,这些聊天机器人从表面上产生类似人类的结果,使我们越来越接近人工生成智能 (AGI) 的最终(和可怕)目标。最后,上面列出的控制 AI 的想法在改进软件方面都有良好的记录。

在本文中,我将讨论:

  • 开源的真正本质以及为什么该行业必须为 AI 模型重新定义它。

  • 理想主义者的常见论点和逻辑缺陷,他们高度关注单一用例。

  • 创新者的权利和公众的权利。

  • 关于在正确的模型上使用适当控件的想法。

了解不同的观点

在深入研究之前,让我们更详细地讨论上面列出的不同观点。

观点 #1 – 所有 AI 都应该是开源的,以实现共享和透明: 这来自于 AI 对透明度的推动。 开源是共享和改进软件的一种行之有效的方法。当用于传统软件时,它提供完全透明。(在本文中,我将使用术语 conventional software 来指代与 AI 无关的软件。例如,操作系统、服务、可重用库或完整应用程序。开源软件推动了软件行业的突飞猛进。

观点 #2 – 保持 AI 闭源并允许大型科技公司控制它: 闭源或专有软件是指发明可以保密,远离竞争对手,以实现经济利益最大化的想法。对于开源理想主义者来说,这听起来完全是邪恶的;然而,它更像是一种哲学选择,而不是存在于善与恶的光谱上的选择。大多数软件都是专有的,这本身并不是坏事 - 它是竞争和健康生态系统的基础。选择闭源道路是任何创造新事物的创新者的基本权利。问题变成了,如果你在没有透明度的情况下运营,那么负责任的 AI 有什么保证呢?

观点 #3 – 制定 AI 使用法规: 这来自推动监管的立法者和民选官员。基本思想是,如果公共职能或技术如此强大,以至于不良行为者或不负责任的管理可能会伤害公众,那么应该任命一个政府机构来制定控制措施并执行这些控制措施。有一种观点认为,人工智能领域的现任和现任领导者也希望进行监管,但原因不那么纯粹——他们想冻结由他们主导的竞争环境。我们将主要关注公共产品领域。

开源的真正本质

在生成式 AI 出现之前,在数据中心运行的大多数软件都是传统软件。如果您有传统软件的源代码,则可以准确确定它的作用。精通适当编程语言的工程师可以查看代码并确定其逻辑。您甚至可以修改它并更改其行为。开源(或开源代码)是另一种说法 - 我将提供确定行为和改变行为所需的一切。简而言之,开源软件的真正本质是提供了解软件行为并对其进行更改所需的一切。现在,使用 AI 模型,如果你有模型的源代码,你对模型的行为方式完全一无所知。要使模型完全开放,您需要训练数据、模型的源代码、训练期间使用的超参数,当然还需要训练后的模型本身,它由存储模型知识的数十亿(很快是数万亿)参数组成,也称为参数内存。现在,一些组织只提供模型,将其他所有内容留给自己,并声称该模型是“开源的”。这是一种被称为 “公开清洗” 的做法,通常被开放和闭源社区视为不诚实。我希望看到一个新术语用于部分共享的 AI 模型。也许是 “partially open model” 或 “model from an open washing company”。当涉及到完全共享的模型时,还有最后一个问题。假设一个组织想要做正确的事情并分享有关模型的所有内容 - 训练数据、源代码、超参数和训练的模型。好吧,除非您对其进行广泛测试,否则您仍然无法确定它的具体行为。确定行为的参数内存不是人类可读的。同样,该行业需要一个不同的术语来描述完全开放的模型。与“开源”不同的术语,“开源”只应用于非 AI 软件,因为模型的源代码无助于确定模型的行为。也许是“开放模式”。

常见参数

让我们看看你在互联网上找到的一些常见论点,这些论点只支持使用前面描述的其中一种观点。这些人是他们观点的热情捍卫者,但这种热情可能会蒙蔽判断力。

论点: (封闭的 AI 支持者声称,大型科技公司有办法防范潜在的危险和滥用。因此,AI 应该保持私有,远离开源社区。

反驳: 大型科技公司确实有办法防范潜在的滥用行为,但这并不意味着他们会明智地这样做,甚至根本不这样做。此外,这不是他们的主要目标。他们的主要目标是为股东赚钱 - 这永远是优先的。

论点: 那些认为 AI 可能会对人类构成威胁的人喜欢问:“你会开源曼哈顿计划吗?

反驳: 这显然是治理的论点。然而,这是一个不公平和不正确的类比。曼哈顿计划的目的是在战时通过使用放射性材料产生核聚变来制造炸弹。核聚变不是一种可以应用于不同任务的通用技术。你可以制造炸弹,也可以发电——就是这样。成分和结果对公众来说非常危险,因此应监管所有方面。AI 则大不相同。如上所述,它有不同的口味和不同的风险。

论点: 开源 AI 的支持者表示,开源促进了科学的共享,提供了透明度,并且是防止少数人垄断强大技术的一种手段。

反驳: 这在很大程度上是正确的,但并不完全正确。开源确实提供共享。对于 AI 模型,它只会提供一些透明度。最后,“开放模式”是否会阻止少数人垄断他们的权力,还有待商榷。要大规模运行像 ChatGPT 这样的模型,您需要的计算能力只有少数公司能够获得。

多数人的需求超过了少数人的需求

在《星际迷航 II:可汗之怒》中,斯波克死于辐射中毒。斯波克意识到必须修理飞船的主引擎以方便逃生,但机舱被致命的辐射淹没。尽管存在危险,斯波克还是进入了充满辐射的房间进行必要的维修。他成功地恢复了曲速驱动器,使企业号能够到达安全距离。不幸的是,瓦肯人不能免疫辐射。他对柯克船长的临终遗言解释了他行动背后的逻辑,“许多人的需求超过了少数人或一个人的需求。这是完全合理的逻辑,它必须用于控制 AI。有些型号会对公众构成风险。对于这些模式,公众的需求超过了创新者的权利。

所有 AI 都应该开源吗?

我们现在准备将所有内容联系在一起并回答本文标题的问题。首先,让我们回顾一下到目前为止建立的公理:

  • 开源应该仍然是一种选择。

  • 开放模型不如开源的非 AI 软件透明。

  • Close Source 是创新者的权利。

  • 无法保证大型科技公司会正确控制他们的 AI。

  • 公众的需求必须优先于所有其他需求。

上面的 5 个项目符号代表了我试图阐明的有关开源、闭源和法规的所有内容。如果你相信它们是真的,那么“所有 AI 都应该开源吗”这个问题的答案是否定的,因为它不会控制 AI,闭源也不会。此外,在一个公平的世界中,开源和开放模型应该仍然是一种选择,而关闭源代码应该仍然是一种权利。我们可以更进一步,讨论整个行业可以采取哪些行动来有效控制 AI:

  • 确定对公众构成风险的模型类型。由于控制信息(聊天机器人)或危险资源(自动驾驶汽车)而具有高风险的模型应该受到监管。

  • 应鼓励组织将其模型作为完全开放的模型共享。开源社区需要加紧行动,防止或标记仅部分共享的模型。开源社区还应该将可用于对模型进行评级的测试放在一起。

  • 如果封闭模型不会对公众构成风险,则仍应允许使用。大型科技公司应该加紧开发自己的一套控制措施和测试,并为其提供资金和共享。也许这是大型科技公司与开源社区密切合作解决常见问题的机会。

相关文章:

开源还是封闭?人工智能的两难选择

这篇文章于 2024 年 7 月 29 日首次出现在 The New Stack 上。人工智能正处于软件行业的完美风暴中,现在马克扎克伯格 (Mark Zuckerberg) 正在呼吁开源 AI。 关于如何控制 AI 的三个强大观点正在发生碰撞: 1 . 所有 AI 都应该是开…...

Prometheus 服务监控

官网:https://prometheus.io Prometheus 是什么 Prometheus 是一个开源的系统监控和报警工具,专注于记录和存储时间序列数据(time-series data)。它最初由 SoundCloud 开发,并已成为 CNCF(云原生计算基金会…...

建模杂谈系列252 规则的串行改并行

说明 提到规则,还是需要看一眼RETE算法: Rete算法是一种用于高效处理基于规则的系统中的模式匹配问题的算法,广泛应用于专家系统、推理引擎和生产系统。它的设计目的是在大量规则和数据的组合中快速找到满足特定规则条件的模式。 Rete算法…...

0.ffmpeg面向对象oopc

因为查rtsp相关问题,接触了下ffmpeg源码,发现它和linux内核一样,虽然都是c写的,但是都是面向对象的思想,c的面向对象称之为oopc。 这让我想起来一件好玩的事,有些搞linux内核驱动的只会c的开发人员不知道l…...

KDD2024参会笔记-Day1

知乎想法:链接 听的第一场汇报:RAG Meeting LLMs 综述论文:https://arxiv.org/pdf/2405.06211 PPT:https://advanced-recommender-systems.github.io/RAG-Meets-LLMs/2024-KDD-RAG-Meets-LLM-tutorial-Part1.pdf 检索&#xff1…...

Java操作Elasticsearch的实用指南

Java操作Elasticsearch的实用指南 一、创建索引二、增删改查 一、创建索引 在ElasticSearch中索引相当于mysql中的表,mapping相当于表结构,所以第一步我们要先创建索引。 假设我们有一张文章表的数据需要同步到ElasticSearch,首先需要根据数据库表创建…...

数据库系统 第42节 数据库索引简介

数据库索引是数据库表中一个或多个列的数据结构,用于加快数据检索速度。除了基础的B-Tree索引,其他类型的索引针对特定的数据类型和查询模式提供了优化。以下是几种不同类型的索引及其使用场景的详细说明和示例代码。 1. 位图索引 (Bitmap Index) 位图…...

C++11 --- 智能指针

序言 在使用 C / C 进行编程时,许多场景都需要我们在堆上申请空间,堆内存的申请和释放都需要我们自己进行手动管理。这就存在容易造成堆内存泄露(忘记释放),二次释放,程序发生异常时内存泄露等问题&#xf…...

C#顺序万年历自写的求余函数与周位移算法

static int 返回月的天数(int 年, int 月){return (月 2 ?(((年 % 4 0 && 年 % 100 > 0) || 年 % 400 0) ? 29 : 28) :(((月 < 7 && 月 % 2 > 0) || (月 > 7 && 月 % 2 0)) ? 31 : 30));}static int 返回年总天数(int 年, int 标 …...

【Java并发编程一】八千字详解多线程

目录 多线程基础 1.线程和进程 线程是什么&#xff1f; 为啥要有线程&#xff1f; 进程和线程的区别&#xff1f; Java 的线程 和 操作系统线程 的关系 使用jconsole观察线程 2.创建线程的多种方式 3.Thread类及其常见方法 Thread类的常见构造方法 Thread类的常见属性…...

CentOS 8FTP服务器

FTP&#xff08;文件传输协议&#xff09;是一种客户端-服务器网络协议&#xff0c;允许用户在远程计算机之间传输文件。这里有很多可用于Linux的开源FTP服务软件&#xff0c;最流行最常用的FTP服务软件有 PureFTPd, ProFTPD, 和 vsftpd。在本教程中&#xff0c;我们将在CentOS…...

C++ | Leetcode C++题解之第385题迷你语法分析器

题目&#xff1a; 题解&#xff1a; class Solution { public:NestedInteger deserialize(string s) {if (s[0] ! [) {return NestedInteger(stoi(s));}stack<NestedInteger> st;int num 0;bool negative false;for (int i 0; i < s.size(); i) {char c s[i];if …...

【软件设计师真题】第一大题---数据流图设计

解答数据流图的题目关键在于细心。 考试时一定要仔细阅读题目说明和给出的流程图。另外&#xff0c;解题时要懂得将说明和流程图进行对照&#xff0c;将父图和子图进行对照&#xff0c;切忌按照常识来猜测。同时应按照一定顺序考虑问题&#xff0c;以防遗漏&#xff0c;比如可以…...

系统架构的发展历程之模块化与组件化

模块化开发方法 模块化开发方法是指把一个待开发的软件分解成若干个小的而且简单的部分&#xff0c;采用对复杂事物分而治之的经典原则。模块化开发方法涉及的主要问题是模块设计的规则&#xff0c;即系统如何分解成模块。而每一模块都可独立开发与测试&#xff0c;最后再组装…...

基因组学中的深度学习

----/ START /---- 基因组学其实是一门将数据驱动作为主要研究手段的学科&#xff0c;机器学习方法和统计学方法在基因组学中的应用一直都比较广泛。 不过现在多组学数据进一步激增——这个从目前逐渐增多的各类大规模人群基因组项目上可以看出来&#xff0c;这其实带来了新的挑…...

解决老师询问最高分数问题的编程方案

解决老师询问最高分数问题的编程方案 问题分析数据结构选择:线段树线段树的基本操作伪代码伪代码:构建线段树伪代码:更新操作伪代码:查询操作C语言实现代码详细解释在日常教学中,老师经常需要查询某一群学生中的最高分数,并有时会更新某位同学的成绩。为了实现这一功能,…...

com.baomidou.mybatisplus.annotation.DbType 无法引入

com.baomidou.mybatisplus.annotation.DbType 无法引入爆红 解决 解决 ❤️ 3.4.1 是mybatis-plus版本&#xff0c;根据实际的配置→版本一致 <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-annotation</artifactId>&…...

从零开始学习JVM(七)- StringTable字符串常量池

1 概述 String应该是Java使用最多的类吧&#xff0c;很少有Java程序没有使用到String的。在Java中创建对象是一件挺耗费性能的事&#xff0c;而且我们又经常使用相同的String对象&#xff0c;那么创建这些相同的对象不是白白浪费性能吗。所以就有了StringTable这一特殊的存在&…...

数据库课程设计mysql

进行 MySQL 数据库课程设计通常包括以下几个步骤&#xff0c;从需求分析到数据库设计和实现。以下是一个常见的流程及要点&#xff1a; 1. 需求分析 首先&#xff0c;明确系统的功能需求。这包括用户需求、业务流程、功能模块等。你需要与相关人员&#xff08;比如老师、同学…...

AI学习指南深度学习篇-带动量的随机梯度下降法的基本原理

AI学习指南深度学习篇——带动量的随机梯度下降法的基本原理 引言 在深度学习中&#xff0c;优化算法被广泛应用于训练神经网络模型。随机梯度下降法&#xff08;SGD&#xff09;是最常用的优化算法之一&#xff0c;但单独使用SGD在收敛速度和稳定性方面存在一些问题。为了应…...

TDengine 快速体验(Docker 镜像方式)

简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能&#xff0c;本节首先介绍如何通过 Docker 快速体验 TDengine&#xff0c;然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker&#xff0c;请使用 安装包的方式快…...

Appium+python自动化(十六)- ADB命令

简介 Android 调试桥(adb)是多种用途的工具&#xff0c;该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具&#xff0c;其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利&#xff0c;如安装和调试…...

【Linux】C语言执行shell指令

在C语言中执行Shell指令 在C语言中&#xff0c;有几种方法可以执行Shell指令&#xff1a; 1. 使用system()函数 这是最简单的方法&#xff0c;包含在stdlib.h头文件中&#xff1a; #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...

Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器

第一章 引言&#xff1a;语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域&#xff0c;文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量&#xff0c;支撑着搜索引擎、推荐系统、…...

ffmpeg(四):滤镜命令

FFmpeg 的滤镜命令是用于音视频处理中的强大工具&#xff0c;可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下&#xff1a; ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜&#xff1a; ffmpeg…...

相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...

Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信

文章目录 Linux C语言网络编程详细入门教程&#xff1a;如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket&#xff08;服务端和客户端都要&#xff09;2. 绑定本地地址和端口&#x…...

嵌入式学习笔记DAY33(网络编程——TCP)

一、网络架构 C/S &#xff08;client/server 客户端/服务器&#xff09;&#xff1a;由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序&#xff0c;负责提供用户界面和交互逻辑 &#xff0c;接收用户输入&#xff0c;向服务器发送请求&#xff0c;并展示服务…...

在树莓派上添加音频输入设备的几种方法

在树莓派上添加音频输入设备可以通过以下步骤完成&#xff0c;具体方法取决于设备类型&#xff08;如USB麦克风、3.5mm接口麦克风或HDMI音频输入&#xff09;。以下是详细指南&#xff1a; 1. 连接音频输入设备 USB麦克风/声卡&#xff1a;直接插入树莓派的USB接口。3.5mm麦克…...

【堆垛策略】设计方法

堆垛策略的设计是积木堆叠系统的核心&#xff0c;直接影响堆叠的稳定性、效率和容错能力。以下是分层次的堆垛策略设计方法&#xff0c;涵盖基础规则、优化算法和容错机制&#xff1a; 1. 基础堆垛规则 (1) 物理稳定性优先 重心原则&#xff1a; 大尺寸/重量积木在下&#xf…...