联系方式 Contact

南京天气在线气象科技有限责任公司

地址:北京市海淀区海淀西大街36号9层

电话:010-58995339

手机:18611808504

传真:010-58995339

网址:www.weatheron.cn

搜索 Search
你的位置:首页 > 新闻动态 > 热点新闻

人工智能和编程的终章

 2023-10-12 09:41:21  点击:

转载于 EarthAi 公众号

CSDN 编者按】随着人工智能以及大型语言模型的崛起,人工编程真的来到了终章了吗?作者通过对 ChatGPT 的一些小测试,来检验人工智能是否真的可以取代人工编写代码,最后得出大型语言模型对人工智能以及计算机科学的影响。


作者 | Brian Hayes 译者|Ric Guan
出品 | CSDNIDCSDNnews

今年早些时候,Matt Welsh 宣布编程正在步入终结。他在 ACM Communications 中写道:

我相信 “编写程序” 的传统想法正在走向消亡,事实上,对于除非常专业的应用程序之外的所有应用程序,正如我们所知,大多数软件编程都将被经过训练的人工智能系统所取代。在一些只需要 “简单” 程序的情况下(毕竟,并不是所有东西都需要在 GPU 集群上运行的数千亿个参数的模型),这些程序本身将直接由人工智能生成,而不是手工编码 。

几周后,在一次演讲中,威尔士扩大了他的死亡观察范围。走向坟墓的不仅仅是编程艺术,还有整个计算机科学。所有计算机科学都 “注定要失败” 。(下图是演讲的屏幕截图。)

这些悲伤消息的传递者似乎并没有悲痛欲绝。尽管 Welsh 已经成为一名计算机科学教师和实践者(在哈佛、谷歌、苹果和其他地方),但他似乎渴望继续下一步。“无论如何,写代码很糟糕!” 他宣称。

我自己对后编程未来的前景并不那么乐观。首先,我持怀疑态度。我认为我们还没有跨过机器学会自己解决有趣的计算问题的门槛。我认为我们还没有接近这一点,或者正朝着正确的方向前进。此外,如果事实证明我的观点是错误的,我的冲动不是默许而是抵制。一方面,我不欢迎我们的新人工智能霸主。即使他们被证明是比我更好的程序员,我仍然会继续使用我的代码编辑器和编译器,谢谢。“编程很糟糕?” 对我来说,它长期以来一直是我快乐和启迪的源泉。我发现它也是理解世界的一个有价值的工具。在我能够将一个想法简化为代码之前,我永远不确定我是否理解了它。为了从这种学习经验中受益,我必须实际编写程序,而不仅仅是说一些魔法词并从阿拉丁的人工智能灯中召唤一个精灵。


01

大型语言模型

可编程机器可以编写自己的程序的想法深深植根于计算历史。Charles Babbage 早在 1836 年讨论他的分析机计划时就暗示了这种可能性。当 Fortran 1957 年推出时,它的正式名称是“FORTRAN 自动编码系统”。它的既定目标是让计算机“为自己编码问题并生成与人类编码员一样好的程序(但没有错误)”。

Fortran 并没有消除编程技巧(或错误),但它使过程变得不那么乏味。后来的语言和其他工具带来了进一步的改进。而全自动编程的梦想从未破灭。机器似乎比大多数人更适合编程。计算机有条不紊、受规则约束、挑剔且注重字面意思——所有这些特征(无论正确与否)都与高手程序员联系在一起。

但讽刺的是,现在准备承担编程任务的人工智能系统却奇怪地不像计算机。他们的性格更像Deanna Troi,而不是 Commander Data。逻辑一致性、因果推理和对细节的仔细关注并不是他们的强项。当他们似乎在思考深刻的想法时,他们有不可思议的辉煌时刻,但他们也有可能遭遇惊人的失败——公然、厚颜无耻的理性失误。他们让我想起一句古老的俏皮话:人都会犯错,而真正把事情搞砸则需要计算机。

最新的人工智能系统被称为大语言模型(LLM)。与大多数其他近期人工智能发明一样,它们建立在人工神经网络之上,这是一种受大脑结构启发的多层结构。网络的节点类似于生物神经元,节点之间的连接起着突触的作用,突触是信号从一个神经元传递到另一个神经元的连接点。训练网络可以调整连接的强度或权重。在语言模型中,训练是通过向网络强制输入大量文本来完成的。该过程完成后,连接权重会对训练文本的语言特征的详细统计数据进行编码。在最大的模型中,权重数量为 1000 亿个或更多。

在这种情况下,模型一词可能会产生误导。这个词并不是指比例模型或微型模型,如模型飞机。相反,它指的是预测模型,就像科学中常见的数学模型一样。正如大气模型预测明天的天气一样,语言模型预测句子中的下一个单词。

最著名的大型语言模型是 ChatGPT,它于去年秋天向公众发布,引起了极大的关注。缩写 GPT Gee Pee Tee:我的舌头不断地被这三个押韵的音节绊倒。其他 AI 产品的名字很可爱,比如BartClaudeLlama;我希望我能以同样的精神重命名 GPT。我会把它称为 Geppetto,它与辅音的模式相呼应。GPT 代表 Generative Pre-Trained Transformer (生成式预训练变压器);系统的聊天版本配备了对话式人机界面。ChatGPT OpenAI 开发,该公司成立于 2015 年,旨在将人工智能从少数富有的科技公司的控制中解放出来。OpenAI 成功地完成了这一使命,以至于它已经成为一家富有的科技公司。

ChatGPT 因其用词方式、能说会道、流利的英语和其他语言而既令人钦佩又令人震惊。该聊天机器人可以模仿著名作家、讲笑话、写情书、翻译诗歌、写垃圾邮件、“帮助”学生完成家庭作业,以及编造错误信息以进行政治恶作剧。无论好坏,这些语言能力代表了惊人的技术进步。曾经难以构建一个可理解的句子的计算机突然变成了能说会道的文字大师。GPT 所说的可能是真的,也可能不是,但它几乎总是措辞得体。

ChatGPT 发布后不久,我惊讶地发现它的语言掌握扩展到了编程语言。该模型的训练集似乎不仅包括多种自然语言,还包括来自 GitHub 等公共存储库的大量程序源代码。基于此资源,GPT 能够根据命令编写新程序。我发现这很令人惊讶,因为计算机对它们的输入是如此挑剔和无情。尽管电脑有时存在诸如拼写错误之类的小错误,人类阅读者仍会努力理解一句话。但如果计算机得到的输入,哪怕只有一个逗号或不匹配的括号,它就会呕吐乱码。具有潜在统计或概率性质的语言模型似乎不太可能维持超过几行所需的精度。

我在这件事上又错了。大型语言模型的一项关键创新,即注意力机制,解决了这个问题。当我开始自己使用 ChatGPT 进行实验时,我很快发现它确实可以生成没有粗心语法错误的程序。

但其他问题也随之出现。

02

攀登单词阶梯

当你坐下来与机器聊天时,你立即会面临一个尴尬的问题:“我们该聊什么?” 我正在寻找一个可以公平衡量 ChatGPT 编程能力的主题。我想要一个可以通过计算手段解决的问题,但这不需要做太多算术,而这被认为是大型语言模型的弱点之一。我选择了 Lewis Carroll 150 年前发明的字谜游戏,并由 Donald E. Knuth 20 世纪 90 年代进行了深入分析。

在下面的文字记录中,我这边的每次交换都被标记为 BR;玫瑰花结是 OpenAI 徽标,指定 ChatGPT 的响应。

当我看到这些句子在屏幕上展开时——聊天机器人逐字逐句地打出它们,有点不稳定,好像在停下来整理思绪——我立即被系统的英语能力所震惊。GPT 以简单、有力的散文形式列出了单词梯子的所有基本特征:这是一个游戏或谜题,你通过一次更改一个字母从一个单词到另一个单词,梯子的每个梯级必须是一个英文单词,目标 就是找到从起始词到目标词的最短可能序列。我自己无法更好地解释它。最有帮助的是 COLD -> WARM 的工作示例。

给人留下语言能力印象的不仅仅是单个句子。句子按段落组织,段落串在一起形成连贯的话语。太棒了!

同样值得注意的是机器人处理模糊和草率输入的能力。我最初的查询被表述为是或否问题,但 ChatGPT 正确地将其解释为请求:“告诉我你对单词阶梯的了解。” 我的第二条指令忽略了任何印刷提示,表明 LEAD GOLD 应被理解为文字,而不是金属。聊天机器人本来有权向我提供炼金配方,但它却提供了缺少的引号。

然而,抛开所有这些语言和修辞的复杂性,我真正想测试的是该程序解决单词阶梯问题的能力。上面文字记录中的两个示例都可以在网络上找到,因此它们很可能出现在 ChatGPT 的训练数据中。换句话说,大型语言模型可能只是记住了解决方案,而不是构建它们。于是我提交了一个更艰巨的作业:

乍一看,ChatGPT 似乎再次取得了胜利,解决了我确信它以前从未遇到过的难题。但仔细看看。MARSH -> MARIS 需要两个字母替换,PARIL -> APRIL 也是如此。MARIS PARIL 作为“有效词”的地位也可能受到质疑。我已投诉: