写点什么

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

  • 2021-09-03
  • 本文字数:3232 字

    阅读完需:约 11 分钟

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

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


GPT-3 和任何人工智能都不会让编程”凋亡“,所以程序员不需要感到焦虑。


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

2021-09-03 14:334425
用户头像
刘燕 InfoQ高级技术编辑

发布了 1112 篇内容, 共 545.7 次阅读, 收获喜欢 1978 次。

关注

评论

发布
暂无评论
发现更多内容

文盘rust--使用 Rust 构建RAG

京东科技开发者

电商数据化运营:阿里巴巴商品详情API返回值的实际应用

技术冰糖葫芦

API 接口 API 文档 API 测试 pinduoduo API

F5携手NetApp加速并简化大语言模型AI部署

科技热闻

10月才是秋招主战场!

王磊

夜莺监控的机器支持挂载到多个业务组了

巴辉特

监控系统 运维监控 IT监控 开源监控

华为云技术专家分享4大举措,助力开发者开启鸿蒙原生应用开发

华为云开发者联盟

HarmonyOS 端云协同 ArkTS 开发者、

新一轮 Web3 游戏季,Final Glory成捕获全新市场红利的入口

大瞿科技

1688跨境代采业务用到的API接口及其使用示例

tbapi

1688代采系统 1688代采接口 1688跨境

新一轮 Web3 游戏季,Final Glory成捕获全新市场红利的入口

加密眼界

红旗携“中国之路” 创汽车工业新篇章

编程猫

火山引擎边缘智能亮相“地瓜机器人开发者大会”,推动端侧大模型应用与落地

火山引擎边缘云

物联网 边缘计算 机器人 智能IoT边缘服务

京东金融APP的鸿蒙之旅:技术、挑战与实践

京东科技开发者

技术解读GaussDB (for MySQL)流控机制

华为云开发者联盟

GaussDB 流控 MySQL 5.7

人工智能的未来

天津汇柏科技有限公司

AI 人工智能

数字化智能工厂的主要功能组成

万界星空科技

数字化 智能工厂 智能制造 万界星空科技mes MES、

《Programming from the Ground Up》阅读笔记:p147-p180

codists

汇编 编程人

线上事故风险解读之技术漏洞

巧手打字通

后端 架构设计 工程能力 线上事故 构架

揭秘动态化跨端框架在鸿蒙系统下的高性能解决方案

京东科技开发者

淘宝商品详情页接口_X-ISGN和WUA算法

tbapi

淘宝商品详情数据接口 淘宝API接口

第七在线7thonline荣耀加冕 斩获“最佳数据洞察平台”与“产业互联网最具发展潜力企业”两项大奖!

第七在线

迎接国庆旅游热潮,火山引擎数据飞轮助力景区数智化升级

字节跳动数据平台

增长 数智化转型 大数据‘’ 数据飞轮

Web 性能优化|了解 HTTP 协议后才能理解的预加载

阿里技术

性能优化 Web HTTP 用户体验 网站性能

构建万物智联生态,“人才”与“资金”不能少

Geek_2d6073

从SQL Server过渡到PostgreSQL:理解模式的差异

EquatorCoco

数据库 sql

揭秘:一键获取京东商品详情的API之旅

代码忍者

API 测试 pinduoduo API

还不知道这个原则的程序员,要小心了

禅道项目管理

程序员 软件测试 代码规范 测试人员 规范优先原则

万界星空科技MES系统在智能制造中的应用

万界星空科技

智能制造 mes 万界星空科技mes 制造业工厂

35+IT技术同学的未来职场选择

老张

认知提升 规划 职业生涯 职场发展

技术实现方案:获取淘宝商品详情API返回值

代码忍者

API 测试 pinduoduo API

传统身份安全的局限性

芯盾时代

身份安全 统一身份认证 零信任模型

放心,GPT-3不会“杀死”编程_AI&大模型_Alberto Romero_InfoQ精选文章