放心,GPT-3不会“杀死”编程

来源:towardsdatascience.com

作者:Alberto Romero

译者:朱琪珊

策划:刘燕

本文由 Alberto Romero 发表在 towardsdatascience.com,经原作者授权由 InfoQ 中文站翻译并分享

OpenAI 于 2020 年 7 月发布了 GPT-3 的 beta API。此后不久,开发人员开始试用该系统并将其“炒作”得热火朝天,由此人们开始宣称 GPT-3 具有诸多强大的功能。该系统被称为是“有情感”的,能够“推理和理解”,甚至可以称作“通用智能”(general intelligence)。

Frederik Bussler 写了一篇在Towards Data Science上风靡一时的文章,他在讨论中提出了一个重要问题:GPT-3 能否让我们所知的编程技术凋亡?近几年来,我们已经看到了不少迈向自动化编程或至少减少人工参与的编程技术的趋势。

Bussler 提到了 No-code 和 AutoML 是扼杀未来编程岗位的力量。No-code 是一类设计工具(例如 WordPress),它让用户无需编程就能构建复杂的应用程序。AutoML 是一种基于人工智能的端到端解决方案,用于解决机器学习问题。这两种方法都能让非程序员使用之前他们无力掌握的技术。

GPT-3 遵循了同样的道路。它能根据英文指令生成代码,这是非程序员的终极梦想。我们有理由关注新一代人工智能,但更不应该去惊慌失措。让我们看看 GPT-3 可以做什么,以及为什么我们仍然可以和 AI 程序员做朋友。

GPT-3 的编程能力

GPT-3 最令人惊讶的用例之一是它能够按照自然语言提示进行编程(提示是我们输入系统的文本块)。Sharif Shameen 创建了 debuild.co,这是一个基于 GPT-3 的代码生成器。他在 这个例子 中展示了该系统如何能够从一组简单的英语指令中构建一个简易的 HTML/CSS/JSX 程序。Jordan Singer 创建了 Designer,一个可以替用户进行设计的 Figma 插件。Amjad Masad 创建了 Replit,这是一个可以用英语解释代码甚至可以告诉使用者如何改进代码的应用程序。

GPT-3 是如何根据自然语言的输入编写代码的?原因在于它的多任务元学习能力。它可以在仅仅看过几个例子后,学习完成它没有被训练过的文本任务。Sharif Shameen 和其公司调整了 GPT-3 来学习这些任务。元学习是一种令人惊艳的能力,但我们往往高估了人工智能获得这些人类具备的技能的能力,GPT-3 也不例外。它可以编程,但不能写出所有类型的代码。以下是三个重要的限制:

上下文窗口过小

GPT-3 的记忆很短,它只能记住过去很小的一个文本窗口。你可以给它展示几百个字,但也仅此而已。你可以提示它学习编程,但你不能提示它学习写诗。而且你也不可能让它编写一些行数很多的大程序。尽管如此,GPT-3 在它的上下文窗口内的能力还是很令人惊艳的。

缺少责任感

GPT-3 可以做很多事,但它不能评估它的答案是对是错——而它也不在乎对错。如果你在研究一个你也不知道答案的问题,有时使用 GPT-3 就和瞎猜一样。因此,OpenAI 建议不要将 GPT-3 用于“高风险类别“的系统。GPT-3 并不值得信赖。

对不准确的提示同样敏感

GPT-3 的学习能力和我们给出提示的能力成正比。技术博主 Gwern Branwen 证明了良好提示的重要性,他也反对了 GPT-3 的能力不受限于采样的这一观点。(每次我们提示 GPT-3 并获得结果,我们都在创建一个样本。)如果我们不知道如何和 GPT-3 交谈,它就不会展示真正的知识,并且会犯错误。

“采样可以证明知识的存在,但不能证明不存在。如果提示写得不好,GPT-3 可能会“失败”。[...] 问题不在于一个给定的提示是否有效,而在于是否所有提示都有效。“—— Gwern Branwen

GPT-3 的不确定性

当我们提示 GPT-3 创建代码时,我们其实正在编写 软件 3.0。Gwern 说,“提示”应该被理解为一种不同于传统的编码或神经网络的新的编程范式。

例如,当我们用 Python 编写程序时,我们使用的是一种形式语言。有很多方法可以实现相同的解决方案,但每种方法都必须严格遵循该语言的语法规则。这其中没有不确定性。你编写一个程序,计算机以特定的方式运行,没有任何模糊的解释。

提示 GPT-3 编写代码是完全不同的。英语——或者任何其他口语——不是一种形式语言;它是一种自然语言。自然语言不是设计出来的。它们与我们一起进化,并且充满了歧义。大多数时候,实际意义是必须通过上下文的信息一起表达的。书面的自然语言失去了部分意义,因此可以用不同的方式来解释。这会产生不确定性。而 GPT-3 模糊的内部工作原理所带来的不确定性又和这种自然语言的不确定性叠加在了一起。我们无法访问黑匣子,更不用说理解它了。

所以,当我们将一个英语句子输入到 GPT-3,它会输出一些东西,这其中存在着一连串的不确定性,可能会恰好导致我们想要的和我们得到的之间出现灾难性的差异。从这个意义上说,提示 GPT-3 和编程不一样。它可以在某些情况下使用,但短期内不可能取代所有的程序。这是因为这两种方法的性质决定了它们应该用于解决不同的问题。

人工智能不会完全”杀死“编程

在上文中,我已经反驳了一些关于 GPT-3 对编程的威胁的观点。在下文中,我将话题扩展到关于 AI 的论点。有 3 个充分的理由可以说明为什么程序员不需要害怕人工智能:

有些任务更适合其他范式

当我说提示是一种新的编程范式(软件 3.0)时,其中隐含了其他两个范式:传统编程(软件 1.0)和神经网络(软件 2.0)。几年前,Karpathy 发表了一篇传播度非常广的 文章,该文章捍卫了神经网络应该被构建为一种新形式的软件的观点,并且他认为神经网络比传统编程更适用于某些任务。

在某种程度上我同意他的观点。事实证明,神经网络在处理传统编程一直未能完成的一些任务方面非常成功。特别是,神经网络非常适合视觉和语言。很明显,对于某些问题,直接在程序中编写出我们想要的行为更容易(软件 1.0),但对于其他问题,收集数据作为我们想要重现的行为的示例(软件 2.0)是首选解决方案。

软件 3.0 也一样。提示使得用户能够处理超出以前软件范式能力的任务,但它不适用于其他情况。构建操作系统、办公软件包、数据库或计算数字阶乘的程序,仍将使用传统编码来完成。

其他范式成本更低

深度学习的成本通常令人望而却步。许多公司仍然使用非神经网络机器学习的解决方案,因为数据操作、清理和标记比项目的其余部分的费用更高。

即使更新的技术和技能会变得更快或更精确,经济成本也始终会是一个现实世界的限制。训练 GPT-3 花费了 OpenAI 大约 1200 万美元。有多少公司能负担得起?你会花几百万美元来创建一个为你编写 JSX 的人工智能吗?

即使 API 可供开发人员免费使用,也需要考虑另一个成本,那就是对地球环境的破坏。GPT-3 是如此之复杂,以至于训练它产生的碳足迹与“驾驶汽车前往月球并返回”大致相同。有时更大更复杂的并不是更好的。

今天的人工智能有它的限制

神经网络每年都在变得越来越聪明,但即使是最聪明、最强大的神经网络也有无法处理的任务。GPT-3 在解释书面输入时的不确定性是不可避免的。

无实体的人工智能——也是迄今为止几乎所有的人工智能——无法获得超越文字的含义。我们可以使用上下文来解释我们周围的世界,因为我们和周围的世界有互动。我们生活在这个世界上,这就是我们能理解语言的原因。我们可以将形式与意义联系起来;我们可以将文字与它们传达的主观体验联系起来。

无论神经网络多么强大,它都无法像人类那样掌握语言。正如 Ragnar Fjelland 教授所说,“只要计算机不长大,不属于一种文化,不活跃于世界,它们就永远不会获得类似人类的智能。”,而这种假设不会很快发生。

最后展望

不可否认,像 GPT-3 这样的神经网络是一个重要的里程碑,它将为下一步迈向通用人工智能(AGI)敞开大门。随着每次的新升级,他们将能够处理更复杂的任务。例如,多模态人工智能将会成为新常态(MUM 和 Wu Dao 2.0 是最新的例子)。

然而,对于某些任务,传统的方法和技术是更好的选择。人工智能将会蚕食掉大量以前属于传统编码领域的存在问题的空间,这种情况在每项新技术诞生后都会发生。然而,新技术让旧技术在一切领域都过时的情况是很少发生的。同时提高效率、减少成本和增加可用性不是必然,是一种例外。人工智能将触及每个行业,但它也不能违反上述规律。

原文链接:

https://towardsdatascience.com/gpt-3-or-any-ai-wont-kill-coding-f4cabd3a536b

未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)大脑研究计划,构建互联网(城市)大脑技术和企业图谱,为提升企业,行业与城市的智能水平服务。每日推荐范围未来科技发展趋势的学习型文章。目前线上平台已收藏上千篇精华前沿科技文章和报告。

  如果您对实验室的研究感兴趣,欢迎加入未来智能实验室线上平台。扫描以下二维码或点击本文左下角“阅读原文”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/483906.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

com.sun.jersey.api.client.UniformInterfaceException:returned a response status of 403

这是在同一台电脑上,然后启动两台tomcat进行文件传输时候,会出现的一个异常. 403,是因为tomcat默认禁止上传,在tomcat中的config中的web.xml中进行以下的配置就可以进行文件的上传了. <servlet><servlet-name>default</servlet-name> <servlet-cla…

深度学习环境搭建之Anaconda安装keras

一、确定安装版本号 搭环境遇到一堆坑&#xff0c;总结一点最重要的就是要选择好版本。 这里我们要注意tensorflow与keras的版本对应关系。见下图 二、使用pip进行安装 这里注意首先要激活对应的环境 pip install keras版本号后续有时间再补充安装tensorflow-gpu以及pytorch…

顾险峰: 庞加莱猜测的证明和应用

来源&#xff1a;中国科学院数学与系统科学研究院、数学算法俱乐部庞加莱猜测的证明&#xff0c;在几年前引起世人的广泛关注&#xff0c;更掀起中外数学界一场不小的风波。8月8日&#xff0c;丘成桐先生弟子顾险峰教授在知社讲坛做了题为《庞加莱猜测有用吗&#xff1f;》的精…

题解 【国家集训队2011】数颜色

题面 解析 这题也就是一个带修改的莫队啊啊&#xff01;&#xff01; 所以&#xff0c;我们只需要在普通莫队上加上一维时间即可。 怎么加呢&#xff1f; 只需要记录下每次修改和查询的时间&#xff0c; 在左右端点跳跃的同时&#xff0c;也将时间跳到询问的时间就行了。 具体看…

ImportError: cannot import name ‘moving_averages‘

出现这个报错的大部分原因是tensorflow的版本太低&#xff08;我就是&#xff09;&#xff0c;我使用的是tensorflow-gpu&#xff0c;将版本从1.7升级到1.8就解决了这个问题

大脑是怎样和身体交流的?

来源&#xff1a;脑与心智毕生发展研究中心CLIMB你看到五英寸之外向你飞来的球&#xff0c;尽可能迈着最大的步子冲过去抓住它&#xff1b;你用手指抓住了球&#xff0c;突然听到妈妈叫你的名字&#xff0c;你意识到该吃晚饭了&#xff0c;所以你赶紧回家——这些是怎么发生的呢…

java对List的优雅排序

1、准备排序的数据 List<Student> students new ArrayList<>(); students.add(new Student(1,"z1",25)); students.add(new Student(12,"z2",26)); students.add(new Student(9,"z3",27)); students.add(new Student(4,"z4&qu…

关于c语言的数据类型常量的理解

数据类型 int的简单介绍 数据类型在数据结构中的定义是一组性质相同的值的集合以及定义在这个值集合上的一组操作的总称。 变量是用来存储值的所在处&#xff0c;它们有名字和数据类型。变量的数据类型决定了如何将代表这些值的位存储到计算机的内存中。在声明变量时也可指定它…

module ‘tensorflow‘ has no attribute ‘sparse ‘

非常奇怪的一个报错&#xff0c;在查找资料无果的情况下选择了重装keras&#xff08;应该是版本对应出现了问题&#xff09;&#xff0c;报错解决

前端常用开发工具

编辑器 用于编写代码 VS Code Sublime Atom 浏览器 用于测试和调试代码 Chrome谷歌浏览器 Firefox火狐浏览器 图片工具 用于编辑图像 PhotoShop 版本控制 用于管理服务器文件&#xff0c;支持项目中的团队协作&#xff0c;共享代码与资源&#xff0c;以及避免编辑冲突 Git是现如…

非打印字符

ASCLL码值的使用使c语言中用&#xff0c;使得仅使用整数就可用在计算机上各种字符&#xff08;包括各国的语言文字&#xff0c;符号&#xff09;&#xff0c;可是一些代表行为的ASCLL字符却无法打印出来&#xff08;如&#xff1a;退格、换行、终端响铃之类的&#xff09;。这里…

在运行Loaded runtime CuDNN library: 7103 (compatibility version 7100) but source was compiled with 7003

最后错误代码为134&#xff08;6 signal&#xff09;&#xff08;大概是这样&#xff0c;错误解决了记录一下&#xff0c;错误忘了截图&#xff09; 环境是cuda8.0&#xff0c;cudnn7.05&#xff0c;&#xff08;在Titan上&#xff0c;cuda8.0、tensorflow1.4正好对应cudnn6.0&…

《自然语言处理中的因果推理》综述论文,以色列理工谷歌等13位NLP大牛阐述因果推理NLP的估计、预测、解释和超越...

来源&#xff1a;专知摘要科学研究的一个基本目标是了解因果关系。然而&#xff0c;尽管因果关系在生命和社会科学中发挥着关键作用&#xff0c;但在自然语言处理(NLP)中却没有同等的重要性&#xff0c;后者传统上更重视预测任务。随着因果推理和语言处理融合的跨学科研究的兴起…

指定tensorflow运行的GPU或CPU设备

如果 TensorFlow 指令中兼有 CPU 和 GPU 实现&#xff0c;当该指令分配到设备时&#xff0c;GPU 设备有优先权。 如果你的系统里有多个 GPU, 那么 ID 最小的 GPU 会默认使用。 当我们要指定tensorflow运行的GPU或CPU设备时&#xff0c;可以使用tf.device()命令 首先查看可用…

清华大学刘云浩教授——人工智能打开了潘多拉的盒子吗?

来源&#xff1a;计算思维和人工智能2020年8月的第一周&#xff0c;清华大学暑期学校在荷塘雨课堂上“云开学”。开学典礼上&#xff0c;清华大学软件学院刘云浩教授作了一场主题为《What is the role of AI Tomorrow?——人工智能打开了潘多拉的盒子吗&#xff1f;》的讲座。…

【重点!!!】【堆】215.数组中的第K个最大元素

题目 法1&#xff1a;小根堆 最大的K个元素 > 小根堆&#xff08;类似上窄下宽的梯形&#xff09; 最小的K个元素 > 大根堆&#xff08;类似倒三角形&#xff09; 必须掌握&#xff01;&#xff01;&#xff01; class Solution {public int findKthLargest(int[] nu…

Spring 系列之(1)Spring-framework 调试环境搭建

调试环境&#xff1a; JDK1.8 Gradle IDEA Git 一、开始代码 clone 将 spring-framework 项目 fork 到自己的代码仓&#xff0c;方便自己加注释。下载好 Gradle &#xff0c;用 idea 打开项目&#xff0c;进行初步构建。 参考文档&#xff1a;官方文档 二、预编译 spring-oxm&a…

计算机网络知识归纳

计算机网络 第一章 概述 1.1 计算机网络在信息时代中的作用 互联网的两个重要基本特点&#xff1a;1.连通性、2.共享 “资源”指的是网络中所有的网络软件、硬件、数据和通信等等资源 硬件资源、软件资源、数据资源、信道资源&#xff08;信号传输的媒介&#xff09; “共享…

PyTorch 之 requires_grad,requires_grad_(),grad_fn

x.grad_fn和x.requires_grad为x的属性x.grad_fn&#xff1a;积分方法名&#xff0c;默认为Nonex.requires_grad&#xff1a;是否积分的属性&#xff0c;默认为Falsex.requires_grad_()&#xff1a;设置积分的方法&#xff0c;设置之后requires_grad为True """T…

flutter 获取设备屏幕大小

import dart:ui; var s window.physicalSize;print(s);转载于:https://www.cnblogs.com/pythonClub/p/10567811.html