当前位置: 首页 > 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在收敛速度和稳定性方面存在一些问题。为了应…...

RestClient

什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端&#xff0c;它允许HTTP与Elasticsearch 集群通信&#xff0c;而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级&#xff…...

应用升级/灾备测试时使用guarantee 闪回点迅速回退

1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间&#xff0c; 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点&#xff0c;不需要开启数据库闪回。…...

K8S认证|CKS题库+答案| 11. AppArmor

目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作&#xff1a; 1&#xff09;、切换集群 2&#xff09;、切换节点 3&#xff09;、切换到 apparmor 的目录 4&#xff09;、执行 apparmor 策略模块 5&#xff09;、修改 pod 文件 6&#xff09;、…...

通过Wrangler CLI在worker中创建数据库和表

官方使用文档&#xff1a;Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后&#xff0c;会在本地和远程创建数据库&#xff1a; npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库&#xff1a; 现在&#xff0c;您的Cloudfla…...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件

在选煤厂、化工厂、钢铁厂等过程生产型企业&#xff0c;其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进&#xff0c;需提前预防假检、错检、漏检&#xff0c;推动智慧生产运维系统数据的流动和现场赋能应用。同时&#xff0c;…...

uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖

在前面的练习中&#xff0c;每个页面需要使用ref&#xff0c;onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入&#xff0c;需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案

问题描述&#xff1a;iview使用table 中type: "index",分页之后 &#xff0c;索引还是从1开始&#xff0c;试过绑定后台返回数据的id, 这种方法可行&#xff0c;就是后台返回数据的每个页面id都不完全是按照从1开始的升序&#xff0c;因此百度了下&#xff0c;找到了…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1

每日一言 生活的美好&#xff0c;总是藏在那些你咬牙坚持的日子里。 硬件&#xff1a;OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写&#xff0c;"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...

vue3 定时器-定义全局方法 vue+ts

1.创建ts文件 路径&#xff1a;src/utils/timer.ts 完整代码&#xff1a; import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...

Caliper 配置文件解析:config.yaml

Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...